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]
2007-06-29T09:28:27.467512Z Igor Melichev
Fix : Expanding gxcldev.h macros, part 3. DETAILS : This change is algorithmically equivalent. The purpose is to eliminate gxcldev.h macros to simplify the debugging of the clist writer methods. This 3nd step collects local variables of a rectangle enumerator in a single structure cmd_rects_enum_s. In the old code the macro FOR_RECTS modifies function arguments 'y' and 'height'. It doesn't comply with C-style.htm . For fixing that this patch renames function arguments x,y,width,height with rx,ry,rwidth,rheight.[src/gxcldev.h src/gxclpath.c src/gxclimag.c src/gxclrect.c]
2007-06-28T22:16:45.367783Z Ralph Giles
Pass -DHAVE_FONTCONFIG through CAPOPT so the fontconfig patch is actually enabled by the autoconf build. DETAILS: Previously, it was passed through ACDEFS which we don't currently use. This line is getting longer; probably we should move to platform-specific config files, and manage the autoconf one with autoheader.[src/Makefile.in src/configure.ac]
2007-06-28T22:08:46.177663Z Ralph Giles
Pass EXTRALIBS when linking mkromfs. This is a hack, but the dependency on the gp library pulls in a number of other things, and this seems safer for the time being.[src/unix-aux.mak]
2007-06-27T23:19:42.317364Z Alex Cherepanov
Lower the PDF version searched for transparency features to 1.2 to handle broken PDF files generated by SPIRIT 14.22. Bug 689288, customer 850.[lib/pdf_main.ps]
2007-06-27T16:48:22.479129Z Ralph Giles
Enable dynamic driver support on Solaris. Patch from Norm Jacobs, Bug 689307.[src/configure.ac]
2007-06-27T01:52:29.856489Z Ray Johnston
Fix an out of bounds buffer write in the wts_load_halftone logic and fine tune the wts_resolve_one color conversion cache hashing for 4K (the default). Bug 689255 for customer 951. DETAILS: Besides fixing the out of bounds logic, I added a 'bufsize' parameter to the gs_wts_from_buf logic so that we can detect OOB conditions. Note that the 1+hdr_size+cell_size in gx_ht_read_component_wts is retained by this patch even though it looks bogus (we want to commit the fix so we can send to a customer, and will look at this later). In refining the cache stats in the wtsimdi device, the 'fill_empty' case and the 'collision' case were split to make sure that the hash is decent, but even 1M cache hits (on ACDsee.prn) only save about 1.5 seconds (out of 9 seconds). The hash algorithm for smaller collision rates won't really matter much.[src/gswts.h src/gxdhtserial.c src/gdevwts.c src/gswts.c]
2007-06-26T20:43:03.119310Z Igor Melichev
Fix : Expanding gxcldev.h macros, part 2. DETAILS : This change is algorithmically equivalent. The purpose is to eliminate gxcldev.h macros to simplify the debugging of the clist writer methods. This 2nd step replaces HANDLE_RECT_UNLESS with macros that don't include goto or return statements. Besides that, the pattern : if (code < 0) { band_code = code; goto error_in_rect; /* ERROR_RECT(code); */ } is replaced with the smaller one : if (code < 0 && SET_BAND_CODE(code)) goto error_in_rect; for a better readability. Some compilers may claim unreferenced label error_in_rect. To be fixed in the next step.[src/gxcldev.h src/gxclimag.c src/gxclrect.c]
2007-06-26T16:25:42.642877Z Igor Melichev
Fix : Expanding gxcldev.h macros, part 1. DETAILS : This change is algorithmically equivalent. The purpose is to eliminate gxcldev.h macros to simplify the debugging of the clist writer methods. This first step removes simple macros and optimized macro duplicates. Removing others to be done in the next step. Some compilers may claim unreferenced label error_in_rect. To be fixed in the next step.[src/gxcldev.h src/gxclpath.c src/gxclimag.c src/gxclrect.c]
2007-06-26T15:58:26.994368Z Till Kamppeter
Replaced the $(install_prefix) from ESP Ghostscript by $(DESTDIR).[contrib/contrib.mak cups/cups.mak]
2007-06-26T07:08:17.110301Z Ray Johnston
Add logic for a configurable color lookup cache to the wts* devices. Currently set to 4K (4096 entries). Testing indicates this is a reasonable value, adequate for all synthetic/graphics arts pages and adequate for photos/scanned images. DETAILS: The hash function is rather arbitrary, but some experimentation with more sophisticated hashing doesn't really show much difference since the color lookup isn't such a high CPU load even on the performance files which are entirely images. A 4K CLUT achieves 1.4M hits and even a 64K CLUT size only gets 1.6M hits (out of ~6M pixels) .[src/gdevwts.c]
2007-06-25T23:56:29.899646Z Ralph Giles
Report the result of the GTK-2.0 configure test. Normalize indentation in this section.[src/configure.ac]
2007-06-23T02:43:31.980612Z Alex Cherepanov
Replace exponential format of a real number with a decimal point format in PDF writing utilities because PDF doesn't support exponential format. Bug 689293, customer 932.[lib/pdfwrite.ps]
2007-06-22T22:05:56.668720Z Till Kamppeter
Small corrections on "./configure" checks for pkg-config.[src/configure.ac]
2007-06-22T15:44:43.448105Z Till Kamppeter
Added the fontconfig support from ESP Ghostscript[src/Makefile.in src/configure.ac src/gp_unix.c]
2007-06-20T22:46:08.189858Z Ralph Giles
Clarify the license situation with the ETS patents in the GPL distribution.[src/rinkj/evenbetter-rll.c LICENSE]
2007-06-20T19:46:52.216039Z Ralph Giles
Hack in some support for comparing WX fields with --diff. Incomplete.[toolbin/afmutil.py]
2007-06-19T16:59:20.420492Z Igor Melichev
Fix : MSVC8 compiler warnings. DETAILS : The revision 8075 causes an unuseful type cast.[src/gsdparam.c]
2007-06-19T16:44:29.490746Z Igor Melichev
Fix (PS interpreter) : "undef" data change was not properly saved. DETAILS : Bug 689284 "Abnormal dependence of 'known' on name hash indices". The "undef" algorithm has an "optimization" branch for packed keys, which replaces "deleted" elements with "empty" (i.e. unused). However this data change was not tracked for "restore". In some rare cases it causes a wrong result for "known", "get", "bind" and others. Interesting that "dictforall" doesn't miss such keys when "known" does, but it could enumerate same key several times with older values. The bug persists since the repository was created in March 2000. This change simply saves the changed data for restore.[src/idict.c]
2007-06-19T11:36:06.688290Z Alex Cherepanov
Add version and revision numbers to %%BeginResource DSC comment generated by epswrite and pswrite devices. Bug 689285.[src/gdevpsu.c]
2007-06-19T07:16:20.368343Z Igor Melichev
Fix: Setting a right property on gscicach.c gscicach.h .[src/gscicach.c src/gscicach.h]
2007-06-19T07:12:43.707003Z Igor Melichev
Fix: Setting a right property on idicttpl.h .[src/idicttpl.h]
2007-06-19T07:09:42.151414Z Igor Melichev
Fix (PS interpreter) : Replace packed_search_* macros with a template (continued). DETAILS : This change is algorithmically equivalent. The purpose is to improve the debugging technology. The new variable 'start' allows to observe the value of the starting search index.[src/idicttpl.h]
2007-06-19T05:51:01.853658Z Igor Melichev
Fix (The filling algorithm) : Improving a condition for visual trace. DETAILS : This change affects the debug painting only. The old code wrongly accounts the case when fill adjustment is set to -1, which means "none".[src/gxfill.c]
2007-06-19T05:45:58.839755Z Igor Melichev
Fix (PS interpreter) : Replace packed_search_* macros with a template. DETAILS : This change is algorithmically equivalent. The purpose is to improve the debugging technology. It allows to trace through the packed search code with Microsoft Developer Studio. We define a new variable 'wrap' for reducing 3 macros to a single template. We believe it shouldn't cause a sensible slowdown. An alternative is 2 (nested) templates and no new variables. We noticed that the missing key case is not optimized well. When the key is missing, the algorithm scans the left part of the array 2 times. One time should be enough. It should be optimized in a separate patch.[src/idict.c src/idictdef.h src/int.mak src/idicttpl.h doc/Develop.htm src/idstack.c]
2007-06-19T02:39:15.345882Z Alex Cherepanov
Use newly created operator .getpath to implement PDF path handling without 64K limit on the user path imposed by upath, which we had before. Bug 689123, customer 870.[lib/pdf_draw.ps doc/Language.htm lib/pdf_ops.ps src/zupath.c]
2007-06-18T17:07:28.482467Z Ray Johnston
Remove the bmpa devices from some builds where it either was left over (macos-mcp) or snuck back in (configure.ac).[src/configure.ac src/macos-mcp.mak]
2007-06-18T17:05:33.466587Z Ray Johnston
Fix bmpa and gomni devices to account for changes to mem_*_size function calling sequences (rev 8056). These were missed since they were not part of the 'standard' build on most platforms and will be the 'async' method of gdevprna etc. will be deprecated.[contrib/gomni.c src/gdevbmpa.c]
2007-06-18T16:37:50.173337Z Timothy Osborn
Need to use maximum of max_gray and max_color to know how many bits are supported. DETAILS: For determining the device color depth, one must check both max_gray and max_color and use the maximum of the two. For example, with rgb devices max_gray will be equal to zero. Thanks to Ray for catching my oversite here. EXPTECTED DIFFERENCES: None. No alpha bit testing is done in the regression suite.[src/gsdparam.c]
2007-06-18T15:20:47.700377Z Timothy Osborn
Changing from using log10(x) / Log10(2) to iLog2(x) to compute the base 2 log. DETAILS: Making change to conform to gs style.[src/gsdparam.c]
2007-06-18T06:37:58.394295Z Ray Johnston
Fixes for ulong overflow in memory device buffer sizing that caused problems with very large (>4Gb on 32-bit machines) page buffer sizes not invoking clist mode. Also the internal 'mask' image allocation in ImageType3 would silently wrap around, causing SEGV crashes. Lastly, the tiff*nc devices are fixed so that they never write to file when the file will exceed 2Gb (max signed int) since the device uses 'ftell' to calculate offsets in the file. This last case could be fixed to use 64 bit file I/O or at least to keep an internal offset so that multipage tiffs could be > 2Gb as long as each page was less than 2Gb. Other TIFF devices that compress were not changed since the probability of overflow is less and we don't want to be overly agressive about throwing a 'rangecheck' on the basis of the uncompressed size. Bugs 688808, 688815 and 689080 for customer 190 (and others). DETAILS: The buf_device/bitmap sizing functions now return a success code, setting the size using a pointer passed as a parameter. A bitmap that overflows max_ulong now throws gs_error_VMerror so that the caller can take appropriate recovery action (such as gdevprn using a clist instead of a page buffer). The ImageType 3 mask probably needs an internal clist method (such as was done for the pattern accumulator) to avoid this overflow. As mentioned above, the TIFF devices, particularly the '*nc' type (not compressed) could benefit from using 64-bit file I/O calls for those that want to fill up large hard drives quickly.[src/gdevdsp.c src/gdevxini.c src/gxclist.c src/gxpcmap.c src/gxccman.c src/gxdevmem.h src/gdevppla.c src/gxmclip.c src/gdevmem.c src/gdevprn.c src/gximag3x.c src/gdevdrop.c]
2007-06-17T17:55:26.407602Z Henry Stiles
Fix 689275. The slow rop flag was not set to true for ROP 170 (paint with destination), this is an unexpected problem because it is the most basic rop that requires setting the "slow rop" flag. In addition to fixing the tests in the bug resport The following CETS recorded differences in automated testing, but only a few have been visually verified as fixes. tests/pcl/pcl5ccet/22-13.BIN tests/pcl/pcl5ccet/22-20.BIN tests/pcl/pcl5ccet/23-11.BIN tests/pcl/pcl5ccet/25-04.BIN tests/pcl/pcl5ccet/25-05.BIN tests/pcl/pcl5ccet/25-06.BIN tests/pcl/pcl5efts/fts.2400 tests/xl/pxlfts2.0/t106.bin tests/xl/pxlfts2.0/t202.bin tests/xl/pxlfts2.0/t328.bin tests/xl/pxlfts3.0/A007.BIN tests/xl/pxlfts3.0/A008.BIN tests/xl/pxlfts3.0/T106.BIN tests/xl/pxlfts3.0/T202.BIN tests/xl/pxlfts3.0/T328.BIN tests/xl/pxlfts3.0/T336.BIN tests/xl/pxlfts3.0/T419.BIN tests/xl/pcl6cet/c207.bin tests/xl/pcl6cet/c311.bin tests/xl/pcl6cet/c313.bin tests/xl/pcl6cet/c327.bin tests/xl/pcl6cet/c328.bin tests/xl/pcl6cet/c419.bin tests/xl/pcl6cet/c420.bin tests/xl/pcl6cet/c427.bin tests/xl/pxlfts/t106.bin tests/xl/pxlfts/t202.bin tests/xl/pxlfts/t328.bin tests/xl/pxlfts/t419.bin tests/xl/pcl6cet3.0/C207.bin tests/xl/pcl6cet3.0/C311.bin tests/xl/pcl6cet3.0/C313.bin tests/xl/pcl6cet3.0/C327.bin tests/xl/pcl6cet3.0/C328.bin tests/xl/pcl6cet3.0/C419.bin tests/xl/pcl6cet3.0/C420.bin tests/xl/pcl6cet3.0/C427.bin tests/xl/pcl6cet3.0/C701.bin tests/xl/pcl6cet3.0/C702.bin tests/xl/pcl6cet3.0/C704.bin tests/customer_tests/Fc707oj2.bin.xl tests/customer_tests/Fc70foj3.bin.xl tests/customer_tests/cie.out tests/customer_tests/circle1.pcl tests/customer_tests/fp309oa2.bin tests/customer_tests/lj.pcl tests/customer_tests/wd309dwf.pcl tests/customer_tests/wd30ddwf.pcl[src/gxclrect.c]
2007-06-17T00:01:02.174467Z Alex Cherepanov
Fix misleading error message from runlibfile0 that always referred to the last libfile that was ever STARTED, even if it finished and control returned to another file. Bug 688738. DETAILS: Change runlibfile0 to define ".currentfilename" again after the libfile ends. The correct value is kept on the exec stack, by constructing and executing a procedure with the filename bound into it. Thanks to SaGS for the patch.[lib/gs_init.ps]
2007-06-16T19:24:22.647261Z Timothy Osborn
Fix to limit GraphicsAlphaBits and TextAlphaBits to legal values. DETAILS: Bug 688020 reported that when a user set the GraphicsAlphaBits and TextAlphaBits to values not supported by the current device unexpected images would be generated. This fix limits the internal values used to those which are supported by the current output device.[src/gsdparam.c]
2007-06-15T18:55:34.118706Z Timothy Osborn
Comment change to reflect name change of the module gsncdemo.c to gsncdummy.c DETAILS: See above.[src/gsnamecl.h]
2007-06-14T22:06:25.996646Z Alex Cherepanov
Implement quoting in GS_OPTIONS environment variable. Bug 688965. DETAILS: Old code treated quotes in GS_OPTIONS as regular characters and not used them for quoting spaces. New code distinguish between a single already parsed argument, retrieved by a previous call to arg_next() and unparsed list of arguments from GS_OPTIONS. Thanks to SaGS for the patch.[src/gsargs.c src/imainarg.c src/gsargs.h]
2007-06-13T23:21:11.020971Z Igor Melichev
Fix (pdfwrite) : A crash when comparing resources of different types. Bug 689269 for customer 411. Fix by Ray Johnston. DETAILS : pdf_find_same_resource assumed same resource type. However PDF allows for functions to be either array or dictionary. Need to compare resource types before comparing their contents.[src/gdevpdfu.c]
2007-06-13T19:21:47.294205Z Ralph Giles
The translib module now depends on crd decoding and cie support. Patch from Henry Stiles, needed for the gslt build.[src/lib.mak]
2007-06-13T16:27:33.371102Z Timothy Osborn
This is a fix for regression bug report 689263. DETAILS: Some versions of PhotoShop generate documents that place an extra value on the operand stack and tintTransform replaces it - see bug 549307 for details. Also see the test case of bug 689263. Since GS invokes setcolor as a side-effect of setcolorspace, we must prevent Adobe's hack from pop'ing an extra (significant) item from the operand stack when setcolor is invoked from a setcolorspace context. The previous patch for bug report 688584, which was committed before I was done with it, was too broad and was undoing Adobe's hack whenever setcolor was invoked (from setcolorspace or otherwise). This change also undoes the previous patch, which was the cause of the error: Error: /rangecheck in --image-- under the conditions specified in bug report 689263.[lib/gs_devn.ps lib/gs_cspace.ps]
2007-06-13T02:42:04.178728Z Alex Cherepanov
Fix false detection of circular references in the resource chain. Valid PDF resource references form a directed acyclic graph but the old code was checking for a tree. Bug 688479.[lib/pdf_main.ps]
2007-06-12T20:55:18.217413Z Alex Cherepanov
Avoid an invalidaccess error. Skip execstack elements in the execstack_lookup procedure for which rcheck returns false. Bug 688934.[lib/gs_resmp.ps]
2007-06-12T17:12:08.917597Z Igor Melichev
Fix : MSVC8 warnings.[src/gconf.c src/gdevdjet.c]
2007-06-12T02:41:44.494784Z Ralph Giles
Set native line endings.[src/gsncdummy.c src/gsncdummy.h]
2007-06-12T02:06:18.488766Z Ralph Giles
Remove LDFLAGS and EXTRALIBS from the mkromfs build line. These were inadvertently added during the esp merge and are no longer needed.[src/unix-aux.mak]
2007-06-11T21:58:13.269101Z Alex Cherepanov
Don't leave ccolor.pattern uninitialized for the null pattern because this field is enumerated by GC. Bug 689002.[src/gspcolor.c]
2007-06-10T20:12:02.226861Z Alex Cherepanov
Fix processing of very small PDF files ( < 1024 bytes) that was broken by rev. 7834 that increased the size of look-ahead buffer to 1024 bytes.[lib/pdf_main.ps]
2007-06-10T05:21:02.102146Z Alex Cherepanov
Add a work-around for malloc(0) returning a 0 pointer - call malloc(1) instead. Bug 688532, customer 870. DETAILS: This behavior was observer on IBM 4.3 and 5.1. IEEE 1003.1 spec, which is aligned with ISO C, states: If the size of the space requested is 0, the behavior is implementation-defined: the value returned shall be either a null pointer or a unique pointer. malloc(0) happens when libjasper reads optional tags in the embedded ICC profile. This doesn't happen too frequently and we can afford to allocate a few extra bytes.[jasper/src/libjasper/base/jas_malloc.c]
2007-06-10T05:01:41.885957Z Alex Cherepanov
Fix a memory corruption and a SEGV after applying a filter to a closed stream. Don't replace an closed stream with invalid_file_stream, which is an open, 0-length stream. Bug 688712.[src/zfilter.c]
2007-06-10T01:51:33.615609Z Alex Cherepanov
Port recent changes in MSVC build to Borland C build. Fix minor compilation problems in the components that has not been compiled by Borland C before. DETAILS: Although nobody seems to use Borland C, having an alternative compiler on Windows helps to separatr MSVC errors from Microsoft SDK quirks.[jasper/src/libjasper/include/jasper/jas_types.h jasper/src/libjasper/jpc/jpc_qmfb.c jbig2dec/os_types.h jasper/src/libjasper/include/jasper/jas_config.h src/bcwin32.mak jbig2dec/config_win32.h src/gdevtsep.c src/genarch.c ijs/unistd_.h src/dwuninst.cpp]
2007-06-09T12:08:12.529992Z Alex Cherepanov
Fix incorrect decompression of large files (>= 16M) by JPXDecode filter on Windows. Don't open the temporary file in text mode.[jasper/src/libjasper/include/jasper/jas_stream.h]
2007-06-09T00:16:34.537278Z Ralph Giles
The cups-config script can be installed without the libcupsimage headers. Check for this and disable gdevcups if the required header isn't available.[src/configure.ac]
2007-06-08T18:12:46.977956Z Ralph Giles
Update the unix persistent cache implementation to use the new md5 namespace. This file should have been included in r8032.[src/gp_unix_cache.c]
2007-06-08T18:03:34.577571Z Ralph Giles
Tell svn to ignore the generated cups scripts.[cups]
2007-06-08T18:02:05.168482Z Ralph Giles
Namespace the interface calls of our md5 implementation to avoid conflict with other implementations, for example the one exported by libcups on MacOS X, or one used by a client which also links to gs as a library.[src/smd5.h src/gdevpdf.c src/gdevpdfu.c src/md5.c src/smd5.c src/md5.h src/md5main.c]
2007-06-07T04:52:46.418386Z Ralph Giles
Remove an unused clean action. DETAILS: This was added as part of the x11 device modularization patch, which doesn't appear to add any generation of _temp_* files. The Desqview makefile does, and wctail.mak makes such files in the GLOBJ path, but cleaning these shouldn't be part of this target regardless.[src/gs.mak]
2007-06-07T04:44:52.072188Z Ralph Giles
Remove generated cups scripts from the repository.[cups/pstoraster cups/pstopxl]
2007-06-07T04:40:42.736213Z Ralph Giles
Minor cleanup of the CC_SHARED flag specification.[src/lib.mak src/unix-gcc.mak]
2007-06-07T03:09:16.997726Z Ralph Giles
Add the new CC_SHARED define to other top-level makefiles that include the new modular x11 or vga devices. This corrects the build issue with ghostpcl.[src/openvms.mak src/ugcclib.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/openvms.mmk src/os2.mak]
2007-06-06T22:46:38.753757Z Ralph Giles
Add gomni.c, which was omitted by the EPS branch merge.[contrib/gomni.c]
2007-06-06T22:03:27.059105Z Till Kamppeter
Finally merged in extra functionality of ESP Ghostscript (from branch "gs-esp-gpl-merger")[libpng/projects/netware.txt libpng/scripts/makefile.gcmmx libpng/contrib/gregbook/writepng.c src/configure.ac contrib/eplaser libpng/contrib/pngminus/makevms.com libpng/contrib/gregbook/readpng2.c libpng/contrib/gregbook/writepng.h libpng/contrib/gregbook/Makefile.unx libpng/scripts/makefile.msc libpng/scripts/makefile.sgi libpng/contrib/gregbook/readpng2.h libpng/contrib/visupng/VisualPng.dsp libpng/projects/beos/x86-shared.txt libpng/KNOWNBUG src/gdevpx.c src/gdevl256.c libpng/projects/cbuilder5/libpng.readme.txt src/gdevvglb.c libpng/scripts/makefile.watcom libpng/contrib/visupng/VisualPng.dsw libpng/scripts/makefile.nommx libpng/scripts/makefile.linux contrib/chp2200 libpng/scripts/CMakeLists.txt contrib/gdevlx50.c libpng/scripts/makefile.acorn lib/gs_init.ps src/gdevlbp8.c libpng/contrib/pngsuite/basn3p01.png libpng/projects/visualc71/zlib.vcproj contrib/gdevbjc_.c libpng/scripts/makefile.elf libpng/scripts/pngw32.rc contrib/japanese libpng/contrib/gregbook/toucan.png libpng/scripts/makefile.mips libpng/projects/visualc71/libpng.sln contrib/gdevbjc_.h libpng/pngrio.c libpng/contrib/gregbook/makevms.com libpng/contrib/gregbook/rpng-win.c libpng/projects/cbuilder5/libpngstat.bpf src/devs.mak libpng/projects/visualc6 contrib/pcl3 contrib/gdevlx7.c libpng/scripts/libpng.pc-configure.in src/gdevdjet.c contrib/defs.h src/gs.mak libpng/contrib/pngsuite/basn0g02.png libpng/README src/Makefile.in libpng/contrib/pngsuite/basn0g04.png libpng/contrib/gregbook libpng libpng/contrib libpng/projects/cbuilder5/libpngstat.bpr libpng/contrib/pngsuite/basn4a08.png libpng/libpngpf.3 libpng/contrib/pngsuite/basn0g08.png src/unixinst.mak libpng/contrib/pngminus/makefile.tc3 libpng/TODO src/gp_unix.c libpng/scripts/descrip.mms contrib/gdevxes.c libpng/contrib/visupng/VisualPng.ico libpng/scripts/makefile.solaris libpng/projects/cbuilder5/zlib.readme.txt libpng/pngwtran.c src/gdevlj56.c libpng/scripts/makefile.hp64 src/gdevdljm.c contrib/gdevcd8.c libpng/contrib/pngminus/png2pnm.sh libpng/contrib/pngminus/pnm2png.sh libpng/contrib/gregbook/wpng.c libpng/pngnow.png libpng/scripts/makefile.bc32 libpng/contrib/gregbook/README contrib/contrib.mak libpng/projects/visualc71/pngtest.vcproj src/gdevdljm.h libpng/scripts/makefile.vcwin32 contrib/gdevcd8.h contrib/gdevdj9.c libpng/contrib/gregbook/rpng2-win.c libpng/scripts/pngw32.def libpng/projects/beos/x86-static.proj libpng/pngget.c libpng/scripts/makefile.os2 libpng/contrib/pngminus/makefile.std libpng/projects/cbuilder5 libpng/scripts/makefile.sunos libpng/projects/wince.txt libpng/contrib/visupng/cexcept.h libpng/libpng.3 libpng/scripts/makefile.ibmc libpng/contrib/gregbook/rpng2-x.c libpng/pngtrans.c libpng/pngwrite.c libpng/contrib/gregbook/LICENSE libpng/pngset.c libpng/scripts/makefile.dj2 libpng/projects/visualc71/README.txt libpng/LICENSE libpng/projects/visualc71/libpng.vcproj libpng/contrib/visupng/VisualPng.png libpng/png.5 src/gconf.c libpng/pngwutil.c libpng/scripts/makefile.openbsd libpng/scripts/makefile.gcc contrib/md2k_md5k libpng/contrib/visupng/VisualPng.rc libpng/scripts/makevms.com libpng/scripts/libpng.pc.in contrib/gdevmd2k.c libpng/contrib/pngminus/pngminus.sh libpng/pngrtran.c libpng/scripts/makefile.freebsd src/unix-dll.mak contrib/lips4 contrib/gdevhl12.c libpng/scripts/makefile.hpgcc libpng/scripts libpng/scripts/makefile.sco src/lib.mak libpng/scripts/makefile.tc3 libpng/scripts/pngos2.def libpng/contrib/gregbook/Makefile.sgi libpng/contrib/pngminus/README cups libpng/scripts/makefile.vcawin32 libpng/contrib/pngsuite/basn2c16.png libpng/contrib/gregbook/readpng.c libpng/contrib/pngminus src/unix-gcc.mak libpng/contrib/pngsuite/basn6a16.png libpng/pngmem.c libpng/png.c contrib/gdevop4w.c libpng/contrib/gregbook/readpng.h libpng/scripts/makefile.64sunu src/version.mak libpng/contrib/pngsuite/basn3p02.png contrib/opvp libpng/projects/beos/x86-static.txt libpng/scripts/libpng-config-head.in libpng/png.h libpng/contrib/pngsuite/basn3p04.png contrib/gdevbjca.c libpng/contrib/pngsuite/basn3p08.png libpng/pngpread.c libpng/Y2KINFO libpng/scripts/makefile.netbsd libpng/projects/beos/x86-shared.proj libpng/pngwio.c lib/gs_setpd.ps libpng/pngrutil.c libpng/projects/visualc6/libpng.dsp libpng/contrib/pngminus/pnm2png.bat libpng/contrib/gregbook/Makefile.w32 libpng/contrib/pngminus/png2pnm.bat libpng/scripts/makefile.darwin libpng/scripts/makefile.hpux libpng/pngbar.jpg libpng/projects/cbuilder5/libpng.bpf libpng/projects libpng/projects/cbuilder5/libpng.bpg libpng/scripts/makefile.sggcc libpng/contrib/gregbook/rpng-x.c libpng/contrib/pngsuite/basn0g01.png libpng/projects/visualc6/libpng.dsw contrib/uniprint libpng/scripts/makefile.std libpng/contrib/pngsuite libpng/contrib/pngminus/pnm2png.c libpng/contrib/pngminus/png2pnm.c libpng/projects/visualc71/README_zlib.txt libpng/scripts/makefile.32sunu libpng/projects/cbuilder5/libpng.bpr libpng/contrib/pngminus/pngminus.bat libpng/contrib/visupng/README.txt libpng/projects/visualc71/PRJ0041.mak libpng/pngerror.c contrib/gdevgdi.c libpng/configure libpng/pngvcrd.c libpng/contrib/visupng/VisualPng.c libpng/scripts/makefile.aix libpng/scripts/makefile.mingw libpng/scripts/makefile.bor libpng/scripts/SCOPTIONS.ppc libpng/contrib/visupng libpng/scripts/makefile.beos libpng/contrib/visupng/PngFile.c libpng/contrib/pngsuite/basn4a16.png libpng/projects/visualc6/README.txt libpng/pngread.c libpng/scripts/makefile.ne12bsd libpng/contrib/pngsuite/basn0g16.png src/gdevpxut.c src/gdevcdj.c contrib/gdevlx32.c libpng/contrib/visupng/PngFile.h libpng/scripts/libpng-config-body.in libpng/INSTALL libpng/pngtest.png libpng/pnggccrd.c libpng/contrib/visupng/resource.h libpng/CHANGES src/gdevpxut.h libpng/scripts/libpng-config.in src/gdevxalt.c libpng/libpng-1.2.16.txt libpng/example.c contrib/lxm3200-tweaked libpng/scripts/makefile.so9 libpng/scripts/makefile.intel libpng/pngconf.h libpng/projects/beos libpng/scripts/makefile.amiga src/contrib.mak contrib/gdevln03.c libpng/contrib/pngsuite/README libpng/pngbar.png libpng/scripts/makefile.knr libpng/projects/visualc6/pngtest.dsp libpng/scripts/makefile.dec libpng/scripts/libpng.icc libpng/contrib/pngsuite/basn2c08.png src/unix-aux.mak libpng/contrib/pngsuite/basn6a08.png libpng/projects/cbuilder5/libpng.cpp libpng/scripts/makefile.atari libpng/scripts/makefile.cygwin contrib/epson740 libpng/pngtest.c libpng/ANNOUNCE libpng/projects/visualc71 libpng/scripts/smakefile.ppc]
2007-06-05T23:08:49.369051Z Ralph Giles
Remove additional artofcode references and the obsolete Maintain.htm.[doc/Projects.htm doc/Issues.htm doc/Use.htm doc/Make.htm doc/Readme.htm doc/Testing.htm doc/Develop.htm doc/Maintain.htm]
2007-06-05T23:04:12.844617Z Ralph Giles
Remove artofcode references and update the release process documentation.[doc/Release.htm]
2007-06-05T22:23:38.874733Z Ralph Giles
Update licence headers. Copyright has been transfered from artofcode LLC to Artifex Software, Inc.[src/iplugin.h ijs/ijs_server.h src/gdevm48.c src/gsgdata.h src/configure.ac src/gsropt.h src/gdevmsxf.c src/gdevmem.c src/gdevmem.h src/zvmem.c src/write_t1.c src/gstrap.c src/icstate.h src/gxxfont.h src/write_t1.h src/gstrap.h src/gzacpath.h src/gdevcgmx.h src/gscssub.c src/gp_msdos.c src/gdevlbp8.c src/gdevpdfx.h src/gdevdm24.c src/zcsdevn.c src/dwsetup.rc src/zcontext.c src/gscssub.h src/icie.h src/gxdhtserial.c src/gdevpdts.c src/ccfont.h src/gxdhtserial.h src/gxdither.h src/gdevpdts.h src/macsystypes.h src/gxclutil.c src/gxcomp.h src/echogs.c src/oper.h doc/History7.htm src/zchar42.c toolbin/tests/cmpi.py src/gsfont0.c src/gscscie.c src/zchar42.h src/gdevwts.c src/icfontab.c src/zht1.c src/zpcolor.c src/zdevcal.c src/gdevpdfi.c src/zcssepr.c src/ifont42.h src/sdcparam.c doc/Install.htm src/bcwin32.mak doc/Issues.htm src/sdcparam.h src/gdevokii.c src/gdevpdtd.c src/zcfont.c src/gdevpdtd.h src/gdevprna.c src/zcolor.c src/oparc.h src/gxhtbit.c src/sfxfd.c src/gdevprna.h src/gp_mspol.c src/dwuninst.h src/ttconfig.h src/gpmisc.c src/ireclaim.c src/gxstdio.h lib/gs_cidcm.ps src/gsmemraw.h toolbin/split_changelog.py src/gpmisc.h doc/Lib.htm src/gxline.h doc/Ps-style.htm man/gslp.1 src/ijs.mak src/gserver.c src/gp_psync.c man/de/pdfopt.1 src/gp_os2pr.c src/gdevpsd.c src/gsiomacres.c src/gxclfile.c src/gxfilltr.h man/de/wftopfa.1 man/de/ps2ps.1 src/gdebug.h src/zfile.c src/gxchar.c src/gxchar.h src/gsline.c src/gsfcid2.c src/gsalloc.c src/gsline.h src/gsiparm2.h src/gsalloc.h src/gxfont0.h src/gdevmeds.c src/gdev4081.c src/gdevmeds.h src/srdline.h src/dpmain.c src/wctail.mak src/winlib.mak doc/History8.htm src/szlibx.h src/zmath.c jbig2dec/jbig2_image_png.c src/gdevpdfk.c src/gxfont0c.h src/gxhintn1.c src/iimage.h src/gxpcolor.h src/gdevpdtf.c src/gp_unifn.c doc/Xfonts.htm src/gdevddrw.c src/gschar.c src/gdevpdtf.h src/gdevpsfm.c src/gdevddrw.h src/gschar.h src/sarc4.c src/gdevpsu.c src/gsptype2.c src/zfcid1.c src/gstrans.c src/sarc4.h src/gdevpsu.h src/gsptype2.h src/gstrans.h src/iestack.h src/gxbitfmt.h src/gxclio.h lib/pdf_rbld.ps src/gstype2.c src/itoken.h src/inameidx.h src/gxhldevc.c src/gxhldevc.h src/sfxboth.c src/gp_macio.c src/wrfont.c src/sbhc.c src/gsdps.c src/zfont1.c jbig2dec/jbig2_priv.h src/wrfont.h doc/Maintain.htm src/sbhc.h man/de/gsnd.1 src/gsdps.h src/spngp.c src/ghost.h jbig2dec/jbig2dec.c src/gxalloc.h src/gsmatrix.c src/gxsamplp.h src/istruct.h src/gdevpsf.h src/gsmatrix.h src/zdouble.c src/dwreg.c src/spdiff.c src/gxfcmap1.h src/dwreg.h src/scommon.h src/gdevpdtw.c src/gdevpdtw.h src/gsiparm4.h src/unixhead.mak src/gxiscale.c src/gxbcache.c src/dwinst.cpp src/gxbcache.h src/ibnum.c src/gdevxcmp.c src/estack.h src/ibnum.h ijs/configure.ac src/scfe.c src/gsdcolor.h src/gscompt.h src/gdevxcmp.h src/gxdtfill.h lib/stocht.ps src/gdevlj56.c src/gdevhl7x.c src/gdevos2p.c src/gdevmr8n.c src/gsbitops.c src/gsparam.c src/gxftype.h src/gdevpdfm.c src/gp_unix_cache.c src/imain.c src/gsbitops.h src/gsparam.h src/zfilter2.c src/imain.h src/ifilter.h src/zfont42.c doc/Language.htm src/spdiffx.h src/smd5.c src/smd5.h src/gxhttype.h src/gspenum.h src/sjpx.c src/gxipixel.c src/sjpx.h src/sfilter2.c src/gdevsnfb.c src/gscrd.c src/gxmclip.c src/gxcie.h src/gsio.h src/gscrd.h toolbin/tests/fuzzy.c src/gxmclip.h src/unix-end.mak toolbin/tests/run_parallel src/inobtokn.c toolbin/afmutil.py src/gp_mslib.c src/gdevescp.c src/gsiodev.c src/igc.c src/msvc32.mak src/gdevmacxf.c src/gsfunc0.c jbig2dec/jbig2_arith.c src/igc.h src/jerror_.h src/zdosio.c src/gsfunc0.h jbig2dec/jbig2_arith.h toolbin/jpxtopdf.c src/gdevpsf1.c src/gdevpsds.c src/siscale.c src/gdevpsds.h src/ilevel.h src/gxfill.c src/gsdsrc.c src/siscale.h src/gxclread.c src/gsdsrc.h ijs/ijs_exec_unix.c src/gxfill.h src/iostack.h src/gsdll.c src/gdevmr1.c src/gspath1.c src/gsdll.h src/sjpegc.c src/zfdcte.c src/zfcmap.c doc/Readme.htm toolbin/tests/check_source.py src/gdevbit.c src/gdevfax.c src/gsequivc.c src/gdevfax.h src/gsdevice.c src/gp_wsync.c src/gsequivc.h src/gxclmem.c src/gsdll32.rc src/gshtx.c src/gscparam.c src/gsdevice.h src/gdevpdfo.c src/gdevsj48.c src/gsbittab.c src/sdctd.c src/macos_carbon_pre.h src/gxclmem.h src/gshtx.h src/gsmemory.c src/gdevpdfo.h src/gsbittab.h src/ifwpred.h src/gdevcdj.c doc/Devices.htm src/files.h man/de/ps2ascii.1 src/gsmemory.h src/gxband.h src/scfdgen.c src/ttinterp.c src/ttcalc.c src/gsbitmap.h src/gdevtknk.c toolbin/genfontmap.ps src/idsdata.h src/ttinterp.h src/ttcalc.h src/gxfont42.h src/scf.h src/inames.h src/gxidata.c src/gsroptab.c lib/gs_fntem.ps src/gdevm1.c src/gsistate.c src/os2.mak src/gscolor2.c lib/gs_cidfm.ps src/gzline.h src/gscolor2.h src/gsmalloc.c src/ttfmain.c src/ivmem2.h src/gsmalloc.h src/gscindex.h src/gxiodev.h src/gp_macpoll.c src/dwmain.c jasper/configure.ac src/gdevpcfb.c src/gdevvec.c src/dwmain.h src/gdevpcfb.h src/gdevvec.h toolbin/pscet_status.pl src/ostack.h jasper/src/libjasper/jpc/jpc_qmfb.c src/gsrect.h src/sdeparam.c src/idosave.h src/ifrpred.h src/gdevimgn.c src/gdevvglb.c src/gsmdebug.h src/gsovrc.c src/gxshade1.c jbig2dec/jbig2_symbol_dict.c src/gdevm32.c src/scfx.h src/gsovrc.h src/all-arch.mak lib/gs_init.ps jbig2dec/jbig2_symbol_dict.h src/bfont.h src/idparam.c src/gsparams.c src/gdevbjcl.c src/gdevpsdu.c src/dvx-gcc.mak src/idparam.h src/gsparams.h src/gxblend.c src/gdevdsp2.h src/gp_mswin.c src/gdevbjcl.h src/gxblend.h src/gp_mswin.h src/gp_os2.c src/zcolor1.c src/math_.h src/gp_os2.h lib/gs_resmp.ps src/gxfunc.h src/gdevstc.c jbig2dec/jbig2_segment.c src/macos-fw.mak src/ialloc.c src/gdevstc.h src/ialloc.h src/gserrors.h src/sjpege.c src/gxsample.c src/gxfarith.h src/dxmainc.c src/gdevbmp.c src/gxsample.h src/gserror.h src/gdevbmp.h src/gdevsppr.c src/igcstr.c src/gdevn533.c src/idebug.c src/igcstr.h src/iccinit1.c src/idebug.h src/gsht.c src/ifont2.h src/gdevpsdf.h src/gdevm16.c src/gsht.h src/scantab.c src/strmio.c src/zfilter.c src/gstype42.c src/strmio.h src/iutilasm.asm src/gsfunc.c src/sbcp.c src/iref.h src/gsfunc.h jbig2dec/jbig2_mmr.c toolbin/encs2c.ps src/sbcp.h jbig2dec/jbig2_mmr.h src/gdevtrac.c src/gp_ntfs.c src/libpng.mak src/gdevatx.c src/zfproc.c src/gs_dll_call.h src/dmmain.c src/istream.h src/gs.c doc/Ps2epsi.htm src/zdevice2.c jasper/src/libjasper/include/jasper/jas_types.h src/iscannum.c src/sjbig2.c src/gdevpdfb.c src/gscrdp.c src/gspmdrv.c src/iscannum.h src/dmmain.r src/sjbig2.h src/gsfemu.c src/gdevpdfb.h src/gscrdp.h src/gspmdrv.h src/inamestr.h src/gxclrast.c src/gdevxres.c src/zfile1.c src/zimage3.c src/gdevo182.c src/istkparm.h src/zarith.c src/zcspixel.c src/gximage1.c src/msvctail.mak src/gsfunc4.c src/isdata.h src/gxclpath.c src/gsfunc4.h src/gxcmap.c src/gxclpath.h src/icsmap.h src/gxcmap.h src/gpgetenv.h src/zpath.c src/gsnorop.c src/ttload.c src/gdevmrop.h src/gxfillsl.h src/zcolor3.c src/ttload.h src/gxcpath.c src/tttype.h doc/Unix-lpr.htm src/gxcpath.h src/gdevlxm.c src/gxp1impl.h man/ps2ps.1 jbig2dec/jbig2_generic.c src/rinkj/rinkj-epson870.c jbig2dec/jbig2_generic.h src/rinkj/rinkj-epson870.h jbig2dec/jbig2_image.c src/gxgetbit.h src/gdevabuf.c doc/Source.htm src/md5.c jbig2dec/jbig2_image.h src/gp_mac.c src/zcie.c src/gdevsco.c src/md5.h src/gp_mac.h src/stream.c src/gdevdflt.c src/stream.h src/gsdpnext.h src/gdev8510.c src/gxstroke.c src/gdevpxut.c src/zncdummy.c src/zmisc2.c src/ttmisc.h src/zfunc3.c src/iparam.c lib/jobseparator.ps src/zrelbit.c src/gdevpxut.h src/gxclist.c src/gdevxini.c src/iparam.h Resource/ColorSpace/DefaultCMYK src/gxclist.h src/jbig2.mak src/gdevpsfu.c src/gdevlp8k.c jbig2dec/jbig2_arith_iaid.c src/gdevpdt.c man/font2c.1 src/ttfmemd.c jbig2dec/jbig2_arith_iaid.h src/gdevpdt.h src/gp_dosfs.c ijs/ijs_exec_win.c src/ttfmemd.h src/gpcheck.h src/jasper.mak src/gdevxxf.c src/dwuninst.cpp src/ztype.c src/shc.c src/zshade.c man/ps2ascii.1 Resource/ColorSpace/DefaultGray doc/Use.htm src/opcheck.h src/shc.h src/gdevpdfd.c src/gdevcfax.c src/vdtrace.c src/zicc.c src/gxdda.h src/iscan.c src/vdtrace.h src/gsnotify.c src/iscan.h src/gximage3.c src/srle.c src/zfilterx.c src/gsnotify.h Resource/ColorSpace/TrivialCMYK src/gximage3.h src/gsdll2.rc man/gs.1 src/iparray.h src/memory_.h src/gsuid.h src/wtsimdi.c src/gdevstc2.c src/ziodev2.c src/gsiodevs.c man/eps2eps.1 src/zmisc.c src/gsargs.c src/devs.mak src/gp_win32.c src/gsargs.h src/gsinit.c src/gxttfb.c src/simscale.c src/wmin.mak src/gxttfb.h src/dscparse.c src/winplat.mak src/simscale.h src/gdev3852.c src/dscparse.h src/gp_getnv.c src/gp_wgetv.c src/gdevpxen.h src/gdevadmp.c src/gdevpxat.h src/errno_.h src/zchar2.c src/slzwc.c src/gdevpdfu.c src/ttcommon.h src/gdevp14.c doc/Ps2ps2.htm src/dwinst.h src/sfilter.h src/gdevp14.h src/ifcid.h src/ifont.h src/sisparam.h src/zfmd5.c src/unixlink.mak doc/Psfiles.htm src/zrop.c src/zfjpx.c src/gdevegaa.asm src/gspaint.c src/gspaint.h src/sa85x.h src/gsalpha.c src/int.mak src/gsalpha.h src/icremap.h src/imainarg.c src/gp_dvx.c src/imainarg.h jbig2dec/os_types.h src/spprint.c src/gxcldev.h src/zbfont.c src/unix-gcc.mak src/spprint.h src/igstate.h src/unistd_.h src/version.mak src/dwtext.c src/sbwbs.c src/gxdevmem.h src/icharout.h src/gdevstc4.c src/dwtext.h src/sbwbs.h src/szlibd.c src/gdevdfax.c src/gdevdbit.c src/gdevpccm.c ijs/ijs_client_example.c src/gdevpccm.h src/strimpl.h src/gsutil.c src/opextern.h src/gsutil.h src/zimage.c src/gdevcgm.c src/zfimscale.c jbig2dec/jbig2_metadata.c src/gdevtsep.c src/gsfont0c.c doc/Deprecated.htm jbig2dec/jbig2_metadata.h man/de/font2c.1 src/gsht1.c src/gspcolor.c src/gxi12bit.c src/gsht1.h src/iddstack.h src/gspcolor.h src/rinkj/rinkj-config.c src/zfjbig2.c src/std.h src/rinkj/rinkj-config.h src/gdevs3ga.c src/slzwe.c src/scfdtab.c src/gscolor.c src/stdint_.h src/ztoken.c src/gxpaint.c src/seexec.c src/zchar32.c src/icid.h src/gscolor.h src/gdevm56.c src/spsdf.c src/gxpaint.h src/gsfname.c src/spsdf.h src/gsfname.h src/gxalpha.h jbig2dec/jbig2_refinement.c jasper/src/libjasper/base/jas_debug.c src/srlx.h src/gxclipsr.h toolbin/pdf_info.ps src/gdevmac.c src/idisp.c src/jpeg.mak src/gdevmac.h src/idisp.h src/idstack.c src/gdevrinkj.c src/idstack.h src/gdevwdib.c src/gxoprect.c src/gdevsunr.c src/gdevpdtc.c src/gxoprect.h src/gsfcmap1.c Resource/Decoding/StandardEncoding src/gswts.c src/gsstate.c src/gswts.h src/ichar1.h src/gxiparam.h src/gsstate.h src/gdevcljc.c doc/Ps2pdf.htm lib/pdf_base.ps src/iscanbin.c src/gdevmiff.c src/iscanbin.h src/gp_mshdl.c src/zfcid.c src/zfont.c src/unixinst.mak src/iminst.h src/zarray.c src/gxdevcli.h src/fcntl_.h src/gdevpe.c doc/Humor.htm src/zdfilter.c lib/prfont.ps src/write_t2.c src/zdps1.c doc/Commprod.htm src/write_t2.h src/zhsb.c src/gxsync.c src/zupath.c src/dstack.h toolbin/gen_ldf_jb2.py src/gsccolor.h src/gxsync.h src/gdevpdtt.c src/gdevpbm.c src/gdevpdtt.h src/gdevmrun.c src/gsdllwin.h src/gconf.c src/gdevmrun.h src/gconf.h src/sdct.h src/zfbcp.c src/gsipar3x.h src/gzcpath.h src/scfetab.c jbig2dec/jbig2.c jbig2dec/jbig2.h src/gxstate.h src/gdevpcl.c src/gdevcmap.c src/zht2.c src/gxfmap.h src/gdevpdfj.c src/zfarc4.c src/gdevpcl.h src/ichar.h src/gdevcmap.h src/zht2.h src/gdevwprn.c src/gxpdash.c src/ztrap.c src/gxlum.h doc/Drivers.htm src/gdevdevn.c src/gdevpdte.c jbig2dec/configure.ac src/gsgcache.c src/gdevdevn.h src/gsgcache.h src/gsptype1.c src/gxclbits.c src/zfcid0.c src/gsptype1.h src/macos_classic_d_pre.h src/zgstate.c src/zfontenum.c src/ctype_.h src/inouparm.c src/rinkj/rinkj-screen-eb.c src/slzwx.h src/gstype1.c src/gxdhtres.h src/gdevmpla.c src/rinkj/rinkj-screen-eb.h man/pdf2ps.1 lib/gs_fonts.ps doc/Testing.htm src/gstype1.h src/dwmain.rc src/gxcspace.h src/gscicach.c src/gdevmpla.h src/rinkj/evenbetter-rll.c man/wftopfa.1 src/gscicach.h src/watclib.mak src/rinkj/evenbetter-rll.h src/gxfcache.h src/gxclzlib.c src/istack.c src/zfont0.c src/gstparam.h src/istack.h src/gdevevga.c src/gdevhit.c src/gxclimag.c src/gsdfilt.c src/gxfillts.h src/gsdfilt.h src/gxht.c src/gxdcconv.c src/gdevpsdp.c src/gxcht.c src/openvms.mak src/gdevxalt.c src/gdevclj.c src/gxht.h src/gxdcconv.h src/zvmem2.c ijs/ijs_client.c src/gdevpdtv.c ijs/ijs_client.h src/contrib.mak src/rinkj/rinkj-device.c src/gdevpdtv.h src/lwf_jp2.mak src/gsiparm3.h src/gxclpage.c src/gxfont1.h src/rinkj/rinkj-device.h src/icontext.c src/gsdllos2.h src/gxclpage.h src/zstring.c src/icontext.h src/unix-aux.mak src/gzspotan.c src/zfont32.c src/ttfoutl.h src/gxclip2.c src/szlibxx.h src/gdevdrop.c src/gzspotan.h src/gxclip2.h man/dvipdf.1 src/scfd.c src/cfonts.mak src/gxiclass.h src/gdevcgml.c src/gdevcgml.h src/gdevpx.c src/windows_.h src/gdevl256.c doc/DLL.htm src/igcref.c src/zcharx.c src/gxtype1.c src/gxtype1.h src/gdevcp50.c src/idictdef.h src/gsmemret.c src/gxclip.c src/gsmemret.h src/sfilter1.c src/iname.c src/sddparam.c src/gxclip.h src/zmedia2.c src/iname.h src/gs.mak src/gxpcmap.c doc/News.htm src/gp_msdll.c src/gxcid.h src/gdevnfwd.c src/macos-mcp.mak src/ttobjs.c doc/History1.htm src/zcontrol.c src/ttobjs.h src/icclib.mak src/gsfcmap.c src/zfont2.c src/iimage2.h src/gxrplane.h src/gsfcmap.h src/gxp1fill.c src/imemory.h src/gsciemap.c src/dos_.h src/zdscpars.c src/gscdef.c src/gdevwpr2.c src/gxtmap.h src/setjmp_.h src/gsbitcom.c src/zchar.c src/gdevsun.c src/gscrypt1.c doc/Fonts.htm src/gscrypt1.h src/ztrans.c src/dwmainc.c src/gxdht.h src/dvx-head.mak src/zcsindex.c src/zcidtest.c src/gdevrops.c src/gdevpdtx.h src/gdevijs.c src/icolor.h src/stdpn.h src/store.h src/gxfixed.h src/gstypes.h src/gdevjpx.c src/gsserial.c src/string_.h src/gdevcslw.c src/gsjmorec.h src/gsserial.h src/zfdctd.c src/zdps.c src/scanchar.h src/gxpcache.h man/de/pdf2ps.1 src/lib.mak src/gdevdsp.c src/zmatrix.c src/sdctc.c src/gdevdsp.h src/gdevpipe.c src/gspmdrv.rc src/gdevsvga.c src/gdevpdti.c ijs/unistd_.h src/gdevsvga.h src/gdevpdti.h src/gdevepsn.c src/gsparam2.c src/gp_mktmp.c src/stat_.h src/zfsample.c src/zfdecode.c src/gsstruct.h jbig2dec/jbig2_huffman.c src/gximag3x.c src/gsgc.h jbig2dec/jbig2_huffman.h src/gscolor1.c src/gsnamecl.c src/dwtrace.c src/gdevmswn.c src/ierrors.h src/gxfcmap.h src/gdevjpeg.c src/gximag3x.h src/siinterp.c src/gscolor1.h src/gsnamecl.h src/dwtrace.h src/gdevmswn.h src/gdevbbox.c src/siinterp.h src/opdef.h lib/opdfread.ps src/gximask.c src/gdevbbox.h src/iddict.h doc/History2.htm src/gp_stdin.c src/gdevtfax.c src/gdevpjet.c src/gsexit.h src/gendev.c src/gximask.h src/gdevphex.c src/gp.h src/gslparam.h src/ivmspace.h src/gdevtfax.h src/gshtscr.c jbig2dec/jbig2_image_pbm.c src/bench.c src/gsnogc.c ijs/ijs.c src/gdevbmpa.c src/gsnogc.h src/stdio_.h src/tttables.h src/gdevemap.c ijs/ijs.h src/gp_sysv.c jasper/src/libjasper/include/jasper/jas_debug.h src/gsrefct.h src/iastruct.h man/de/dvipdf.1 src/gdevbjc.h src/gdevpsf2.c jbig2dec/jbig2_arith_int.c src/gzht.h doc/Develop.htm src/gxcvalue.h jbig2dec/jbig2_arith_int.h src/sstring.c lib/mkcidfm.ps src/gxpath.c src/scfparam.c src/sstring.h src/gdevupd.c src/iconf.c src/gxpath.h src/interp.c src/zcrd.c src/dwnodll.c src/iconf.h doc/C-style.htm src/gdevm40.c src/dwdll.c src/interp.h man/ps2pdfwr.1 src/dwdll.h src/gsiodisk.c src/sjpegd.c src/gspath2.h src/dvx-tail.mak src/gdevpsim.c src/errors.h src/gp_msprn.c src/gxino12b.c src/gdevmgr.c src/gxacpath.c src/gdevpdfp.c src/gslib.c src/ziodev.c src/gdevmgr.h src/iccinit0.c src/sdcte.c doc/Release.htm src/zfunc0.c src/ifont1.h src/gxccache.c src/gslib.h src/gxmatrix.h src/ifunc.h src/gxfdrop.c src/gp_unifs.c src/gxobj.h src/gxfdrop.h src/gxhintn.c src/gsiorom.c src/isstate.h jbig2dec/jbig2_hufftab.h jbig2dec/jbig2_text.c src/gdevm2.c src/gxhintn.h src/gsiorom.h src/ifilter2.h src/gspath.c src/gdevwddb.c src/gxpcopy.c src/gspath.h src/gscolor3.c src/gdevdjet.c man/gsnd.1 src/gscolor3.h src/gxfapiu.c src/zpath1.c src/rinkj/rinkj-dither.c doc/History3.htm src/gxfapiu.h src/gdevm24.c src/gp_unix.c src/rinkj/rinkj-dither.h src/inamedef.h jbig2dec/config_win32.h src/ilocate.c src/gxdcolor.c src/gdevpm.c src/gscdefs.h src/vmsmath.h src/gscencs.c src/gxdcolor.h src/gzstate.h src/gdevpm.h src/gdevbmpc.c src/gschar0.c Resource/ColorSpace/DefaultRGB src/iht.h src/zdevice.c src/gscie.c src/gscencs.h src/gxi16bit.c src/ifapi.h src/zimage2.c src/gscie.h src/iastate.h src/pipe_.h src/gxbitops.h src/ipacked.h src/gsncdummy.c src/gpsync.h src/gsfunc3.c src/gswin.rc src/gdevperm.c src/gsncdummy.h src/gsccode.h src/gxpath2.c src/gsfunc3.h src/gp_strdl.c src/gxdevbuf.h src/genconf.c src/sa85d.c src/gscsel.h src/openvms.mmk src/sa85d.h src/gp_stdia.c src/zcolor2.c src/gdev3b1.c src/gxttf.h src/ttconf.h src/genht.c src/zgeneric.c man/de/printafm.1 src/gxclrect.c src/gxarith.h src/gsshade.c src/gsshade.h src/msvclib.mak src/gsicc.c src/zcid.c src/dwsetup.cpp src/gdevp2up.c src/dwuninst.rc src/gsicc.h src/gdevpdfr.c src/gdevppla.c src/zmisc1.c src/gdevppla.h src/gsdevmem.c src/wccommon.mak src/gxfcopy.c src/gdevpsft.c src/gxfcopy.h src/gdevtfnx.c src/gsmisc.c src/gxicolor.c src/gdevm4.c src/ldf_jb2.mak src/gxpageq.c src/winint.mak src/gsdparam.c man/ps2pdf.1 doc/Details8.htm doc/Make.htm src/gxpageq.h src/gxdevrop.h src/gsstype.h src/gdevprn.c src/gdevcif.c lib/gs_resst.ps src/gxdevndi.c doc/History4.htm toolbin/tests/check_comments.py src/gdevprn.h src/gxdevndi.h src/iesdata.h src/dxmain.c src/gdevpdfc.c src/iapi.c ijs/ijs_server_example.c src/spngpx.h src/gdevpdfc.h src/gdevherc.c src/iapi.h src/btoken.h src/zcharout.c toolbin/tests/gscheck_fuzzypdf.py src/gdevepsc.c src/gxdevice.h src/gximage2.c src/srld.c src/zht.c src/gxshade4.c src/sjpx_luratech.c src/gxshade4.h src/iinit.c src/watcw32.mak src/gdevstc1.c src/gxbitmap.h src/sjpx_luratech.h src/gxccman.c src/iinit.h src/gsalphac.c src/gxshade.c src/sbtx.h src/zfunc.c src/gsclipsr.c src/gsalphac.h src/gxshade.h src/gsrop.c src/gsclipsr.h src/idict.c src/gxistate.h src/gsrop.h jbig2dec/memcmp.c src/gscoord.c src/idict.h src/gxcolor2.h src/macos_carbon_d_pre.h toolbin/pre.tcl src/gscoord.h src/genarch.c src/gscedata.c doc/Projects.htm src/gxcindex.h src/gscpm.h src/gp_nsync.c src/gscedata.h src/gdevmr2n.c src/gdevdgbr.c src/gdevdsha.c src/zlib.mak src/gdevxcf.c lib/gs_fapi.ps src/gxtext.h src/zchar1.c src/gscdevn.c src/gscdevn.h src/gdevpdft.c src/gdevpsdi.c src/shcgen.c src/gsiparam.h src/zmisc3.c src/zfapi.c src/zfunc4.c src/malloc_.h src/shcgen.h src/gscpixel.c src/gscpixel.h src/gdevplnx.c src/dirent_.h src/gdevplnx.h src/zfzlib.c src/Makefile.in src/gscsepr.c src/iutil2.c doc/History5.htm src/gscsepr.h src/gxwts.c src/gsimage.c src/ipcolor.h src/sjpeg.h src/iutil2.h src/gstext.c src/gxwts.h src/gsimage.h src/msvccmd.mak src/gstext.h src/gdevpdfe.c src/rinkj/rinkj-byte-stream.c src/gsflip.c src/sidscale.c src/rinkj/rinkj-byte-stream.h src/gsflip.h src/sidscale.h src/gdevdljm.c src/zdpnext.c src/geninit.c src/gdevdljm.h src/zusparam.c src/gdevjbig2.c man/pfbtopfa.1 src/gxchrout.c src/gximage4.c src/gxchrout.h src/gxshade6.c src/gxcoord.h jbig2dec/jbig2_page.c src/gdevpdf.c src/macosx.mak src/tttypes.h src/zpacked.c src/gdevstc3.c src/gsparamx.c src/gp_dosfe.c src/iutil.c src/szlibc.c src/gsparamx.h src/gdevpng.c src/iutil.h src/zalg.c src/gzpath.h src/sfxstdio.c src/gxcdevn.h src/sjbig2_luratech.c src/gxropc.h src/gxfcid.h src/gxfont.h src/sjbig2_luratech.h src/gdevccr.c src/mkromfs.c src/gslibctx.c src/gdevdcrd.c src/unix-dll.mak src/gslibctx.h src/zbseq.c src/ziodevsc.c src/gdevdcrd.h man/de/ps2pdf.1 src/gdevl31s.c src/zfrsd.c src/iosdata.h src/gdevdjtc.c src/gdevmacpictop.h src/gxino16b.c src/gdevpcx.c src/gdevpxop.h src/zfileio.c src/slzwd.c src/gdevpdfv.c src/gxpflat.c src/gxifast.c src/dwimg.c src/fapi_ft.c src/zsysvm.c src/gsimpath.c src/dwimg.h src/gdevx.c src/gsmemlok.c lib/gs_cidtt.ps src/gsos2.rc src/gximage.c man/printafm.1 src/gdevx.h src/gsmemlok.h src/ziodevs.c src/unixansi.mak ijs/Makefile.am src/gdevpsfx.c src/gximage.h src/gscspace.c src/gdevmacttf.h src/gdevm8.c src/gdevpnga.c src/gscspace.h src/gsropc.c src/gsxfont.h src/ttfsfnt.h man/pdfopt.1 src/gsjconf.h src/gsfcid.c src/zstack.c src/gsfont.c src/gsropc.h src/gsfont.h lib/gs_ttf.ps src/isave.c doc/History6.htm src/isave.h src/gdevm64.c src/zdict.c jbig2dec/sha1.c src/gxfrac.h src/gx.h src/iccfont.c src/gdevpdfg.c src/png_.h src/gdevps.c src/gxcllzw.c src/gdevpdfg.h src/gxhttile.h doc/API.htm src/gdevpdtb.c src/gsdps1.c src/time_.h src/gdevpdtb.h src/ttfinp.c src/gshsb.c src/pcwin.mak src/vms_x_fix.h src/smtf.c src/ttfinp.h src/x_.h src/gdevtifs.c src/gshsb.h man/pf2afm.1 src/smtf.h src/gdevtifs.h src/gximono.c src/fapiufst.c Resource/Decoding/Latin1 src/szlibe.c src/gxctable.c src/main.h src/gp_vms.c src/gp_iwatc.c src/ugcclib.mak src/gxctable.h src/gdev8bcm.c src/dwsetup.h src/gp_os9.c src/gdevbj10.c src/gxclipm.c src/gdev8bcm.h src/zpaint.c src/stdpre.h src/iplugin.c src/gxclipm.h ijs/ijs_server.c src/gsgdata.c]
2007-06-05T21:28:32.480500Z Igor Melichev
Fix (shadings) : Optimize path manipulations for shading fill (continued 3). DETAILS : This patch finaly removes gs_shading_fill_path and its relatives. Also gx_dc_shading_path_add_box is now private. This change is algorithmically equivalent.[src/gsptype2.c src/gsshade.c src/gsptype2.h src/gsshade.h src/gscolor3.c]
2007-06-05T21:10:17.034292Z Igor Melichev
Fix (shadings) : Optimize path manipulations for shading fill (continued 2). DETAILS : This is the 2nd step for the elimination of gs_shading_fill_path. It excludes that function from high level devices. After the last patch, ps2write is only device that calls gs_shading_fill_path while converting a shading into an image. This patch replaces that call with a call to gs_shading_do_fill_rectangle. This patch also fixes the revision 8017 regression with the change to gdevpdfi.c . Minor changes : 1. lcvd_fill_rectangle_shifted_from_mdev appears to be same as lcvd_fill_rectangle_shifted. Removing the 1st one. 2. path_scale appears almost same as gx_path_scale_exp2_shared. Removing the 1st one. 3. In gdevpdfd.c, when the scale isn't dividing by 4, the old code chooses a smaller scale by X. The new code dies by Y for a better view. It may cause minor differences in raster. 4. We're not sure why lcvd_get_clipping_box_from_target was used sometimes. It looks incorrect. Replaced with lcvd_get_clipping_box_shifted_from_mdev. 5. gx_cpath_scale_exp2_shared didn't scale list->xmin, list->xmax. 6. gx_cpath_copy is defined and not used. Saving it from a dead branch, because it may be useful in future.[src/gsptype2.c src/gsshade.c src/gxcpath.c src/gxpath.h src/gdevpdfd.c src/gsshade.h src/gxfill.c src/devs.mak src/gdevpdfi.c]
2007-06-03T22:33:12.851834Z Igor Melichev
Fix (shadings) : Optimize path manipulations for shading fill (continued). DETAILS : The last patch breaks 'clippath'. Fixing it now.[src/gxcpath.c]
2007-05-31T17:25:52.270926Z Igor Melichev
Fix (shadings) : Optimize path manipulations for shading fill. DETAILS : This partially improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". While filling a shading, the old code converts the clipping path into a path, then converts it to a clipping path for intersecting it with the filling path and with the shading BBox. These manipulations are neccessary due to the interface restrictions for gs_shading_fill_path, which doesn't pass a clipping path. It causes (1) a bad performance and (2) a wrong fill adjustment, because the conversion of a path to a clipping path and back to path is not identity due to fill adjustment. The new code is a 1st step for the elimination of gs_shading_fill_path. This patch excludes this function for raster devices. Excluding it for higth level devices will be a next step. The new code moves path manipulation outside the shading color painting. Now all 3 pathes (the filling path, the clipping patrh, and the shading BBox) are processed in gxfill.c . The painting is done with gs_shading_do_fill_rectangle, which does not manipulate with pathes. The patch modifies gx_image_fill_masked_end to comply with the new inplementation of gs_shading_do_fill_rectangle when a mask is converted into a clipping path. Another optimization avoids the generation of a filling path for 'shfill'. Accorgong to PLRM, shfill deals with clipping path, but it was converted into a path due to internal Ghostscript constraint for the device interface. When the device implements fill_path with the default method gx_default_fill_path, the conversion to a path is not necessary. To make use of this fact for optimization, the graphics library needs to know, whether the output device uses the default function gx_default_fill_path. This patch introduces a new response for pattern_manage, which is named 'pattern_manage__shfill_doesnt_need_path'. The device must respond with 1 if it does not need a path. The patch provides implementations for raster devices and for forwarding devices. If some device provides an instandard fill_path method, the optimization won't work for it (i.e. it will work as before - will recieve a path for shfill) unless it provides a proper response to pattern_manage__shfill_doesnt_need_path . A minor change to gdevpdfb.c fixes a paranoid compiler warning about a possible use of unubnitialized data.[src/lib.mak src/gsptype2.c src/gsshade.c src/gxcpath.c src/gdevdflt.c src/gxpath.h src/gdevpdfb.c src/gsptype2.h src/gsshade.h src/gximask.c src/gdevnfwd.c src/gxfill.c src/gxdevcli.h src/gscolor3.c]
2007-05-30T06:05:43.128239Z Ray Johnston
Change built-in compression threshold for memory based clist to improve performance. DETAILS: The (example) compression threshold used with BAND_LIST_STORAGE=memory is much to small to represent current embedded devices (where we expect to not have a disk). On one customer's (#951) performance test files, this change shows an overall 9.2% performance increase, ranging as high as 20% on one file. For this test suite, even 22M is enough to avoid compression. The intent is that the compression threshold be a dynamic value that uses current "real time" memory available in the printer rather than some arbitrary fixed value. If the clist writer logic waits for all potential renderer/reader tasks to stop and free their clist RAM, then the need to compress becomes even less likely.[src/gxclmem.c]
2007-05-28T18:47:29.004635Z Ray Johnston
Fix for Segv with psdcmyk device when a job specifies DeviceGray. Test file 477-04.ps, Bug #689179. DETAILS: Thanks for this patch from "fatty" at po'twenty-nine'.lcv.ne.jp (email mangled to avoid this being harvested for spam.[src/gdevpsd.c]
2007-05-28T16:58:07.064568Z Alex Cherepanov
Fix indeterministic behavior in fuzzy raster match that can cause premature exit and miss all the differences. Encountered on GNU+Linux, i686, GCC 4.1.2.[toolbin/tests/fuzzy.c]
2007-05-28T05:35:14.685193Z Ray Johnston
Primarily fix for wtsimdi problem with wts dithering phase shift at band boundaries (add band_offset_x, band_offset_y), adding band_offset_x and band_offset_y to the device structure and corresponding initializer changes. Also clean up gdevwts.c MSVC warnings, and add a fast check to gdevbit.c for /dev/null (mirroring a much older change for Windows "nul:" device) OutputFile that aids in benchmarking. Fixes bug #689245 for customer #951. DETAILS: Running with the wtsimdi device at default banding now matches the results with a single band (the wtsimdi device sets BandingAlways, so this can only be verified if the -dBandHeight= and -dBufferSpace= options are set large enough for a full page.[src/gdevwts.c src/gxdevice.h src/gdevbit.c src/gxclread.c src/gxdevcli.h]
2007-05-28T05:13:25.622030Z Ray Johnston
Change names of some functions so that NOPRIVATE still works.[src/gdevdevn.c]
2007-05-27T19:15:04.334298Z Ray Johnston
Use standard __WIN32__ predefined macro along with NT to identify Microsoft compiler based builds.[imdi/arch.h]
2007-05-27T19:11:52.872937Z Ray Johnston
Add missing default definition of IMDI source. Add conditional to watcw32.mak to allow build command line override.[src/openvms.mak src/watcw32.mak]
2007-05-27T19:03:52.349026Z Ray Johnston
Fix missing dependencies for the witsimdi.dev[src/devs.mak]
2007-05-27T18:51:35.172106Z Igor Melichev
Fix (shadings) : Account inner poles for computing a tensor shading flattening. DETAILS : While computing the neccessary decomposition level by the parameter u, the old code ony accounted the curvity of the patch boundary. However tensor patches may have a very curved interior with a slightly curved boundary. This patch improves the raster in such cases.[src/gxshade6.c]
2007-05-27T17:59:43.657554Z Igor Melichev
Fix : More tolerance for bogus tintTransform. DETAILS : Bug 688584 provides a test case, when tintTransform replaces an extra value on operand stack. It allows to know whether tintTransform is called. We believe it is an incorrect Postscript, but the file is created QuarkXPress: pictwpstops filter 1.0, from customer 582, so we need to be tolerant.[lib/gs_devn.ps]
2007-05-27T16:39:19.788230Z Igor Melichev
Fix (shadings) : Optimize filling a radial shading extension. DETAILS : This partially improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". The test case includes multiple radial shadings, which paint an extansion only. This patch optimizes the case when the paint area is strongly inside the radial shading extension. In this case the shading rasterization is replaced with painting a pure color. 1. The new function R_fill_rect_with_const_color is the main worker. 2. The old patch_color_to_device_color function is renamed into patch_color_to_device_color_inline. 3. patch_color_to_device_color is made public for R_fill_rect_with_const_color.[src/gxshade4.h src/gxshade1.c src/gxshade6.c]
2007-05-26T13:13:33.983826Z Alex Cherepanov
Dont't enumerate /Threads attribute when it has null value. Bug 689250[lib/pdfopt.ps]
2007-05-24T22:05:57.168544Z Igor Melichev
Fix (shadings) : A bug in tensor patch size formula caused extra or missewd subdivisions. DETAILS : See the formula for L. Also inserted some debug drawing, which are disabled. As a secondary effect, this patch may close problems related to wedge vertex buffer overflow.[src/gxshade6.c]
2007-05-24T18:46:03.324950Z Igor Melichev
Fix : Remove a redunDan Cobyt definition of gs_error_interrupt. DETAILS : Also fixed MSVC warning in gsncdummy.c .[src/int.mak src/interp.c src/ierrors.h]
2007-05-24T18:06:57.635194Z Igor Melichev
Fix (shadings) : Reuse shadings while a PDF interpretation. DETAILS : Bug 689211 "PDF interpreter creates redunDan Cobyt shadings". This partially improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". The test case defines 79 shadings. While interpreting it the old code calls zbuildshading2 9600+ times. 1. Improved resolveshading with reusing old shadings (pdf_draw.ps). 2. Improved 'sh' with reusing old shading dictionaries (pdf_draw.ps). 3. Renamed gx_currentciecaches with gx_unshare_cie_caches, because the old name does not comply to the function body. 4. Defined a new function gx_currentciecaches. 5. The macro CIE_CHECK_RENDERING is replaced with a new function gx_cie_check_rendering_inline. The new code also checks the consistency of cie_joint_caches with the color space by checking the id, and requests refilling the cache if necessary. Note it can cause the PS interpreter callout with EncodeLMN, etc. 6. IMPORTANT: The new field gs_shading_params_t::cie_joint_caches saves the pointer to gs_state::cie_joint_caches. It is used in .shfill - see zshade.c . Debugged with Bug688631.pdf . 7. NOTE: *gs_shading_params_t::cie_joint_caches may be left unreleased when the shading releases. The garbager will release it. This happens with PS interpreter only. 8. NOTE: We do not make cie_joint_caches be a property of color space, rather it would look natural. The reason is that this large structure is needed to save with shadings only. Saving it for any color space would spend too big RAM. 9. NOTE: Due to historic reason gs_setcolorspace leaves cie_joint_caches unchanged. It may cause problems when gx_color_space_needs_cie_caches is true. Postscript interpreter has a special workaround for it in gs/lib/gs_cspace.ps . Other interpreters may need an additional support when they use CIE spaces directly or indirectly. Likely this feature is not properly documented. 10. NOTE: The change to pdf_draw.ps cases an additional RAM expence for PDF interpretation. It is caused by saving all built shadings until the document finishes. It includes the expence for extra copies of cie_joint_caches. The new procedure .free_page_resources frees shadings from page Resources after page finishes. However this patch does not implement that for other local resources, such as form Resources, etc. It may need a further improvement.[lib/pdf_main.ps src/lib.mak src/gsshade.c src/zshade.c src/gscie.h src/int.mak src/zcrd.c src/gsshade.h src/gxcie.h lib/pdf_draw.ps src/gsciemap.c src/gsicc.c src/gscie.c src/gscolor3.c]
2007-05-23T23:33:45.298718Z Ray Johnston
Change the .ppm output from the wtsimdi device to write a P6 with a max value of 255 (instead of 1). Some viewers assume a max value of 255, so the previous output looked all black. A max value of 255 works with all known viewers.[src/gdevwts.c]
2007-05-23T20:27:42.841035Z Alex Cherepanov
Add support for /UserUnit. Also fix some related bugs that stayed in the way while testing it. Patch from SaGS. Bug 688124 from customet 870, bug 688359.[lib/pdf_main.ps doc/Use.htm lib/pdf_draw.ps]
2007-05-23T18:51:55.128091Z Alex Cherepanov
Fix handling of uncompressed contect streams with incorrect Length parameter or missing endstream operator. Use operator obj as one more way to detect the end of the stream. Bug 689239.[lib/pdf_main.ps lib/pdf_draw.ps]
2007-05-22T20:50:15.623551Z Timothy Osborn
Adding missing header line. DETAILS: gsncdummy.c needs to include ierrors.h in order to use errors defined therein.[src/gsncdummy.c]
2007-05-21T22:08:07.611194Z Ralph Giles
Define IMDISRCDIR in the top level makefiles and pass this through to the compile lines in devs.mak. This the the correct fix for the issue addressed in revisions 7970 and 7971.[src/bcwin32.mak src/ugcclib.mak src/gs.mak src/macosx.mak src/Makefile.in src/dvx-gcc.mak src/msvc32.mak src/unix-gcc.mak src/unixansi.mak src/macos-mcp.mak src/msvclib.mak src/devs.mak src/os2.mak src/watclib.mak]
2007-05-21T15:11:52.121008Z Alex Cherepanov
Fix uninitialized cxs.present as detected By Valgring on Bug687846.ps test file and nullpage device.[src/zchar1.c]
2007-05-21T14:48:53.469788Z Till Kamppeter
Corrected imdi path[src/devs.mak]
2007-05-21T14:38:22.247440Z Till Kamppeter
Made the definitions of IMDISRC and IMDISRCDIR platform-independent and also working when the source tree is in a directory not named "gs".[src/devs.mak]
2007-05-21T06:40:28.742110Z Henry Stiles
Back out the changes associated with 7715 and 7773. This fix is probably wrong, it only masks an underlying problem by disabling high level images and it slows down many jobs. I believe the problem was misunderstood from the outset but I don't clearly understand the svn change log, it reads: Fix for banding of some images not matching non-banding output. Added check for an invariant that the translation matches in the two matrixes used in rendering. In this case the non-high level image path is taken. A better solution would be to a single matrix, as this will increase the display list size for some files. It is not clear what "single matrix" means. There is one ctm associated with the image and one associated with the graphics state, both must be used by either the high level image code or the default image machinery. The change checked that graphics (imager) state ctm translation components matched the translation components that map image space to device space.[src/gxclimag.c]
2007-05-19T17:08:04.593395Z Alex Cherepanov
Remove unused and incorrect definitions of stdin, stdout, stderr buffer sizes.[src/iminst.h]
2007-05-16T21:04:35.033996Z Igor Melichev
Fix (shadings) : Shorten a radial shading when it is larger than paint area. DETAILS : This partially improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". The test case includes multiple radial shadings, which are 100+ times larger than the path bbox. This patch replaces such shadings with a smaller shading, which paints the bbox with same color (a minor color difference is possible due to rounding errors). See comment in code.[src/gxshade1.c]
2007-05-16T02:56:12.508768Z Alex Cherepanov
Don't issue a warning for PDF TrueType fonts without /Encoding because it is optional even for non-symbolic fonts. Bug 689205.[lib/pdf_font.ps]
2007-05-15T13:12:02.777397Z Alex Cherepanov
Use operator oforce instead of exec to evaluate indirect references to /OutputIntents members for consistency with the existing code. Bug 689233.[lib/pdf_main.ps]
2007-05-14T18:51:03.604183Z Ralph Giles
Correct keyword substitution.[src/gdevwts.c]
2007-05-14T16:36:23.969410Z Igor Melichev
Fix (PDF interpreter) : Failed with an indirect OutputIntents element. DETAILS : Debugged with running debug build of ppmraw with the test file of Bug 689189. The test case includes this : /OutputIntents[1135 0 R][lib/pdf_main.ps]
2007-05-14T15:22:29.642029Z Ralph Giles
Revert the gs-esp merge down, as there are still some build issues.[contrib/gdevmd2k.c contrib/gdevxes.c contrib/gdevgdi.c src/configure.ac contrib/lips4 contrib/eplaser contrib/gdevhl12.c src/gdevlj56.c src/gdevdljm.c src/lib.mak contrib/gdevcd8.c src/gdevpx.c src/gdevl256.c contrib/contrib.mak src/gdevvglb.c src/gdevdljm.h contrib/gdevcd8.h cups src/unix-gcc.mak contrib/gdevdj9.c src/gdevcdj.c src/gdevpxut.c contrib/chp2200 contrib/gdevlx50.c contrib/gdevlx32.c contrib/gdevop4w.c src/gdevpxut.h lib/gs_init.ps src/gdevlbp8.c contrib/gdevbjc_.c contrib/opvp contrib/japanese contrib/gdevbjca.c src/gdevxalt.c contrib/lxm3200-tweaked contrib/gdevbjc_.h contrib/gomni.c src/contrib.mak src/devs.mak lib/gs_setpd.ps contrib/pcl3 contrib/gdevlx7.c contrib/gdevln03.c src/gdevdjet.c src/gconf.c contrib/defs.h src/gs.mak contrib/uniprint src/Makefile.in src/unix-aux.mak contrib/md2k_md5k src/unixinst.mak contrib/epson740 src/gp_unix.c]
2007-05-14T09:34:52.443458Z Till Kamppeter
Merged in extra functionality of ESP Ghostscript (from branch "gs-esp-gpl-merger")[contrib/gdevmd2k.c contrib/gdevxes.c contrib/gdevgdi.c src/configure.ac contrib/lips4 contrib/eplaser contrib/gdevhl12.c src/gdevlj56.c src/gdevdljm.c src/lib.mak contrib/gdevcd8.c src/gdevpx.c src/gdevl256.c contrib/contrib.mak src/gdevvglb.c src/gdevdljm.h contrib/gdevcd8.h cups src/unix-gcc.mak contrib/gdevdj9.c src/gdevcdj.c src/gdevpxut.c contrib/chp2200 contrib/gdevlx50.c contrib/gdevlx32.c contrib/gdevop4w.c src/gdevpxut.h lib/gs_init.ps src/gdevlbp8.c contrib/gdevbjc_.c contrib/opvp contrib/japanese contrib/gdevbjca.c src/gdevxalt.c contrib/lxm3200-tweaked contrib/gdevbjc_.h contrib/gomni.c src/contrib.mak src/devs.mak lib/gs_setpd.ps contrib/pcl3 contrib/gdevlx7.c contrib/gdevln03.c src/gdevdjet.c src/gconf.c contrib/defs.h src/gs.mak contrib/uniprint src/Makefile.in src/unix-aux.mak contrib/md2k_md5k src/unixinst.mak contrib/epson740 src/gp_unix.c]
2007-05-12T18:25:57.733948Z Alex Cherepanov
Avoid a Valgrind warning about uninitialized memory and fix a potential memory access violation where look-up of the last value of the interpolation table caused access past the end of the table.[src/gscie.h]
2007-05-12T17:09:18.524416Z Alex Cherepanov
Avoid a Valgrind warning and fix an error in debugging statistics collection, where 0-th element of the table can be used before being assigned a value.[src/gdevm24.c]
2007-05-12T15:46:44.945538Z Alex Cherepanov
Avoid a Valgrind warning about overlapping argumemts of memcpy(). Don't assign a structure to itself.[src/gxhintn.c]
2007-05-12T14:55:02.729921Z Alex Cherepanov
Fully initialize stream_jpxd_state structure to avoid Valgrind warnings and bogus results when the state is printed on error. Bug 688877.[toolbin/vg_bugs.supp src/sjpx.c]
2007-05-12T10:05:30.414975Z Russell Lang
Recognise another variant of nmake when building for Windows x64 with MSVC 8 Restore documentation about building for Windows 64-bit, erroneously removed by an earlier commit.[doc/Make.htm src/msvc32.mak]
2007-05-11T22:29:09.072983Z Ralph Giles
Bump the version number and date after the 8.57 release. We're skipping to 8.60 for the next release because of some reorganization to the source tree and the merge of the ESP Ghostscript patch set, both scheduled for the next release.[doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]
2007-05-11T18:51:29.956384Z Ralph Giles
Update release notes and changelog.[doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]
This is a stable release in the 8.5x series of Ghostscript. In addition to the usual bug fixes, there are specific performance and quality improvements in the areas of patterns, shading and image filtering.
Also new in this release is an implementation of the Well Tempered Screening algorithm in an output device, using Graeme Gill's IMDI library for efficient color mapping.
The following bugs were open at the time of release:
226943, 430175, 465936, 493348, 530011, 535932, 578865, 592160, 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, 687445, 687475, 687484, 687492, 687514, 687520, 687531, 687536, 687559, 687561, 687593, 687595, 687608, 687630, 687650, 687666, 687674, 687677, 687680, 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, 687960, 687970, 687974, 687978, 687981, 687983, 687988, 688006, 688007, 688020, 688022, 688024, 688026, 688032, 688035, 688036, 688042, 688054, 688058, 688061, 688064, 688066, 688075, 688081, 688095, 688124, 688129, 688130, 688134, 688151, 688152, 688159, 688166, 688184, 688187, 688200, 688203, 688204, 688207, 688210, 688215, 688227, 688239, 688243, 688267, 688269, 688280, 688282, 688283, 688288, 688295, 688311, 688312, 688317, 688318, 688320, 688323, 688332, 688333, 688337, 688339, 688342, 688358, 688359, 688360, 688361, 688363, 688372, 688375, 688378, 688386, 688387, 688389, 688395, 688400, 688410, 688413, 688427, 688428, 688429, 688434, 688436, 688437, 688440, 688446, 688448, 688468, 688473, 688474, 688475, 688477, 688479, 688483, 688490, 688493, 688495, 688500, 688515, 688517, 688518, 688526, 688528, 688532, 688533, 688539, 688540, 688542, 688557, 688565, 688573, 688580, 688581, 688584, 688588, 688598, 688601, 688604, 688605, 688610, 688616, 688617, 688619, 688621, 688626, 688627, 688633, 688634, 688636, 688637, 688638, 688643, 688646, 688647, 688651, 688653, 688655, 688671, 688673, 688674, 688683, 688696, 688697, 688699, 688708, 688709, 688710, 688711, 688712, 688714, 688717, 688728, 688730, 688731, 688734, 688736, 688738, 688739, 688757, 688762, 688770, 688774, 688777, 688778, 688783, 688796, 688797, 688806, 688807, 688808, 688811, 688813, 688815, 688818, 688829, 688830, 688834, 688843, 688845, 688846, 688870, 688871, 688872, 688876, 688877, 688878, 688899, 688903, 688904, 688907, 688908, 688909, 688914, 688915, 688916, 688917, 688918, 688919, 688923, 688926, 688928, 688933, 688934, 688940, 688942, 688943, 688945, 688949, 688952, 688958, 688965, 688969, 688970, 688976, 688977, 688978, 688979, 688981, 688983, 688986, 688990, 688992, 688994, 688999, 689002, 689003, 689011, 689013, 689014, 689022, 689025, 689028, 689031, 689032, 689036, 689040, 689044, 689046, 689048, 689050, 689053, 689055, 689056, 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, 689123, 689127, 689128, 689129, 689130, 689132, 689133, 689136, 689137, 689138, 689145, 689146, 689147, 689148, 689150, 689153, 689154, 689155, 689159, 689161, 689164, 689167, 689169, 689170, 689172, 689174, 689175, 689179, 689181, 689182, 689184, 689186, 689188, 689189, 689195, 689198, 689199, 689205, 689206, 689209, 689210, 689211, 689212, 689215, 689216, 689221, 689222, 689223, 689224, 689225, 689230.
There are no known incompatible changes at this point.
2007-08-01T21:20:57.253476Z ray
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 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
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 alexcher
Fix a misleading typo in an error message: s/UseCUEColor/UseCIEColor/[src/gdevpdfp.c]
2007-08-01T04:01:06.081994Z alexcher
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 alexcher
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 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 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-05-11T17:06:15.247707Z Ralph Giles
Update the product name for release.[src/gscdef.c]
2007-05-11T17:03:51.074953Z Ralph Giles
Update release date.[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 doc/Maintain.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-05-11T17:02:29.404037Z Ralph Giles
Update the libpng version listed in the top-level makefiles.[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/version.mak src/watclib.mak]
2007-05-11T16:53:33.148016Z Ralph Giles
Install the libpng 1.2.16 source release.[libpng]
2007-05-11T16:48:03.952583Z Ralph Giles
Move the included libpng out of the way.[libpng]
2007-05-11T15:33:41.202626Z Ralph Giles
Correct the keyword substitution property key.[toolbin/pscet_status.pl]
2007-05-11T13:33:33.031639Z Ralph Giles
Try again to fix the Id keyword line.[toolbin/pscet_status.pl]
2007-05-11T09:39:41.369263Z leonardo
Fix (shadings) : Removing a dead code from radial shadings. DETAILS : It's a rudiment from an antique annula-based radial shading algorithm. R_fill_state_t was filled and never used. This change is algorithmically equivalent.[src/gxshade1.c]
2007-05-09T21:58:25.788526Z Ralph Giles
Covert gdevwts.c to native line endings and turn on keywork substitution. Also convert a C++-style comment. It looks like this line can actually be removed.[src/gdevwts.c]
2007-05-09T21:51:57.598496Z Ralph Giles
Add Id lines and associated properties to some recent script additions.[toolbin/ocheck.py toolbin/pscet_status.pl]
2007-05-09T21:47:00.539315Z Ralph Giles
Add recent new files to the documenation index.[doc/Develop.htm src/gscicach.c src/gscicach.h]
2007-05-09T19:55:01.401845Z Alex Cherepanov
Make AcroForm rendering a non-default option because it is not yet fully implemented and causes raster differences. Bug 689197.[lib/pdf_main.ps doc/Use.htm]
2007-05-09T18:45:56.177217Z Ralph Giles
Point to bugzilla instead of the old bug-report email address in the help text. Also remove the unused constant defining the address.[src/imainarg.c]
2007-05-09T15:45:54.143921Z leonardo
Fix (shadings) : The decomposition limit must depend on resolution. DETAILS : This partially improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". The old code limits the decomposition of a shading with 1 pixel. It gives a good precision for low resolution devices, such as display with 72dpi. However for high resolution devices the decomposition limit may be bigger, because tinny parts are not visible. Now we make it be dependent on the device resolution. It speeds up the high resolution rendering with quickly varying colors. The worker formula is : decomposition_limit = float2fixed(HWResolution / 72) With 300 dpi the file "self-intersect2.ps" renders a few worse near the self-intersection. It may be visible when viewing the ppmraw output with a monitor. We think it's a reasonable tradeof for the performance. Actually the monitor performs a significant zoom when viewing "actual pixels", because the monitor's resolution is much smaller. The quality degradation shouldn't be visible with a 300 dpi printer.[src/gxshade4.h src/gxshade6.c]
2007-05-09T10:12:29.054433Z Till Kamppeter
Protect expression "$Id: ... $" against being replaced by SubVersion (bug #689093).[doc/gsdoc.el]
2007-05-09T06:37:44.288003Z Marcos H. Woehrmann
Added entries to alias Arial to ArialMT and TimesNewRoman to TimesNewRomanPSMT. This is useful when running on windows.[lib/Fontmap.GS]
2007-05-09T03:21:39.704394Z Ralph Giles
Temporarily revert the KRGB support patch for the IJS device. There were some build problems, and also there's a known segfault in some situations. This will be worked on after the 8.57 release.[src/gdevijs.c]
2007-05-08T19:47:48.994751Z Ralph Giles
Implement KRGB raster support in the IJS device. Patch from David Suffield. Details: This patch implements a separate black plane and does simple text and line art detection based on the drawing source. This results in cleaner output for IJS drivers which support it.[src/gdevijs.c]
2007-05-08T18:26:47.239521Z Till Kamppeter
Makes ijs/ working with automake 1.10 DETAILS: This is a pure bug fix, so lets get this into 8.57.[ijs/autogen.sh]
2007-05-08T18:23:54.589216Z Till Kamppeter
Fixed file properties[src/version.mak]
2007-05-08T18:13:10.044227Z Till Kamppeter
Back out everything after rev 7909[contrib/gdevmd2k.c contrib/gdevxes.c contrib/gdevgdi.c src/configure.ac contrib/lips4 contrib/eplaser contrib/gdevhl12.c src/gdevlj56.c ijs/autogen.sh src/gdevdljm.c src/lib.mak contrib/gdevcd8.c src/gdevpx.c src/gdevl256.c contrib/contrib.mak src/gdevvglb.c src/gdevdljm.h contrib/gdevcd8.h contrib/cups src/unix-gcc.mak contrib/gdevdj9.c src/gdevpxut.c src/gdevcdj.c contrib/chp2200 contrib/gdevlx32.c contrib/gdevlx50.c contrib/gdevop4w.c src/gdevpxut.h lib/gs_init.ps src/gdevlbp8.c src/version.mak contrib/opvp contrib/gdevbjc_.c contrib/japanese contrib/gdevbjca.c src/gdevxalt.c contrib/lxm3200-tweaked src/version.mak.in contrib/gdevbjc_.h contrib/gomni.c src/contrib.mak src/devs.mak lib/gs_setpd.ps contrib/pcl3 contrib/gdevlx7.c contrib/gdevln03.c src/gdevdjet.c src/gconf.c contrib/defs.h src/gs.mak contrib/uniprint src/Makefile.in src/unix-aux.mak contrib/md2k_md5k src/unixinst.mak contrib/epson740 src/gp_unix.c]
2007-05-08T17:44:46.931200Z Till Kamppeter
Makes ijs/ working with automake 1.10[ijs/autogen.sh]
2007-05-08T17:43:12.186735Z Till Kamppeter
Added duples support to the PCL-XL ("pxlmono"/"pxlcolor") output devices[src/gdevpx.c src/gdevlj56.c src/gdevpxut.c src/gdevpxut.h]
2007-05-08T17:41:29.378446Z Till Kamppeter
Support for the CUPS Raster output device in the lib/*.ps files DETAILS: CUPS-related changes, overtaken from ESP Ghostscript: Define option "-dNOMEDIAATTRS" to turn off the default (but unimplementable) media selection policies for setpagedevice. This is used by CUPS to support the standard Adobe media attributes. Without this option the behavior of Ghostscript stays as before. Due to the fact that it is not possible to properly implement the selection policies from a Ghostscript driver, the default policy was changed to "7" (impose) to avoid numerous problems with printing within CUPS... Bug fix: Martin Lottermoser, author of the "pcl3" driver writes in contrib/pcl3/doc/gs-mods.txt, section C1: There is a bug in ghostscript's default configuration for the undercolour removal and black generation functions. It shows up when printing PostScript documents using the RGB colour space ("setrgbcolor" or "sethsbcolor") on a device where the CMYK space is the native colour space; this is the case for pcl3 if you specify "-sColourModel=CMYK". The bug results in black being printed as a mixture of cyan, magenta, and yellow. The bug is simply fixed by replacing the line { pop 0 } dup setblackgeneration setundercolorremoval with the following line: {} dup setblackgeneration setundercolorremoval[lib/gs_setpd.ps lib/gs_init.ps]
2007-05-08T17:30:26.894961Z Till Kamppeter
src/version.mak --> src/version.mak.in (part of build system patch)[src/version.mak.in src/version.mak]
2007-05-08T17:29:31.725620Z Till Kamppeter
Build system extensions for support of CUPS Raster, OpenPrinting Vector, X11 driver modularizationm, and for easy selection of drivers DETAILS: The build system has all necessary checks added for the additional drivers (especially for CUPS Raster and OpenPrinting Vector) and has functionality to easily select the drivers to be built in. Especially one can also build a Ghostscript with none of the extra drivers from the contrib/ directory by supplying the option "--disable-contrib" to "./configure". Other additional options are "--with-drivers" to select drivers and "--with-fontpath" to easily add the system's font locations (call the system's Ghostscript with "gs -h" and add the paths shown in the end of the output), "./configure" also auto-detects whether the X drivers can be modularized. For correct building of the CUPS filters the definition of the version number was moved from src/version.mak to ./configure (or src/configure.ac). The build rules for Omni are removed from src/contrib.mak, as gdevomni.c is present in the contrib/ directory. So its build rules belong into contrib/contrib.mak. Use "./configure --disable-contrib" to make a Ghostscript without anything from the contrib/ directory, for example for commercially licensed distribution.[src/Makefile.in src/configure.ac src/contrib.mak src/unixinst.mak src/gdevlbp8.c src/version.mak]
2007-05-08T17:16:47.444481Z Till Kamppeter
Conditionals to avoid conflicts with the drivers "bjc880j", "lips2p", "lips4", and "lips4v" in contrib/ DETAILS: some data structures in src/gdevlbp8.c got extended for the above-mentioned drivers. To avoid conflicts the original structures need to be deactivated. This patch adds the needed conditionals for that.[src/gdevlbp8.c]
2007-05-08T16:52:11.701719Z Till Kamppeter
All third-party built-in and Uniprint drivers listed in the OpenPrinting database DETAILS: To avoid the users or the distribution package maintainers to patch Ghostscript for getting support for a certain printer model this patch contains all known (by OpenPrinting) built-in and Uniprint printer drivers. So compiling Ghostscript with all these drivers gives a complete Ghostscript without need of recompilation for adding support for a printer. Also the OpenPrinting Vector ("opvp", "oprp") and CUPS Raster output ("cups") are included, to have all the three current interfaces (the third is the already included IJS) for modular drivers as required by the upcoming LSB 3.2. Notes: Built-in printer drivers for Ghostscript are obsolete. Do not write any new built-in drivers for Ghostscript. Use the interfaces IJS, CUPS Raster, or OpenPrinting Vector for your new printer drivers. Volunteers for moving these third-party drivers into OpenPrinting Vector modules are welcome. Do not compile the contrib/ directory for commercial-licensed distribution of Ghostscript, the licenses of many of these drivers do not allow this.[contrib/japanese/doc/gs261j.txt contrib/japanese/dviprlib.h contrib/cups/pxlmono.ppd contrib/japanese/doc/gdevmjc.txt contrib/pcl3/doc/gs-pcl3.ref contrib/eplaser contrib/japanese/doc contrib/japanese/doc/gdevcd8.txt contrib/uniprint/Stc680pl.upp contrib/pcl3/eprn/mediasize.c contrib/pcl3/BUGS contrib/japanese/doc/README.gs550j contrib/pcl3/eprn/mediasize.h contrib/pcl3/ppd/gs-6.50.ppd contrib/pcl3/ppd/gs-pcl3-unspecold.ppd contrib/pcl3/src/contrib.mak-7.00.add contrib/lxm3200-tweaked/LICENSE contrib/lxm3200-tweaked/Z12-Z31-QuickSetup contrib/japanese/dmp_init.ps contrib/pcl3/eprn/pagecount.c contrib/chp2200 contrib/uniprint/Stc740p.upp contrib/gdevlx50.c contrib/lxm3200-tweaked/RELEASE_NOTES contrib/pcl3/src/pcl3opts.c contrib/pcl3/src/gdevpcl3.c contrib/pcl3/eprn/pagecount.h contrib/pcl3/src/pclsize.c contrib/pcl3/ps/margins-LetterRotated.ps contrib/gdevbjc_.c contrib/pcl3/ppd/gs-pcl3-hpdj400.ppd contrib/epson740/printerdb_rh6.0 contrib/japanese contrib/pcl3/src/pclsize.h contrib/gdevbjc_.h contrib/pcl3/ppd/gs-pcl3-hpdjportable.ppd contrib/cups/cups.mak contrib/uniprint/Stc670pl.upp contrib/cups/pxlcolor.ppd contrib/pcl3/ppd/gs-pcl3-hpdj660c.ppd contrib/pcl3 contrib/gdevlx7.c contrib/uniprint/bjc6000a1.upp contrib/pcl3/eprn/eprnrend.c.orig contrib/pcl3/ppd/gs-5.50.ppd contrib/defs.h contrib/pcl3/eprn/eprnparm.c contrib/pcl3/doc/how-to-report.txt contrib/japanese/doc/dj505j.txt contrib/japanese/gdevml6.c contrib/japanese/escp_24.src contrib/japanese/gdevlbp3.c contrib/uniprint/stc740ih.upp contrib/eplaser/gdevescv.c contrib/uniprint/Stc680p.upp contrib/uniprint/s400a1.upp contrib/epson740/upp-HowTo-to-be contrib/gdevxes.c contrib/japanese/gdevj100.c contrib/eplaser/gdevescv.h contrib/lips4/gdevlips.c contrib/japanese/doc/gdevj100.txt contrib/lips4/gdevlprn.c contrib/uniprint/Stc760pl.upp contrib/lips4/gdevlips.h contrib/pcl3/ppd/fonts.ppd contrib/uniprint/Stp870p.upp contrib/uniprint/PM820p.upp contrib/pcl3/ps/dumppdd.ps contrib/pcl3/src/zmedia2.c-6.51.diff contrib/lips4/gdevlprn.h contrib/pcl3/ppd/gs-common.ppd contrib/gdevcd8.c contrib/contrib.mak contrib/pcl3/ppd/gs-pcl3-hpdj1120c.ppd contrib/japanese/doc/cdj880.txt contrib/gdevcd8.h contrib/japanese/dmp_site.ps contrib/cups/gdevcups.c contrib/pcl3/src/contrib.mak-6.50.add contrib/japanese/doc/gdevmd2k.txt contrib/gdevdj9.c contrib/cups/pstoraster contrib/japanese/doc/gdevmag.txt contrib/lips4/gdevl4r.c contrib/lxm3200-tweaked/README contrib/lips4/gdevl4v.c.orig contrib/lips4/gdevl4v.c contrib/pcl3/ps/margins-A4Rotated.ps contrib/pcl3/ppd/gs-pcl3-hpdj540.ppd contrib/pcl3/doc/notes.bbl contrib/epson740/ps-to-printer.fpi_rh5.2 contrib/pcl3/doc/notes.tex contrib/pcl3/README contrib/pcl3/LGPL contrib/pcl3/ppd/gs-6.01.ppd contrib/chp2200/AUTHORS contrib/uniprint/PM760p.upp contrib/opvp/opvp_media.def contrib/uniprint/Stc777pl.upp contrib/uniprint/Stp720pl.upp contrib/japanese/gdevnpdl.c contrib/pcl3/src/contrib.mak-5.50.add contrib/epson740/README contrib/md2k_md5k contrib/pcl3/ps/margins-Env10Rotated.ps contrib/uniprint/PM760pl.upp contrib/uniprint/Stc670p.upp contrib/japanese/gdevmag.c contrib/cups/pstopxl contrib/japanese/gdev10v.c contrib/gdevmd2k.c contrib/cups/pstoraster.in contrib/chp2200/COPYING contrib/pcl3/ppd/gs-pcl3-hpdj510.ppd contrib/uniprint/Stc740pl.upp contrib/lips4 contrib/pcl3/src/zmedia2.c-6.01.diff contrib/gdevhl12.c contrib/pcl3/ppd/gs-pcl3-hpdj550c.ppd contrib/md2k_md5k/README.jis contrib/pcl3/ppd/catppd contrib/japanese/doc/Gdevlips.htm contrib/pcl3/ppd/gs-6.51.ppd contrib/pcl3/doc contrib/pcl3/pcl3.tar.sig contrib/cups contrib/japanese/gdevespg.c contrib/japanese/gdevalps.c contrib/pcl3/NEWS contrib/japanese/doc/gdevml6.txt contrib/gdevop4w.c contrib/pcl3/ppd/README contrib/uniprint/Stc760p.upp contrib/pcl3/eprn/eprnfs.c contrib/opvp contrib/gdevbjca.c contrib/pcl3/ppd/gs-pcl3-hpdj600.ppd contrib/gomni.c contrib/uniprint/Stp720p.upp contrib/pcl3/doc/gs-mods.txt contrib/uniprint/sipixa6.upp contrib/opvp/gdevopvp.c contrib/pcl3/src/zmedia2.c-5.50.diff contrib/pcl3/src/zmedia2.c-6.50.diff contrib/pcl3/ppd/gs-pcl3-hpdj680c.ppd contrib/pcl3/eprn/eprnrend.c contrib/pcl3/ps/margins-A4.ps contrib/pcl3/src/contrib.mak-6.01.add contrib/uniprint contrib/pcl3/src/pcl3opts-de.msg contrib/japanese/doc/djgpp.txt contrib/japanese/gdevdmpr.c contrib/japanese/doc/gdevlbp3.txt contrib/pcl3/doc/pcl3opts.html contrib/japanese/doc/gdevdmpr.txt contrib/japanese/doc/gs261j.euc contrib/chp2200/INSTALL contrib/pcl3/ppd contrib/cups/pstopxl.in contrib/pcl3/src contrib/pcl3/ppd/gs-pcl3-hpdj500c.ppd contrib/uniprint/Stc777p.upp contrib/gdevgdi.c contrib/pcl3/ps/margins-EnvDLRotated.ps contrib/japanese/gdevp201.c contrib/japanese/doc/gdevp201.txt contrib/pcl3/ppd/gs-7.00.ppd contrib/pcl3/ps/margins-Letter.ps contrib/uniprint/bjc6000b1.upp contrib/pcl3/lib/if-pcl3 contrib/pcl3/eprn contrib/opvp/opvp_common.h contrib/cups/pstoraster.convs contrib/pcl3/lib contrib/pcl3/src/pclcap.c contrib/uniprint/Stp870pl.upp contrib/pcl3/doc/gs-pcl3.1 contrib/japanese/gdevfmlbp.c contrib/pcl3/src/contrib.mak-6.51.add contrib/japanese/doc/gdevalps.txt contrib/gdevlx32.c contrib/pcl3/src/pclcap.h contrib/pcl3/src/pclgen.c contrib/pcl3/ps contrib/pcl3/src/pcl3opts-en.msg contrib/uniprint/s400b1.upp contrib/japanese/doc/gdev10v.txt contrib/japanese/gdevmjc.c contrib/epson740/printerdb_rh5.2 contrib/pcl3/ppd/gs-pcl3-hpdj500.ppd contrib/pcl3/src/pclgen.h contrib/lxm3200-tweaked contrib/pcl3/doc/pcl3opts.ref contrib/uniprint/sharp.upp contrib/japanese/gdevmjc.h contrib/pcl3/src/pclscan.c contrib/pcl3/src/zmedia2.c-7.00.diff contrib/pcl3/eprn/gdeveprn.c contrib/pcl3/ps/calign.ps contrib/pcl3/src/pclscan.h contrib/gdevln03.c contrib/pcl3/ppd/gs-pcl3-common.ppd contrib/pcl3/ppd/gs-pcl3-hpdj3xx.ppd contrib/pcl3/eprn/gdeveprn.h contrib/pcl3/lib/example.mcf contrib/pcl3/src/pclcomp.c contrib/pcl3/ppd/gs-pcl3-unspec.ppd contrib/pcl3/ps/levels-test.ps contrib/pcl3/doc/pcl3opts.1 contrib/pcl3/ppd/gs-pcl3-hpdj8xxc.ppd contrib/uniprint/PM820pl.upp contrib/japanese/gdevrpdl.c contrib/epson740 contrib/japanese/doc/gdevfmlbp.txt contrib/pcl3/lib/cups-pcl3 contrib/pcl3/doc/gs-pcl3.html contrib/japanese/gdevfmpr.c contrib/pcl3/doc/reports.txt contrib/japanese/dviprlib.c]
2007-05-08T16:33:45.043492Z Till Kamppeter
Addition of support for some older japanese-market PCL Printers DETAILS: Adds the output devices: dj505j: HP DeskJet 505J ljet4pjl, lj4dithp: HP LaserJet 4V/4LJ picty180: NEC PICTY180 (PC-PR101J/180) This patch was part of ESP Ghostscript for several years and did not cause any problems there.[src/gdevdjet.c src/gdevdljm.c src/gdevdljm.h src/contrib.mak src/gdevcdj.c]
2007-05-08T16:26:19.557957Z Till Kamppeter
Modularization of the X11 output devices into dynamic libraries DETAILS: This patch allows to compile Ghostscript in a way that the X11 screen display output devices can be seperated into a dynamically linkable library, so that these devices can be put in a separate binary package in Linux distributions. This way the distributions can be installed with GhostScript and without the X libraries, which is important for headless print servers. This feature is only available for Unix with GCC (selected by the Makefile). Ghostscript will be compiled without built-in X11 support and with an extra X11.so file containing the X11 support. One can install Ghostscript with or without X11.so then, it will always work. It detects the presence of X11.so automatically and makes the X11 output devises available if X11.so is present (see "gs -h"). Small disadvantage: With modularized X11 support the "x11" device will not stay the default one. "bbox" will be the default then. Use "gs -sDEVICE=x11 ..." then. This patch is used since mid 2001 in ESP Ghostscript and has never caused any problems or bugs related to the modularization.[src/gconf.c src/lib.mak src/gdevl256.c src/gdevxalt.c src/gs.mak src/gdevvglb.c src/Makefile.in src/unix-gcc.mak src/unix-aux.mak src/devs.mak src/unixinst.mak src/gp_unix.c]
2007-05-07T21:53:44.031582Z Ralph Giles
Remove unneeded header references to the interpreter. This file is part of the graphics library. Also clean up the dependencies in the makefile.[src/lib.mak src/gsncdummy.c src/gsncdummy.h]
2007-05-07T21:31:43.787169Z leonardo
Fix (shadings) : Implement a color index cache. DETAILS : This partially improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". This change is algorithmically equivalent. The old code redundantly converts client colors to device colors. This patch implements a cache for the conversion in the new module gscicach.h . It works for contone devices only. For the test case it reduces the number of color conversions in 20+ times. However a rocket speeding up is not obtained. This patch is an experimental one. We have got an alternative approach, which is more complicated but works for any device. The alternative is to pass converted colors through the decomposition recursion. We commit this now mainly for archiving purpose. To disable it replace the call to gs_color_index_cache_create with NULL.[src/gxshade4.h src/lib.mak src/gscicach.c src/gscicach.h src/gxshade6.c]
2007-05-07T19:45:03.500615Z Alex Cherepanov
Trap input errors when reading PDF content streams and issue a warning. Acrobat Reader silently ignores such errors. Bug 689026, customer 850.[lib/pdf_base.ps]
2007-05-07T17:42:00.368595Z Timothy Osborn
Fixing a bounding box pixel rounding issue in pdf14_begin_transparency_group. DETAILS: The transparency group bounding box calculation was using a different rounding method than is being used for images. This caused the problem file in bug report #688543 to display unwanted gray vertical lines to the left and right of a transparency group. This fix is to use the same "Center-of-pixel Filling Rule" that is applied to images to avoid this type of problem.[src/gdevp14.c]
2007-05-07T10:33:00.607664Z leonardo
Fix (functions) : Improving the documentation for make_interpolation_tensor.[src/gsfunc0.c]
2007-05-07T08:48:12.997512Z leonardo
Documenting how to profile Ghostscript with MSVC6 (continued). DETAILS : Fixing a misprint. It's still a preliminary edition. A documentation specialist should improve it.[doc/Develop.htm]
2007-05-07T08:10:13.225741Z leonardo
Documenting how to profile Ghostscript with MSVC6. DETAILS : It's a preliminary edition. A documentation specialist should improve it.[doc/Develop.htm]
2007-05-05T19:20:34.952465Z Alex Cherepanov
Undefine /Length in the stream dictionary when the value is incorrect to distinguish streams of 0 and unknown length. Old code re-defined incorrect length as 0. Bug 689208, customer 770.[lib/pdf_base.ps toolbin/pdf_info.ps]
2007-05-04T21:23:03.556389Z Timothy Osborn
Minor change to make the source code more accurate. DETAILS: A parameter was being moved into the pdf buffer structure under a comment that indicated the parameter wasn't being used. During my testing for bug #688543 I discovered the parameter was being used. Therefore I moved the line to be above the comment to better reflect reality.[src/gdevp14.c]
2007-05-04T04:18:47.247543Z Alex Cherepanov
Move allocation of a large structure from the stack to the heap to avoid C stack overflow on Windows NT that allocates 12K less of the stack space than requested by the application. Bug 688998.[src/gdevpdfp.c lib/pdf_draw.ps]
2007-05-04T00:15:08.895805Z Ray Johnston
Previous version was too aggresive with image interpolation to 1-bit per component (bpc) devices. Now we downsample using the 'special' image filter that prevents dropout on 1bpc devices and use the "Mitchell" image filter for upscaling to those devices when the scale factor (in X and Y) is at least 4:1. This prevents upscaling on 1:1 images as well as near 1:1 where the results would probably be poor quality.[src/gxiscale.c]
2007-05-03T15:13:26.865969Z Alex Cherepanov
Avoid a Valgrind warning about ovelapping arguments in memcpy(). Don't assign a structure to itself.[src/gxhintn.c]
2007-05-02T21:20:41.869528Z leonardo
Fix (shadings) : Extra subdivision of axial and radial shadings. DETAILS : This partially improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". The old code wrongly mapped shading function arguments fro axial and radial shadings. It caused an extra subdivision by U when the color function requires to subdivide by V.[src/gxshade4.h src/gxshade1.c src/gxshade6.c]
2007-05-02T19:12:52.030634Z leonardo
Fix (shadings) : The color space linearity check didn't account the color precision. DETAILS : This partially improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". Since the color space represents color with precision 1/255, the shadings code must not try to obtain a better precision. This patch accounts the color quantum in is_dc_nearly_linear.[src/gscspace.c]
2007-05-02T18:18:29.002307Z leonardo
Fix (shadings) : Always adjust smoothness according to the minimal color precision. DETAILS : Since the color space represents color with precision 1/255, the shadings code must not try to obtain a better precision. However the old code sometimes used the unadjusted value. This patch defines an uniform way to access the adjusted smoothness.[src/gxshade6.c]
2007-05-02T12:33:09.355227Z leonardo
Fix (shadings) : Early skip parts that fall outside the clipping box. DETAILS : This improves performance for the test case of the bug 689189 "PDF fails with /unregistered in --shfill--". The patch implements a bbox intersection code pattern to several decomposition functions. It speeds up those shadings, in which the shading area is significantly larger than the clipping box. Rather it speeds up the test case, it needs a further improvement for shading functions. A small noize (being lesser than shading smoothness) to be ignored while a function monotonity check. Minor changes : 1. In some functions the old bbox intersection code becomes more uniform. 2. bbox_of_points moved up.[src/gxshade6.c]
2007-05-01T23:55:23.394938Z Alex Cherepanov
Pacify Valgrind. Initialize an uninitialized variable that is used in conditional expression but doesn't affect the end result. Bug 688910.[toolbin/vg_bugs.supp toolbin/vg_okay.supp src/gxipixel.c]
2007-05-01T22:51:27.306035Z Alex Cherepanov
Pacify Valgrind. Initialize an uninitialized variable that is used in calculations but doesn't affect the end result in this case.[src/gximono.c]
2007-05-01T20:52:58.020607Z leonardo
Fix (shadings) : wedge_vertex_list_elem_buffer overflow. DETAILS : Bug 689189 "PDF fails with /unregistered in --shfill--". The estimation for wedge_vertex_list_elem_count_max assumed a division of 1 side per level. However triangle_by_4 divides 3 sides at once. Now we increase the buffer size according to that, see comment in code for details. It increases the buffer size from 110K to 220K. We tried to implement a new function triangle_by_2 to keep the old buffer size, triangle_by_2 must be the topmost worker for fill_triangle. This function appears almost same as triangle_by_4, except it divides the biggest side only. We discontinued this effort because we don't like the code duplication, which only saves 100K of RAM, and gives lots of minor raster differences. This patch fixes the failure, but the performance with the test case appears unsatisfactory. It sould be a subject of a separate patch.[src/gxshade6.c]
2007-04-30T19:08:16.584376Z Ray Johnston
Fix typo in 7887. Local regression testing missed this -- was seen in nightly run. This was part of the "optimization" in the 4 component source color case.[src/gxiscale.c]
2007-04-29T00:34:16.918957Z Ray Johnston
Fix structure problem (this could have caused out-of-bounds access).[src/gdevwts.c]
2007-04-28T22:17:19.957831Z Ray Johnston
Implementation of a new non-linear image filter that prevents dropout when images are scaled down to a 1-bit per component device. Bugs 689147 for customer 531 and image quality problem for customer 780. This filter is used whenever /Interpolate == true (or -dDOINTERPOLATE command line option is used) and the image is being scaled down on a 1-bit per component device. Interpolation throughput of gray or cmyk images is also improved by a factor of about 2:1 (depending on the data content) even when the standard Mitchell filter is used. The performance improvement when using this new filter is even higher since the filter itself uses less CPU time. DETAILS: This filter uses the darkest of the image pixels that are within a device pixel, rather than the default behaviour which uses the PS 'center of pixel' rule (i.e., whichever image pixel covers the center of the device pixel is used to color the device pixel). The center of pixel rule can result in missing narrow black lines or single dots in patterns when a source image is scaled down. One side effect of this filter is that narrow white features or small white areas in patterns can be lost, effectively darkening the result. For now the customers needing this are not concerned with small white-on-black areas becoming solid black. Many real world printers tend to do this anyway due to 'dot gain'. If we encounter the need for preserving small white areas, we can change the filter somewhat to prevent this effect.[src/sidscale.h src/gxdda.h src/lib.mak src/siinterp.c src/gxiscale.c doc/Develop.htm src/sisparam.h src/sidscale.c]
2007-04-28T21:55:23.077958Z Ray Johnston
Add missing comment (brief description line).[src/gdevwts.c]
2007-04-26T23:46:30.659099Z Ray Johnston
Fix regression tools to remove dependency on PYTHONPATH since the environment variable method isn't very convenient for those running local regressions and add those python files from peeves:/home/regression/python to this directory (under svn).[toolbin/tests/README toolbin/tests/run_nightly toolbin/tests/myoptparse.py toolbin/tests/main.py]
2007-04-25T20:00:00.200965Z Timothy Osborn
Fix for slow PDF performance reported in bug report #688830. DETAILS: The function read_create_compositor was calling top_up_cbuf every time it was called. For some jobs this caused a large number of relatively large memory movements in the memmove call of top_up_cbuf. By only calling top_up_buf when actually necessary, the problem job took approximately 1/2 the time it did previously.[src/gstparam.h src/gxclrast.c src/gdevp14.c]
2007-04-25T05:50:33.064031Z leonardo
Fix (TT fonts) : Allow sfnts string breaks inside TT tables. DETAILS : The old code is based on an antique Adobe constraint "the strings must begin at TrueType table boundaries, or at individual glyph boundaries within the glyf table". In novadays many of 3d party software do not follow it. We're dropping this constraint from GS code because we tired fixing user problems with it. This change is algorithnically equivalent for fonts, which follow the constraint. This change replaces ACCESS macro (sll 3 definitions through Ghostscript sources) with a new macro READ_SFNTS, which copies data to a local buffer, and checks the length of the buffer. We believe that the performance flaw is not sensible and it worths the improved stability. Correspondingly local pointer variables, which were used with ACCESS macro, are replaced with local buffers. Sorry for keeping old names inspite of the popular convention - we do not want too many changes in a single patch to simplify its review. In some places the new data copying could be eliminated because the old code already copies the data. We do not optimize it now, becauase we want to simplify the patch review. We believe that modern compilers can optimize it. The new code still have few points, which are based on the antique constraint. One example is names in name table. Will do further improvements someday. The new code signals an error if the constraint is used and not satisfied (the old code doesn't with unpredictable result).[src/gxfcopy.c src/gxfont42.h src/gsfcid2.c src/gstype42.c src/gdevpsft.c]
2007-04-25T03:28:32.022759Z leonardo
Fix (TT fonts) : Allow 'loca' elements to be broken into parts with 'sfnts' strings. DETAILS : Bug 689038 "GS doesn't display T42 font correctly.". The Type 42 specification reads that 'sfnts' strings must not break TT tables. Exactly, "the strings must begin at TrueType table boundaries, or at individual glyph boundaries within the glyf table". However the test case is another example when a 3d party software "LilyPond 2.11.10" doesn't follow this constraint. We prefer to handle such font data, because we have not enough control for fonts in wild. The new function gs_type42_read_data is factored out from the old code of default_get_outline. Due to that we believe that the change to default_get_outline is algorithmically equivalent. This patch does not propagate error codes from gs_type42_read_data in get_glyph_offset. This is done intentionally for keeping the patch simpler, and for keeping the behavior closer to the old one. It simplifies the regression testing. Propagating the error codes should be a next step.[src/gstype42.c]
2007-04-24T16:21:21.866752Z leonardo
Fix (TT fonts) : Could write past len_glyphs array. DETAILS : This is a partial fix for bug 688971 "huge performace problem (with large TT font?)". Thanks to SaGS for noticing this problem.[src/gstype42.c]
2007-04-24T00:16:14.934585Z leonardo
Fix (TT fonts) : Do not consider overlapped glyps while computing glyph length. DETAILS : This is a partial fix for bug 688971 "huge performace problem (with large TT font?)". Thanks to SaGS for idea to drop an old hewristic after a *stable* sorting is applied. See comment in code.[src/gstype42.c]
2007-04-23T23:59:01.979981Z Alex Cherepanov
Partly implement AcroForm feature: all fields that provire appearance streams and text fields with variable text. Bug 687498. DETAILS: Although the sample file renders identically to Adobe Acrobat, many things are not yet coded. - other types of annotations without appearance streams - XML formatted text - multi-line text - combed text - right-aligned or centered text with non-0 word and character spacing.[lib/pdf_main.ps lib/pdf_draw.ps lib/pdf_ops.ps]
2007-04-23T21:46:19.686175Z leonardo
Fix (TT fonts) : A faster computation of glyph lengthes. DETAILS : This is a partial fix for bug 688971 "huge performace problem (with large TT font?)". Thanks to SaGS for idea to apply a *stable* sorting algorithm for computing len_glyphs. See comment in code.[src/gstype42.c]
2007-04-23T19:31:20.353885Z Henry Stiles
Margin adjustments courtesy of jbrown@cs.ucsd.edu. We have no way of testing this change since we do not have a Laserjet II. Bug #688054.[src/gdevdjet.c]
2007-04-23T18:04:55.781264Z leonardo
Fix (p*mraw devices) : Removing an incorrect debug printing (continued 2). DETAILS : See comment in code.[src/gdevpbm.c]
2007-04-23T17:38:16.893357Z leonardo
Fix : Provide alternative char codes in a CIDDecoding resource (continued). DETAILS : Removing an unused variable.[src/zcid.c]
2007-04-23T13:27:47.091654Z leonardo
Fix : Provide alternative char codes in a CIDDecoding resource. DETAILS : Bug 689168 "Wrong Symbol displayed from MS-PGothic". See the documentation change. Note : FAPI implemented this feature with Decoding resource a long ago, but it was not documented in Language.htm . The old documentation about CIDDecoding in Language.htm appears incorrect. The dictionary values were not strings. They were arrays of integers.[lib/gs_ciddc.ps doc/Language.htm src/zcid.c]
2007-04-23T06:42:08.584860Z leonardo
Fix (p*mraw devices) : Removing an incorrect debug printing (continued). DETAILS : Revision 7869 fails with any PDF file. Fixing it now. See comment in code.[src/gdevpbm.c]
2007-04-22T22:00:22.158968Z Alex Cherepanov
Fix MSVC 7 warnings about unused variables and unreferenced labels.[src/zalg.c]
2007-04-22T20:25:22.439569Z leonardo
Implementing high level patterns, step 10. DETAILS : gx_pattern_tile_is_clist crashed with empty tile. Debugged with CET 09-34.PS .[src/gxpcmap.c]
2007-04-22T20:19:02.249842Z leonardo
Fix (p*mraw devices) : Removing an incorrect debug printing. DETAILS : Since revision 7795 the debug build of the old code prints "0 strings:" to stderr when interpreting any PDF file. The release code doesn't do that. This printing is not controlled by any option. Besides that, if a device parameter OutputIntent is specified, the debug printing code accesses string parts by constant indices with no checking the string length, so it causes a potential crash. Removing this code portion now because (1) we believe that the debug and release build must generate same stderr by default, and (2) we need a stable code with no dependence on the OutputIntent value. Since Use.htm doesn't specify an useful -Z option to control this printing, we believe that the device must implement anothe device parameter to control it.[src/gdevpbm.c]
2007-04-22T17:55:56.827285Z leonardo
Implementing the PS operator .sort in C language. DETAILS : This is a partial fix for bug 688971 "huge performace problem (with large TT font?)". Patch from SaGS. The old PS implementation of lib\gs_init.ps::.sort uses a slow O(n^2) algorithm. Plus, array indexing operations are lenghty in PostScript. It seems to me this was initially written to sort the very few "%disk*%" names, so speed was irrelevant. Now, it is used to sort 'loca' tables (in some damaged TTFs). The patch implements the heap sort algorithm from the programmer's bible. This algorithm is guaranteed to be O(n log n) in the worst case. Variable's names are those from Knuth's book. Labels denote the algorithm's steps. The implementation retains the maximum generality for the predicate, i.e. it can be anything that is able to compare 2 objects on the o-stack and leave a bool in their place. The predicate is not restricted to what's available to a FunctionType 4 function.[src/zalg.c src/int.mak lib/gs_init.ps]
2007-04-22T11:50:25.863066Z leonardo
Fix (TT fonts) : A faster seeking through 'sfnts' array. DETAILS : This is a partial fix for bug 688971 "huge performace problem (with large TT font?)". Patch from SaGS. src\zfont42.c::string_array_access_proc() is now caches the string index used last, and starts the next search from there. This info in stored together with the ref to 'sfnts', and consists of index of the string (.mru_sfnts_index) and total number of data bytes that precede this string (.mru_sfnts_pos). If passing NULL for the 2 new parameters, string_array_access_proc() beheaves at it did before and starts the search from the beginning. Otherwise it does one of: - search forward from the mru string (possibly returning data from it, without actually skipping anything), if new position >= current's string starting position; - search backwards from current string if requested position is in the 2nd half of the fragment before the current string; - search forward from the beginning if in 1st half. The old garbager descriptor for gs_type42_data_s assumed 'ref' fields only. Now it is changed to account new fields, which are not 'ref'.[src/zfcid1.c src/zbfont.c src/ifont.h src/zfont42.c src/ifont42.h]
2007-04-21T02:33:44.148360Z Alex Cherepanov
Fix all warnings generated by MSVC 6 & 7 except the warnings matching "C4018|C4244|jbig2dec|jasper" regular expression.[src/dwimg.h src/lib.mak src/iscannum.c src/windows_.h src/gdevwpr2.c src/gp_mswin.c src/sfxstdio.c src/gdevpdfe.c src/gp_msprn.c src/dwdll.c ijs/unistd_.h src/dwsetup.cpp]
2007-04-19T15:04:51.253884Z Thomas DiGennaro
Integrate make_testdb.py with new environment, including testing.cfg and python procedures in other scripts. make_testdb.py supports creation of a testdata.db with checksums generated by running gs build in HEAD/ and installed in gshead/.[toolbin/tests/README toolbin/tests/make_testdb toolbin/tests/make_testdb.py]
2007-04-18T00:23:49.202468Z Alex Cherepanov
Fix a few warnings generated by GCC 4.1.2.[src/gxttfb.c src/gdevpbm.c src/gdevpsdi.c src/gspath1.c src/zchar.c src/ttinterp.c]
2007-04-17T18:39:39.936412Z leonardo
Fix : A bug in device_cpath_accum_enum_ptrs. DETAILS : Bug 689177 Another heap corruption (issue 2). gx_device_clip::list.head was never enumerated. The bug was intriduced in rev 7120 (5 months, 3 weeks ago) by leonardo.[src/gxacpath.c]
2007-04-17T17:57:43.141720Z Ralph Giles
Remove the inadvertently added instance of testing.cfg; it clobbers local configs. Changes should instead be made to testing.cfg.example, with the expectation that users will copy that to testing.cfg and edit to suit.[toolbin/tests/testing.cfg]
2007-04-17T14:28:46.266428Z leonardo
Implementing high level patterns, step 9. DETAILS : This fixes the bug 688396, step 9 It switches on the clist-based implementation of patterns. We arbitrary set the 1Mb threshold for large patterns. The threshold is not perfect - see (3) below. Rather it fixes the bug, we would like to do further improvements someday : 1. Large uncolored patterns are not implemented. Need a color substitution forwarding device. 2. Get rid of non_gc_memory in the pattern clist. 3. For CET tests the choice of image-based or clist-based representation must be smarter than MAX_BITMAP_PATTERN_SIZE threshold. While rendering a small pattern to memory device, check whether PaintProc applies another apttern. If so, discard the image and convert to the clist representation with running PaintProc at second time. Need a special forwarding device for the pattern color detection. 4. When compiled with MAX_BITMAP_PATTERN_SIZE 0, a wrong rendering of imagemask inside a pattern stream with ppmraw -r600 245-13.ps, 269-01.ps 5. When compiled with MAX_BITMAP_PATTERN_SIZE 0, a wrong rendering of image inside a pattern stream with pkmraw -r600 035-07.ps 6. When compiled with MAX_BITMAP_PATTERN_SIZE 0, a minor coordinate difference (+-1 pixel) appeared with pkmraw -r600 244-01.ps 7. When compiled with MAX_BITMAP_PATTERN_SIZE 0, the rendeting is slow with pkmraw -r600 245-13.ps, 269-01.ps 8. (time optimization) clist_init is called twice when creating a clist-based pattern. 9. (time optimization) While a clist playback for a large pattern cell, set the bbox for the current clipping path for the clist device, to allow a faster skipping of elements outside the bbox. 10. (space optimization) Store pattern stream in the pattern cache memory; properly account the stream size while computing the cache memory usage. 11. (space optimization, 32K per pattern) Purge and free clist buffer (which includes a tile cache) when a clist-based pattern is not active between reading and writing. Why the tile cace is a property of a clist object ? We would like to have a single global tile cache.[src/gxpcmap.c]
2007-04-17T14:09:50.996301Z leonardo
Implementing high level patterns, step 8. DETAILS : This is a preparation for fixing the bug 688396, step 8 This change is algorithmically equivalent : the new behavior is temporarily disabled with MAX_BITMAP_PATTERN_SIZE macro. The revision 7856 appears incorrect in the part "Disables tile cache for clist-based patterns.". As a consequence, the revision 7855 appears incorrect in the part "2. Releases the clist buffer when the clist writer completes with a pattern stream.". This patch fixes that. It allocates a half of 32K buffer for clist writer stream, and another half for tile cache. When building with MAX_BITMAP_PATTERN_SIZE 0, the clist-based pattern code pased the testing with ppmraw -r600 comparefiles and pkmraw -r600 comparefiles. Rather this testing detected few problems, we believe that they're not important for the bug 688396. This code needs further improvements : 1. Large uncolored patterns are not implemented. Need a color substitution forwarding device. 2. Get rid of non_gc_memory in the pattern clist. 3. For CET tests the choice of image-based or clist-based representation must be smarter than MAX_BITMAP_PATTERN_SIZE threshold. While rendering a small pattern to memory device, check whether PaintProc applies another apttern. If so, discard the image and convert to the clist representation with running PaintProc at second time. Need a special forwarding device for the pattern color detection. 4. When compiled with MAX_BITMAP_PATTERN_SIZE 0, a wrong rendering of imagemask inside a pattern stream with ppmraw -r600 245-13.ps, 269-01.ps 5. When compiled with MAX_BITMAP_PATTERN_SIZE 0, a wrong rendering of image inside a pattern stream with pkmraw -r600 035-07.ps 6. When compiled with MAX_BITMAP_PATTERN_SIZE 0, a minor coordinate difference (+-1 pixel) appeared with pkmraw -r600 244-01.ps 7. When compiled with MAX_BITMAP_PATTERN_SIZE 0, the rendeting is slow with pkmraw -r600 245-13.ps, 269-01.ps 8. (time optimization) clist_init is called twice when creating a clist-based pattern. 9. (space optimization) Store pattern stream in the pattern cache memory; properly account the stream size while computing the cache memory usage. 10. (space optimization, 32K per pattern) Purge and free clist buffer (which includes a tile cache) when a clist-based pattern is not active between reading and writing. Why the tile cace is a property of a clist object ? We would like to have a single global tile cache.[src/gxclist.c src/gxclbits.c src/gxpcmap.c]
2007-04-17T06:55:36.784240Z leonardo
Implementing high level patterns, step 7. DETAILS : This is a preparation for fixing the bug 688396, step 7. This patch fixes the Bug 689176 "Infinite loop in gxpcmap.c ln 680.", which was introduced with revision 7853 In gx_pattern_cache_add_entry mbits was reset before revision 7853 when "the pattern completely fills its box", and it was not after the revision 7853. Thus the revision 7853 appears not algorithmically equivalent rathen than expected. This change restores the correct behavior, and improves gx_pattern_cache_free_entry for an easier monitoring of a pattern cell memory size with a C debugger. This code needs further improvements : 1. Large uncolored patterns are not implemented. 2. Get rid of non_gc_memory in the pattern clist writer. 3. clist_init is called twice when creating a clist-based pattern.[src/gxpcmap.c]
2007-04-17T00:25:38.792981Z Timothy Osborn
This is a patch for bug report #689171. DETAILS: With this fix, DeviceN colors with a DeviceCMYK base color, will be treated as DeviceCMYK in regards to overprint.[src/gscdevn.c]
2007-04-17T00:02:10.771224Z leonardo
Fix : gs_copydevice2 crashed on error. DETAILS : This problem has been occasionally detected while working on large patterns. If an error happens in finish_copydevice, the function gs_copydevices first closes the device copy, then releases its stype. However a device usually provides a finalization method, which releases stype automatically. Thus it has been released twice, causing a crash in gs_free_object.[src/gsdevice.c]
2007-04-16T23:55:59.056841Z leonardo
Implementing high level patterns, step 6. DETAILS : This is a preparation for fixing the bug 688396, step 6. This change is algorithmically equivalent : the new behavior is temporarily disabled with MAX_BITMAP_PATTERN_SIZE macro. This patch : 1. Implements the memory cleanup when a clist-based pattern cache entry purges. 2. Disables tile cache for clist-based patterns. 3. Disables the processing of uncolored patterns as large patterns. This code needs improvements : 2. Large uncolored patterns are not implemented. 3. Get rid of non_gc_memory in the pattern clist writer.[src/gxclist.c src/gxpcmap.c]
2007-04-16T18:53:12.628313Z leonardo
Implementing high level patterns, step 5. DETAILS : This is a preparation for fixing the bug 688396, step 5. This change is algorithmically equivalent : the new behavior is temporarily disabled with MAX_BITMAP_PATTERN_SIZE macro. This patch : 1. Implements the tiling. 2. Releases the clist buffer when the clist writer completes with a pattern stream. 3. Cleans warnings from Cygwin/gcc build. 4. Fixes a compilation error in gxpageq.c . This code needs improvements : 1. The memory cleanup is not done when the clist-based pattern cache entry purges. 2. Large uncolored patterns work as colored (not tested yet). 3. Get rid of non_gc_memory in the pattern clist writer.[src/gsptype1.c src/gxpageq.c src/lib.mak src/gxpcmap.c src/gsptype1.h src/gxpcolor.h src/gxfill.c src/gxp1fill.c]
2007-04-16T14:45:42.497063Z Thomas DiGennaro
Checkin the work on regression, search, testfiles. Mostly Python scripts. See README files for documentation of use and structure.[toolbin/tests/dump_checksum.py toolbin/python toolbin/tests/gscheck_testfiles.py toolbin/tests/dump_checksum_plus.py toolbin/tests/update_baseline toolbin/tests/check_source.py toolbin/tests/gssum.py toolbin/tests/gscheck_all.py toolbin/tests/dump_checksum_raw.py toolbin/tests/find_unique_file.py toolbin/tests/rasterdb.py toolbin/tests/gscheck_fuzzypdf.py toolbin/search/README toolbin/testfiles toolbin/search toolbin/tests/get_baselines toolbin/tests/build_revision.py toolbin/tests/run_regression toolbin/tests/compare_checksumdb.py toolbin/tests/gsconf.py toolbin/tests/testdiff toolbin/tests/dump_testdb toolbin/tests/gsvalidate.py toolbin/tests/update_baseline.py toolbin/tests/make_baselinedb.py toolbin/tests/gscheck_raster.py toolbin/tests/update_pdfbaseline toolbin/tests/gsparamsets.py toolbin/tests/validate.py toolbin/tests/gstestutils.py toolbin/tests/compare_checksums.py toolbin/tests/regen_filelist.py toolbin/tests/run_nightly.py toolbin/tests/regen_baseline.py toolbin/tests/gstestgs.py toolbin/tests/run_regression.py toolbin/tests/get_baselines.py toolbin/tests/testdiff.py toolbin/tests/updatelistpdf.py toolbin/tests/gscheck_pdfwrite.py toolbin/tests/updatelist.py toolbin/tests/run_series.py toolbin/tests/get_baseline_log.py toolbin/tests/collate.py toolbin/tests/testing.cfg]
2007-04-16T11:02:19.661421Z leonardo
Implementing high level patterns, step 4. DETAILS : This is a preparation for fixing the bug 688396, step 4. This change is algorithmically equivalent : the new behavior is temporarily disabled with MAX_BITMAP_PATTERN_SIZE macro. The patch implements patterns with clist. The choice between the old and the new implementation is being controlled with MAX_BITMAP_PATTERN_SIZE macro. When the pattern tile size is bigger, it writes the pattern command stream into a clist object, which then is stored into the pattern cache. The pattern instantiation is done with the clist playback. This code needs improvements : 1. It does not perform the tiling. Just renders a single instance of the pattern cell. 2. The memory cleanup is not done when the pattern cache entry purges. 3. Uncolored patterns work as colored. 4. Need to optimize with releaseing the clist buffer when the pattern clist writer completes. 5. Get rid of non_gc_memory in the pattern clist writer. We commit this patch now because we need to merge data structures with the "band_complexity_array patch" (see rev 7847).[src/gxclmem.c src/lib.mak src/gxclist.c src/gxpcmap.c src/gxcldev.h src/gxclmem.h src/gxclist.h src/gxpcolor.h src/gxp1fill.c src/zpcolor.c src/gxclread.c]
2007-04-16T02:50:57.803705Z Alex Cherepanov
Use right capitalization for compiled resources: s/Procset/ProcSet/[src/openvms.mak src/int.mak src/Makefile.in]
2007-04-16T02:26:14.232909Z Alex Cherepanov
Scan numbers in the range of 2147483648..4294967295 in PDF Encrypt dictionary as unsigned integers for compatibility with Acrobat Reader. Bug 689010, customer 870.[lib/pdf_main.ps src/iscan.c src/iscannum.c src/int.mak src/iscan.h src/iscannum.h src/ztoken.c]
2007-04-15T07:01:59.507361Z Henry Stiles
This fix is associated with closed bug 689139 and was not checked in when that bug was closed due to a bookkeeping mistake. It adds attributes needed to parse the pxl color treatment operator. There is no implementation associated with these new attributes so no change is expected.[src/gdevpxen.h]
2007-04-15T06:38:02.809649Z Henry Stiles
The paper size was hard coded to A4 instead of using the paper size in the printer device state. Thanks to Leif Harcke for the patch. The HP and Canon color printer drivers are not tested so there are no expected regression differences.[src/gdevcdj.c]
2007-04-15T05:42:43.102974Z Henry Stiles
The range of runcode32 was not correct. The specification says 3 (not 2) should be added to the run length. See the JBIG2 spec, Table 29 in section 7.4.3.1.7 (Symbol ID Huffman table decoding). Fixes 688009 for customer 670.[jbig2dec/jbig2_text.c]
2007-04-14T14:08:04.439060Z Timothy Osborn
Fix for the band_complexity_array overflow issue. First reported in bug report #689165. Also encountered by me when running the test file for bug report #688830. DETAILS: The band_complexity_array array of a clist reader device was being statically allocated with 100 elements. As the requirement is 1 element per band, jobs requiring more than 100 bands could cause an abnormal termination of ghostscript or some other failure. The array is now allocated dynamically with 1 element per band.[src/lib.mak src/gxclist.c src/gxcldev.h src/gxclist.h src/gdevprn.c src/gxclread.c]
2007-04-11T18:21:07.628832Z Timothy Osborn
Adding src/gsncdummy.[ch] and src/zncdummy.c to the Color Mapping section of Develop.htm[doc/Develop.htm]
2007-04-11T18:15:35.603892Z Timothy Osborn
Adding svn keywords[src/gsncdummy.h]
2007-04-11T18:08:02.032998Z Timothy Osborn
Adding svn keywords[src/gsncdummy.c src/zncdummy.c src/gsncdummy.h]
2007-04-11T15:25:52.638692Z Timothy Osborn
svn newbie mistake. Did not mean to grab the lib folder items.*[lib/pdf_main.ps lib/pdf_draw.ps lib/pdf_ops.ps lib/pdfopt.ps]
2007-04-11T15:20:44.560137Z Timothy Osborn
gsncdemo.* are now named gsncdummy.*[lib/pdf_main.ps src/gsncdemo.c lib/pdf_draw.ps lib/pdf_ops.ps lib/pdfopt.ps]
2007-04-10T17:13:41.025532Z leonardo
Implementing high level patterns, step 3. DETAILS : This is a preparation for fixing the bug 688396, step 3. This change is algorithmically equivalent. It encapsulates the initialization of gx_device_pattern_accum fields inside gx_pattern_accum_alloc, so that its clients must not deal with a specific type of a pattern accumulation device. Note: the 2 previous steps has a different title than "Implementing high level patterns". They to be renamed.[src/gxpcmap.c src/gxpcolor.h src/zpcolor.c]
2007-04-10T06:54:36.984146Z leonardo
Make the memory clist implementation to build always. DETAILS : This is a preparation for fixing the bug 688396, step 2. The memory clist implementation now builds unconditionally, because it will be used for large patterns. The file clist implementation builds if and only if it is requested with BAND_LIST_STORAGE=file . See comment added into lib.mak . clist_init_io_procs implements the choice. Minor changes : io_procs are made const. clist_io_procs_file, clist_io_procs_memory, allocateWithReserve are made local.[src/gxclmem.c src/lib.mak src/gxclfile.c src/gxclist.c src/gxband.h src/gxclread.c src/gxclio.h]
2007-04-09T20:50:20.646460Z Alex Cherepanov
Interpret PDF PageLabels dictionary and include the labels in %%Page comments in the PS file. Thanks to Jason McCarty for the patch. Bug 688071.[lib/pdf2dsc.ps]
2007-04-09T08:54:30.839959Z leonardo
Implementing clist i/o virtual functions. DETAILS : This is a preparation for fixing the bug 688396. This change is algorithmically equivalent. The old code defines macros for substituting memfile_* procs to clist_* procs when the makefile option BAND_LIST_STORAGE is set to 'memory'. Instead that, the new code defines a new structure clist_io_procs_t, stores the procs into it, and chooses an implementation by the module initialization mechanizm. The new function clist_init_io_procs works for that. We would like to define the procs as virtual methods of *clist_file_ptr, but it needs to change the logics of clist_fopen, clist_fclose with allocating an auxiliary structure. We would like to make this improvement as a separate patch in order to simplify the regression testing and debugging.[src/gxclmem.c src/gxpageq.c src/lib.mak src/gxclfile.c src/gxclist.c src/gxclmem.h src/gxpageq.h src/gxclist.h src/gdevprn.c src/gdevprna.c src/gxband.h src/gxclread.c src/gxclio.h src/gxclpage.c src/gxclutil.c]
2007-04-09T03:18:38.528054Z Alex Cherepanov
Remove unused static rendering procedures for 16-bit samples identical to the corresponding 12-bit procedures. Fix bug 687399.[src/gxi16bit.c]
2007-04-08T18:45:58.681482Z Alex Cherepanov
Make annotation handler more robust. Ignore annotations without /Subtype entry and issue a warning.[lib/pdf_draw.ps]
2007-04-08T18:23:38.107786Z Alex Cherepanov
Increase the size of %stdin buffer to support larger lookahead requests and look for for %PDF- tag in the first 1024 bytes of the file. Fix bug 687125,[lib/pdf_main.ps lib/pdf_base.ps src/ziodevs.c src/ziodevsc.c]
2007-04-08T17:55:40.402009Z leonardo
pscet_status.txt : Improving assignments.[doc/pscet_status.txt]
2007-04-07T20:07:46.466482Z Ray Johnston
Add missing calls needed to properly send data to the printer on Windows. Thanks to Luke Bakken for this fix. Bug 687250. DETAILS: Tested on Windows XP, built with MSVC 8 (Visual Studio 2005). As Luke writes in the bug comment #5, this patch is derived from Microsoft documentation at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_93g2.asp[src/gp_msprn.c]
2007-04-07T01:58:38.533291Z Alex Cherepanov
Make the spot function in the high resolution halftone a readable procedure to accomodate CET 29-05-01. Move Berthold K.P. Horn's copyright message into the body of the function to keep them together at all times.[doc/pscet_status.txt lib/gs_init.ps]
2007-04-06T15:58:56.468981Z Alex Cherepanov
Following Adobe implementation don't restore the operand of --begin-- when it overflows the dictionary stack. Fix CET 20-02-02. DETAILS: Implement the approach suggested by L. Peter Deutsch. - Change the check_dstack macro in dstack.h so it works the same as check_estack in estack.h -- i.e., if the current dstack block is full, call ref_stack_extend and then only return an error if ref_stack_extend fails. - Change the handling of e_dictstackoverflow in interp.c so it works the same as e_execstackoverflow -- i.e., it doesn't try to extend the stack. - Change the implementation of zbegin in zdict.c to work like check_dstack. I.e., if the current dstack block is full, call ref_stack_extend; if ref_stack_extend returns e_dictstackoverflow, pop the operand from the ostack before returning the error code. With this approach, the interpreter does not have to know anything about special handling of dictstackoverflow, and the right thing happens in the special case of the 'begin' operator.[doc/pscet_status.txt src/zdict.c src/dstack.h src/interp.c]
2007-04-06T10:17:36.503282Z leonardo
Fix : MSVC8 warnings. Also replaced cumbersome type casts and fixed ambiguous naming in gxclread.c .[src/gxwts.c src/gswts.c src/gxclread.c]
2007-04-06T04:17:48.623209Z Henry Stiles
make gdevdevn a dependency of the transparency library since it gdevp14 now depends on it.[src/lib.mak]
2007-04-06T04:11:32.256255Z Henry Stiles
force the wts device to always band.[src/gdevwts.c]
2007-04-06T04:11:00.512053Z Alex Cherepanov
Accept a perfectly valid 0-length pattern stream. Work around a strange restriction on 0-length target string in the readstring operator. Fix bug 689162.[lib/pdf_draw.ps]
2007-04-06T02:43:19.702262Z Timothy Osborn
Splitting graphics library from interpreter portion of the sample custom color callback[src/gsncdummy.c src/zncdummy.c src/gsncdummy.h]
2007-04-06T02:39:31.953398Z Timothy Osborn
Splitting graphics library from interpreter portion of the sample custom color callback[src/lib.mak src/gsnamecl.h src/int.mak]
2007-04-05T21:34:09.306348Z Ralph Giles
Add #ifdef protection to some new debug printouts for the OutputIntent parameter.[src/gdevpbm.c]
2007-04-05T17:36:43.783101Z Alex Cherepanov
Fix compilation on MSVC 6. Add a best effort simulation of C99 __func__ keyword on older compilers.[src/lib.mak src/gdevdbit.c src/gserror.h]
2007-04-05T01:29:14.432997Z Henry Stiles
fixes a UMR that was caused by a typo.[src/gdevwts.c]
2007-04-03T16:08:49.165033Z Stefan Kemper
Committing Raph's wtsimdi device DETAILS: -r600 -sDEVICE=wtsimdi does a performance optimized clist reader that either directly halftones or uses an intermediate rgb buffer to do non-trivial ROPS correctly then post halftones on a per band basis. Uses icc color profiles to convert to device color. Uses wts halftone algorithm. The device reads in a link icc profile from "link.icc", and WTS halftone files from wts_plane_[0123]. It generates a ppm file that can be used to visualize the halftoned file (it is prepared from the CMYK bits in the procedure write_pkmraw_row in gdevwts.c - if an actual device is available, that routine should be modified to produce data for the device). This device _does_ switch on a per-band basis between continuous tone pathways (true branch of the "if" statement in wtsimdi_create_buf_device) and halftone, based on whether there are rops. That is the major point of the work. This is not yet production ready, but is useful for performance and integration work. Known issues: 1. Banding only, low res non-banding will crash, the device is intended for printer resolution halftoning, at 600dpi The halftones are designed for 600dpi. 2. Color profiles and halftone screens are not in romfs, These need to be copied into the same object/binary directory that the application is in for now. ./pspcl6 and ./wts_* and ./*.icc in the same directory. Failure to find these files will crash. 3. Halftone phase not set correctly in halftone band. 4. copy_mono doesn't optimize all-0 and all-1 colors as much as it should - it can avoid processing the screen at that point. 5. halftone mode implemented only for rgb color model, not CMYK. 6. size of band_colors_used[] array is statically determined[src/gxwts.c src/gxclist.c src/gxdevbuf.h src/gxwts.h src/gxclist.h src/gxgetbit.h src/gdevwts.c src/gdevdbit.c src/gxbitfmt.h src/gxclread.c src/gdevpng.c src/gxclutil.c src/gxclimag.c src/gxcldev.h src/gdevppla.c src/gdevprn.c src/gdevppla.h src/gswts.c src/gdevprn.h src/gxclpath.c src/gxclrect.c]
2007-04-02T22:34:51.451596Z Alex Cherepanov
Change CET 17-06-02 to AOK. Ghostscript generates correct results at 300 dpi and above.[doc/pscet_status.txt]
2007-04-02T21:43:37.719440Z Alex Cherepanov
Change CET 17-04-02 and 17-05-02 to AOK. Ghostscript generates correct results at 300 dpi and above.[doc/pscet_status.txt]
2007-04-02T18:25:44.568365Z leonardo
Fix (pdfwrite) : a composite font with a Type 3 descendent and FMapType 2 (continued). DETAILS : Patch from SaGS with minor improvements. Bug 688639 " pdfwrite: a composite font with a Type 3 descendent and FMapType 2". The last patch deosn't correctly accommodate the code from SaGS.[src/gdevpdtc.c]
2007-04-01T21:46:50.065374Z leonardo
Fix (pdfwrite) : a composite font with a Type 3 descendent and FMapType 2 DETAILS : Patch from SaGS with minor improvements. Bug 688639 " pdfwrite: a composite font with a Type 3 descendent and FMapType 2". See comment #13 in the bug report.[src/gdevpdtc.c]
2007-04-01T19:14:49.835812Z leonardo
Fix (ps2write) : Device initialization problems. DETAILS : Patch from SaGS with a minor improvement. See bug 688856 comments 11,12,13 for details.[src/gdevpdfx.h src/gdevpdfp.c src/gdevpdfd.c src/gdevpdfb.h lib/gs_pdfwr.ps]
2007-04-01T18:27:55.285455Z leonardo
pscet_status.txt : Closing 11-16-8, which appears eventually fixed; Passing 17-04-2 to Alex.[doc/pscet_status.txt]
2007-04-01T07:39:25.772162Z Ray Johnston
Fix typo that caused undefined during build.[src/gdevrops.c]
2007-04-01T07:06:00.179365Z leonardo
Fix : MSVC warnings. DETAILS : The custom color callback patch was not accommodated to the color space reference count patch.[src/gscie.h src/gscscie.c src/gxcspace.h src/gscsepr.c src/gscspace.c src/gsicc.c src/gspcolor.c src/gscdevn.c src/gscie.c src/gscolor2.c]
2007-03-29T23:26:10.038260Z Alex Cherepanov
Change CET 09-56-03 to OK. Ghostscript matches Tek360 checksum. CPSI-based PhotoPrint product is wrong again.[doc/pscet_status.txt]
2007-03-29T00:53:36.234691Z Alex Cherepanov
Don't store part of the state of readhexstring in not yet written bytes of the target string to avoid the string modification when the operator fails and the stack is restored. Fix CET 23-20-01. DETAILS: Pack the state into a single 32-bit word for the convenience of reusing the procedures that take a single integer value as a state. DIFFERENCE: No other CET or Comparefiles differences.[doc/pscet_status.txt src/zfileio.c]
2007-03-28T16:03:31.220336Z Alex Cherepanov
Propagate CloseSource or CloseTarget flags to the temporary stream created by filter_ensure_buffer(). Fix CET 23-12k-02. DIFFERENCE: No other CET or Comparefiles differences.[doc/pscet_status.txt src/zfilter.c]
2007-03-27T22:44:40.516433Z Alex Cherepanov
Change the status of CET 17-01-07, 17-02-06, and 17-02-07 to AOK. Ghostscript matches Tek and Distiller 5, CPSI is wrong here.[doc/pscet_status.txt]
2007-03-27T17:39:51.715201Z Alex Cherepanov
Make FontBBox a required attribute in CPSI compatibility mode. PLRM says that it's a required attribute and recent Adobe interpreters enforce this. Fix CET 15-11.[doc/pscet_status.txt src/zchar.c]
2007-03-27T02:55:14.620042Z Alex Cherepanov
Change the status of CET 11-18-6 to AOK. Adobe interpreters have obvious rendering bugs that are hard to simulate in Ghostscript.[doc/pscet_status.txt]
2007-03-26T00:36:09.521618Z Alex Cherepanov
Clear a Purify warning. Fix yet another case where a non-0-terminated string was directly used as a sscanf() argument, causing an access to the wild core.[src/gdevpdfm.c]
2007-03-25T21:58:01.514677Z Alex Cherepanov
Add a new option for ignoring an Encoding entry of a True Type font dictionary. Work around the bug 688596. DETAILS: This patch provides a workaround for PDF documents that include an incorrect Encoding entry for a True Type font dictionary. Using the new command line option -dIgnoreTTEncoding one can force the PDF interpreter to use an encoding specified in the 'cmap' table of embedded True Type fonts. When it is specified, the Encoding dictionary is not tested for PDF comformity.[lib/pdf_font.ps doc/Use.htm]
2007-03-25T20:16:59.028603Z Alex Cherepanov
Clear a Purify warning. Search for the EOD marher not earlier than the start of the data buffer.[src/sa85d.c]
2007-03-25T17:47:16.863668Z Alex Cherepanov
Don't check current row position in the mask of the image type 3x when the mask is not defined. Fix an infinite loop. Fix the bug 688912, and a part of the bug 689138.[src/gximag3x.c]
2007-03-25T14:48:19.599692Z Alex Cherepanov
Fix an off-by-one error in the glyph array sorting logic detected by Purify.[src/gxfcopy.c]
2007-03-25T04:18:56.724059Z Alex Cherepanov
Clear a Valgrind warning. Initialize a buffer overshot area in CCITTFaxDecode filter. Bug 688905.[src/scfd.c]
2007-03-24T17:28:22.209822Z Timothy Osborn
Changing C++ comments to C format comments[src/gdevp14.c]
2007-03-24T16:31:23.728641Z Alex Cherepanov
Fix C++ -style variable definition introduced by the previous commit, which is not supported by older compilers: MSVC 6, gcc 2.96.[src/gscspace.c]
2007-03-23T13:56:11.260385Z Timothy Osborn
Custom color hooks code merge[src/gsimage.c src/gstext.c src/gscscie.c src/gdevtsep.c src/gxdcolor.h src/gsciemap.c src/gsicc.c src/gscdevn.c src/gscie.c lib/pdf_main.ps src/gdevdsp.c src/gdevpsd.c src/lib.mak src/gdevdflt.c src/gsncdemo.c src/gsdps1.c src/gdevdevn.c src/zusparam.c src/gxdevice.h src/gdevdevn.h src/iparam.c src/zfapi.c lib/pdf_ops.ps src/gsstate.c src/gdevp14.c src/gxclist.c src/gxcmap.c src/gsstate.h src/gdevp14.h src/ztrans.c src/gstrans.c src/gxblend.c src/gdevpbm.c src/gstrans.h src/gxclip.c src/gxblend.h src/gscspace.c src/gsnamecl.c src/gdevrops.c src/gscolor2.c src/zcolor3.c src/gdevpnga.c src/gscspace.h src/gxistate.h src/gsnamecl.h src/gsdparam.c src/gdevbbox.c src/gxclipm.c src/gxcie.h src/gdevnfwd.c src/gdevprn.c src/gspaint.c src/gscsepr.c src/gsutil.c src/gxclip2.c src/gxdevcli.h]
2007-03-21T01:48:30.497976Z leonardo
Fix (PDF interpreter, pdfwrite) : Transparently pass unusialrenedering modes. DETAILS : Bug 689124 "Converting PDF to PDF makes text non-selectable" The old code transformed a text with unusual rendering mode into outlines. 1. When the current device is pdfwrite, the new code of PDF interpreter doesn't emulate unusual rendering modes. (Patch from Alex). 2. pdfwrite transparently passes unusual rendering modes.[src/gdevpdtt.c lib/pdf_ops.ps]
2007-03-19T04:27:34.509606Z Ralph Giles
Correct a typo in the indexed colorspace support for the luratech JPX decoder.[src/sjpx_luratech.h]
2007-03-15T02:13:09.397460Z Alex Cherepanov
Reset the dashed line array at initgraphics. Fix CET 09-28-01.[doc/pscet_status.txt src/zgstate.c]
2007-03-15T00:49:11.591683Z Ralph Giles
Update an additional version number.[doc/News.htm]
2007-03-15T00:44:21.345487Z Ralph Giles
Bump the revision number after the 8.56 release.[doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]
This is a stable release in the 8.5x series of Ghostscript. It contains a numerous bug fixes and improvements. Most significantly, comformance with the Quality Logic CET suite for Postscript has been improved, and a special 'gs_cet.ps' prefix file can be sent with a job to produce output closer to that of the reference implementation.
This is our first release since Ghostscript 8.54. The 8.55 version number was skipped to avoid confusion with a GNU release.
The following bugs were open at the time of this release:
226943, 405501, 430175, 465936, 493348, 530011, 535932, 578865, 592160, 610478, 614298, 626295, 686747, 686853, 686865, 687011, 687039, 687084, 687095, 687108, 687125, 687146, 687193, 687196, 687219, 687229, 687231, 687250, 687257, 687271, 687280, 687295, 687297, 687303, 687316, 687327, 687342, 687345, 687346, 687375, 687397, 687399, 687414, 687445, 687460, 687475, 687484, 687492, 687498, 687514, 687520, 687531, 687536, 687559, 687561, 687593, 687595, 687608, 687630, 687650, 687666, 687674, 687677, 687679, 687680, 687695, 687697, 687702, 687715, 687721, 687728, 687729, 687731, 687775, 687780, 687782, 687793, 687796, 687805, 687814, 687844, 687850, 687863, 687887, 687899, 687903, 687904, 687907, 687915, 687919, 687931, 687950, 687957, 687960, 687970, 687974, 687977, 687978, 687981, 687983, 687988, 688006, 688007, 688009, 688020, 688022, 688024, 688026, 688032, 688035, 688036, 688042, 688054, 688058, 688061, 688064, 688066, 688071, 688072, 688075, 688081, 688095, 688108, 688124, 688129, 688130, 688134, 688151, 688152, 688159, 688166, 688184, 688187, 688200, 688203, 688204, 688207, 688210, 688215, 688225, 688227, 688239, 688243, 688267, 688269, 688274, 688280, 688282, 688283, 688288, 688291, 688295, 688311, 688312, 688317, 688318, 688320, 688323, 688332, 688333, 688337, 688338, 688339, 688342, 688358, 688359, 688360, 688361, 688363, 688372, 688375, 688378, 688383, 688386, 688387, 688389, 688395, 688396, 688400, 688410, 688413, 688425, 688427, 688428, 688429, 688434, 688436, 688437, 688440, 688446, 688448, 688468, 688473, 688475, 688477, 688479, 688483, 688490, 688493, 688495, 688500, 688515, 688517, 688518, 688526, 688528, 688532, 688533, 688539, 688540, 688542, 688543, 688557, 688565, 688573, 688580, 688581, 688584, 688588, 688596, 688598, 688601, 688604, 688605, 688610, 688616, 688617, 688619, 688621, 688626, 688627, 688633, 688634, 688635, 688636, 688637, 688638, 688639, 688643, 688646, 688647, 688651, 688653, 688655, 688671, 688672, 688673, 688674, 688683, 688696, 688697, 688699, 688708, 688709, 688710, 688711, 688712, 688714, 688717, 688728, 688730, 688731, 688734, 688736, 688738, 688739, 688740, 688755, 688757, 688762, 688770, 688777, 688778, 688796, 688797, 688806, 688807, 688808, 688809, 688811, 688813, 688814, 688815, 688818, 688826, 688828, 688829, 688830, 688834, 688843, 688845, 688846, 688856, 688858, 688870, 688871, 688872, 688876, 688877, 688878, 688899, 688903, 688904, 688905, 688906, 688907, 688908, 688909, 688910, 688912, 688914, 688915, 688916, 688917, 688918, 688919, 688920, 688923, 688924, 688925, 688926, 688928, 688933, 688934, 688940, 688942, 688943, 688945, 688949, 688952, 688954, 688958, 688965, 688969, 688970, 688971, 688976, 688977, 688978, 688979, 688981, 688983, 688986, 688990, 688991, 688992, 688994, 688998, 688999, 689001, 689002, 689003, 689010, 689011, 689013, 689014, 689016, 689021, 689022, 689025, 689026, 689028, 689031, 689032, 689036, 689038, 689040, 689041, 689044, 689046, 689048, 689050, 689053, 689055, 689056, 689057, 689058, 689060, 689065, 689068, 689070, 689076, 689077, 689078, 689080, 689081, 689085, 689090, 689092, 689093, 689094, 689098, 689101, 689103, 689104, 689105, 689106, 689107, 689111, 689114, 689115, 689116, 689117, 689122, 689123, 689124, 689126, 689127, 689128, 689129, 689130, 689131, 689132, 689133, 689134, 689136, 689137, 689138.
There are no known incompatible changes at this point.
2007-03-15T00:02:10.064485Z Ralph Giles
Handle empty log messages.[toolbin/split_changelog.py]
2007-03-14T21:35:45.571769Z Ralph Giles
Remove romfs.dev from FEATURE_DEVS_ALL. It is no longer optional.[src/Makefile.in]
2007-03-14T21:15:00.798517Z Ralph Giles
Update revision, dates, and list of open bugs for 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 doc/Maintain.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 src/dwsetup.rc 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 src/winint.mak 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/History4.htm man/ps2pdfwr.1 doc/Ps2epsi.htm man/ps2ps.1 doc/History5.htm doc/History6.htm]
2007-03-13T22:40:29.048961Z leonardo
Fix (stroking) : Apply the right math for computing always_thin, DETAILS : The old code estimated the line width with an empiric formula, which doesn't look well defined. Replacing it with a right math. See comment in code.[src/gxstroke.c]
2007-03-13T22:35:51.420875Z leonardo
Fix (stroking) : Apply the right math for computing always_thin, DETAILS : The old code estimated the line width with an empiric formula, which doesn't look well defined. Replacing it with a right math. See comment in code.[doc/pscet_status.txt src/gxstroke.c]
2007-03-11T20:47:13.652729Z leonardo
pscet_status.txt : Closing 11-06-5.[doc/pscet_status.txt]
2007-03-11T17:43:34.501551Z leonardo
Fix (user paths) : Wrong current point after uappend closepath. DETAILS : The old code missed the subpath starting point after uappend. Also removing the code for copying current point from path in user path operations, because gs_upmergepath now performs this job fine.[doc/pscet_status.txt src/gspath.c src/zupath.c]
2007-03-11T16:29:11.261904Z Alex Cherepanov
Rename "ref dash_pattern" to avoid confusion with "float dash_pattern[]".[src/zgstate.c src/igstate.h]
2007-03-11T13:46:54.105020Z leonardo
Fix : MSVC compiler warnings. DETAILS : The patch http://ghostscript.com/pipermail/gs-cvs/2007-March/007345.html is incomplete. More const qualifiers are now removed.[src/zimage.c src/gxiparam.h src/gxcmap.c src/iimage.h src/gximage.c src/gximage1.c src/gximage3.c src/gsipar3x.h src/gximage4.c src/gxclrast.c src/gximag3x.c src/gdevpdfi.c src/gsiparam.h src/gsiparm3.h src/gsiparm4.h]
2007-03-11T09:10:05.985706Z leonardo
pscet_status.txt : Improving assignments.[doc/pscet_status.txt]
2007-03-09T20:41:25.398262Z Ray Johnston
Add a utility to dump out information about PDF files. Fix for customer #259. DETAILS: This is intended as an example since most customers will want specific info, but it also is slightly handy. We may want to do 'pdf_info' scripts and .bat files in lib/ but these can be added later. usage: gs -dNODISPLAY -q -sFile=____.pdf [ options ] toolbin/pdf_info.ps where "options" are: -dDumpMediaSizes MediaBox and CropBox for each page -dDumpFontsUsed List fonts used -dShowEmbeddedFonts only meaningful with -dDumpFontsUsed Sample 'full' output looks like: examples/annots.pdf has 6 pages. Title: Microsoft Word - Links.doc Author: August D. Coby Creator: ADOBEPS4.DRV Version 4.24 Producer: Acrobat Distiller 4.0 for Windows CreationDate: D:20000420231130Z ModDate: D:20040413162329-07'00' Page 1 MediaBox: [ 612 792 ] CropBox: [ 612 792 ] Page 2 MediaBox: [ 612 792 ] CropBox: [ 612 792 ] Page 3 MediaBox: [ 612 792 ] CropBox: [ 612 792 ] Page 4 MediaBox: [ 612 792 ] CropBox: [ 612 792 ] Page 5 MediaBox: [ 612 792 ] CropBox: [ 612 792 ] Page 6 MediaBox: [ 612 792 ] CropBox: [ 612 792 ] Fonts Used: ArialMT IBKJPF+ArialMT JBAHHI+ArialMT[toolbin/pdf_info.ps]
2007-03-08T17:24:28.272086Z Raph Levien
Remove unnecessary zeroing out of reference count of indexed color space map structure. Eliminates warnings when run with -Z?[src/zcsindex.c]
2007-03-08T00:27:45.225750Z Ray Johnston
Missing (yet another) dependency -- string_.h. It probably was not a problem.[src/int.mak]
2007-03-07T21:22:02.986768Z Ralph Giles
Update the makefile with new header dependencies added in r7198.[src/int.mak]
2007-03-07T20:35:24.409027Z Stefan Kemper
Fix image banding error with high level images ctm. Fixes ridt91.eps (ppmraw/300dpi/banded)[src/gxclimag.c]
2007-03-07T00:12:53.750515Z Timothy Osborn
Changed assignment from Igor to Tim for items marked same-as some items already marked OK.[doc/pscet_status.txt]
2007-03-06T21:40:32.469232Z leonardo
Fix (Type 1 interpreter) : Account the replaced side bearing in setcurrentpoint. DETAILS : When the side bearing is replaced with Metrics or Metrics2, the old code didn't account that while executing setcurrentpoint, so that further outline poles go to wrong (unreplaced) coordinates. Fixes CET 16-03-2.[doc/pscet_status.txt]
2007-03-06T21:37:14.025835Z leonardo
Fix (Type 1 interpreter) : Account the replaced side bearing in setcurrentpoint. DETAILS : When the side bearing is replaced with Metrics or Metrics2, the old code didn't account that while executing setcurrentpoint, so that further outline poles go to wrong (unreplaced) coordinates. Fixes CET 16-03-2.[src/gstype1.c src/gstype2.c src/gxtype1.c src/gxtype1.h]
2007-03-06T19:46:12.663281Z Ralph Giles
Resolve version control Id line issues flagged by the regression run.[doc/pscet_status.txt src/gxhintn1.c doc/Testing.htm doc/Psfiles.htm lib/jobseparator.ps]
2007-03-06T17:24:58.366068Z leonardo
Fix (TT interpreter) : memory leaks with PCL (continued). DETAILS : The last patch doesn't compile with gcc due to a redundsnt typedef.[src/gxttfb.c]
2007-03-06T14:35:00.233763Z leonardo
Fix (TT interpreter) : memory leaks with PCL. DETAILS : 1. The old code created gx_ttfMemory instance per font, but only the first one is used. Others are leaks. The new code create one instance per font directory. The new field gs_font_dir::ttm works for that. 2. For proper lock count on memory errors, don't call Context_Destroy if Context_Create was not called. 3. In ttobjs.c don't use exec->current_face for accessing ttfMemory, because PCL closes fonts when they are not active in the TT interpreter. The new field Execution_Context::memory works for that.[src/gxfcache.h src/gxttfb.c src/gsfont.c src/ttfmemd.c src/ttfmain.c src/ttobjs.c src/ttobjs.h]
2007-03-05T21:50:20.543548Z Raph Levien
Remove stray debug print that was left in previous commit (colorspace refcount patch).[src/gscscie.c]
2007-03-05T21:09:35.951840Z Raph Levien
Non-backwards compatible change: use consistent reference count allocation discipline for color spaces. Previously, color spaces were allocated on stack, on the heap, as sub-structures within other color space structures, and were very commonly copied. Reference counting was used for the "params" block of some, but not all, color spaces, but there were correctness problems with that logic. In addition, a number of "const" qualifiers have been removed, because the action of bumping the reference count on an object is not consistent with the C semantics of const. This change is required to resolve problems with enhancement 688924. It should also help with memory leaks. Other clients, such as the PCL interpreter, will require changes to be compatible. For simple device colorspaces, the change to gs_setcmykcolor() (gscolor1.c) is representative of the code change required.[src/gsimage.c src/zimage.c src/zshade.c src/gslibctx.c src/gscscie.c src/gdevpdfb.c src/gdevpdfc.c src/gdevpdfg.c src/gxclrast.c src/zpcolor.c src/zicc.c src/gspcolor.c src/gdevps.c src/gdevpdfi.c src/gsicc.c src/gscdevn.c src/zcssepr.c src/gdevpdfk.c src/zcie.c src/gdevpdfg.h src/lib.mak src/gsicc.h src/gscdevn.h src/zcspixel.c src/gsrefct.h src/gdevpsdi.c src/gdevpdfv.c src/zcolor.c src/gscolor.c src/gsiparam.h src/gxshade6.c src/gscssub.c src/gdevp14.c src/gsstate.c src/gxclpath.c src/gsptype1.c src/zcsdevn.c src/gscpixel.c src/gxcmap.c src/gsptype1.h src/icsmap.h src/gsistate.c src/gscpixel.h src/gxshade.c src/gximag3x.c src/zcsindex.c src/gscspace.c src/gscolor1.c src/gscolor2.c src/zcolor2.c src/gscolor3.c src/gscspace.h src/gxistate.h src/gscolor2.h src/gxpcmap.c src/gxcspace.h src/gxcdevn.h src/gxcolor2.h src/gscsepr.c src/gscindex.h src/gscsepr.h]
2007-03-05T17:12:51.517731Z Timothy Osborn
Reassinged shading issues to Igor[doc/pscet_status.txt]
2007-03-05T05:30:38.914444Z Raph Levien
Make sure that memory for jpeg_decompress_data gets allocated from the same memory as the stream structure that owns it. Previously, the stream structure would be allocated in global, and the jddp in stable local, which is a violation of GC invariants. Fixes bug 689118, which was a GC crash in the regression file H00216q.pdf.[src/zfdctd.c]
2007-03-04T21:31:28.032123Z leonardo
pscet_status.txt : Closing 11-24-3 .[doc/pscet_status.txt]
2007-03-04T18:25:04.375026Z Alex Cherepanov
Fix X mirroring for all color modes of the interpolated image. The mirroring was missing from non 8 bits/colorant modes resulting in the mirrored output images.[src/gxiscale.c]
2007-03-04T17:08:25.140696Z leonardo
Fix (user paths) : Remove the uneven behavior with uappend. DETAILS : 1. uappend was fixed to ignore the incorrfect placement of ucache in the CPSI compatibility mode. However in contradiction to other user path operators, CPSI has no uneven behavior with uappend, so changing upath back to the regular behavior. 2. Don't change current point if uappend fails. Likely it was an inaccuracy in a recent patch. 3. Change other user path assignment for more efficiency.[doc/pscet_status.txt src/zupath.c]
2007-03-04T16:41:00.611078Z Ray Johnston
Free up any previous line_ptrs in a memory (image) device before allocating new ones. This allows multiple calls to setup_buf_device without leaking memory (as seen with the PCL allocator that does not have garbage collection).[src/gdevprn.c]
2007-03-04T16:37:32.768972Z Ray Johnston
The index file should not be compressed. It is small, and if it ever did get compressed, it would SEVERELY impact performance since the entire list gets processed on every band.[src/gxclist.c]
2007-03-03T03:51:56.270202Z Alex Cherepanov
Fix a stack nix-up that occured when cm operator was used inside BT/ET block. Bug 688985, customer 580.[lib/pdf_draw.ps]
2007-03-02T05:55:00.252985Z Henry Stiles
accommodate parsing of undocumented color treatments (689100) which appear to have no effect.[src/gdevpxen.h]
2007-03-01T20:17:09.177569Z leonardo
Fix (pdfwrite) : Handle a text with degenerate CTM. DETAILS : The old code failed with undefinedresult when writing a text to output with degenerate CTM. The new code writes it somehow to provide searchability. See comment in code. Such text is not visible in rendering. We don't care about 'Tj' optimization because such cases are rare.[src/devs.mak]
2007-03-01T20:15:49.273788Z leonardo
Fix (pdfwrite) : Handle a text with degenerate CTM. DETAILS : The old code failed with undefinedresult when writing a text to output with degenerate CTM. The new code writes it somehow to provide searchability. See comment in code. Such text is not visible in rendering. We don't care about 'Tj' optimization because such cases are rare.[src/gdevpdts.c]
2007-03-01T15:27:39.443405Z leonardo
Fix (graphics) : Imprecise current point after drawing an arc (continued). DETAILS : The old code uses 'fixed' representation for an angle of an arc. It appears insufficiently precise. The new code performs the angle computations in doubles. The patch intentionally doesn't change the algorithm.[doc/pscet_status.txt src/gspath1.c]
2007-03-01T12:50:10.538308Z leonardo
Fix (fuzzy.c) : An incorrect image difference format for multipage files. DETAILS : The old code created a single header for the image difference, which describes the first page only. Further pages were written with no header. Also the output buffer length was incorrect when pages have different sizes. It caused heap corruption. The new code creates a new file for each page difference.[toolbin/tests/fuzzy.c]
2007-03-01T02:26:03.339465Z Alex Cherepanov
When a chain of decoding filters encounters EOF, close the last filter in the chain. This seems to contradict PLRM3 but matches the observed behavior of Adobe interpreters. Bug 688745, customer 384. DETAILS: Contrary to PLRM3, Adobe interpreters close disk files and filters equaly. Old Ghostscript code was inconsistant and closed the first and the last filters in the chain, or the last 2 filters depending whether the first file is a disk file or a filter.[src/stream.c]
2007-02-28T18:49:49.409416Z leonardo
Fix (fuzzy.c) : Multipage files processed incorrectly. DETAILS : When ppmraw writes several pages into a single file, it places a header before each image data. The old fuzzy.c does not expect headers, and reads headers as image data. This change provodes parsing an own header for each page.[toolbin/tests/fuzzy.c]
2007-02-28T17:03:28.849858Z Alex Cherepanov
Validate arguments of the operator startjob. Fix CET 31-10-02.[doc/pscet_status.txt lib/gs_lev2.ps]
2007-02-27T21:11:08.978663Z leonardo
Fix (graphics) : Imprecise current point after drawing an arc. DETAILS : 1. gs_arc_add_inline took current point from fixed point coords in path. Implementing PRECISE_CURRENTPOINT for it. 2. gs_imager_arc_add made private because it changes the interface and none of our interpreters call it. 3. pis->subpath_start is set from arc if a path starts with an arc.[doc/pscet_status.txt src/gspath1.c src/gspath.h]
2007-02-26T16:24:17.305323Z Alex Cherepanov
Fix indeterministic behavior of fuzzy.c with -w > 1. Initialize the rest of the window buffer that would be uninitialized before half_win lines is read.[toolbin/tests/fuzzy.c]
2007-02-25T20:46:03.985068Z Alex Cherepanov
Set upper font cache limit to 1e8 bytes in CPSI compatibility mode. Fix CET 27-02-01.[doc/pscet_status.txt src/gsfont.c]
2007-02-25T19:26:44.964185Z Alex Cherepanov
Fix MSVC-specific code added to fuzzy.c in the rev. 7743.[toolbin/tests/fuzzy.c]
2007-02-25T19:13:16.641987Z Stefan Kemper
Banding fix where triangles where incorrectly detected and rendered as parallelograms when rendering out of the clist. Triangles are only used to fill bevel joins so this occurs infrequently, and the use of fuzzy comparisons will hide all but the largest stroke width errors. Corrects many pcl CET banding/nobanding differences: 28-01 28-02 28-03 28-04 28-05 28-06 28-07 28-10 29-01 29-02 29-08 29-10 29-11 30-01 30-04 30-16 30-19 30-23 31-01 31-02 31-03 31-04 31-05 31-06 31-07 31-08 31-09 31-10 31-11 32-01 32-02 34-03 36-04 36-05[src/gxclrast.c]
2007-02-25T13:58:08.233607Z leonardo
Fix (fuzzy.c) : Further improvements. DETAILS : 1. The old code read past EOF. It happens because the EOF condition doesn't appear when reading the last byte of a page, which is the last byte of the file. Actually EOF happens when attempting to read bytes after the last byte of a page. It caused the old code to think that an extra page presents at file end, and to perform a dummy comparizon of the extra page as it would appear with repeating the last raw of the file. Due to that the old code consumes nearly twice CPU time than neccesary. Fixed with comparing the file position with the file legth in image_pnm_feof. 2. image_get_rgb_scan_line didn't return an error code when insufficient data presents in the file. 3. Optimized fuzzy_diff_images with using memcmp for a faster comparizon of rows. Skip the heavy analyzis of differences when entire rows are equal.[toolbin/tests/fuzzy.c]
2007-02-25T05:06:47.526811Z Alex Cherepanov
Clean up pscet_status.txt and add comments to a few entries.[doc/pscet_status.txt]
2007-02-25T02:09:12.060125Z Alex Cherepanov
In Level 3, operator setscreen takes the value of AccurateScreens from the user parameter even with the dictionary argument. PLRM p682. Partly fix CET 09-49-02[doc/pscet_status.txt lib/gs_dps2.ps]
2007-02-24T15:32:48.711895Z Alex Cherepanov
Set /errorinfo to null in the error handler when it undefined. Fix missing 'null' in CET 09-47c and 09-47j.[doc/pscet_status.txt lib/gs_init.ps]
2007-02-23T23:03:23.452670Z Ray Johnston
Fix memory leak (PCL) due to extra gstate creation. PS did not leak thanks to the Garbage Collector. DETAILS: If a pattern PaintProc did a gsave/grestore the grestore would detect that the base graphics state did not have an underlying 'saved' graphics state and would create one (due to the need for PostScript to always have two graphics states on this graphics state stack/list). When gx_pattern_load freed the graphics state it created, the (possible) underlying graphics state would not get freed. Since the PostScript allocator (that supported garbage collection) would locate and free the unconnected graphics state this was not seen with PostScript. The gs_state_free_chain function was created in case there are other clients that need this function (pdfwrite ?)[src/gsstate.h src/gxpcmap.c src/gsstate.c]
2007-02-23T22:05:37.560889Z Alex Cherepanov
Use stricter validation of the pattern dictionary parameters to match CET 18-02c and 18-02d. DETAILS: In particular, don't accept the degenerative matrix, unnormalized, or empty bounding box. The difference in the operand stack in CET 18-02c is not yet fixed. Adobe doesn't restore operands of rectfill operator when an error happen in the PaintProc procedure but Ghostscript does.[doc/pscet_status.txt lib/gs_lev2.ps src/zpcolor.c lib/pdf_ops.ps]
2007-02-23T18:32:39.440312Z Timothy Osborn
Changed status to AOK for 09-47B-11 Test05 and Test06[doc/pscet_status.txt]
2007-02-23T17:31:15.655333Z Timothy Osborn
Changed status to AOK for 09-47B-11 Test10 and Test11[doc/pscet_status.txt]
2007-02-23T17:04:07.479609Z Timothy Osborn
Changed status to AOK for 09-47B-10 Test10 and Test11[doc/pscet_status.txt]
2007-02-23T13:29:37.822169Z L. Peter Deutsch
Changes the 'token' operator so it does not pop the operand on an invalidaccess error, for Adobe compatibility.[src/ztoken.c]
2007-02-22T15:39:15.380404Z Alex Cherepanov
Set bottom limit of 100000 on the font cache size in the compatibility mode to match Adobe interpreters. Partial fox for CET 27-07-01.[doc/pscet_status.txt src/gsfont.c]
2007-02-22T03:10:49.737762Z Alex Cherepanov
Don't include systemdict, globaldict, and userdict into the array of dictionaries that is pushed to the operand stack on dictstackoverflow. Partly fix CET 20-02-02.[doc/pscet_status.txt src/interp.c]
2007-02-22T00:39:53.016232Z Ray Johnston
Previous CPSI_PPM files had been run with a (bogus) RenderingIntent ProcSet in force that (among other things) redefined the 'show' op as a procedure. This ProcSet appears to be a method to use different color matching depending on the type of imaging operation (fill, stroke, show, image, shfill). The casper.ghostscript.com:/home/ray/PSLL3/CPSI_PPM directory is now updated with the results obtained when the RenderingIntent ProcSet is disabled. The interesting thing is that many pages that CPSI previously could not render now work (some that did render now do not) and that GS now matches several more files than previously. The status indicates "OK" where GS matches CPSI (close enough) and removes the 'cpsi missing' where we now have CPSI results available. Some pages are changed to "DIFF" status and assigned, indicating that a fix (or an intelligent review) is needed. Please email me with any questions.[doc/pscet_status.txt]
2007-02-21T22:16:53.963317Z Alex Cherepanov
Change the parameter validation order in execstack to match CET 20-03.[doc/pscet_status.txt src/zcontrol.c]
2007-02-21T20:24:45.557583Z Ray Johnston
Fix regression on 124-01.ps. Emulate bizarre Adobe behavior so that the procedure operand of a 'for' is not executed when BOTH the initial value and the increment are 0 (or 0.0). Seen with CET 28-07 and FTS 124-01 and verified with custom test file against CPSI. EXPETECTED DIFFERENCES: None (this time).[src/zcontrol.c]
2007-02-21T15:02:42.033266Z Ray Johnston
Fix for language_switch build 'invalidrestore. Allow filter allocation in systemVM as needed by .runstring and .runstringbegin in gs_init.ps. This fixes problem intoduced by rev 7629. EXPECTED DIFFERENCES. None. Note that CET 23-12W that was fixed with rev 7629 is OK with this change since the 'use_space' is not limited by 'save_space'.[src/zfilter.c]
2007-02-21T14:43:50.287589Z Alex Cherepanov
Make redefined /quit a procedure to match CET 28-10-01.[doc/pscet_status.txt lib/gs_lev2.ps]
2007-02-21T01:14:19.825556Z Alex Cherepanov
Reclassify CET 23-12W-4 as OK.[doc/pscet_status.txt]
2007-02-21T00:16:24.688423Z Ray Johnston
Fix CET 28-05-2, Adobe CPSI and Tek do not execute procedure if increment value is 0. The PLRM does not mention increment value == 0. EXPECTED DIFFERENCES. None.[doc/pscet_status.txt src/zcontrol.c]
2007-02-20T23:54:19.102684Z Alex Cherepanov
Require resource category to be a name in the findresource operator. Convert 1st operand to a name if it's a string. Fix CET 23-13-04.[doc/pscet_status.txt lib/gs_res.ps]
2007-02-20T23:35:19.366880Z Alex Cherepanov
Fix CET 20-23-01 - undefine /deviceinfo from systemdict in gs_cet.ps[doc/pscet_status.txt lib/gs_cet.ps]
2007-02-20T20:54:55.794850Z Alex Cherepanov
Reclassify 20-27-1 as AOK. Contents of $error is device-dependent.[doc/pscet_status.txt]
2007-02-20T19:38:26.900624Z Ralph Giles
Minor modifications to the parallel job launch script. Take an -r option to mark the report with a revision number, and add more stats to the output.[toolbin/tests/run_parallel]
2007-02-20T19:25:10.472981Z Ray Johnston
Update comments on some pages and change some assignments to Alex that are error message differences. Two more pages resolved.[doc/pscet_status.txt]
2007-02-20T16:40:21.043788Z Timothy Osborn
Changed status to OK for 09-47I-3 Test11[doc/pscet_status.txt]
2007-02-20T16:25:41.041973Z Timothy Osborn
Editing change for 09-47B-7, Test01 and Test02[doc/pscet_status.txt]
2007-02-20T16:23:39.231043Z Timothy Osborn
Changed status to AOK for 09-47B-7, Test01 and Test02[doc/pscet_status.txt]
2007-02-20T03:55:36.436290Z Alex Cherepanov
Fix CET 29-02 - increment page count after copypage operation.[doc/pscet_status.txt lib/gs_init.ps]
2007-02-19T20:22:08.118775Z Stefan Kemper
Fix for banding of some images not matching non-banding output. Added check for an invariant that the translation matches in the two matrixes used in rendering. In this case the non-high level image path is taken. A better solution would be to a single matrix, as this will increase the display list size for some files. Fixes banding differences in: 035-01.ps 148-11.ps 148.16.ps 1_2001.pdf 455690.pdf Bug687832.pdf Bug687840.pdf a.pdf adesso4.pdf bc_02a01_cal.pdf dave.pdf file2.pdf foo.pdf john_clippedimage.pdf messenger.pdf messenger16.pdf ngnews1.pdf rotate180.pdf rotate270.pdf rotate90.pdf pcl5ccet/15-03.BIN + ufst[src/gxclimag.c]
2007-02-19T06:16:13.609799Z Ray Johnston
Change 35_all-6 to OK since regression testing shows that it is now OK.[doc/pscet_status.txt]
2007-02-19T03:19:41.021316Z Alex Cherepanov
Move redefinition of product, version, revision, and serialnumber in CET prologue from userdict to systemdict to meet CET 20-15-01.[doc/pscet_status.txt lib/gs_cet.ps]
2007-02-19T00:38:04.570312Z Alex Cherepanov
Reproduce the algorithm used by Adobe to grow the dictionary to match CET 20-01-01.[doc/pscet_status.txt src/idict.c]
2007-02-17T15:55:51.631627Z Alex Cherepanov
Reclassify 20-25-01 as OK because it matches Tek and PhotoPrint is clearly wrong here.[doc/pscet_status.txt]
2007-02-17T14:14:09.648281Z Alex Cherepanov
Throw /invalidfont error when glyph 0 is accessed but it is missing from the type 32 font, DETAILS: CET 35_all-12 checks, among other things, how glyphshow operator handles type 32 fonts without glyph 0. This patch add a check to the BuildGlyph procedure of type 32 font for the missing 0 glyph that throws /invalidfont error. The offending command name is retrieved from the text enumeration structure using a new operator: .getshowoperator[doc/pscet_status.txt src/zcharx.c src/int.mak src/zfont32.c lib/gs_typ32.ps]
2007-02-16T20:40:10.924118Z leonardo
pscet_status.txt : Improving some assignments.[doc/pscet_status.txt]
2007-02-16T19:46:05.775757Z Henry Stiles
assign unassigned problems. Add NF category. NF means "not fixing" in the near term. It should be used if we don't have short term plans to fix a problem.[doc/pscet_status.txt]
2007-02-16T19:08:03.918575Z Ralph Giles
Improve the encapsulation of the raster db by adding exists() and mtime() methods instead of checking the stored files directly in the caller.[toolbin/tests/rasterdb.py toolbin/tests/gscheck_raster.py toolbin/tests/gscheck_pdfwrite.py]
2007-02-16T15:27:49.350851Z leonardo
Fix (stroking) : An imprecise miter limit check. Thanks to Ray Johnston for analyzing this problem and identifying the type of fix. DETAILS : The old code used cap points for computing the miter tangent. However cap points do not precisely represent the stroke direction due a rounding to 'fixed'. The new code uses the precise stroke direction. The new field partial_line::vector is used to pass the direction for zero length dashes.[doc/pscet_status.txt src/gxstroke.c]
2007-02-16T13:25:42.400099Z Alex Cherepanov
Fix error reporting in CET 35_all-06. Add font type 32 to the check for CIDFont resources, which was missing from the rev. 7574 patch.[doc/pscet_status.txt src/zchar.c]
2007-02-16T07:44:07.172841Z leonardo
Fix (type 1 hinter) : An inaccurate estimation of matrix precision. DETAILS : The old code doesn't account the Y scale due to a misprint. It is risky of a fixed overflow while transforming a glyph to the device space. We didn't detect such glitches in practice.[src/gxhintn.c]
2007-02-15T10:58:50.217005Z Ralph Giles
Further atomicize the output of the test result lines.[toolbin/tests/gstestutils.py]
2007-02-15T07:59:50.909402Z leonardo
Fix (type 1 hinter) : An improvement for very small matrices. DETAILS : Debugged with this : /Courier findfont 0.000000000000000000000000000000001 scalefont setfont 72 72 moveto (ASDFGGH) show showpage In fraction_matrix__set the old code computed this->bitshift = 137, and then this->denominator = 1 << this->bitshift gave a nonsnse result 512. Here is the assembler code for the latter statement built with MSVC8 : mov ecx,dword ptr [eax+14h] shl edx,cl It simply drops higher bytes. Looks as MSVC compiler bug. The new code replaces it with strong zero.[src/gxhintn.c]
2007-02-15T03:43:27.194732Z Alex Cherepanov
Clear the current point in strokepath operator when the original path is empty to match CET 11-21-07 and 11-28-09.[doc/pscet_status.txt src/gspaint.c]
2007-02-14T20:47:43.847581Z leonardo
pscet_status.txt : Consider 18-02G-1 as a possible duplicate of 12-01-5.[doc/pscet_status.txt]
2007-02-14T18:23:43.641152Z Alex Cherepanov
Avoid large memory allocation that can happen when random data are recognized as a binary object sequence. Add a preliminary syntax check before allocation of a reference array for a binary object sequence. Bug 688833, customer 1130.[src/iscanbin.c]
2007-02-14T18:19:39.165881Z Ralph Giles
Updates the the parallel regression running. Construct a report out of the log dump, and add a commandline option to run make_testdb instead of run_regression.[toolbin/tests/run_parallel]
2007-02-14T17:31:05.436990Z Henry Stiles
Add analysis from Jan that might be useful in addressing 12-01-05.[doc/pscet_status.txt]
2007-02-13T21:44:37.122483Z leonardo
Fix (type 1 hinter) : Consider quazi-degenerate CMT as degenerate. DETAILS : This improvement is done for PCL tests 18-08.BIN, 18-09.BIN .[src/gxhintn.c]
2007-02-12T20:12:44.367608Z Timothy Osborn
Changed status to AOK for 09-34-2, 09-34-3, 09-34-7, 09-34-12, 09-34-15, 12-02-18, 12-05-3, 12-07B-10[doc/pscet_status.txt]
2007-02-12T14:06:50.930532Z Alex Cherepanov
Change the order of allocations because alloc_save_change_alloc() leaves alloc_change_t structure it allocates in the state that causes SEGV in GC if where member is not initialized. Bug 688833, customer 1130. DETAILS: Allocation of alloc_change_t structure without further initialization happened when allocation of a new run of references failed. The latter may be easily triggered by interpretation of random bytes as a binary object sequence.[src/ialloc.c]
2007-02-12T12:02:52.582461Z leonardo
Fix (interpreter) : Must not remove cshow, kshow procedure operands. DETAILS : This improvement is done for CET 13-12-4.[doc/pscet_status.txt src/zchar.c]
2007-02-12T08:28:32.685785Z leonardo
Fix (interpreter) : Provide a right execution stack on *show errors. DETAILS : This improvement is done for CET 13-12-4. The old code left --%op_show_continue-- on estack when error occors in kshow. The new code defines a nes field gs_tect_enum_s::enum_client_data, which stores the initial operator. If an error happens, op_show_restore puts the initial operator on estack instead the continuation operator. Left hand type casts : *(op_proc_t *)&penum->enum_client_data = zshow used to quiet MSVC compiler warnings about function<-->data casts.[src/gstext.c src/zchar.c src/gxtext.h]
2007-02-11T09:45:31.388669Z leonardo
pscet_status.txt : Improving some inaccurate assignments.[doc/pscet_status.txt]
2007-02-11T09:00:04.714548Z leonardo
pscet_status.txt : Taking text/character rendering problems 11-07-1, 16-03-2, 16-03-3 .[doc/pscet_status.txt]
2007-02-09T16:56:36.182205Z Stefan Kemper
Fix logic expression error preventing -dLeadingEdge=[2,3] from running.[src/gsdparam.c]
2007-02-08T21:07:22.862698Z leonardo
Fix (interpreter) : Early check for degenerate CTM in 'kshow'. DETAILS : Debugged with CET 13-12-4. Note here we don't fix all *show operators, but provide a minimal change for CPSI compatibility against CET tests (gstext.c). Minor change : a misspelled comment in gxchar.c .[src/gxchar.c src/gstext.c]
2007-02-08T13:33:56.049298Z leonardo
Fix (interpreter) : 'noaccess' must be idempotential operator. DETAILS : Debugged with CET 24-09-1. Also removing an obsolete comment. Occasionally discovered a regression with 20-15-1.[doc/pscet_status.txt src/ztype.c]
2007-02-07T21:42:46.099570Z Alex Cherepanov
Check the content of the /Encoding array when the font is created to detect invalid fonts early and match CET test 16-04-01.[doc/pscet_status.txt src/zbfont.c]
2007-02-07T17:19:23.733270Z leonardo
Fix (interpreter) : 'definefont', 'show', 'setcachedevice' error inconformity (continued). DETAILS : The previous patch has been committed from a wrong revision of ztype.c.[src/ztype.c]
2007-02-07T16:44:43.843090Z leonardo
pscet_status.txt : Taking 13-12-4 because I fixed a similar problem.[doc/pscet_status.txt]
2007-02-07T16:30:26.521710Z leonardo
Fix (interpreter) : 'definefont', 'show', 'setcachedevice' error inconformity. DETAILS : 1. The old code throws different errors than CPSI when a FontMatrix is zero (gstext.c, gxchar.c). 2. With CPSI 'noaccess' trows 'invalidaccess' with read-only dictionaries (ztype.c). 3. 'definefont' must return a read-only object (see PLRM) (gs_fonts.ps). Debugged with CET 13-13-6, 13-15-3.[doc/pscet_status.txt src/gxchar.c src/gstext.c lib/gs_fonts.ps src/ztype.c]
2007-02-07T09:39:44.364923Z leonardo
pscet_status.txt : Restoring 09-36-5 as it was in rev 7617.[doc/pscet_status.txt]
2007-02-07T09:30:56.041828Z leonardo
pscet_status.txt : Restoring 09-36-5 as it was in rev 7617.[doc/pscet_status.txt]
2007-02-06T11:07:48.194380Z leonardo
Fix (TT font loader) : Removing a dead code. DETAILS : This change is algorithmically eauivalent : <00030001> .findcmap { something1 } { something2 <00010000> .findcmap { something3 } { something4 <00030001> .findcmap { %removed UNREACHABLE %removed } { %removed somthing5 } ifelse %removed } ifelse } ifelse beacuse something* don't affect .findcmap, and the latter has no side effect . Actually it dead a long ago.[lib/gs_ttf.ps]
2007-02-06T09:50:48.237761Z leonardo
Fix (TT font loader) : Account PDF Encoding with embedded symbolic TT fonts that include cmap platformID=3 specificID=1 . DETAILS : Bug 689083 "PDF embedded TrueType fonts display with wrong characters". Embedded fonts have symbolic flag and Encoding entry. In this case PDF 1.6 spec requires to ignore Encoding and to create a translation table based on cmap 3.0 or 1.0 . However the test document does not provide these cmap tables, so it falls into the "dafault" case (PDF spec 1.6 page 403) : "If a character cannot be mapped in any of the ways described above, the results are implementation-dependent." The old code applied AdobeGlyphList for this case. It appears different than Acrobat 7 does. This patch accounts the document's Encoding entry. Thus the Adobe's implementation dependent behavior appears to be contradicting to general Adobe's requirement for symbolic fonts. Please note that ignoring the document's encoding may give a wrong searchability if the document does not provide ToUnicode. This one does provide, but we believe that's not general.[lib/gs_ttf.ps]
2007-02-06T03:26:52.252449Z Alex Cherepanov
Pad short look-up table in the Indexed color space with 0's in PDF documents when the table comes from a stream. Bug 688987, customer 580. DETAILS: Adobe Acrobat 5 detects that the look-up table is short when the table is a string, unfiltered stream, or ASCIIHexDecode'd stream. When the stream is FlateDecode'd the length of the decoded data is ignored and the raw memory in the buffer is used. In most cases it's 0. We pad all streams and pass strings intact.[lib/pdf_draw.ps]
2007-02-05T17:21:59.005556Z Ray Johnston
One now AOK, minor cleanup on a few other comments.[doc/pscet_status.txt]
2007-02-05T16:58:07.399023Z leonardo
Fix (PDF interpreter) : Allow 2-byte ToUnicode CMap for 1-byte fonts. DETAILS : Bug 689073 "conversion to PDF fails with rangecheck error". First, the supplied test case is definitely incorrect. because it's ToUnicode cmap defines bfchar codes, which fall outside any code space range defined in the CMap. Particularly there are 1-byte bfchar codes, and codespace defines 2-byte codes only. Second, The PDF spec 1.6. page 472 reads : "The CMap file must contain begincodespacerange and endcodespacerange operators that are consistent with the encoding that the font uses. In particular, for a simple font, the codespace must be one byte long." The test case those operators define a 2-byte space for a simple font. However Adobe handles this document, so we provide a tolerance for 1-byte fonts. It appears pretty simple : don't substitute Encoding names for codes over the Encoding length. Note that codes over the Encoding length appear unuseful for the test document. In same time they appear consistent with codespacerange, so there exist a theoretical possibility that same CMap is used with another 2-byte font. Therefore we keep 2-byte codes intact. Note that ToUnicode CMap appears unuseful for both the original and the converted document, because they use standard glyph names only. Possibly Adobe don't issue an error due to that.[lib/pdf_font.ps]
2007-02-04T16:19:41.222295Z leonardo
Fix : MSVC doesn't implement snscanf (continued). DETAILS : The last revision doesn't compile with MSVC6,7, so this is a better one. Patch from SaGS.[src/gp_mswin.c]
2007-02-03T13:30:24.964773Z leonardo
Fix : MSVC doesn't implement snscanf. DETAILS : The revision 7672 doesn't compile with Microsoft Visual C++ 2005, because this compiler doesn't properly define snprintf. The function snsprintf is a part of the C standard ISO/IEC 9899:1999 (E), so we decided to define it in the Windows platform-dependent module. Possibly we'll need a further improvement for other Windows compilers. Minor change : fixed an MSVC cast warning in iscan.c, which has been introduced in revision 7672.[src/iscan.c src/gp_mswin.c src/stdio_.h]
2007-02-03T06:27:14.527305Z L. Peter Deutsch
Updates status to reflect r7672.[doc/pscet_status.txt]
2007-02-03T06:22:04.579686Z L. Peter Deutsch
Adds an error string and error object to the token scanner state, and an error object to interpreter contexts, to allow operators to set an arbitrary object as the "error object" ($error.command) for a PostScript error, and to allow the token scanner in particular to set special error objects for syntax errors. Fixes PS3 CET 23-32-4; partially fixes 21-11-6 and 23-32-2.[src/icontext.c src/iscan.c src/icstate.h src/interp.c src/iscan.h src/iscanbin.c src/ztoken.c]
2007-02-02T20:29:28.504740Z Ralph Giles
Turn off the strict aliasing warnings in the autoconf gcc build. Details: This is slightly dangerous because it can flag real problems the optimizer will trip over. However, Ghostscript's method of implementing inheritance through macro expansion in structure definitions generates hundreds of (not problematic) warnings because the compiler doesn't actually trace through to verify that the referenced members are at the same offset. We cannot fix this easily without making the code much more convoluted, so in the interests of noticing and fixing other warnings, we've decided to turn off this particular check.[src/configure.ac]
2007-02-02T18:54:09.120798Z Alex Cherepanov
Move decryption filter past /SubFileDecode filter installed by the /resolvestream procedure and remove redundant /SubFileDecode filter before decryption. The latter didn't handle the case when the stream length was incorrect. Bug 688722, customer 700.[lib/pdf_base.ps lib/pdf_sec.ps]
2007-02-02T18:24:56.631552Z leonardo
Fix (FAPI) : A wrong encoding for the font SymbolMT. DETAILS : Bug 689049 "ufst fonts not rendering symbol italic greek fonts".[lib/FCOfontmap-PCLPS3 lib/FCOfontmap-PCLPS2]
2007-02-02T04:47:29.781117Z leonardo
Fix (memory management) : Make the NO_INVISIBLE_LEVELS feature be permanent. DETAILS : This change is algorithmically equivalent, It removes some macros, which are not longer in use. For details about NO_INVISIBLE_LEVELS see http://ghostscript.com/pipermail/gs-cvs/2006-April/006467.html Now we believe that NO_INVISIBLE_LEVELS feature has been tested enough (during 10 monthes) to become permanent. Two obsolete macros alloc_restore_state_step, alloc_forget_save are expanded and removed.[src/isave.h src/gxalloc.h src/zvmem.c src/idosave.h src/igcref.c src/igc.c src/ialloc.c src/gsalloc.c src/isave.c]
2007-02-01T19:48:10.557550Z Alex Cherepanov
Generate unique names and create a new Charstrings entries for all elements of the encoding array that need it. Bug 688613, customer 1110. DETAILS: Old code did this only for FirstChar..LastChar range. Other characters were added when they were missing in FirstChar..LastChar and dropped otherwise.[lib/pdf_font.ps]
2007-02-01T17:37:59.714396Z leonardo
Fix (memory management) : Propagate error codes from mark_allocated. DETAILS : This change is algorithmically equivalent, except it returns error code rather than crash when mark_allocated detects a heap damage. The old code implemented "assert" with emitting a segfault. However it's not fully portable, because some platforms may have no memory protection at all. The core of the change is in mark_allocated. Others just an interface changes for passing error codes.[src/isave.h src/zvmem.c src/isave.c]
2007-02-01T03:06:58.503326Z Alex Cherepanov
Bring TrueType font recognition in .loadfontfile procedure up to the level of resourcefont procedure in the PDF interpreter. Identify files starting with <00010000>, (true), (typ1), (ttcf) as TrueType fonts.[lib/gs_ttf.ps]
2007-02-01T02:09:25.308943Z Alex Cherepanov
Change the status of 09-56-1 to AOK. /GenericImagesetter and /AppleMonitor are sample CRD's left in the final product by a sloppy OEM. Ghostscript doesn't have nor need them.[doc/pscet_status.txt]
2007-01-31T22:02:34.998982Z Alex Cherepanov
When Tf refers to an unknown resource name, use the resource name as a font name. This fully recovers the given sample file and avoids fatal PostScript errors in other cases. Bug 689037.[lib/pdf_font.ps]
2007-01-31T21:32:33.370701Z leonardo
pscet_status.txt : Updating 09-47K-5.[doc/pscet_status.txt]
2007-01-31T20:20:51.337129Z leonardo
Fix : gcc warnings. DETAILS : The revision 7659 change appears imperfect, because it caused a new warning. Thanks for Peter L. Deutsch for pointing this out.[src/gdevpdfm.c]
2007-01-31T18:27:26.594065Z Ralph Giles
Remove -Wcast-qual since we cannot easily remove many of these warnings.[src/configure.ac]
2007-01-31T12:49:22.229510Z leonardo
Fix : Cygwin/gcc warnings.[src/gdevpdfm.c src/vdtrace.h src/gxhintn.c src/gdevpdtc.c src/gdevpsf2.c src/gsdps1.c src/gdevbit.c src/sjpx.c src/gxclrast.c src/ttinterp.c src/ttcalc.c src/gxpath.c]
2007-01-31T07:01:37.959449Z L. Peter Deutsch
Fixes a bug in the DCTDecode filter that could cause segvs (bugs 689064, 689065, 689066). This fix parallels r3097 for DCTEncode.[src/zfdctd.c]
2007-01-31T00:09:21.445386Z leonardo
Fix (True Type renderer) : Allow TTC format 2. DETAILS : Patch from Tor Andersson.[src/ttfmain.c]
2007-01-30T00:16:34.929061Z L. Peter Deutsch
Documents reduced diffs in 30-07-3 and 30-08-3 (due to -dLOCALFONTS).[doc/pscet_status.txt]
2007-01-29T10:58:45.949654Z leonardo
Fix (True Type renderer) : Account glyph bbox when setting up the cache device (continued). DETAILS : The patch http://ghostscript.com/pipermail/gs-cvs/2007-January/007142.html appears incomplete. This one fixes that.[src/zfcid1.c]
2007-01-28T16:53:40.876356Z L. Peter Deutsch
Update 09-56-3.[doc/pscet_status.txt]
2007-01-27T22:47:05.784106Z L. Peter Deutsch
Marks 13-05-3 as AOK.[doc/pscet_status.txt]
2007-01-27T22:21:53.454207Z L. Peter Deutsch
Updates 20-14-1 to reflect CPSI/Tek discrepancy (gs is OK).[doc/pscet_status.txt]
2007-01-27T22:19:38.871909Z L. Peter Deutsch
(empty)[doc/pscet_status.txt]
2007-01-27T22:16:46.326515Z L. Peter Deutsch
Changes the first argument of the object_type procedure for gs_memory_t structures from gs_memory_t * to const gs_memory_t *, to clear up a couple of compiler warnings.[src/gsmemlok.c src/gsmalloc.c src/gsmemret.c src/gsalloc.c src/iutil.c src/gsmemory.h]
2007-01-27T20:14:52.445142Z L. Peter Deutsch
Fixes two harmless compiler warnings.[src/iscanbin.c src/sdcparam.c]
2007-01-27T13:53:57.786714Z Alex Cherepanov
Fix a bug, introduced in rev. 7513, that caused /undefined in setpagedevice when -dNOBIND flag was in effect and a similar bug in restore.[lib/gs_dps1.ps lib/gs_setpd.ps]
2007-01-26T16:49:00.711282Z Alex Cherepanov
Move image interpolation tweaks from gs_init.ps which runs after pdf_draw.ps to gs_img.ps which runs before pdf_draw.ps. This way, image operator can be bound in pdf_draw.ps subject to NOBIND/DELAYBIND flages. Bug 688890, customer 1110.[lib/gs_img.ps lib/pdf_draw.ps lib/gs_init.ps]
2007-01-26T16:33:54.732615Z Ray Johnston
Fix some gcc compiler warnings.[src/gsiorom.c]
2007-01-26T16:17:07.791783Z L. Peter Deutsch
Cleans up a couple of compiler warnings.[src/idstack.c src/isave.c]
2007-01-26T15:07:50.030216Z Alex Cherepanov
Minor clean-up of pscet_status.txt for better parsing.[doc/pscet_status.txt]
2007-01-26T14:58:58.339198Z L. Peter Deutsch
Updates doc to reflect fixes made by r7642.[doc/pscet_status.txt]
2007-01-26T01:11:52.301371Z L. Peter Deutsch
Makes FontDirectory (including Local, Global, and Shared) read-only, using .forceput, .forceundef, and superexec where necessary to modify them. superexec now affects undef and .setmaxlength as well as put; .dictcopynew is renamed .forcecopynew and will store into a read-only dictionary, just like .forceput. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE required for fixing numerous diffs in the PS3 CET.[src/zdict.c lib/gs_dps1.ps lib/gs_fonts.ps src/zgeneric.c lib/gs_init.ps]
2007-01-25T11:10:07.381566Z leonardo
pscet_status.txt : Misprints in 11-19-6 .[doc/pscet_status.txt]
2007-01-25T11:04:35.971950Z leonardo
pscet_status.txt : (1) Updating 11-19-6 related pages, (2) Passing FontDirectory to Peter.[doc/pscet_status.txt]
2007-01-24T02:19:24.701691Z Ray Johnston
Change some files to OK that match CPSI that hadn't been updated due to an error in Ray's regressionthe toolchain from a while ago. (Problems in toolchain have been resolved).[doc/pscet_status.txt]
2007-01-24T01:54:13.435614Z Ray Johnston
Change some 09- group tests that were incorrectly reviewed to DIFF (until Igor can determine whether or not they are a GS problem). At the best they need to be AOK since GS differs from both CPSI and Tek. Change some others to OK or AOK to reflect recent improvements detected during regression testing.[doc/pscet_status.txt]
2007-01-23T13:42:42.135988Z leonardo
Fix (pdfwrite) : A crash when /OUT pdfmark refers to undefined node. DETAILS : Bug 688927 "ps2pdf segfaults on inconsistent subordinate Count parameter in bookmark pdfmarks". The test document is incorrect, but we must not crash with it. 1. Inserted a check into pdfmark_write_outline. 2. Propagated error code from pdfmark_write_outline. 3. With the test case an error message contained a wrong device name (imain.c).[src/gdevpdfm.c src/imain.c src/gdevpdf.c]
2007-01-22T23:23:20.791601Z L. Peter Deutsch
Fix a problem created by r7629 (invalidaccess with shading patterns with a file data source).[lib/gs_ll3.ps]
2007-01-22T15:44:31.388315Z leonardo
Fix (pdfwrite) : Handle an invalid Type 3 font that misses setcharwidth, setcachedevice[2]. DETAILS : Bug 688895 "ps2pdf aborts with "Error: /unregistered in --show--"". The test document embeds an invalid Type 3 font : the character /s32 calls neither setcachedevice nor setcachedevice2 nor setcharwidth. PLRM3 page 339 reads : [beg quote] BuildGlyph must execute one of the following operators to pass width and bounding box information to the PostScript interpreter. This must precede execution of any path construction or painting operators describing the glyph. setcachedevice establishes a single set of metrics for both writing modes, and requests that the interpreter save the results in the font cache if possible. setcachedevice2 (LanguageLevel 2) establishes separate sets of metrics for writing modes 0 and 1, and requests that the interpreter save the results in the font cache. setcharwidth passes just the glyph's width (to be used only once), and requests that the glyph not be cached. This operator is typically used only if the glyph description includes operators to set the color explicitly. [end quote] Adobe appears to handle such fonts silently in both Postscript and PDF. This patch provides same behavior. The difference from the old code appears pretty small : the old code set the charproc_accum flag while executing pdf_text_set_cache, and the new one does when entering the substream. The new code even more natural. In the PDF output, for incorrect glyphs the Width array element is set to zero, and d0, d1 operators are not written into the charproc. Printing a warning about the incorrect charproc appears difficult due to the necessity to suppress redundant messages. It needs to add a new field into the gs_font structure. We do not like to modify the general gs_font structure for such small reason. Postponing this change until it is requested in prcatice.[src/gdevpdtt.c src/gdevpdti.c]
2007-01-22T14:34:04.454804Z leonardo
Fix : MSVC8 build of revision 7630 crashes in zupath. DETAILS : Herre are rules from "INTERNATIONAL STANDARD cISO/IEC ISO/IEC 9899:1999 (E) Programming languages - C" : unary-expression: unary-operator cast-expression cast-expression: unary-expression unary-expression: postfix-expression postfix-expression: postfix-expression ++ Thus *pnargs++ analyzes as *(pnargs++) .[src/zupath.c]
2007-01-22T10:29:52.528717Z leonardo
Fix (PS interpreter) Discontinue the interpretation on interrupt. DETAILS : Bug 688817 "Endless 'interrupt in interrupt' with GSAPI". When a GSAPI client tries to stop GS by returning a negative value from the polling callback function, GS enters an infinite loop handling cascading "interrupt" exceptions. Thanks to SaGS for the patch.[doc/API.htm src/interp.c]
2007-01-22T07:55:43.384402Z Henry Stiles
Changes to reflect Peter's CET report.[doc/pscet_status.txt]
2007-01-22T03:26:28.018030Z L. Peter Deutsch
Fixes bug: writeobject/printobject didn't zero out the 'unused' fields in marks and nulls. (PS3 CET 23-36-2)[src/zbseq.c lib/gs_btokn.ps src/iscanbin.c]
2007-01-22T02:44:19.583444Z L. Peter Deutsch
Fixes bug (PS3 CET 17-0[1-5]-3): if a user path ended with extra operand values, they were not popped from the stack.[src/zupath.c]
2007-01-21T17:53:13.749920Z L. Peter Deutsch
Fixes the ReusableStreamDecode filter so that it allocates the stream in the correct VM (per the PLRM3), rather than the current VM, even when it is necessary to read the entire contents of the source into a string. (PS3 CET 23-12W-2) Also fixes filters in general so that they allocate the stream in the correct VM, rather than always allocating in local VM if the current VM is local. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE.[src/zfilter.c lib/gs_frsd.ps src/zfrsd.c]
2007-01-21T09:36:41.173881Z leonardo
Fix (Type 1 hinter) A crash while recognizing a missed flex. DETAILS : Bug 688931 "gs segfaults in t1_hinter__fix_missed_flex". The old code didn't check whether a contour has enough poles for flex.[src/gxhintn.c]
2007-01-21T09:35:30.219957Z leonardo
Unwind 7625 due to wrong log message.[src/gxhintn.c]
2007-01-21T03:37:46.930537Z Alex Cherepanov
Apply standard font substitutions in lib/pdf_fonts.ps::TTfonts only for fonts that are not already known to the PS intrepreter. This allows to customize font substitutions via the Fontmap. The change affects only TrueType fonts that are NOT embedded (less portable PDFs, for which GS already gives a warning). Bug 688901, patch from SaGS.[lib/pdf_font.ps]
2007-01-20T20:44:36.957513Z leonardo
Fix (pdfwrite) Don't reassign object ID for shared descendent fonts. DETAILS : Bug 689054 "pdfwrite : missed object". The old code erroneusely assigned object ID at second time when a descendent CID font is shared with several Type 0 fonts.[src/gxhintn.c]
2007-01-20T18:39:23.028704Z leonardo
Fix (pdfwrite) Don't reassign object ID for shared descendent fonts. DETAILS : Bug 689054 "pdfwrite : missed object". The old code erroneusely assigned object ID at second time when a descendent CID font is shared with several Type 0 fonts.[src/gdevpdtf.c]
2007-01-20T12:12:17.802265Z leonardo
pscet_status.txt : Updating 29-05-1.[doc/pscet_status.txt]
2007-01-20T12:09:37.803100Z leonardo
pscet_status.txt : Updating 29-05-1.[doc/pscet_status.txt]
2007-01-20T11:33:47.048661Z leonardo
pscet_status.txt : Updating 11-19-6 related pages.[doc/pscet_status.txt]
2007-01-20T00:40:23.279249Z Alex Cherepanov
Adobe interpreters report simple errors in undefineresource operator but report more complicated errors in the executable name. We are trying to reproduce this. CET 23-33.[doc/pscet_status.txt lib/gs_res.ps]
2007-01-19T14:00:14.789036Z Alex Cherepanov
Adobe interpreters have resourcestatus operator but report errors in the executable name. We do the same now.[doc/pscet_status.txt lib/gs_res.ps]
2007-01-19T04:09:50.480586Z L. Peter Deutsch
Updates the PDF interpreter for the change in the 'token' operator (r7616), which now may or may not pop its operand if an error occurs.[lib/pdf_base.ps lib/pdf_rbld.ps]
2007-01-18T20:25:30.206946Z leonardo
Provide the CPSI compatibility for strokepath. DETAILS : This is 1st of 2 closely related changes to gxstroke.c . It changes behavior in the CPSI compatibility mode only. The main workers are stroke_add_compat, stroke_add_initial_cap_compat. The strokepath contours are always positive rather some older CPSI versions generate negative ones in some circumstances. We believe that positive contours only is the correct behavior, because it complies with other contours such as arcs or character outlines. Otherwise non-zero winding rule filling gives an unexpected result when combining various paths in a single path.[doc/pscet_status.txt src/gxstroke.c]
2007-01-17T21:10:47.794679Z L. Peter Deutsch
For Adobe compatibility (PS3 CET 23-32), changes the token scanner so that it pops the source operand from the stack and retains a copy of it internally. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE: it affects all callers of scan_token (see src/iscan.h and src/itoken.h), and it also changes the error behavior of the 'token' operator (the operand is no longer on the stack if the error is detected during scanning, e.g. syntaxerror).[src/imain.c src/iscan.c src/itoken.h src/ziodev.c src/interp.c src/iscan.h src/inobtokn.c src/iccfont.c src/iscanbin.c src/imainarg.c src/ztoken.c src/iscanbin.h]
2007-01-17T19:59:36.495603Z Ray Johnston
Fix for (yet another) a PDF file that does not meet Adobe's PDF spec, but Adobe Reader opens silently. In this case there is an Annotation that is missing the required /N (Normal Appearance) entry. Bug 689045 for customer 531. Thanks to "SaGS" for this fix.[lib/pdf_main.ps lib/pdf_draw.ps]
2007-01-17T06:09:38.193145Z L. Peter Deutsch
Removes an unneeded inclusion of interp.h in zfile.c.[src/int.mak src/zfile.c]
2007-01-17T04:50:36.979684Z Henry Stiles
23-12E-2 fix/analysis from Peter.[doc/pscet_status.txt]
2007-01-17T03:36:18.909547Z L. Peter Deutsch
Fixes bug (PS3 CET 23-32-4): immediately evaluated names in binary object sequences were treated as literal (not evaluated).[src/iscanbin.c]
2007-01-16T17:07:06.634739Z leonardo
Revert strokepath to revision 7213. DETAILS : This is 1st of 2 closely related changes to gxstroke.c . We intend to provide a full CPSI compatibility for strokepath in the CPSI compatible mode. Recent chages do not provide it. Therefore we unwind to the last clean revision, which we had before starting PS CET compliance. We will commit a fully different implementation as the next patch. This change restores the gxstroke.c revision 7213, which we had immediately before the 7464 change. Thus it effectively unwinds the following changes : Revision 7464 Fri Dec 8 02:22:36 2006 UTC by leonardo Revision 7488 Mon Dec 11 00:56:42 2006 UTC by lpd Revision 7501 Wed Dec 13 04:15:29 2006 UTC by leonardo Revision 7563 Thu Jan 4 18:36:37 2007 UTC by ray Rather this change does regress pscet_status.txt, we don't update pscet_status.txt with this it. Will update it in the next related patch.[src/gxstroke.c]
2007-01-16T03:28:39.350220Z Ray Johnston
Fix for regressions introduced with rev 7217 (returning proc as array rather than packedarray for PS CET 09-33-5.PS. Fixes FTS 050-01.ps and 246-01.ps.[lib/gs_dps2.ps]
2007-01-15T16:05:00.071592Z leonardo
pscet_status.txt : Updating 16-01-1 and related pages.[doc/pscet_status.txt]
2007-01-15T11:22:36.413144Z leonardo
Provide the CPSI compatibility for Type1 subglyph placement (continued 3). DETAILS : This change is algorithmically equivalent. It provides a better data naming and documentation. 1. save_lsb is renamed into compound_lsb. 2. Improved some comments.[src/gstype1.c src/gxtype1.c src/gxtype1.h]
2007-01-15T10:59:56.313683Z leonardo
Provide the CPSI compatibility for Type1 subglyph placement (continued). DETAILS : This change is algorithmically equivalent. It provides a better data naming and documentation. 1. save_asb is renamed into asb. 2. Improved comments for asb_diff, adxy. 3. Used adxy in the overall_x_offset formula in stead save_adxy. The letter is a temporary cell for passing seac info across the baze glyph.[src/gstype1.c src/gxtype1.h]
2007-01-15T10:56:38.302709Z leonardo
Provide the CPSI compatibility for Type1 subglyph placement (continued). DETAILS : This change is algorithmically equivalent. It provides a better data naming and documentation. 1. save_asb is renamed into asb. 2. Improved comments for asb_diff, adxy. 3. Used adxy in the overall_x_offset formula in stead save_adxy. The letter is a temporary cell for passing seac info across the baze glyph.[src/gxtype1.c]
2007-01-13T18:40:16.945779Z L. Peter Deutsch
Fixes some long-standing data-dependent bugs in the CCITTFaxDecode filter caused by incorrect initialization. PS3 CET 23-12E-2. Also cleans up some formatting.[src/scfd.c src/scfe.c src/scfx.h]
2007-01-12T22:15:32.979541Z Russell Lang
Remove old 16-bit Windows code.[src/gs16spl.c src/gs16spl.rc src/dwmain16.def doc/Develop.htm src/gswin386.rc src/gs16spl.def]
2007-01-12T21:08:02.193820Z Ray Johnston
Mark more files found that had been previously fixed that were still DIFF. Mark 12-07C-7 OK since it matches Tek hardcopy (no thin lines).[doc/pscet_status.txt]
2007-01-12T10:23:50.245821Z leonardo
Provide the CPSI compatibility for Type1 subglyph placement. DETAILS : Debugged with CET 16-01-1 16-02-1 16-10-1 16-10-2. The new 'seac' offset formula 'overall_x_offset' has been empirically derived from placements of the "round" accent subglyph in the CPSI rendering.[doc/pscet_status.txt]
2007-01-12T10:23:19.005476Z leonardo
Provide the CPSI compatibility for Type1 subglyph placement. DETAILS : Debugged with CET 16-01-1 16-02-1 16-10-1 16-10-2. The new 'seac' offset formula 'overall_x_offset' has been empirically derived from placements of the "round" accent subglyph in the CPSI rendering.[src/gstype1.c src/gxtype1.c src/gxtype1.h]
2007-01-11T18:55:08.974207Z Ray Johnston
Updates for pages fixed as of rev 7598.[doc/pscet_status.txt]
2007-01-11T10:52:11.037894Z leonardo
pscet_status.txt : Closing issues which appear fixed with rev 7542.[doc/pscet_status.txt]
2007-01-11T00:01:03.763372Z L. Peter Deutsch
Changes user paths so that in CPSI mode, setbbox appends a moveto only if the path is otherwise empty. Fixes a regression in PS3 CET 11-17 caused by r7512.[src/zupath.c]
2007-01-10T20:20:52.346731Z Alex Cherepanov
Adobe interpreters appear to accept sampled images in the pattern color space using the base color space instead of the pattern space. We do the same in the compatibility mode to meet CET 12-07a-12.[doc/pscet_status.txt src/zimage.c src/zimage3.c src/iimage.h src/int.mak src/ztrans.c]
2007-01-10T17:04:22.171453Z leonardo
pscet_status.txt : Assigning the 29-05-1 regression.[doc/pscet_status.txt]
2007-01-10T14:55:01.076741Z leonardo
pscet_status.txt : Taking assignment for strokepath problems.[doc/pscet_status.txt]
2007-01-10T14:47:52.238215Z leonardo
Implementing a smart filling rule. DETAILS : With CET 16-01.PS CPSI fills some contours with the even-odd rule, and others with non-zero rule. We implement a new rule, which counts signed even-odd numbers for each contour independently, and then summarizes them. The new rule works for all characters in CPSI mode only. Probably we don't need it for True Types, but currently the filling algorithm doesn't recieve the information about the font type. Will do later on necessity. For a faster result we generate more 4 instances of TEMPLATE_spot_into_trapezoids, which deal with the smart winding only. Removing Raph's hack about even-odd filing rule for Type 1 (zchar1.c). The new rule perfectly works instead that together with the contour sign adjustment, which was inplemented few days ago. The new array line_list::windings stores winding numbers per contour. The macro ADVANCE_WINDING computes the smart winding rule. We wouild like to optimize it (to get a smaller portable code), suggestions are welcome.[doc/pscet_status.txt src/gxfilltr.h src/gxfill.c src/zchar1.c src/gxfill.h]
2007-01-10T02:15:52.050522Z L. Peter Deutsch
Adds some PLRM-required but formerly missing legality checks for binary object sequences, mostly for the benefit of PS3 CET 23-32-2.[src/ibnum.h src/iscanbin.c src/ibnum.c]
2007-01-09T23:41:08.403891Z leonardo
Type 1 hinter : Implementing a contour sign normalization, part 6. DETAILS : Bug 687826 "some glyphs filled in". This old bug contains more test cases, which allowed to improve the algorithm. 1. gx_intersect_small_bars returned a root, which appears outside the bar 1. 2. A wrong index in t1_hinter__intersect_curve_bar. 3. A wrong index in t1_hinter__contour_intersection. 4. Increased MAX_NORMALIZING_CONTOURS to 5 as in the '%' sign. 6. The check for contours number was wrong in t1_hinter__fix_contour_signs.[src/gxhintn1.c src/gsmisc.c]
2007-01-09T21:15:01.944411Z leonardo
Type 1 hinter : Implementing a contour sign normalization, part 5. DETAILS : Removes bugs from the last patch. It finaly closes Bug 688947 "Ghostscript renders font incorrectly (letter 'o' filled in)", but CET 16-01.PS still has problems. 1. 'e2' was wrong - Debugged with a.pdf . 2. (optimization) Return if no nesting contours. nesting_sum works for that. 3. Removed the check "this->subglyph_count <= 1", which was entirely wrong. 4. In zchar1.c restoring Raph's trick about using even-odd filling rule in the CPSI compatible mode. It was unintentionally removed by the last patch. No, we don't want it to live prmanently, but now it's not the right time for removing it.[src/gxhintn1.c src/zchar1.c]
2007-01-09T18:40:39.016764Z leonardo
Type 1 hinter : Implementing a contour sign normalization, part 4. DETAILS : This fixes the bug 688947 "Ghostscript renders font incorrectly (letter 'o' filled in)". The new code recognized wrong contour signs for non-resident Type 1,2,11 fonts and fix contour signs with reversing wrong contours.[src/lib.mak src/gxhintn.c src/gxhintn1.c doc/Develop.htm src/gxhintn.h src/zchar1.c]
2007-01-09T18:36:48.563296Z leonardo
Type 1 hinter : Implementing a contour sign normalization, part 3. DETAILS : This is continuation of the preparation for fixing the bug 688947 "Ghostscript renders font incorrectly (letter 'o' filled in)". This change is algorithmically equivalent. It factors out gx_intersect_small_bars from the shading code.[src/lib.mak src/gxfixed.h src/gsmisc.c src/gxshade6.c]
2007-01-09T14:19:27.902081Z L. Peter Deutsch
Fix a typo in the description of 23-12U-1 (which is now fixed).[doc/pscet_status.txt]
2007-01-09T01:54:00.530728Z L. Peter Deutsch
Changes the token scanner so that ^D is not a self-delimiting character when scanning a string. This still treats ^D as a self-delimiting end-of-job marker when reading from a file, while matching CPSI on PS3 CET 21-11-2.[src/iscan.c lib/gs_pdfwr.ps]
2007-01-09T01:39:44.244785Z Henry Stiles
Update to reflect Peter's fixes and analyis. Also reassign color problems to Raph.[doc/pscet_status.txt]
2007-01-08T22:02:29.175398Z Ray Johnston
Updates from regressions, Assign some previously unassigned pages, correct some 'bad entry' lines (seen by the perl script). Note there have been many pages that had significant differences previously marked OK, that are now fixed. We may need to recheck some of the high difference count pages that have no explanation (such as "matches Tek hardcopy").[doc/pscet_status.txt]
2007-01-08T20:12:52.623854Z Ray Johnston
Make sure there is a default value (0) for DEBUGSYSM. Fixes an non debug syntax error seen by nmake.[src/msvccmd.mak]
2007-01-08T15:04:53.833474Z leonardo
Type 1 hinter : Implementing a contour sign normalization, part 2. DETAILS : This is continuation of the preparation for fixing the bug 688947 "Ghostscript renders font incorrectly (letter 'o' filled in)". This change is algorithmically equivalent - the new stuff works idle. It define necesary data structures and flows for storing information about subglyphs. The implementation itself will be a next step.[src/gstype1.c src/gstype2.c src/gxhintn.c src/gxhintn.h]
2007-01-08T12:50:48.444121Z leonardo
Type 1 hinter : Implementing a contour sign normalization, part 1. DETAILS : This is a preparation for fixing the bug 688947 "Ghostscript renders font incorrectly (letter 'o' filled in)". Several fonts in wild appear to violate the Type 1 restriction for inner contours to be of negative sign. They cause a wrong rendering of some glyphs, such as 'o' in the test case. Rather we consider those fonts to be incorrect, we need a workaround for them because this annoying problem appears too frequently. At last CET 16-01.PS defines such font. We assume that True Types always have right contours, because (1) we didn't meet such cases in practice. We also assume that resident fonts always have right contours, bvecause resident fonts usually don't come from wild. Therefore we need 4 working modes for type 1 hinter : 1. "pass_through" : no hinting, no contour adjustment. Works for resident fonts of a big size, and/or when the target is the path bbox accumulator. 2. "disable_hinting" : no hinting, contour ajdustment is on. Works for non-resident Type 1 fonts of a big size, 3. The hinting is enabled, the contour adjustment is disabled. Works for not-big non-resident fonts except True Types. We want to save CPU time expense from the contour adjustment. 4. The hinting is enabled, the contour adjustment is enabled. Works for not-big embedded Type 1 fonts. This change is algorithmically equivalent. It define necesary flags and data flows, which will be used in the implementation. The implementation itself will be a next step.[src/gstype1.c src/gstype2.c src/gxhintn.c src/gxhintn.h]
2007-01-08T05:50:33.566930Z L. Peter Deutsch
Cleans up a couple of compiler warnings.[src/geninit.c]
2007-01-08T04:15:31.387003Z Alex Cherepanov
Change status of CET 12-13-5 to OK. The test works for me. There's no differences around 30 and 31 in left column or anywhere else. The checksum matches too.[doc/pscet_status.txt]
2007-01-07T21:05:45.304456Z Ray Johnston
Update to reflect improvements from rev 7563 (strokepath fix). Thanks to Tim Osborn for this fix. Minor revision to analysis on some that still have other problems in addition to the strokepath. Note that a few pages that should have been classified DIFF had substantial difference counts due to the strokepath incompatibility. These remain as OK, but the status line now reads "Fixed by rev 7563."[doc/pscet_status.txt]
2007-01-07T17:44:41.459825Z leonardo
Fix (shadings) : Ignore a huge BBox. DETAILS : Bug 689027 "Error: /rangecheck in --.buildshading2--". A buggy software "xFlow Normalizer 1.0" created a huge shading BBox. Adobe appears to ignores it silently. In this case the clipping box sets a natural extent for the shading.[src/gsshade.c]
2007-01-07T06:48:38.482771Z Ralph Giles
Code cleanups. Add a license, and move some things into functions. This version has not been tested.[toolbin/tests/run_parallel]
2007-01-07T06:47:46.661532Z Ralph Giles
Check in rough script for launching a parallel regression run on an OpenPBS-based cluster queuing system. This script runs 'upnodes' and chooses a likely target and job size, generates comparefiles.* and testing.cfg.* for each node, then submits the job. Output is returned as a file in the launch directory 'run_regression..e<jobid>' when the run is finished.[toolbin/tests/run_parallel]
2007-01-07T06:42:22.794330Z Ralph Giles
Changes to the regression tools to facilitate parallel runs. DETAILS: Add a scratchdir entry to testing.cfg to specify where temporary files should be created instead of using the current working directory. Override various TextTestResult methods to print 'checking...result' all at once instead of waiting while the job runs to reduce log mangling. The old behaviour was helpful behavior in an interactive serial run, but not running in batch mode. If the PBS_NODENUM environment variable is set, use it to select a custom testing.cfg. If PBS_NODENUM is set, only run the source tests when it is zero to avoid duplicating these.[toolbin/tests/gscheck_raster.py toolbin/tests/gstestutils.py toolbin/tests/gscheck_pdfwrite.py toolbin/tests/run_regression toolbin/tests/testing.cfg.example toolbin/tests/gsconf.py]
2007-01-06T20:35:32.380662Z leonardo
Fix : 'show' must throw error when the current font is a CID font resource. DETAILS : Only 'glyphshow' is allowed when the current font is a CID font resource, except for a cshow procedure - see comment in op_show_finish_setup. Debugged with CET 32_all.PS page 14.[doc/pscet_status.txt src/zchar.c]
2007-01-06T19:16:16.587431Z leonardo
pscet_status.txt : Improve some syntax/analyzis/assignments.[doc/pscet_status.txt]
2007-01-06T08:01:06.162417Z Ralph Giles
Correct a typo.[toolbin/tests/check_source.py]
2007-01-06T07:46:31.224903Z Ralph Giles
Exempt the jobseparator scriptlet from the Id line check.[toolbin/tests/check_source.py]
2007-01-06T07:46:01.131216Z Ralph Giles
Exempt the jobseparator scriptlet from the Id line check.[lib/jobseparator.ps]
2007-01-06T07:42:52.202240Z Ralph Giles
Add and Id line and appropriate properties to gs_cet.ps.[lib/gs_cet.ps]
2007-01-05T21:23:35.938833Z leonardo
Fix : Cygwin/gcc warnings.[src/zimage.c src/gxfcopy.c src/zcharx.c src/int.mak src/ttfmain.c src/gstext.h src/gdevpdti.c]
2007-01-05T20:44:21.517052Z leonardo
Fix (True Type renderer) : Account glyph bbox when setting up the cache device. DETAILS : Debugged with CET 34_all.PS page 4. An embedded True Type font has an incorrect FontBBox : parts of glyphs appear outside it. Uniting it with glyph bbox helps. However using glyph bbox only doesn't work for Dynalab fonts, so this change includes a voluntary solution which unites FontBBox and glyph bbox. This patch slightly change the prototypes of gs_type42_data_s::get_outline and gs_font_cid2_data_s::get_outline, and their implementations. We believe that this change must be compatible, except a case of a wrong walue was passed to 'wmode' argument. The PCL group must check that it never pass other values than 0 or 1. In the new code the 'wmode' argument is replaced with options enum, and other values require a bigger array for the last argument. See commenmts in code and the extended implementation in gs_type42_default_get_metrics. The function zchar42_set_cache has been re4written to simplify its understanding. Now it accounts the glyph bbox. We noticed that the old code with WMode 1 set 'w' equal to horizontal width, which looks incorrect. The new code sets the vertical width. Also the old code did an unuseful call to get_metrics when WMode=1 and the vertical metric presents in the font. The function gs_type42_default_get_metrics has been removed due to low use. The new code replaces it with pfont->data.get_metrics. We didn't find calls to it from the PCL code.[doc/pscet_status.txt src/zchar42.c src/gxfont42.h src/gstype42.c src/gxfcid.h]
2007-01-05T05:19:34.969963Z Henry Stiles
Changes required for gslite release. The new error macros did not work with MSVC version 8. There are still portability issues with these macros that preclude regular use in ghostscript but they are used by a few clients that have "looser" portability requirements. gp_mslib.c (probably dead code) did not compile.[src/gp_mslib.c src/gserror.h]
2007-01-05T01:53:32.094694Z Alex Cherepanov
Change the status of CET 13-03-04 and 13-12-06 to OK. Ghostscript matches Tek hardcopy; PhotoPRINT is wrong here.[doc/pscet_status.txt]
2007-01-05T00:48:11.270570Z Alex Cherepanov
Change the order of argument checking in awidthshow operator. Check that the character code is in the range 0 to 255 for the base fonts. Fix CET 13-02-05.[doc/pscet_status.txt src/zchar.c]
2007-01-04T18:36:37.189208Z Ray Johnston
Fix stroke line cap and line join for Adobe compatibility. Fixes PS CET pages: 09-24-2 09-25-2 09-26-2 09-27-3 09-30-3 09-33-3 09-38-2 09-40-23 09-41-2 09-42-5 09-43-5 09-44-5 09-48-2 09-49D-1 09-52-2 09-53-5 09-54-6 09-57-14 11-07-5 11-21-3 11-28-2 13-13-8. Thanks to Timothy Osborn for this fix. DETAILS: There is a slight performance impact (6%) so a follow-up change will be developed that only generates the new style (Adobe compatible) paths when we are doing the "strokepath" operation, not for normal "stroke".[src/gxstroke.c]
2007-01-04T15:48:57.600517Z Alex Cherepanov
Change the order of argument checking in widthshow operator. Check that the character code is in the range 0 to 255 for the base fonts. Fix CET 13-26-04.[doc/pscet_status.txt src/zchar.c]
2007-01-03T14:39:50.977219Z leonardo
pscet_status.txt : Updating status for 34_all-4.[doc/pscet_status.txt]
2007-01-03T14:38:47.322215Z leonardo
pscet_status.txt : Updating status for 34_all-4.[doc/pscet_status.txt]
2007-01-03T10:50:15.001696Z leonardo
pscet_status.txt : Updating status for 38-01-1.[doc/pscet_status.txt]
2007-01-03T10:30:52.705972Z leonardo
Fix : Adding OrigFont to CIDFont resources for CPSI conformity. DETAILS : Debugged with CET 33_all.PS .[doc/pscet_status.txt lib/gs_cidfn.ps]
2007-01-03T09:58:15.957518Z leonardo
pscet_status.txt : Updating status for 23-36-2.[doc/pscet_status.txt]
2007-01-03T08:43:12.193598Z leonardo
pscet_status.txt : Fixing some misprints.[doc/pscet_status.txt]
2007-01-03T08:33:48.854716Z leonardo
pscet_status.txt : Updating status for 21-11-2.[doc/pscet_status.txt]
2007-01-02T22:03:43.389414Z Ray Johnston
Update with some fixes found during regression of rev 7534.[doc/pscet_status.txt]
2007-01-02T19:58:30.890285Z Ray Johnston
Fix for yet another broken PDF that AR handles silently, specifically, a /Count value of 0 for the Pages tree. When the Count is 0, find the page count by walking the Pages tree. Bug 689008 for customer 580 and 460.[lib/pdf_main.ps]
2007-01-02T15:05:34.582481Z leonardo
pscet_status.txt : Updating status for 18-02G-1.[doc/pscet_status.txt]
2007-01-02T15:02:58.997085Z leonardo
pscet_status.txt : Updating status for 18-02G-1.[doc/pscet_status.txt]
2007-01-02T14:22:21.841353Z leonardo
pscet_status.txt : Updating status for 18-01A-1.[doc/pscet_status.txt]
2007-01-02T11:36:03.990718Z Russell Lang
Update the Windows INF file to allow the Ghostscript PPD to be installed on 64-bit Windows.[lib/ghostpdf.inf]
2007-01-02T10:05:09.465463Z leonardo
pscet_status.txt : Updating status for some files. Delaying glyph rendering problems because they require a deep development. Marking them with "Assign:-".[doc/pscet_status.txt]
2007-01-02T04:58:50.214832Z Alex Cherepanov
Implement setucacheparams, ucachestatus using MaxUPathItem user parameter to match CET 27-05-02. The test results mow match Tek 360 hard copy.[doc/pscet_status.txt lib/gs_dps2.ps lib/gs_lev2.ps]
2007-01-01T10:13:59.639678Z leonardo
pscet_status.txt : Updating status for 14-12-3.[doc/pscet_status.txt]
2007-01-01T03:55:18.804213Z Alex Cherepanov
CET 13-10-5 is marked as Works for me in rev. 7543[doc/pscet_status.txt]
2007-01-01T03:00:15.457477Z Russell Lang
Remove documentation about Windows printing to LPT1: because it hasn't worked since we ceased to include gs16spl.exe. Prevent attempts to use -sOutputFile="LPT1:" on Windows because it locks up.[doc/Use.htm src/gp_mswin.c doc/Install.htm]
2006-12-31T22:14:23.520668Z Russell Lang
Remove Windows 16-bit and Win32s printer code. Update release year in Windows installer to 2007.[src/bcwin32.mak src/dwsetup.rc src/winint.mak src/watcw32.mak src/gp_mswin.c src/gp_msprn.c]
2006-12-31T17:50:40.948265Z leonardo
Fix : Early check a text to font compatibility. DETAILS : Running CET 14-03.PS page 2, CPSI trows a rangechek with no painitng charaters. However Ghostscript performs the check immediately before rendering a character. If the check fails in a middle of the text, the preceding charaters are painted. The new code scans entire text before rendering a character. We do so in CPSI compatibility mode only, because we don't want a performance flaw for dual scanning in the Ghostscript native mode. 1. gs_text_size is renemed into gs_text_count_chars for a better reflection of its semantics. 2. The check in zyshow is made conditional depending on CPSI_mode. This is an improvement for the last patch, which is not related to the current problem (zcharx.c). 3. Inserted the text scanning into op_show_finish_setup (zchar.c). 4. After we did all bove, 14-01.PS got cycled in alloc_char_in_chunk. This effect occasionally depends on 1-3 because they change the cache memory map. Fixed with inserting the call to gx_free_cached_char into gxchar.c . 5. gs_text_count_chars was implemented with gs_text_begin, which appears too heavy for the simple text decomposition. Particularly it caused a proiblem with stringwidth, because gs_text_begin establishes an extra save level for stringwidth. The new code calls gs_text_enum_init instead gs_text_begin. Due to that gs_text_count_chars is moved to gxchar.c, which defines default_text_procs privately.[doc/pscet_status.txt src/gxchar.c src/gstext.c src/zcharx.c src/zchar.c]
2006-12-30T22:58:47.430654Z Ralph Giles
Record the regression run time in the nightly report.[toolbin/tests/run_nightly]
2006-12-30T13:31:18.340006Z leonardo
Fix : Don't check type of extra width elements with yshow. DETAILS : CET 13-29.PS page 2 defines a longer width array then the text requires, and CPSI silently ignores extra elements. So yshow needs to compute exact number of characters to know how many elements to load and type check. The new function gs_text_size is factored out from the recently added code so that zcharx.c can share it. Minor change : Improving a comment in gspaint.c, with another issue recently discovered. It's not related to the yshow problem.[doc/pscet_status.txt src/gstext.c src/zcharx.c src/gstext.h src/gspaint.c]
2006-12-30T11:50:34.673289Z Alex Cherepanov
Updating status for 11-20-9[doc/pscet_status.txt]
2006-12-30T11:06:55.417315Z leonardo
pscet_status.txt : Updating status for 13-23-1.[doc/pscet_status.txt]
2006-12-30T10:40:18.858942Z leonardo
pscet_status.txt : Updating status for 10-15-2 (final).[doc/pscet_status.txt]
2006-12-30T09:08:31.731942Z leonardo
pscet_status.txt : Updating status for 10-15-2.[doc/pscet_status.txt]
2006-12-30T06:15:56.641068Z Ray Johnston
Note some pages that now have no differences as detected during regression testing.[doc/pscet_status.txt]
2006-12-29T20:59:39.890840Z leonardo
Fix : The CPSI compatibility for 'clippath' starting point. pscet_status.txt : A better classification for strokepath problems. DETAILS : Debugged with : CET 13-22.ps page 6, the item much13; CET 11-11.PS page 6, the item much13 See comment in code.[doc/pscet_status.txt src/gsdps1.c]
2006-12-28T13:08:56.928281Z leonardo
pscet_status.txt : Passing more problems to ray since they have same reason - either strokepath ending point, or clippath starting point. For details see comments added into pscet_status.txt .[doc/pscet_status.txt]
2006-12-28T09:51:38.919829Z leonardo
pscet_status.txt : Changing assignment for 13-22-6 cash25 as discussed with Ray.[doc/pscet_status.txt]
2006-12-27T18:27:55.782637Z leonardo
Fix : 'clippath' didn't set the current point. DETAILS : The bug has been introduced when we implemented the current point in 'double'. It caused an inconsistent result when 'show' follows 'clippath', because 'show' still uses pgs->ppath->position. Debugged with CET 13-22.ps page 6, the item much13. We would like to avoid the usage of pgs->ppath->position, but currently we nave no time for a complete analyzis. Delaying it for better times. See bug 689031.[src/gspath.c]
2006-12-27T11:59:15.544173Z leonardo
pscet_status.txt : A better analyzis for 13-20-6, 13-22-6.[doc/pscet_status.txt]
2006-12-26T05:29:37.040603Z Alex Cherepanov
Calculate the old bounding box using the function that takes into account the bounding box set by setbbox operator. DETAILS: This patch doesn't affect any reported bugs, CET test or regression test files. Before the patch the following (correct) program didn't run on Ghostscript: 0 0 moveto 0 0 1000 1000 setbbox 100 100 105 105 setbbox 0 0 moveto 100 100 lineto[doc/pscet_status.txt src/gsdps1.c]
2006-12-25T18:11:49.235030Z Alex Cherepanov
Record the fact that 11-13-4 works in rev. 7527.[doc/pscet_status.txt]
2006-12-25T07:43:44.555732Z leonardo
pscet_status.txt : A better analyzis for recent regression, assigning to the author.[doc/pscet_status.txt]
2006-12-24T11:46:11.723531Z leonardo
Fix (font renderer) : Expand the Type 3 character box to negative coordinates. DETAILS : setcachedevice, setcachedevice defines a box for clipping a character image. According to Postscript specification, "If any marks fall outside this bounding box, the result is unpredictable." (See PLRM3 page 659). Some CET tests defines a Type 3 characters, which have the bbox [0 0 1000 1000] and then execute "10 10 1000 1000 rectstroke" for painting the character. Some parts of that rectangle fall slightly outside the box, but both CPSI and Tek paint them. When caching a character, the old Ghostscript code expands the character box to increasing coordinates. It allows to paint charater elements, which fall slightly outside the box. However the old code doesn't expand to negative (decreesing) direction, causing an asymmetric behavior. For example in CET 13-18.PS a Type 3 charater missed its elements depending on the device initial matrix : with display device the character doesn't miss elements, but with ppmraw device (which has initial matrix with mapping Y upside down) the character missed a horizontal line, which with 600dpi falls to t5he pixel coordinate Y=-1. This patch provides the box expansion in all 4 directions. Rather the problem happens mainly with Type 3 fonts the patch changes the behavior for all font types. Note : Some characters may occupy a bigger space in the cache, so the memory map changes. Note2 : We're not sure why the old code expands the box in 2 pixels. Likely 1 pixel is a strong expansion, and another one compensates an inaccurate rounding. We don't change it now to minimize raster differences.[doc/pscet_status.txt src/gxchar.c]
2006-12-24T08:31:52.050751Z leonardo
pscet_status.txt : A better analyzis for few problems. Note some regressions appeared.[doc/pscet_status.txt]
2006-12-22T19:59:43.737163Z Ray Johnston
Properly handle ASCII85EncodePages=true for the Contents streams. This was not implemented previously. Bug #689030 for customer #1.[src/gdevpdfu.c]
2006-12-21T17:10:15.748193Z leonardo
pscet_status.txt : A better analyzis for few problems.[doc/pscet_status.txt]
2006-12-21T01:15:17.469745Z Ralph Giles
Remove Copying.htm from the documentation. It is no longer relevant now that the tree is GPL.[doc/Copying.htm doc/Readme.htm doc/Release.htm]
2006-12-20T04:44:43.534483Z leonardo
pscet_status.txt : An improved analysis for few problems.[doc/pscet_status.txt]
2006-12-20T04:38:57.997599Z leonardo
pscet_status.txt : An improved analysis for few problems.[doc/pscet_status.txt]
2006-12-18T23:03:42.655320Z Raph Levien
Fix: Don't read past end of input image stream in simscale.c. Fixes bug #689029.[src/simscale.c]
2006-12-18T17:56:27.005565Z leonardo
Fix (TrueType renderer) : Always access metrics via get_metrics callback. DETAILS : This change is important for PCL interpreter. Some PCL downloadable fonts have no hmtx, vmtx tables and define glyph metrics externally. Likely we missed this functionality when attached the TrueType bytecode interpreter from FreeType. For both Postscript and PCL the new code is not equivalent to old one when processing a composite glyph with grid fitting. For each subglyph, the old code sets phantom points with the subglyph's metrics. The new code does with the glyph's metrics. We believe that the old code was not correct because its grid fitting can wrongly account the placement of a subglyph in the main glyph. Rether we didn't find a practical case when it happens. We can't directly access the font's get_metrics callback from ttfmain.c, therefore we introduce an intermediate callback ttfReader::get_metrics. It happens because TrueType bytecode interpreter doesn't compile with Ghostscript headers.[src/gxttfb.c src/ttfmain.c src/ttfoutl.h]
2006-12-18T05:00:00.292210Z leonardo
Fix : Removing a dead code about USE_ttfReader. DETAILS : USE_ttfReader was introduced for PCL needs due to a poor design. Novadays PCL code doesn't use it - sets always true.[src/gxfcopy.c src/gxccman.c src/gxfont42.h src/gstype42.c src/zfont42.c]
2006-12-17T13:56:52.138834Z leonardo
Fix (shadings) : A fixed overflow happened while computing a color (continued). THIS IS INCOMPATIBLE CHANGE : The device virtual method fill_linear_color_scanline now restores the semantics, which was defined before revision 7510. In other words, this incompatible change reverts the recent incompatible change. DETAILS : Debugged with CET 12-14O.PS SpecialTestJ02Test12. A scanline gradient could overflow because the pixel span may be few wider than the spot span due to pixel rounding. To prevent the overflow, we base the color proportion on the last pixel inside the span. See comments in code. We decided to remove "half color values" (which were introduced in revision 7510) from the device interface because they bring an extra complexity.[src/gdevdsha.c src/gdevddrw.c]
2006-12-17T00:26:30.159180Z Russell Lang
Remove obsolete references to Windows 3.1 and Win32s.[doc/Use.htm doc/Make.htm doc/Source.htm doc/Install.htm]
2006-12-16T22:02:38.700510Z Ray Johnston
Add a simple (one line) file that can be used bwtween files on the command line or files run with the 'run' operator to execute the systemdict version of the ^D (ctrl-D) action to end an encapsulated job and start a new one. This is needed since some PS files redefine <04> to a no-op (such as the PS CET and the PSCRIPT5 Windows driver). This can be used with or without -dJOBSERVER, but <04> is a no-op unless -dJOBSERVER is used.[lib/jobseparator.ps]
2006-12-16T20:41:10.316519Z Ray Johnston
Fix setpagedevice /Install procedure handling so that a error from the Install will restore the previous (presumably correct) Install and apply the Policies for the error handling. Also fix the .execinstall so that the plumbing will leave a predictable number of elements on the stack in case of an error. Bug #689020 for customer #661. DETAILS: The .execinstall needed fixing since it could leave one extra element on the operand stack, but sometimes it would not. The oparray_cleanup of the error handling _would_ restore the op stack to the point where .execinstall was invoked, but at that point, the procedure operand was part of the old stack count. This meant that if the Install procedure pushed something on the op stack before getting the error, it would be there after the 'stopped', but if it didn't push anything, the stacks would be the same as if the exec was OK. By duplicating the procedure prior to the exec in .execinstall, we insure that there will always be that value on the stack when stopped returns 'true'. Normal execution doesn't change and will pop the extra value created by the 'dup'. EXPECTED DIFFERENCE: None.[lib/gs_setpd.ps]
2006-12-15T18:08:57.832104Z L. Peter Deutsch
Fixes several user path problems: upath didn't signal nocurrentpoint for empty paths in CPSI mode; appending an empty user path didn't set current point in CPSI mode. (PS3 CET 13-27-3, 13-28-4, 13-29-3)[src/zupath.c]
2006-12-15T18:06:08.730263Z L. Peter Deutsch
Fixes bug: gs_upmergepath didn't propagate the imager state current_point members.[src/gspath.c]
2006-12-15T01:58:02.667973Z leonardo
Fix (shadings) : A fixed overflow happened while computing a color. THIS IS INCOMPATIBLE CHANGE : The device virtual method fill_linear_color_scanline now gets half color values as the gradient parameters. DETAILS : Debugged with CET 12-14O.PS SpecialTestJ02Test12. A scanline gradient could overflow because the pixel span may be few wider than the spot span due to pixel rounding. Rather the expansion is always pretty small, it could cause an int32_t overflow when storing the right limit pixel color (which actually is never riched, because the filling algorithm never paints the right boundary). However it caused a wrong result in some cases. See comments in code.[doc/pscet_status.txt src/gdevdsha.c src/gdevddrw.c]
2006-12-14T21:40:07.608049Z leonardo
Fix (shadings) : Align coordinate data and color data to byte boundary (continued). DETAILS : Debugged with CET 12-14O.PS page 2. The recent patch for the subject appears incomplete. After debugging with more tests (ShadingType 5), the parameter align_color_data appears always false and goes away.[doc/pscet_status.txt src/gxshade.c src/gxshade4.c src/gxshade.h]
2006-12-14T20:24:33.168948Z Ray Johnston
Mark some fixes detected in regression run (exact fix rev unknown -- probably from lpd). Note that 23-12W-2 now has only a single difference.[doc/pscet_status.txt]
2006-12-14T19:40:32.852985Z L. Peter Deutsch
For Adobe compatibility, makes 'show'-type operators signal nocurrentpoint immediately, rather than when rendering the first character, if there is no current point. (PS3 CET 13-27-3, 13-28-4, 13-29-3, and possibly others)[src/gstext.c]
2006-12-14T16:28:49.465661Z leonardo
Fix (pdfwrite) : Improve the handling of SMask. DETAILS : The old code writes "/SMask 0 0 R" when a GState with no SMask folows another with SMask. Bug 689023 "regression fails with /rangecheck in --run--". Debugged with Bug688631.pdf .[src/gdevpdfg.c]
2006-12-14T15:50:54.428992Z L. Peter Deutsch
Changes {x,y,xy}show to check at the beginning whether the widths array is large enough, rather than detecting this on the fly, for Adobe compatibility. (PS3 CET 13-27-3, 13-28-4, 13-29-3)[src/gstext.c]
2006-12-14T13:54:09.094929Z leonardo
Fix (Resource machinery) : Place temporary 'resourceforall' data into the local VM. DETAILS : This is an improved version of the 7449 change, which has been unwinded in the revision 7487, The old code placed them into global VM, rather some their elements may be in local VM. Fixes the cash06 diff in PS3 CET 30-07-3. Thanks to L. Peter Deutsch for locating the wrong code parts.[lib/gs_resmp.ps lib/gs_res.ps lib/gs_cidcm.ps]
2006-12-13T21:18:20.233553Z L. Peter Deutsch
Fixes bug: if the source of a ReusableStreamDecode filter was a string, the filter did not appear to be closed after executing closefile. (PS3 CET 23-12W-6)[src/stream.c]
2006-12-13T07:31:41.174327Z Henry Stiles
reassignments to Peter.[doc/pscet_status.txt]
2006-12-13T04:15:29.131303Z leonardo
Fix (stroking) : The CPSI compatibility about the strokepath starting point (continued). DETAILS : The last patch allocates an insufficient buffer for gs_join_triangle. It caused a wrong resiult with PCL.[src/gxstroke.c]
2006-12-13T01:45:35.876588Z Ralph Giles
Add recent new source files to the documentation.[doc/Develop.htm doc/Psfiles.htm]
2006-12-13T01:06:05.344921Z leonardo
Fix : Line join was missed at 'closepath'. DETAILS : Debugged with CET 12-12.PS page 10.[src/gxpdash.c]
2006-12-13T00:58:41.577412Z leonardo
Fix : A CPSI compatibility for 'rectstroke'. DETAILS : Debugged with CET 12-12.PS page 8, 10. PLRM doesn't specify the contour starting point for 'rectstroke' when the rectangle width and/or height is negative. CPSI and the old Ghostscript appear to produce different results, which is important with dashing. The patch provides the CPSI compatibility when CPSI_mode is true.[doc/pscet_status.txt]
2006-12-13T00:26:05.505126Z Ralph Giles
Reenable the jpxparmfix call, after making it check specifically for a JPXDecode filter. Adding a ParmDict to filters that don't take parameters caused problems with some PDF files. Bug 688869.[lib/pdf_base.ps]
2006-12-12T10:22:38.092916Z Russell Lang
Windows documentation updates.[doc/API.htm doc/Install.htm]
2006-12-12T06:26:11.719558Z L. Peter Deutsch
Fix some misspellings ("schedulled"), and remove a duplicate .undef.[lib/gs_init.ps]
2006-12-12T04:25:21.491153Z leonardo
Fix : A CPSI compatibility for 'rectstroke'. DETAILS : Debugged with CET 12-12.PS page 8, 10. PLRM doesn't specify the contour starting point for 'rectstroke' when the rectangle width and/or height is negative. CPSI and the old Ghostscript appear to produce different results, which is important with dashing. The patch provides the CPSI compatibility when CPSI_mode is true.[doc/pscet_status.txt src/gsdps1.c]
2006-12-12T02:43:40.792357Z L. Peter Deutsch
Fixes bug: the ReusableStreamDecode filter treated Intent values other than 0..3 as errors, rather than as equivalent to 0. PS3 CET 23-12V-1[src/zfrsd.c]
2006-12-11T20:28:37.478193Z Ray Johnston
Mark as OK two pages fixed by rev 7489. Note that improvements were made on the following: 23-12G-1, 23-12L-1, 23-12M-1, 23-12N-1, 23-12O-1, 23-12P-1. There were no regressions on the PS CET as a result of rev 7489 changes to the filter pipeline handling.[doc/pscet_status.txt]
2006-12-11T17:30:53.980862Z L. Peter Deutsch
Fixes bug: the PNG predictor filters produced incorrect data for the last pixel of each row. (The encoder and decoder had matching bugs, so encode+decode produced the correct result!) Fixes a diff in PS3 CET 23-12U-1.[src/spngp.c]
2006-12-11T04:48:55.149758Z L. Peter Deutsch
Raises the maximum value of Colors for PNG and PDiff filters from 16 to 60, to prevent rangechecks in some PS3 CET 23-12{L,M,N,O,P}.[src/zfdecode.c src/spngpx.h src/spdiffx.h]
2006-12-11T01:28:57.882333Z L. Peter Deutsch
Fixes bug: closing a filter pipeline with more than one adjacent temporary stream (such as a compression filter with a predictor whose target was a procedure) failed to flush all intermediate buffers, causing failures in PS3 CET 23-12*. NOTE: This code (stream.c:swritebuf) is extremely delicate. Regression checking is essential![src/stream.c]
2006-12-11T00:56:42.572973Z L. Peter Deutsch
Removes 3 compilation warnings.[src/gxpath.h src/gxstroke.c]
2006-12-10T20:25:51.293218Z Stefan Kemper
This is a reversion to r7448 The 7449 commit created a regression where the language switch build wouldn't initialize.[lib/gs_resmp.ps lib/gs_res.ps lib/gs_cidcm.ps]
2006-12-10T19:50:24.509997Z Henry Stiles
Updates from Peter.[doc/pscet_status.txt]
2006-12-10T09:52:06.915864Z leonardo
A better analyzis for 12-12.PS .[doc/pscet_status.txt]
2006-12-09T08:54:37.108427Z Russell Lang
Partial fix for bug 687981, changing the PPD only for Windows 2k/XP. The INF changes for Windows 95 etc. are not included in this change.[lib/ghostpdf.ppd]
2006-12-09T08:42:56.477752Z leonardo
Update CET test status for 12-08A-5, 12-08A-6, 12-11-4.[doc/pscet_status.txt]
2006-12-09T08:32:28.403891Z leonardo
Fix : A wrong 'frac' color comparison caused an incorrect 12 and 16 bpc image rendering. DETAILS : Debugged with CET 12-07C.PS page 15 and disassembling gxi12bit.obj . The old code wrongly computed how many 'long' values are needed to store 4 'frac' values. When sizeof(long)==4 and sizeof(short)==2 it gives 1. However the right answer is 2. Due to that the old code thinks that 'frac' colors are equal when they differ in 3d or 4th component.[doc/pscet_status.txt]
2006-12-09T08:09:19.842018Z Russell Lang
Change Windows installer release date to 2006 and update disk space requirements.[src/dwsetup.rc]
2006-12-09T08:03:44.150164Z Russell Lang
Fix bug 688749 silent/unattended uninstaller. Add silent uninstall option to MS-Windows ghostscript uninstaller. Reformatted part of the code to make it match the GSview uninstaller, on which it was based. For a silent uninstall, use uninstgs.exe "path\to\uninstal.txt" -q[src/dwuninst.cpp]
2006-12-09T07:39:00.107617Z leonardo
Fix : A wrong 'frac' color comparison caused an incorrect 12 and 16 bpc image rendering. DETAILS : Debugged with CET 12-07C.PS page 15 and disassembling gxi12bit.obj . The old code wrongly computed how many 'long' values are needed to store 4 'frac' values. When sizeof(long)==4 and sizeof(short)==2 it gives 1. However the right answer is 2. Due to that the old code thinks that 'frac' colors are equal when they differ in 3d or 4th component.[src/gxi16bit.c src/gxi12bit.c]
2006-12-09T06:17:34.671935Z Alex Cherepanov
Following PLRM 3 handle instances of CIDFont resource in findfont, definefont and undefinefont. Partly fix CET 32_all, 33_all, 34_all, 25_all.[doc/pscet_status.txt lib/gs_res.ps]
2006-12-09T05:04:05.073394Z Russell Lang
Fix bug 688932 mswinpr2 doesn't clear temporary files. Unwanted temporary file was being recreated during page output. We now delete the temporary file when the device is closed.[src/gdevwpr2.c]
2006-12-09T04:24:39.562906Z Russell Lang
Fix bug 688930 mswinpr2 allocates wrong memory size for DEVMODE. A printer DEVMODE structure is usually bigger than sizeof(DEVMODE) due to printer private extra data. Allocate the correct size DEVMODE to include this private data. Remove old Windows 3.1 and Win32s code.[src/gdevwpr2.c]
2006-12-09T00:14:28.954169Z Alex Cherepanov
Validate the argument of execuserobject and undefineuserobject before trying to access UserObjects (which may be undefined) to match CET 31-03 and 31-11.[doc/pscet_status.txt lib/gs_dps2.ps]
2006-12-08T23:08:31.381404Z Alex Cherepanov
Report /rangecheck instead of /limitcheck from defineuserobject when the index exceeds 65535 to match CET 31-02.[lib/gs_dps2.ps]
2006-12-08T22:23:13.575044Z Alex Cherepanov
Report /rangecheck instead of /limitcheck from defineuserobject when the index exceeds 65535 to match CET 31-02.[doc/pscet_status.txt lib/gs_dps2.ps]
2006-12-08T21:47:01.938606Z Russell Lang
Change MS-Windows installer to identify itself as GPL not AFPL Ghostscript.[src/dwsetup.rc src/winint.mak src/gp_wgetv.c src/dwsetup.def src/dwuninst.def src/dwreg.c src/dwsetup.cpp src/dwuninst.cpp]
2006-12-08T21:45:06.679656Z leonardo
Update CET test status for 12-04-5.[doc/pscet_status.txt]
2006-12-08T19:31:55.276122Z Ray Johnston
Disable the jpxparmfix at the point of invocation since it causes many PDF files to fail with /undefined in --run--.[lib/pdf_base.ps]
2006-12-08T18:27:14.429697Z Alex Cherepanov
CET 31-01-08 and 31-01-09 expect the last defined idiom instance to be effective when several of them match. PLRM says it's undefined.[doc/pscet_status.txt]
2006-12-08T15:30:10.567087Z Alex Cherepanov
Increase maximum depth of the procedure matching in idiom recognition to meet CET 31-01-05 and Adobe implementations.[doc/pscet_status.txt src/zmisc3.c]
2006-12-08T14:38:26.687662Z Tor Andersson
Fix some errors in the TTC table parsing.[src/gstype42.c]
2006-12-08T12:00:09.393817Z leonardo
Fix : Wrong current point after uappend. DETAILS : Debugged with CET 11-22.PS page 1. PLRM doesn't clearly specify what should be the current point after uappend, but very likely it is the last point of the appended path. CPSI does so, and we follow it.[doc/pscet_status.txt src/zupath.c]
2006-12-08T04:03:13.743254Z Alex Cherepanov
CET 20-01-2 is re-classified AOK; CPSI modifies the content of the array arguments, if any, when operator >> fails. Ghostscript matches Tek and Distiller 5. This is a bug in CPSI we don't want to reproduce.[doc/pscet_status.txt]
2006-12-08T02:22:36.640014Z leonardo
Fix (stroking) : The CPSI compatibility about the strokepath starting point. DETAILS : Debugged with CET 11-21.PS page 10. PLRM doesn't specify a starting point for strokepath result. Now we choose same point as CPSI does. It appears important if a further drawing depends on current point, and/or when a dashing is applied to strokepath. We don't keep the old algorithm because it is not useful. Supporting two modes (the CPSI compatible mode and the GS native mode) would be too complicated with no good reason.[doc/pscet_status.txt src/gxstroke.c]
2006-12-08T00:31:05.623591Z Alex Cherepanov
CET 13-20-2 is re-classified OK; The CPSI-based PhotoPRINT SE product has CSL installed and cannot be used as a reference here.[doc/pscet_status.txt]
2006-12-07T17:27:20.192504Z Alex Cherepanov
CET 11-13-4 fails because Ghostscript upath doesn't detect nocurrentpoint condition.[doc/pscet_status.txt]
2006-12-07T17:17:35.743899Z L. Peter Deutsch
Fixes bug: makepattern didn't create all of its structures in local VM. (two diffs in PS3 CET 30-07-3)[lib/gs_lev2.ps]
2006-12-07T15:56:26.139005Z Alex Cherepanov
Fix MIN_INTVAL handling in the operator mul. CET 25-13.[doc/pscet_status.txt src/zarith.c]
2006-12-06T23:48:07.446016Z Ralph Giles
Copy the /ColorSpace key (if any) from a stream dictionary into the DecodeParms, so the JPXDecode filter implementation can access it. Pass this key through the JPXDecode filter implementation when the ColorSpace is Indexed to the underlying jasper implementation, requesting that it return raw palette indexes instead of the fully decoded image. This is necessary when the overriding PDF image colorspace is itself paletted. Bug 688869 for customer 531.[src/int.mak src/sjpx_luratech.h src/zfjpx.c lib/pdf_base.ps src/sjpx.c src/sjpx.h]
2006-12-06T23:40:57.941542Z Ralph Giles
Raise the debugging level required for reporting the raw decode option key.[jasper/src/libjasper/jp2/jp2_dec.c]
2006-12-06T23:13:19.707391Z Ralph Giles
Update the product name to GPL Ghostscript. File omitted from r7447.[src/gscdef.c]
2006-12-06T22:25:01.101686Z Ralph Giles
Add a 'raw' option key to jp2_decode() to pass the raw palette data back to the client without applying the included palette for indexed images or otherwise remapping the data. Required for Colorspace override when embedded in PDF documents. Partial fix for bug 688869.[jasper/src/libjasper/jp2/jp2_dec.c jasper/src/libjasper/jpc/jpc_dec.c]
2006-12-06T22:23:19.182804Z Ralph Giles
Change the included license text to refer to the GPL. Omitted from r7446.[LICENSE]
2006-12-06T22:01:38.950715Z Alex Cherepanov
All failures in CET 24-13-3 are caused by writable FontDirectory.[doc/pscet_status.txt]
2006-12-06T19:59:48.793585Z Alex Cherepanov
Modify gs to match 12-14c test case: - check that the function domain covers all of the shading domain. - do this test early - before checking other parameters. - tweak error handling in shfill on PostScript level to match the test.[doc/pscet_status.txt src/zshade.c lib/gs_ll3.ps src/zfunc.c src/zfunc3.c src/ifunc.h]
2006-12-06T01:33:52.778741Z L. Peter Deutsch
Fixes bug: currentcolorscreen attempted to copy a screen procedure even if it wasn't readable.[lib/gs_dps2.ps]
2006-12-05T14:51:16.744559Z Ray Johnston
Change pages fixed by Peter detected in last regression run as improvements.[doc/pscet_status.txt]
2006-12-05T04:16:20.081512Z L. Peter Deutsch
Changes the initial halftone screen procedure from a packedarray to an array, to pacify PS3 CET 09-49D.[lib/gs_init.ps]
2006-12-05T03:28:09.927677Z L. Peter Deutsch
Fixes bugs: many places in the implementation of resourceforall did not always create temporary objects in local VM, which is necessary because some of their elements may be in local VM. Fixes the cash06 diff in PS3 CET 30-07-3.[lib/gs_resmp.ps lib/gs_res.ps lib/gs_cidcm.ps]
2006-12-04T22:25:49.788684Z Ray Johnston
Close some 'setflat' issues as AOK where GS is close, but better at each resolution. Now that CPSI implements setflat, the differences in Adobe implementations justifies GS differing (slightly) as well. Cases where GS is worse (less smooth) than CPSI and Tek still need analysis. Reassign 09-24-2 group of problems to Ray.[doc/pscet_status.txt]
2006-12-04T21:41:08.335595Z Ralph Giles
Update the product name to "GPL Ghostscript" and bump the version number for the upcoming release to avoid confusion with the GNU 8.55 release.[lib/gs_init.ps src/version.mak]
2006-12-04T21:17:43.624240Z Ralph Giles
Remove the APFL and add the GPL to reflect our now-GPL development practice. For the record, this tree has been GPL licensed since the 8.54 release, but this is now explicit.[doc/Readme.htm doc/Public.htm doc/Commprod.htm doc/COPYING doc/gs-vms.hlp]
2006-12-04T18:17:42.359489Z Ray Johnston
Mark a few other tests as "OK" after CPSI fixed to implement 'setflat'. and add a note to a timing dependent output.[doc/pscet_status.txt]
2006-12-04T17:34:45.126523Z Ray Johnston
Mark some 'setflat' issues as OK. I will be replacing some of the CPSI output after "unlocking" setflat (so that CPSI implements, rather than ignoring setflat). Also remove (*JS) that didn't mean anything. Update explanation on 30-01-1 from Peter.[doc/pscet_status.txt]
2006-12-04T15:16:22.671661Z Alex Cherepanov
Accept packed arrays for the /Size element of the shading dictionary and everywhere else where dict_int_array_param() is called. CET 31-01-06[doc/pscet_status.txt src/idparam.c src/zimage3.c src/zfsample.c src/idparam.h src/zfunc.c src/zfunc0.c src/zfilterx.c]
2006-12-03T16:02:51.520019Z L. Peter Deutsch
For Adobe compatibility (PS3 CET 23-07 and 23-13-5), changes findresource, defineresource, undefineresource, and resourcestatus so that errors occurring within these operators, except for a possible initial stackunderflow, report the (executable) operator name, rather than the operator object, as the command a.k.a. error object.[lib/gs_res.ps]
2006-12-03T15:52:19.386596Z Alex Cherepanov
Avoid floating point division by 0. Catch the case when all components of the matrix equal to 0.[src/gxhintn.c]
2006-12-03T15:52:07.896094Z L. Peter Deutsch
For Adobe compatibility (PS3 CET 09-56-1), changes findcolorrendering so that errors report /findcolorrendering, not --findcolorrendering--, as the command a.k.a. error object.[lib/gs_lev2.ps]
2006-12-02T07:24:01.485014Z L. Peter Deutsch
Fixes bug: save objects are simple in LL1 and LL2, but composite in LL3, so restore must treat save objects on the stack differently depending on the languagelevel. (PS3 CET 30-04-2, and some file in the PS2 tests, actually care about this.)[src/isave.h src/zvmem.c]
2006-12-02T06:34:29.338937Z L. Peter Deutsch
Fixes two bugs related to PS3 CET 23-07-1: Failure to find a resource category signalled undefinedresource rather than undefined (PLRM3 bottom of p. 105), and always reported --findresource-- as the error command rather than the correct one.[lib/gs_res.ps src/interp.c lib/gs_init.ps]
2006-12-01T23:17:00.226511Z Tor Andersson
Add an argument to select a specified subfont to gs_type42_font_init. This argument is only used for truetype collection (TTC) font files.[src/gxfcopy.c src/gxfont42.h src/gstype42.c src/zfont42.c]
2006-12-01T01:34:22.593578Z L. Peter Deutsch
Corrects an error in a comment (BitsPerComponent should be Colors).[src/spdiff.c]
2006-12-01T00:27:39.971017Z Ralph Giles
Recommit changes from r7237 so we have continuous history. Fixes and analysis from Peter.[doc/pscet_status.txt]
2006-12-01T00:22:19.531380Z Ralph Giles
Recommit changes from r7235 so the file has continuous history. A couple of reassignments and fixes from Peter. See the diffs for details.[doc/pscet_status.txt]
2006-12-01T00:19:02.366674Z Ralph Giles
Replace pscet files with copies linked to imported history.[doc/pscet_status.txt toolbin/pscet_status.pl]
2006-12-01T00:16:33.505703Z Ralph Giles
Move pscet files out of the way to make room for versions with history.[doc/pscet_status.txt toolbin/pscet_status.pl]
2006-11-30T22:52:33.785536Z Henry Stiles
fixes and analysis from Peter.[doc/pscet_status.txt]
2006-11-30T21:01:19.024704Z L. Peter Deutsch
Fixes a bug that could cause a SEGV when reading binary token arrays on systems where sizeof(ref) > 8 (e.g. 64-bit systems).[src/iscanbin.c]
2006-11-30T20:41:53.369215Z Henry Stiles
Move the cet bug list and the script for tallying bug statistics from the pscet_status.txt file to the public release. Also includes a couple of reassignments and fixes from Peter. See the diffs for details.[doc/pscet_status.txt toolbin/pscet_status.pl]
2006-11-30T17:30:17.006076Z L. Peter Deutsch
Fixes bug: setcolorrendering returned CRD names as strings rather than names.[lib/gs_lev2.ps]
2006-11-30T17:11:55.853083Z L. Peter Deutsch
Fixes bug: In case of an error, setvmreclaim and setvmthreshold reported an error in setuserparams rather than the correct operator.[lib/gs_lev2.ps]
2006-11-30T07:48:31.178531Z L. Peter Deutsch
Fixes bug: printobject and writeobject didn't signal an /undefined error if currentobjectformat was 0.[lib/gs_btokn.ps]
2006-11-30T05:38:43.886406Z Raph Levien
Match arbitrary-seeming CPSI behavior (when CPSImode is set) regarding incorrect ucache placement causing typechecks with some but not all upath operations. Fixes 11-28-5 and improves 11-22-3.[src/zupath.c]
2006-11-29T01:33:19.060235Z leonardo
Fix (pdfwrite) : Don't write min_int as XHeight. DETAILS : Bug 689009 "Ghostscript generated pdf/a file has an XHeight of -2147483648". The old code doesn't check whether XHeight is successfully computed for the font. However some font subsets simply have no characters for its computation. In this case the old algorithm writes min_int, which works for internal needs of the algorithm. We believe that using zero instead min_int is safe because fonts usually place characters over the base line. If all chars appear below the base line, the zero value won't be written due to the logics for default values in write_FontDescriptor_common. Thanks to Marcos for the perfect bug localization.[src/gdevpdtd.c]
2006-11-28T00:46:03.167492Z Raph Levien
Silently accept incorrect ucache placement in CPSI compatibility mode. Fixes CET 11-23-3 and (partly) 11-24-3 and 11-25-3.[src/zupath.c]
2006-11-27T23:56:22.186441Z Raph Levien
Reverses order of subpaths in gx_path_copy_reversed, which is the implementation of the reversepath operator. PLRM3 says that the order of subpaths is unspecified, but CPSI reverses them, while old GS had them in the same order as the original path. Fixes CET 11-05-6, 11-14-5, 11-22-7, and 11-28-11.[src/gxpath2.c]
2006-11-27T23:21:36.941749Z leonardo
Fix (pdfwrite) : A wrong font substitution for glyph variations. DETAILS : Bug 688967 "Problem with converting PS file with barcode font to PDF". The old code doesn't check for possible encoding conflict when sharing a charproc from another font. The current font could already have another charcproc for same char code.[src/gdevpdti.c]
2006-11-26T05:51:17.751153Z Ray Johnston
Fixes for CET's. Halftone dummy lpi and angle are real for Adobe. Also setdash must return typecheck for wrong type top operand even if there is no second operand (09-36-3).[lib/gs_init.ps]
2006-11-24T21:53:27.264413Z Ray Johnston
Return 'undefinedresult' rather than 'rangecheck' for MININT / -1 to match Adobe CPSI and Tek on CET 25-09[src/zarith.c]
2006-11-24T21:18:42.311047Z Ray Johnston
Fix typo in previous commit (commit from a non-working directory after testing on another system).[src/zarith.c]
2006-11-24T21:13:30.086309Z Ray Johnston
Check for rangecheck condition BEFORE doing the divide. Prevent FP exception on MSVC-6/x86. Fixes problem causing CET 25-09.ps to abort.[src/zarith.c]
2006-11-23T19:01:20.626083Z leonardo
Fix : Skip images outside the clipping path. DETAILS : Bug 689000 "Ghostscript generates very large PDF file compared to Distiller". 1. New functions gx_cpath_rect_visible, is_image_visible check whether the image is entirely clipped out. 2. A new flag gx_image_enum_common_s::skipping stores that fact. 3. If so happens, interpreter checks whether the image has string datasources only. Such images may be safely skipped from the interpretation (zimage.c). Note : This optimization works for ImageType 1 only - see comment in is_image_visible. Unfortunately We have no time to improve this now. Need to analyze why does gs_image2_t need a floating size of the source image.[src/gsimage.c src/lib.mak src/zimage.c src/gxiparam.h src/gxcpath.c src/gxpath.h src/gximage.c]
2006-11-23T15:01:16.838484Z Alex Cherepanov
Trap errors from setpattern implementation and re-throw them as setpattern errors. Fix CET 09-47c-01.[lib/gs_lev2.ps]
2006-11-23T14:14:38.062916Z Alex Cherepanov
Throw rangecheck when nocurrentpoint is detected during a user path appending to the current path. This improves error reports from CET 11-22, 11-24, 11-25, 11-27, 11-28. DETAILS: With this fix committed Ghostscript matches Distiller 5 but CPSI and Tek ignore most of the errors in user path.[src/zupath.c]
2006-11-22T20:22:57.190253Z Ray Johnston
Read the JBIG2 Global Context from the stream as an array of strings to create the correct size bytestring for .jbig2makeglobalctx. Bug 689005 for customer 870. DETAILS: The /Length element of the the stream dict is the uncomressed size. This example used FlateDecode on the Global context (which is sort of dumb because except for the headers, most of the symbol dict is already compressed -- in this case it saved a whole 36 bytes = 0.2%). Tested with a smaller string (2000 instead of 60000) since the test file only needed 18654 bytes.[lib/pdf_base.ps]
2006-11-22T19:56:29.243165Z leonardo
Fix (shadings) : Radial shadings sometimes missed Extend. DETAILS : Debugged with CET 09-47I.PS SpecialTestH08Test06. The old code wrongly computed parameter range for the extent, when there exist 2 tangenting circles. In this case the visible part of the extent prolongues to the farest circle. The old code restricts the extent with the nearest circle.[src/gxshade1.c]
2006-11-22T02:03:00.217845Z Ray Johnston
Fix 09-33-5 -- return the screen procedure as an array instead of packedarray.[lib/gs_dps2.ps]
2006-11-22T01:26:37.628128Z Ray Johnston
Fix for 09-29-1 -- force result from BG, UCR procs to always be a real.[lib/gs_devcs.ps]
2006-11-21T21:16:21.705841Z Ray Johnston
Fix stackunderflow on 09-13.ps caused by mistake in rev 7124. DETAILS: Detected as a regression on the PS CET files.[lib/gs_cspace.ps]
2006-11-21T20:21:34.907928Z Ray Johnston
Fix for ILLEGAL (\000) (r) file case seen with 23-09.ps[src/sfxstdio.c]
2006-11-19T14:36:42.834356Z leonardo
Fix (filling) : Very long lines sometimes painted in a wrong direction. DETAILS : Debugged with CET 11-14.PS : (next 3E9 dup moveto 1 dup lto fini) . A fixed overflow happened in gxstroke.c . To work around it we subdivide long segments into 2 parts before applying the stroking algorithm. 1. The hew function gx_path_has_long_segments checks for long segments. 2. The function gx_path_copy_reducing now breaks long segments into 2 parts. 3. gxstroke.c is changed to apply (1) and (2). 4. Note that (2) also affects the filling algorithm, rather it is not related to the test case. It had problems with long segments also, at least gx_default_fill_trapezoid must not be called with very long setgments, because it computes coordinate differences.[src/gxpath.h src/gzpath.h src/gxpflat.c src/gxstroke.c src/gxpcopy.c]
2006-11-18T21:44:30.894785Z leonardo
Fix (filling) : Very long lines were missed sometimes. DETAILS : 1. The flattening iterator subdivided very long lines into 2 segments against a fixed overflow. It appears not sufficient due to an unrelated code optimization. The new code does in 4 segments (gxpflat.c). See comments in code. 2. When finding a path's Y-minimum, the old code didn't account that most parts of a segment may fall outside Y-band (gxfill.c). Debugged with CET 11-11.PS : (next 10 10 moveto 3E9 3E9 lineto fini) .[src/gxfill.c src/gxpflat.c]
2006-11-18T01:50:21.560089Z leonardo
Fix (shadings) : Align coordinate data and color data to byte boundary. DETAILS : Debugged with CET 09-47K.PS SpecialTestJ02Test05 and 09-47K.PS SpecialTestJ02Test05 The old code didn't align to byte boundary. PLRM requires to align "each vertex data" to byte boundary. Howebver PLRM doesn't clearly explains, what does "each vertex data" mean. We make GS to be compatible to CPSI with CET tests. From these tests we know that it wants to align color data when there is no flag, and to align the flag only, when it presents. Actually we also align whenever a vertex ends, because it looks reasonable. We didn't find practical tests for all cases allowed by PLRM, so this logick may need a further improvement.[src/gxshade.c src/gxshade4.c src/gxshade.h src/gxshade6.c]
2006-11-17T23:58:38.951291Z leonardo
Fix (shadings) : Restrict shading function data with the shading function Domain. DETAILS : 1. Restricts the function argument data (CET 09-47M.PS, SpecialTestL04Test04); CPSI appears to restrict shading function data with no warning. The old code throws a rangecheck. 2. Restricts color data with the color space Domain for triangle mesh shadings. The old code did not. Changing it to work same as for patch shadings.[src/gxshade.c src/gxshade4.c]
2006-11-17T05:28:16.982839Z Alex Cherepanov
Validate the argument of setcolorspace before trying to process it. Catch errors from setcolorspace and re-throw them from shfill. Fix CET 12-14d.[lib/gs_ll3.ps lib/gs_cspace.ps]
2006-11-16T16:45:12.812952Z Alex Cherepanov
Return a read-only dictionary from currenthalftone. Partial fix for CET 09-12-01.[lib/gs_dps2.ps]
2006-11-16T15:33:00.738256Z Alex Cherepanov
Pass the arrays with correct attributes to setdash and setcolortransfer in gs_cet.ps to match Tek printer. Fix CET 09-07, 09-08, 09-22.[lib/gs_cet.ps]
2006-11-16T11:12:36.928665Z leonardo
Fix (functions) : Provide a tolerance for insuffitient Domain elements (CPSI compatibility mode only). DETAILS : This change has no effect without "true .setCPSImode". When it is executed, the missed Domain elements are padded with zeros, extra elements are silently ignored. Patch from Alex inproved by Leo.[src/zfunc3.c]
2006-11-16T10:38:44.129650Z leonardo
Fix : A minor bug in the visual trace code.[src/vdtrace.c]
2006-11-15T23:59:58.494757Z Ray Johnston
Remove deprecated cs_get_default_color (an editting mistake). Thanks to Dan Coby for spotting this.[lib/gs_ciecs3.ps]
2006-11-15T16:17:19.366589Z Ray Johnston
Return 60.0 0.0 as Adobe dummy values with Halftone dict (real not int) Fixes 09-05-6[lib/gs_dps2.ps]
2006-11-15T16:15:30.494892Z Ray Johnston
Set the correct default value for CIEBasedDEF and CIEBasedDEFG colorspaces. PLRM p. 233 states value is to be as close to 0.0 as is valid in RangeDEF[G]. Fixes 09-03-3[lib/gs_ciecs3.ps lib/gs_cspace.ps]
2006-11-15T16:12:42.807313Z Ray Johnston
Return real instead of int from tint transform as Adobe does. Fixes 09-02-2[lib/gs_sepr.ps]
2006-11-14T10:08:04.014362Z leonardo
Fix (shadings) : A non-contiguous color function could cause infinite recursion, DETAILS : It didn't check the quadrangle size when dividing it by a big color difference.[src/gxshade6.c]
2006-11-13T21:12:10.733371Z leonardo
Fix (shadings) : Don't fill ShadingType 1 when the region is outside the function domain. DETAILS : Debugged with 09-47G-1.PS SpecialTestF02Test01 . The old code returned rangecheck when it must not paint anything except Background. It happened due to an attempt to check the function monotonity outside its domain.[src/gxshade1.c]
2006-11-13T19:05:22.830209Z Ray Johnston
Prevent 'repeat' extension from sneaking into FunctionType 4 of PDF's we create. DETAILS: When the device is 'pdfwrite' we don't allow the 'repeat' control operator in FunctionType 4 functions. The 'check_psc_function' will return a rangecheck error if this is attempted. We don't need to worry about other devices such as ps2write since it doesn't emit DeviceN tint transforms (the only way we can currently get the 'repeat' operator into a PSC function). To prevent indexing past the end of op_names in calc_put_ops, we throw a rangecheck if one ever sneaks in. Note that in theory, since we the opdfread uses the full PS interpreter to process FunctionType 4, we *could* handle 'repeat', but the calc_put_ops will prevent that (for now). Note that this means that attempting to convert 09-31.ps or 09-34.ps into PDF will not succeed in generating the FunctionType 4, and will throw a rangecheck in the tint transform when trying to generate a sampled function that is too large. All other devices, including ps2write, will show the correct result since the FunctionType 4 tint transform is interpreted in Ghostscript (which handles its own 'repeat' extension).[src/gsfunc4.c src/zfunc4.c]
2006-11-13T17:05:42.548481Z leonardo
Fix (shadings) : Remove colors from C stack, part 10. DETAILS : The patch http://ghostscript.com/pipermail/gs-cvs/2006-November/006955.html appears wrong in the part 1. This patch fixes that.[src/gxshade6.c]
2006-11-13T16:38:14.371701Z leonardo
Fix (shadings) : Remove colors from C stack, part 9. DETAILS : Removing unuseful comments.[src/gxshade6.c]
2006-11-13T16:32:10.419581Z leonardo
Fix : Cygwin/gcc warnings. DETAILS : Missed a function prototype.[src/int.mak src/zfile1.c]
2006-11-13T16:22:51.306913Z leonardo
Fix (shadings) : Remove colors from C stack, part 8. DETAILS : Fixing Cygwin/gcc warnings.[src/gxshade6.c]
2006-11-13T16:10:41.692230Z leonardo
Fix (shadings) : Remove colors from C stack, part 7. DETAILS : This is the 7th step of fixing the bug 688955 "64K stack overflows with shadings". This change is algorithmically equivalent. We hope this is the last step, which closes the bug. 1. Optimize reserve_colors_inline; 2. Remove 'assert'. 3. Disable the consistency check in release_colors_inline for faster sesult and smaller code. 4. Provide a consistency check at end of a shading fill in term_patch_fill_state.[src/gxshade4.h src/gxshade1.c src/gxshade4.c src/gxshade6.c]
2006-11-13T15:34:00.738868Z leonardo
Fix (shadings) : Remove colors from C stack, part 6. DETAILS : This is the 6th step of fixing the bug 688955 "64K stack overflows with shadings". This change is algorithmically equivalent. 1. Remove the color_stack_ptr0 argument from various functions. 2. Rename the color_stack_ptr1 variable into color_stack_ptr.[src/gxshade4.h src/gxshade1.c src/gxshade4.c src/gxshade6.c]
2006-11-13T14:42:19.588343Z leonardo
Fix (shadings) : Remove colors from C stack. DETAILS : This is the 5th step of fixing the bug 688955 "64K stack overflows with shadings". Cigwin/gcc yields warning for the last patch, some of which may be harmful.[src/gxshade6.c]
2006-11-13T14:32:07.933998Z leonardo
Fix (shadings) : Remove colors from C stack. DETAILS : This is the 4th step of fixing the bug 688955 "64K stack overflows with shadings". This change is algorithmically equivalent. Providing a color stack pointer field in the shading fill state structure. When some colors are reserved, we advance the color stack pointer. A new function release_colors work for releasing them. This patch inserts some asserts, which to be removed soon.[src/gxshade4.h src/gxshade1.c src/gxshade4.c src/gxshade6.c]
2006-11-13T11:18:36.886321Z leonardo
Fix (shadings) : Remove colors from C stack. DETAILS : This is the 3nd step of fixing the bug 688955 "64K stack overflows with shadings". This change is algorithmically equivalent. 1. New functions reserve_colors_inline, reserve_colors work with the color stack in heap. 2. Currently the color stack pointer is saved at each recursion level for simplifying the debugging. We intend t move it later to the shading fill state structure. Currently it is passed via most function calls as a new argument. 3. In automatic data the colors change type from a structure to pointer. 4. Since we want to keep colors be constant while the heavy decompositioin recursion, we made the local color pointers point to const data. Therefore a new argument is added to some functions, which construct colors and therefore need a non-conmst access. Thise changes are commented with "providing a non-const access". 5. Minor change : cs_is_linear changes the 1st argument type to 'const' (gscspace.c, gxcspace.h).[src/gxshade4.h src/gxcspace.h src/gxshade.c src/gxshade1.c src/gxshade4.c src/gscspace.c src/gxshade.h src/gxshade6.c]
2006-11-13T11:04:18.319919Z leonardo
Fix (shadings) : A better average color when filling a triangle. DETAILS : Due to a misprint, the old code wrongly computed the average color from 3 colors of triangle vertices. Minor change : pfs->color_stack_limit is int rather than a pointer, so NULLL isn't a good initilizer.[src/gxshade6.c]
2006-11-12T22:18:04.834342Z Ray Johnston
Add 'repeat' as an pseudo-operator for FunctionType 4. Needed for PS CET 09-31 and 09-34 that use it in the tint transform for DeviceN with 110 and 250 components. DETAILS: Since Type 4 functions are a PDF feature, extending the control operators to include 'repeat' doesn't create any PS incompatibility.[src/gsfunc4.h src/gsfunc4.c src/opextern.h src/zfunc4.c src/zcontrol.c]
2006-11-10T12:18:42.454752Z Alex Cherepanov
Return floating point values for some cases of currentgray, currentrgb, and currentcmyk operator that are implemented in PostScript. Fix CET 09-10.ps, 09-19.ps.[lib/gs_patrn.ps lib/gs_cspace.ps]
2006-11-09T20:05:09.172995Z leonardo
Fix : Cygwin/gcc warnings[src/gxccman.c src/gdevbit.c src/devs.mak]
2006-11-09T19:25:53.845531Z leonardo
Fix : Provide a single color stack for entire shading. DETAILS : This is the 2nd step of the preparation for fixing the bug 688955 "64K stack overflows with shadings". This change is algorithmically equivalent. 1. Ading fields into patch_fill_state_t for representing a color stack in heap. 2. Initialize and finalize them in gxshade6.c . Currently they work idle. 3. Provide a single patch_fill_state_t instance for all meshes/patches of a shgading (gxshade1.c). It allows to handle a single color stack for all meshes/patches of a shading. 3. Document the shortened color representation in gxshade4.h . Most subclasses of shading_fill_state_common are now rudiments, but we keep them for a while to minimize the patch. Note A_fill_state_s is not longer a subclass of it.[src/gxshade4.h src/gxshade1.c src/gxshade4.c src/gxshade6.c]
2006-11-09T02:28:13.502287Z Alex Cherepanov
Trap errors from findfont, etc. and re-throw them as selectfont errors. Partial fix fot CET 13-16.ps[lib/gs_dps1.ps]
2006-11-09T01:54:18.338382Z Alex Cherepanov
Change the order of argument checking in kshow operator. Partial fix fot CET 13-12.ps[src/zchar.c]
2006-11-09T01:11:30.297156Z Alex Cherepanov
Following Adobe example accept 1-component multiple data sources in imahemask. Match CET 12-08b.ps[src/zimage.c]
2006-11-08T20:01:48.930089Z Ray Johnston
A couple of minor additions to match CPSI. Mostly just to show customers that these are device specific values they may want to set themselves.[lib/gs_cet.ps]
2006-11-08T17:59:48.588441Z leonardo
Fix (shadings) : Improving radial gradients. DETAILS : The old code has a bug when painting an extent for an obtuse cone. Then filling the wider extent, it also painted the extent near the apex. It happened due to a trick with representing the view of the constant color cone with triangles. This problem is visible with 09-47I.PS page 7 Test11. Another problem relates to the representation of circles with 2d order besiers. The old code did not account the approximation error of the representation, causing a "stair" between the extent and the cone. The stair may be visible when painting a big cone with a sloped tangent. These two problems were introduced with Revision 2524 on Apr 18 08:12:56 2002 UTC by jeong. When the "new" shading algorithm was implemented 2+ years ago, they were not noticed and has been ported to the "new" algorithm. This patch paints the extent as a regular annulus concatenated with a circle, which "closes" the wider extent. The circle is taken so that its tangent points fall outside the view rectangle. The "closing" circle is necessary because the annulus may be thinner than the view rectangle.[src/gxshade1.c]
2006-11-08T16:13:35.888122Z Alex Cherepanov
Make UniqueID error reporting match Adobe's. Partial fix for 13-05.PS.[src/idparam.c]
2006-11-08T13:36:18.319314Z leonardo
Fix : Rearrange gs_client_color_s to allow saving RAM from color components. DETAILS : This is a preparation for fixing the bug 688955 "64K stack overflows with shadings". See comments in cope.[src/gsccolor.h]
2006-11-08T12:55:36.512197Z Alex Cherepanov
Set errorinfo for Background key in shading dictionary. Clear some issurs detected by CET 09-47G.PS and 09-47H.PS.[src/zshade.c]
2006-11-08T12:30:45.541199Z leonardo
Fix (shadings) : Improving radial gradients. DETAILS : 1. Extend was missed sumetimes due to a wrong formula in R_outer_circle. 2. Must paint nothing when both radii are zero.[src/gxshade1.c]
2006-11-07T23:30:31.983202Z Ralph Giles
Prepend $(DESTDIR) to unix 'make install' paths for the convenience of packagers. This assumes make will substitute an empty string for undefined makefile variable, but this is a widespread convention. Bug 688948.[src/unixinst.mak]
2006-11-07T19:49:18.274457Z Ralph Giles
Remove the deprecated ps2write.bat, which does not work. ps2ps2.bat is the correct script to invoke. Bug 688977.[lib/ps2write.bat]
2006-11-07T18:52:46.763208Z Ray Johnston
Turn on CPSI mode for CET runs. This mode uses the CPSI cmyk_to_rgb conversion and 'eofill' for Type1 characters.s DETAILS: This improves the difference count for 250 pages and only increases the difference count for 6 pages. I've reviewed all regressions and the changes are not important. Of the 250 pages that are improved, The 250 improvements will be analyzed and those that were DIFF or AOK will be changed to OK if they now match closely enough.[lib/gs_cet.ps]
2006-11-07T15:55:45.038514Z Alex Cherepanov
Use standard vector product formula to decide whether the 2 tangent lines in arct operator are collinear. Fix CET 11-03.[src/gspath1.c]
2006-11-07T12:52:11.415127Z leonardo
Fix (gs_cet.ps) : Patch 'setsmoothing' for a better view of shadings in CET tests (continued). DETAILS : Fixing a misprint in the last patch.[lib/gs_cet.ps]
2006-11-07T12:46:34.330897Z leonardo
Fix (gs_cet.ps) : Patch 'setsmoothing' for a better view of shadings in CET tests. DETAILS : CET tests execute "1 setsmoothing", which allows a 100% color error while a shading rasterization. We patch 'setsmoothing' to make the shadings be painted with the default smoothing. It appears closer to what CPSI does.[lib/gs_cet.ps]
2006-11-07T03:50:09.475944Z Alex Cherepanov
Adjust error reporting from sethalftone to match CET 09-40. Fix an error in sethalftone redefinition. Halftone can read from the current file; sethalftone cannot be redefined as { pop } .[lib/gs_dps2.ps lib/gs_ll3.ps]
2006-11-07T01:13:42.489161Z Alex Cherepanov
Fix CET 09-32: Adjust error reporting from setcolorrendering to match the test. Make TransformPQR a required parameter, as specified by the PLRM.[lib/gs_lev2.ps src/zcrd.c src/zcie.c]
2006-11-06T18:58:56.541927Z leonardo
Fix (shadings) : The monotonoty check for Stitching function was wrong. DETAILS : It partially fixes 09-47D.PS and other tests. 1. The function itself didn't set the non-monotonic dimension mask. 2. The shading code erroneusely exchanged dimensions when checking the color monotonoty.[src/gsfunc3.c src/gxshade6.c]
2006-11-06T12:33:12.321244Z Alex Cherepanov
Partialy fix CET 13-05: - Trap errors in definefont procedure and re-throw them as definefont errors. - Throw "invalidaccess in definefont" error for the no-access font dictionary instead of invalidfont that happens without the check. - Silently ignore invalid /FID attribute.[lib/gs_fonts.ps lib/gs_res.ps src/zbfont.c]
2006-11-05T04:14:18.656525Z Alex Cherepanov
Adjust error reporting from findfont procedure to match Distiller and CET 13-06.PS.tek360 . The PhotoPrint product is clearly wrong here leaving a few objects on the stack besides the arguments when findfont fails.[lib/gs_res.ps]
2006-11-05T03:00:15.616716Z Alex Cherepanov
Adjust error reporting from findencoding procedure to match Adobe. Make "null ... findresource" throw /typecheck instead of /undefinedresource . Fix CET 13-06.PS[lib/gs_res.ps]
2006-11-04T17:05:22.998270Z Alex Cherepanov
Change attributes of the array form of the device color spaces. Fix a bug in HSB to RGB conversion introduced in rev. 7124. Simplify equality testing of color spaces: names match corresponding array forms, all other match when color space arrays are equal. Accept float value as a color value for an indexed color space. Fixes CET 09-06.PS and many other test cases.[lib/gs_indxd.ps lib/gs_cspace.ps]
2006-11-04T15:23:19.316020Z Alex Cherepanov
Fix error reporting for setdevparams operator, CET 27-08.[lib/gs_lev2.ps src/ziodev2.c]
2006-11-04T14:11:05.665517Z Alex Cherepanov
Accept negative value for MinFontCompress user parameter and silently substitute with 0. Intercept setuserparams errors and re-throw them as setcacheparams errors. Partial fix for CET 27-07.ps.[lib/gs_lev2.ps src/gsfont.c src/zusparam.c]
2006-11-04T05:59:16.045180Z Ray Johnston
Increase the number of DeviceN components we can handle to at least 250 (which is needed by CET 09-03, 09-06, ...). Both GS_CLIENT_COLOR_MAX_COMPONENTS and MAX_VSTACK depth are needed since we use Type 4 functions to handle DeviceN colors.[src/gsccolor.h src/gsfunc4.c]
2006-11-04T05:51:14.333525Z Ray Johnston
Make the Device color spaces arrays instead of packedarrays for Adobe compatibility. CET 09-03, 09-06 and others.[lib/gs_cspace.ps]
2006-11-04T04:02:22.614110Z Alex Cherepanov
Accept negative argument for setcachelimit operator and silently substitute with 0. Intercept setuserparams errors and re-throw them as setcachelimit errors. Fix CET 27-06.ps.[lib/gs_lev2.ps src/gsfont.c src/zusparam.c]
2006-11-03T20:47:10.212392Z Raph Levien
Fix: Change /.OrigFont key to /OrigFont to match (undocumented) Adobe behavior. Fixes CET 15-04-1 et al and 16-08-1. Note: test file Bug687615.ps depends on old undocumented behavior, but has been patched in the comparefiles repository.[lib/gs_fonts.ps src/gdevpdtt.c src/zbfont.c]
2006-11-03T20:43:13.567715Z Raph Levien
Fix: Fixes clipsave/cliprestore nested with gsave operations. Correct behavior is to save clipstack into saved gstate, and clear the clipstack in the current graphics state, as clarified in PLRM3. Fixes 450-01.ps and CET 09-54-2 et al, and 11-06-2.[src/gsstate.c]
2006-11-03T19:20:58.328736Z Alex Cherepanov
Make arcto and arct operators throw undefinedresult when the start point or the end point is the same as the center making calculation of the tangent impossible. Fix CET 11-04.ps.[src/gspath1.c]
2006-11-03T06:28:15.169508Z Ray Johnston
Fix some typo's editting blunders. No code change.[src/gsmisc.c src/zmisc.c]
2006-11-03T05:45:05.987701Z Ray Johnston
Implement dynamic configuration of previous compile options that are needed for CPSI compatibility running the PS CET. DETAILS: While a 'state' variable to control this is preferred to a global, the gs_device or gs_imager_state is not propagated through all of the color functions. For example, the place where USE_ADOBE_CMYK_RGB was used with #if to select the color, even though there was a 'pis', it was called with NULL at times. Default will remain the same as the current gs. The other option controlled with .setCPSImode is the Type 1 fill method. While eofill is the Adobe spec method needed for CPSI compatibility, the w.n. 'fill' method is needed for some Type1's created from TT fonts that don't properly handle inadvertent crossings (and other bad fonts). The "true .setCPSImode" will be added to the lib/gs_cet.ps to improve CET CPSI compatibility. PCL is not affected since it does not have CMYK colors and doesn't handle Type1 fonts.[src/gsmisc.c src/zmisc.c src/zchar1.c src/gxdcconv.c]
2006-11-02T19:42:47.894000Z leonardo
Fix (imagemask) : An optimization for imagemask with a shading color, continued 2. DETAILS : Cygwin/gcc warnings in the last patch.[src/lib.mak src/gspcolor.h src/gximask.c]
2006-11-02T19:19:23.740183Z leonardo
Fix (imagemask) : An optimization for imagemask with a shading color, continued. DETAILS : This is a performance fix for 09-47D-3 . It is a similar optimization as a recent one for imagemask, rather this one applies to different cases, which are not directly related to to Postscript operator imagemask. The cases are : - filling a cached character with a shading color; - filling a FAPI character with a shading color; - rendering an imagemask while a clist playback (for future. currently never happens with shadings). This patch adds new modules gximask.c and gximask.h, which factor out the common code for the mentioned cases. The code is taken from the last patch for imagemask, with minor restructurization. The new function gx_image_fill_masked must be called from the graphics librari instead a direct call to the device virtual method fill_mask. It checks for the shading color and inserts the clipping device, which represents the mask. Note that the clipping device always decompose a shading color, so inserting the clipping device before it won't cause a problem. However it needs some care when rendering to a high level device. The clip accumulator device had no fill_mask virtual method. This patch adds the default implementation for the proper work of gx_image_fill_masked.[src/gsimage.c src/lib.mak src/gxacpath.c src/int.mak src/gximask.c src/gxccache.c src/gzcpath.h src/gxclrast.c src/gximask.h src/zfapi.c]
2006-11-01T21:18:41.176742Z leonardo
Fix : When filling a path with a shading, the filling rule was missed. DETAILS : 1. Unwing the rev 7114 patch due to a significant slowdown for filling a path with a shading (gxfill.c). 2. A minor change to gxfill.c : removed a redundant assignment to fo.lop . 3. The old code always used the non-zero winding rule, because gx_cpath_to_path misses the winding rule when called from gx_default_fill_path. See commet in code. This is the real fix for the problem. 4. pcpath->rule sometimes was not initialized when pcpath->path_valid is true (gxcpath.c) We don't like that gx_default_fill_path creates a big clipping path, which then converts into a path, which then is being intersected with a rectangle and/or parallelogram(the shading BBox) in gs_shading_fill_path. The biggest time expence in this chain is the sorting a lot of rectangles when gx_cpath_intersect_path_slow applies the filling algorithm to compute the intersection. In many cases the the rectangle is simply the bounding box of the path, but it still needs the clipping path planarization, because the "planarized" property isn't stored in the path structure. We tried to optimize against it, but didn't succeed with no raster differences. Delaying that optimization for better times. Due to a short time frame we need to make this patch smaller and simpler.[src/gxcpath.c src/gxfill.c]
2006-11-01T19:58:48.174934Z Ray Johnston
Add prototypes for _ftelli64 and _fseeki64 for MSVC 6 builds. Allows > 2Gb clist when building with MSVC 6. Bug 688394 for customer 330. DETAILS: Even though the functions are in the run time library (at least with service pack 6), they aren't documented and aren't in the include files. Without the prototypes, the functions are presumed to return and 'int' so the sign gets extended for offsets > 0x7ffffff. Tested with customer's file at 180dpi where the clist size gets up to 2.7Gb.[src/gp_mswin.c]
2006-11-01T04:31:35.972287Z Henry Stiles
This file should have been included in the previous checkin. gs is now an external repository and changes have to be checked in explicitly.[src/gdevpxop.h]
2006-11-01T01:05:01.781266Z Alex Cherepanov
Change order of operand checking in setfileposition to match CET 23-28.ps[src/zfileio.c]
2006-11-01T00:44:39.318388Z Alex Cherepanov
Make resourcestatus throw typecheck when resource category is not a name. Partial fix for CET 23-26.ps, page 4.[lib/gs_res.ps]
2006-10-31T23:21:22.115009Z Alex Cherepanov
Change the order of argument checking in renamefile operator and the error code returned for renaming bare devices such as (%stdin) to match CET 23-23.ps[src/gsfname.c src/zfile.c]
2006-10-31T21:30:03.431760Z Alex Cherepanov
Change the order of argument testing in readline operator to match CET 23-22.ps[src/zfileio.c]
2006-10-31T21:00:30.566372Z L. Peter Deutsch
Fixes a bug: 'bind' would affect non-writable ordinary arrays, rather than doing nothing per the PLRM. ('bind' still affects packed arrays, per the PLRM.) Fixes a discrepancy in PS3 CET 31-01-2.[src/zmisc.c]
2006-10-31T20:58:38.108340Z L. Peter Deutsch
Fixes a bug that caused certain 1-operand math operators to return typecheck rather than stackunderflow if the stack was empty. Fixes a discrepancy in PS3 CET 25-05-1.[src/iutil.c]
2006-10-31T17:36:29.458383Z Alex Cherepanov
Change the order of argument checking for readstring operator to satisfy CET 23-21.ps . In general, CET prefers other errors over stack underflow when there is a choice. Ghostscript was originally designed to do the opposite.[src/zfileio.c]
2006-10-31T04:29:18.220326Z L. Peter Deutsch
Makes 0 0 exp return 1.0 rather than signalling undefinedresult, to match Adobe interpreters. Fixes a discrepancy in PS3 CET 25-07-1.[src/zmath.c]
2006-10-30T22:20:55.924215Z Alex Cherepanov
Fully check an setcolor operand before trying to access a new one to match CET 09-30 and 09-48 error reporting. Down, not across.[lib/gs_cspace.ps]
2006-10-30T21:57:56.999671Z Ray Johnston
Tolerate some missing keys in a CMap (previously we only allowed for missing CMapName). Missing /CodeMap and /CIDSystemInfo now tolerated for PS CET 23-25 and others. DETAILS: Note a CMap with missing CodeMap can't really be used. It is just accepted for CPSI compatibility.[lib/gs_cmap.ps]
2006-10-30T21:53:44.580966Z Ray Johnston
Remove Localization Resource since CPSI doesn't define this. PS CET 23-25 and others.[lib/gs_cet.ps]
2006-10-30T21:47:51.298314Z leonardo
Fix : Don't replace FDArray for a built CIDFontType 0. DETAILS : Debugged with 32_all.PS . The old code didn't check whether a CIDFontType 0 is being built at second time and erroneusely replaced FDArray in it. It causes FDArray to be prematurely released with "restore" when the font is not, causing a heap inconsistency. This quick fix avoids the FDArray replacement. However it leaves some work for the garbager. A better fix should perform a better cleanup - see comment in code. Delaying it for better times.[src/zfcid0.c]
2006-10-30T18:20:09.692598Z Alex Cherepanov
Fix decoding of the indexed color space in the smooth shading. Adjust error codes to satisfy CET 12-14a, 12-14b 12-14e, 12-14f, 12-14g Change gs_errorinfo_put_pair() to take char* instead of byte* a more common type and move all errorinfo-related functions to idparam.c because they are most often used with dictionary parameter functions.[src/zimage.c src/idparam.c src/zshade.c src/int.mak src/interp.c lib/gs_ll3.ps src/idparam.h src/gxshade.c src/interp.h]
2006-10-30T14:54:34.519781Z Stefan Kemper
Comment change. gsargs::arg_push_string changes the parsing algorithm to parse on spaces. This is a side effect of changing the depth of the arg_list. Currently only the postscript -c option uses this parsing scheme. No Differences.[src/gsargs.h]
2006-10-27T11:49:01.166620Z leonardo
Fix : MSVC warning. DETAILS : char** --> char* Don't know how it compiles with various compilers. In any case it was definitely wrong.[src/gsiorom.c]
2006-10-27T00:04:16.218261Z Alex Cherepanov
Don't modify the destination string of cvs and cvrs operators on failure. Change the returned error codes to suit the CET tests 24-05.PS and 24-06.PS . DETAILS: Adobe enterpreters have a bug when "1234556789 10 ( ) cvrs" restores the stack as "123456789 ( ) ( )" Ghostscript doesn't have this bug, which is affects 24-05.PS checksums.[src/zfileio.c src/iutil.c src/iutil.h src/ztype.c]
2006-10-26T23:10:05.159422Z Raph Levien
Fix: make out-of-bounds string DataSource reads return 0 bytes, rather than UMR. Spec calls for /rangecheck, but CPSI silently returns garbage. Improves 09-47B page 12 (focus on test 6), but exact match to CPSI is probably not feasible.[src/gsdsrc.c]
2006-10-26T22:14:01.743778Z leonardo
Fix (TT font reader) : Obtain Unicode codes from Encoding glyph names of a special format. DETAILS : Bug 688946 "Problem reading PDF file with Arabic font". We think we observe an undocumented Adobe feature. This patch has no strong theoretic foundation. It is created empirically. An embedded True Type font has no some glyph names in its 'post' table, but they present in Encoding Differences. The glyph names look as uniXXXX where XXXX is 4 hexadecimal digits. The corresponding character codes can't be translated into glyph indices neither with AdobeGlyphList, nor with 'post', nor by the identity or another simple mapping to Unicode. We conclude that Adobe recognizes such names and obtains Unicode codes from them, and then translates them with 'cmap'. We think it is only possible correct method for the supplied test case. This patch implements it. 1. Passed Encoding as prebuilt_encoding for symbolic fonts (pdf_font.ps). 2. When a symbolic font has an Unicode 'cmap', account glyph names from its Encoding (the change to .pdfcharkeys in gs_ttf.ps) while composing CharStrings. 3. Modified .addglyph with conversion of uniXXXX names into Unicode codes. 4. The new mapping is allowed only with cmap 3.1. Debugged with Bug688467.ps .[lib/pdf_font.ps lib/gs_ttf.ps]
2006-10-26T08:26:31.673716Z leonardo
Fix : Specialize the build_char function argument type (continued). DETAILS : Removing another cast related to the last patch (An MSVC warning).[src/lib.mak src/gxfcopy.c]
2006-10-26T07:53:20.323680Z leonardo
Fix : Specialize the build_char function argument type. DETAILS : The ghostpcl project yielded a potentially harmful warning about a type cast. It occurs a cast from a class to subclass. We could not provide a dynamic check in there, so we analyzed why it needs such cast. The reason appears an inaccurate design in the graphics library, and we fix it now.[src/gxchar.c src/gstext.c src/gxfcopy.c src/gxfont.h]
2006-10-26T07:07:58.608985Z leonardo
Fix : MSVC warning in the last patch. DETAILS : Fixed an inaccurate type cast.[src/interp.c]
2006-10-26T05:36:39.854227Z L. Peter Deutsch
Fix: /bind load printed --.bind-- rather than --bind--. Partly fixes a discrepancy in PS3 CET 31-01-2.[lib/gs_ll3.ps]
2006-10-26T04:39:35.686300Z L. Peter Deutsch
Replace inexact decimal literals in the HSB<->RGB algorithms with more exact computed values, so that (e.g.) 0.2 1 1 sethsbcolor currenthsbcolor returns 0.2 1 1. Fixes problems in PS3 CET 09-41-4.[lib/gs_cspace.ps]
2006-10-26T01:03:53.154097Z Raph Levien
Implementation of imagemask scaling. Fixes CET 09-24 page 3 and many other instances of the interpolated "turkey" bitmap. This implementation mostly matches Adobe, but differs in one bit; further analysis of the Adobe algorithm would be necessary to make it match 100%.[src/lib.mak src/zfimscale.c src/simscale.c src/int.mak lib/gs_img.ps src/simscale.h]
2006-10-25T17:01:48.042147Z Alex Cherepanov
Add a routine to create and store [/key any] array in $error.errorinfo for better conformance with Adobe PS interpreters. This routine will be called from many places that reports errors in dictionary parameters. Use the new routine to fix one case of error reporting in the inage operator. Bug 688956.[src/zimage.c src/int.mak src/interp.c src/interp.h]
2006-10-25T12:10:09.905326Z Alex Cherepanov
Normalize bounding box retrieved from PostScript BBox parameter in the shading dictionary because Adobe interpreters accept denormalized box. Bug 688937, customer 200.[src/zshade.c]
2006-10-24T15:13:03.211241Z leonardo
Fix (imagemask) : An optimization for imagemask with a shading color. DETAILS : This is a partial performance fix for 09-47L.PS . It fixes the biggest performance flaw, but a further optimization is still wanted. The patch converts the image into a clipping path and then renders entire shading at once through the clipping path. The old code rendered entire shading color many times for each rectangle of the mask. 1. The clip list accumulator device is made publicly accessible. 2. Provided a garbager descriptor for clip list accumulator device structure. 3. When an imagemask needs to render with a shading color, gs_image_begin_typed replaces the target device with the clip list accumulator device. 4. To provide a correct work of (3), inserted a hook into gx_dc_pattern2_fill_rectangle, which forwards the operation back to the device method. It is done because normally that function calls copy_mono with imagemak. Instead that, we need to accumulate rectangles for the clipping path. 5. Introduced a new signal pattern_manage__is_cpath_accum, which is used to detect the clip path accumulator device under a forwarding device. Such case happens in (4) when it renders a cached character with a shading color. 6. gs_image_cleanup performs the main work for rendering the shading color through the clipping path. Note that we need to pass the device color to it, therefore it gets a new gs_state argument. (Well, one may think that it can be passed in a new field of gs_image_enum. Actually that's not safe because an erroneus Postscript program can change the current graphic state and release the old one. After that the pointer will point to the released structure and cause a heap inconsistency).[src/gsimage.c src/gsptype1.c src/lib.mak src/zimage.c src/gsptype2.c src/gxcpath.c src/gxacpath.c src/gsimage.h src/gxcpath.h src/gxccache.c src/gzacpath.h src/gdevpdfi.c src/gxdevcli.h]
2006-10-24T12:22:14.551224Z Tor Andersson
A conditionally compiled mechanism to allow cached characters to be locked out from eviction. A cached character has a reference count, which if non-zero will prevent the cache slot to be evicted. This is needed for the GSLite API.[src/gxfcache.h src/gxccman.c]
2006-10-23T11:17:11.666646Z leonardo
Fix : Repair the character cache logics with persistent cache entries (continued). DETAILS : Cygwin/gcc yielded unpleasant warnings.[src/gxfcache.h src/gxccman.c src/gxstroke.c]
2006-10-22T18:58:27.280592Z L. Peter Deutsch
Fixes bug: xshow/yshow/xyshow checked the length of the widths array incorrectly, and the outcome of the check was ignored. Partially fixes a discrepancy in PS3 CET 13-27/28/29.[src/gxchar.c src/gstext.c src/gstext.h]
2006-10-22T17:58:51.962128Z L. Peter Deutsch
Fixes bug: the user path operators didn't check encoded user paths to make sure that the operand string/array and operator string allowed read access. Partially fixes a discrepancy in PS3 CET 13-29-3.[src/ibnum.c src/zupath.c]
2006-10-21T22:38:11.960157Z L. Peter Deutsch
Changes exec, stopped, and .stopped so that if the object to be executed is noaccess and executable, the invalidaccess error occurs with the object still on the operand stack. Fixes an Adobe incompatibility in PS3 CET 28-14-1.[src/zcontrol.c]
2006-10-20T01:12:42.025502Z Raph Levien
FIX: Fixes CET 18-02A p4 and others. Optimization for filling shadings by installing a clipper device with the path, and rendering complex color through it, does not produce correct results when fill rule is eofill. This patch simply disables the optimization in the case of eofill. We should probably look at why the optimized code produces incorrect results, as that may affect correctness of eoclip, not to mention the performance issues.[src/gxfill.c]
2006-10-18T13:32:51.500333Z Ray Johnston
Fix error returned from currentdevparams. Fixes PS LL3 CET 27-03. Thanks to Noriyuki Matsushima for this patch.[src/ziodev2.c]
2006-10-18T07:01:10.427208Z Dan Coby
Fix for 688880 Encrypted PDF can not be processed. DETAILS: The problem file specifies both V = 1 and and a Length = 128 bits in the encryption dict. This is contradictory since page 93 of the PDF 1.6 spec says that if V = 1 then the key length should be 40 bits. This change ignores the the Length value if V = 1. This matches the observed behavior with Adobe Acrobat 7.0.[lib/pdf_sec.ps]
2006-10-17T13:33:02.347582Z leonardo
Fix (gs_main_finit) : Provide a right finalization for the language switch project. DETAILS : It needs to finalize without closing the output device and without closing the graphics library and files, because other interpreters may work with them after the Postscript interpreter closes.[src/imain.c]
2006-10-16T15:30:51.595142Z leonardo
Fix (memory management) : Restore the memory wrapper code consistency. DETAILS : It was broken during the ghostpcl project merging : 1. The USE_RETRY_AND_LOCKING_MEMORY_WRAPPERS code was inconsistent. 2. The !USE_RETRY_AND_LOCKING_MEMORY_WRAPPERS code caused a MSVC compiler warning due to an inaccurate type cast.[src/gsmalloc.c]
2006-10-16T15:08:20.540609Z leonardo
Fix : Repair the character cache logics with persistent cache entries. DETAILS : Important character caching problems have occasionally detected while merging with the ghostpcl branch : 1. The ttfReader never released in PCL when a font has a valud XUID. 1.1. The new function gs_clean_fm_pair_attributes, is called when a font is being released by 'restore', but its cached characters continue to live in the cache. This function releases those font-matrix pair attributes, which may point to the font. When the font has True Type data, it releases ttfReader and ttfFont. 1.2. The function gs_purge_font_from_char_caches is now called from gs_font_finalize, which is called from 'restore' and from the garbager. It allows gs_clean_fm_pair_attributes to be called from 'restore'. Note that when it is called from the garbager, it works idle because the method 'free' is disabled while the garabarer runs for same allocator. 1.3. The new flag gs_font::is_cached prevents a redundant work of gs_purge_font_from_char_caches, when it is called from font_restore and from gx_font_finalize. Therefore the argument of gs_purge_font_from_char_caches is now non_const. 1.4. With the new code, cached characters for fonts with valid XUIDs persist across a document/job end. They may be reused when a next document/job renders same font-matrix . There is no way to purge cache between jobs besides destructing entire cache and allocating it anew. 1.5. The new function gs_purge_font_from_char_caches_completely is coded for those clients, which don't need the feature 1.4. 1.6. Clients (such a PCL interpreter) must immediately call gs_purge_font_from_char_caches or gs_purge_font_from_char_caches_completely, whenever they release a font immediately. 2. Cached characters were dropped from cache on 'restore' while a font has a valid XUID and can appear again afrer 'restore'. It happened because the old code called gs_purge_font_from_char_caches from font_restore due to its cache elements point to the font's XUID, which is being released. 2.1. Copy the XUID to a stable memory in gx_add_fm_pair. 2.2. Release it in gs_purge_fm_pair. 2.3. Disable the related code portion in font_restore. 2.4. The new function gx_attach_tt_interpreter is factored out from gx_add_fm_pair. Now it is also called from gx_lookup_fm_pair (with an intermediate function gx_provide_fm_pair_attributes) when a persistent pair is being associated with a new font having same XUID.[src/gxfcache.h src/gsfont.c src/gxccman.c src/zfont.c src/gxccache.c src/gxfont.h]
2006-10-16T12:50:05.195523Z leonardo
Fix (Resource machinery) : Improve working with ROM file system. DETAILS : 1. Consider %iodevice% paths as absolute when combining a resource file name (gs_res.ps). 2. A minor code cleanup : Remove gp_file_name_combine_patch (an algorithmically equivalent change). 3. A minor code cleanup : Improve zfile_name_is_absolute (an algorithmically equivalent change).[lib/gs_res.ps src/zfile.c src/zfile1.c]
2006-10-15T17:19:45.555905Z Ray Johnston
Fix for bug 688929 -- Genoa test 412-01.ps defines a couple of Type 42 fonts without anything in the 'sfnts'. This hack switches it to a Type 3. This is harmless for normal files since the check is quick and is only executed when fonts are loaded.[lib/gs_typ42.ps]
2006-10-13T01:14:58.600115Z leonardo
Fix (FAPI) : Restore the functionality and the documentation, which were broken with commitments 6998 7077 7078. DETAILS : 1. The reentrant UFST was not tested yet. 2. We noticed a problem with -dTextAlphaBits=4, which to be fixed separately.[src/fapiufst.c src/gxfapiu.c src/gxfapiu.h]
2006-10-13T00:02:34.922456Z leonardo
Fix (clist) : CCITTFaxDecode consumed extra byte. DETAILS : Debugged with ghostpcl ppmraw -r216 c327.bin . This patch is based on my understanding of the problem, which was obtained within a short time frame. Therefore I'm, not sure that all statements of this comment are necessarily correct. The old code didn't write the EOD sequence for CCITTFax data. Such behavior was designed many years ago in order to write a smaller clist output. A year ago the CCITTFaxDecode filter was improved with a workaround for an incorrect behavior of Adobe Acrobat, which writes an EOD when it is not required (see the gs revision 6123). The workaround looks ahead for EOD and consumes it if it appears. However doing that improvement, nobody took care about the clist reader, which didn't write EOD and catenates other data after CCITTFax data. If the subsequent data occasionally look as EOD, they are erroneusely consumed by CCITTFaxDecode, and the clist reader continues with a wrong position. It caused unpredictable behavoir and stochastic crashes. This patch forces writing the CCITTFax EOD for clist. Maybe it's not the best fix, but it is what we can do within the short time frame.[src/gxclutil.c]
2006-10-11T21:12:53.047803Z leonardo
Fix (spot analyzer) : Clean pointers when closing. DETAILS : This is a minor code cleanup. The garbager never deals with those pointers. We clean them just against a heedache for those, who reads that code.[src/gzspotan.c]
2006-10-11T20:06:11.668976Z leonardo
Fix (memory manager) : gs_heap_free_object could break itself. DETAILS : See comment in code. Debugged with ghostpcl 18-21.BIN .[src/gsmalloc.c]
2006-10-11T18:50:08.977036Z Ray Johnston
Fix 'bound_0_1' procedure to return 'real' rather than 'int'. Fixes CET 09-02.PS[lib/gs_cspace.ps]
2006-10-11T18:12:10.866136Z Stefan Kemper
removing c++ comment. Warning changes to gsmalloc.c have broken the -K set max heap usage option.[src/gsmalloc.c]
2006-10-11T05:54:04.315501Z Ray Johnston
Add gs_cet.ps to the %rom%lib/ directory so that it will be found without problems when running the PS CET conformance which needs this file. Later we might remove it from the %rom%lib/ but it doesn't really take up much space and it will prevent 'file not found' failures.[src/int.mak]
2006-10-11T02:57:22.469112Z Ray Johnston
Initial version of 'startup' file to configure Ghostscript to match the Adpbe CPSI to run CET tests.[lib/gs_cet.ps]
2006-10-10T22:43:56.823756Z Stefan Kemper
Commenting out the memory wrappers retrying and locked. This will obviously cause concern and testing for gs, on the other hand it simplifies the memory allocations and removes some significant issues with memory cleanup when multiple jobs are run together in a language switch environment.[src/gsmalloc.c]
2006-10-10T18:16:22.525231Z leonardo
Fix (PS interpreter) : Dont print "Returning error -102." that is not an error. DETAILS : The debug build printed "Returning error -102.". -102 == e_InterpreterExit is not an error. Don't print the confusing message.[src/interp.c]
2006-10-10T18:00:19.925286Z leonardo
Fix (stroking) : Zero lengh dashes have been missed, part 2. DETAILS : 1. Unwinding the revision 7094 change. 2. Fixing an antique bug, which persists since the repository was created. When computing the orientation of an isolated zero length stroke (near the code "const segment *end = psub->last;"), the old code erroneusely takes the direction to the last point of the previous subpath. With recent changes it caused a wrong longitude adjustment for some PCL documents. Documented the right invariant in new comment. 3. The flag zero_length was wrong when a non-zero length segment follows a zero length segment. 4. Zero length strokes were missed with dot_length != 0 and a non-trivial dash pattern (gxpdash.c, lib.mak). It's another case when PCL could miss dots.[src/lib.mak src/gxpdash.c src/gxstroke.c]
2006-10-10T10:03:37.323396Z leonardo
Provide a handling of true Unicode fonts. DETAILS : Bug 688897 "Unicode fonts in Postscript" for the customer #130. 1. Define a new Ordering = Unicode for handling Unicode character sets. 2. Define a new Registry = Artifex for distinguishing those character sets from other Postscript vendors, which do not define such character sets yet. 3. Define a new Identity-UTF16-H CMap for identity mapping from Unicode UTF16 to CIDs with the Unicode character set. 4. As a part of CIF font emulation with True Types, add the Unicode.Unicode entry to the .CMapChooser table, which actually is an identity translation (gs_ciddc.ps). 6. Extend the gs/lib/cidfmap syntax with handling Registry = Artifex (gs_fntem.ps). 7. Force embedding Artifex CMap into PDF (gsfcmap.c). 8. Account the knowledge that an Artifex Unicode CMap may be used for generating a ToUnicode CMap (zfcmap.c). 9. Document all that in gs/doc . 10. Bug: range.size was not initialized when creating an identity ToUnicode CMap (gsfcmap.c). A PDF generated with this patch appears not searchable with Adobe Acrobat, and it cannot extract the text properly. Not sure why. Likely it's another Adobe bug.[Resource/CMap/Identity-UTF16-V lib/gs_ciddc.ps Resource/CMap/Identity-UTF16-H doc/Use.htm src/gdevpdtc.c src/gsfcmap.c src/zfcmap.c lib/gs_fntem.ps]
2006-10-06T18:53:35.444836Z Stefan Kemper
Stepping on Igor's stroke code fully expecting him to review it. This is the copy of the stroke code Igor originally gave the PCL team. The code it is replacing loses data and produces stray lines.[src/gxstroke.c]
2006-10-06T16:54:37.190610Z Ray Johnston
Change to make color values be 'real' instead of sometimes 'integer' types for PS CET 09-02 and MANY other pages. DETAILS: Since this is at the PS level, not the graphics lib, it shouldn't affect PCL. Note that 09-02 still shows a single instance of '0' instead of '0.0'. I am continuing to track that down.[lib/gs_devcs.ps src/zcolor.c]
2006-10-06T15:25:15.662720Z Stefan Kemper
Merge from pcl tree. The freeing of the rop_dev and clip_dev in an image enum now unhooks forwarding devices prior to freeing otherwise there are memory leaks. The rational behind the direct frees used here verses the more normal reference counting of graphic library objects has apparently been lost.[src/gxidata.c]
2006-10-06T15:20:13.457027Z Stefan Kemper
Removing incorrect unsetting of device color when the device isn't a bit tagging device. The bit tagging code shouldn't affect other devices.[src/gspaint.c]
2006-10-06T15:18:10.804229Z Stefan Kemper
Changing a logging error into a return error that will be ignored later. This makes the -Z# debugging output more usable.[src/gdevdflt.c]
2006-10-06T15:16:00.887988Z Stefan Kemper
Merge changes from pcl tree. PSI_INCLUDED is used to signal that gs is not at the top of the system but rather is part of a language switching build. In this case the outputing of pages and management of the device is not completely under postscript's control.[src/zdevice.c]
2006-10-06T15:12:52.976332Z Stefan Kemper
Merge fix from pcl tree, writing a display list with a contone device seg faulted.[src/gxclimag.c]
2006-10-06T14:08:05.588652Z Stefan Kemper
Restore code that is required for raster ops.[src/gxdcolor.c]
2006-10-05T01:45:56.126213Z Alex Cherepanov
Pacify Valgrind. Copy a non 0-terminated PS string to a local buffer to avoid scanning past the end of the string. Bug 688882.[src/gdevpdfr.c]
2006-10-05T01:09:35.392689Z Alex Cherepanov
Following Acrobat Reader 5, ignore everything outside of begincmap..endcmap Bug 688812, customer 170.[lib/pdf_font.ps]
2006-10-05T01:00:55.479409Z Alex Cherepanov
Avoid the operand stack overflow. Construct CharStrings ductionary without .dicttomark operator. Bug 688802, customer 130.[lib/gs_ttf.ps]
2006-10-05T00:47:54.384597Z Alex Cherepanov
Use correct transformation matrix for calculating the current point movement for PDF text rendering mode 3. Bug 688756, customer 700.[lib/pdf_ops.ps]
2006-10-04T13:29:44.744703Z Alex Cherepanov
Fix a reference to an incorrect bug number in toolbin/vg_bugs.supp[toolbin/vg_bugs.supp]
2006-10-04T12:30:21.555827Z Alex Cherepanov
Fix off-by-one error in the PDF font subset prefix generator that mixed in an uninitialised byte when the object size was odd. This error caused indeterministic PDF generation and Valgrind warnings. Bug 688911.[src/gdevpdtb.c toolbin/vg_bugs.supp]
2006-10-04T11:09:21.389337Z Alex Cherepanov
Use open_device procedure to identify the type of the device instead of the standard gs_object_type() because gs_cpath_accum_device is allocaded on the stack i.e. has no block header with a descriptor but has dev->memory set like a heap-allocated device. Bug 688874.[src/gxfill.c src/gzspotan.c src/gzspotan.h]
2006-10-03T18:08:37.387486Z leonardo
Fix (pdfwrite) : Pacify Valgrind with not touching an uninitialized data. DETAILS : Bug 688873 "pdfwrite :Valgrind reports uninitialized data". The old code checked penum->text.x_widths, penum->text.y_widths and shifted them forth and back when they are uninitialized. It was not harmful because those pointers were not defererenced. Also space.s_char was checked when unitialized. In those cases it should not be accessed.[src/gdevpdtc.c src/gdevpdte.c]
2006-10-03T00:31:14.024018Z Ralph Giles
Port additional UFST initialization changes from ghostpcl trunk.[src/fapiufst.c]
2006-10-02T23:26:12.368734Z Ralph Giles
Port UFST-related changes from the ghostpcl tree, r2472 to r2532. This introduces gx_UFST_init() and _fini() functions, and make both PCL and PS ufst initialization use these functions instead of calling ufst directly, so that the same ufst config is shared between the two. Also, update the copyright headers, and defined a needed enum entry for UFST MicroType fonts.[src/gxfapiu.c src/gxfapiu.h src/gxftype.h]
2006-10-02T23:21:05.393683Z Ralph Giles
Set normal eol and keyword substitution flags.[src/gxfapiu.c src/gxfapiu.h]
2006-10-02T19:02:30.811324Z Ralph Giles
Make gs_image_common_init() a proper public function since it is called by the PCL interpreter.[src/gsimage.c src/gsimage.h]
2006-10-02T14:10:53.409280Z Stefan Kemper
Add boolean USE_ttfReader to gs_type42_font_init() In general this is always set true. If this is set false the caller will disable the attachment of ttfReader for dynalab ttf font hinting and the caller is expected to do all the gs_type42 font initialization that was required prior to the addition of ttfReader to the code. Add an early out from gs_type42_font_init() that bypasses some table generation that isn't needed when USE_ttfReader is false. Pulling the return statement here will reenable this code and is harmless except for some small memory leaks. Currently only the PXL downloaded ttf fonts use the false case init, to render fonts with UFST not with FAPI ufst. NO expected pdf or ps or pcl differences since the code path is identical.[src/gxfcopy.c src/gxccman.c src/gxfont42.h src/gstype42.c src/zfont42.c]
2006-09-28T05:56:04.096363Z Ralph Giles
Add an error callback to the example jasper applications. Previously they always failed (or succeeded) silently. DETAILS: The fprintf() calls were replaced with jas_eprintf() in this code along with everywhere else, but no actual callback was installed, so the applications weren't able to give any feedback at all. So we now provide a simple callback that just passes the message on to stderr as is appropriate for a library client.[jasper/src/appl/imgcmp.c jasper/src/appl/jasper.c jasper/src/appl/jasper_sdl.c jasper/src/appl/imginfo.c jasper/src/appl/jiv.c]
2006-09-27T20:37:41.367020Z Ralph Giles
Duplicate JPX image channels if the cmap box has multiple references to satisfy the expectations of later parsing. Bug 688869. DETAILS: A paletted jpx image must contain a 'cmap' box that describes how to build the output image channel by channel out of some combination of decoded image components, which can be used either directly, or mapped through a component of the included palette. Previously, jasper created a new image component whenever a palette mapping was satisfied, but did nothing when the cmap specified a decoded component was meant to be used directly. This created two problems: first the cmap value was ignored, so if the direct mapping output channels were in a different order from the decoded components, the would not be marked correctly. Second, if multiple channels were mapped from the single decoded component, this was not recorded and the image passed up from the decoder would be "missing" a channel because component lookups don't go through the decoded cmap table. As I read the specification, we should really be creating a completely new image by applying the cmap data to the decoded image. However, for PDF we need access to the raw indexed image component before palette application, and just duplicating directly references components within the same image is a less invasive change.[jasper/src/libjasper/jp2/jp2_dec.c jasper/src/libjasper/base/jas_image.c jasper/src/libjasper/include/jasper/jas_image.h]
2006-09-25T21:50:55.223674Z Ralph Giles
Correct a typo in the previous revision.[src/configure.ac]
2006-09-25T21:45:34.607229Z Ralph Giles
Have the configure script check for fopen64 before using it. Bug 688394. DETAILS: We use this as a shorthand to check for the marked *64() stdio calls, and based on that define HAVE_FILE64, which is used in the unix platform code to select whether to call the marked or normal FILE code when _LARGEFILE64_SOURCE is not defined. This is required on MacOS X which does not provide fopen64() and friends (or O_LARGEFILE) but nevertheless implements reasonable large file support with the normal routines on 32-bit architectures without defining _LARGEFILE*_SOURCE. The result should be the same with the autoconf build on architectures where the previous code worked, including linux and cygwin. When building manually without passing -DHAVE_FILE64, or on platforms that don't provide the marked 64-bit versions, we will now fall back to the vanilla functions, and so the bug may re-occur there. This is better than failing to link on such platforms, which was the previous behavior.[src/Makefile.in src/configure.ac src/gp_unifs.c]
2006-09-24T23:50:46.301070Z Alex Cherepanov
Fix calculation of the PDF font subset prefix. This change has little effect, except enabling previously unreachable code and generating different prefixes in some cases.[src/gdevpdtb.c]
2006-09-24T13:22:31.256099Z Alex Cherepanov
New version of vg_bugs.supp for the recent Valgrind and gcc. This file covers all bugs detected on the regression test suite except the bugs in the system calls and CRTL, which are difficult to suppres in the platform-independet way.[toolbin/vg_bugs.supp]
2006-09-22T17:42:33.433152Z Alex Cherepanov
Change s/stream/strm/ to fix a MSVC 6 warning: C4224: nonstandard extension used: formal parameter 'stream' was previously defined as a type.[src/gp_iwatc.c src/gp_macio.c src/gp_mswin.c src/gp_os2.c src/gp_unifs.c src/gp.h src/gp_vms.c]
2006-09-22T00:51:32.310174Z leonardo
Fix : Cygwin/gcc warnings.[src/gdevpdtt.c src/gdevpdtw.c src/devs.mak]
2006-09-21T20:24:01.154825Z leonardo
Fix (pdfwrite) : Don't use sscanf on a non 0-terminated PS strings. DETAILS : This redoes the revision 7062 change due to MSVC compiler warning. The old code has 2 unpleasant hings : 1. MSVC yelds a warning about breaking 'const'. 2. It assumes no spaces at end of a serialized pdfmark argument value. The new code should be clean.[src/gdevpdfm.c]
2006-09-21T19:21:48.437020Z leonardo
Fix (pdf14 device) : Properly intersect rects when composing transparency buffers (continued). DETAILS : Bug 688631 "PDF segfault". The old code supposed : the higher buffer, the smaller rect. Not shure why. The test sample includes the opposite case. Tha last patch for the subject appears incomplete.[src/gdevp14.c]
2006-09-21T12:36:25.384099Z leonardo
Fix (pdfwrite) : Wrinting a PDF/A, convert True Type fonts into CIDFontType2 (continued 2). DETAILS : This completes the fix the bug 688790 "pdfwrite : The PDF/A conversion needs to re-encode texts". Adobe PDF/A preflight tool appears to check whether all glyphs in the font have corresponding entries in W, W2 or Width array. This includes unused glyphs and .notdef . This patch implements creating a W array element for .notdef when a Type 42 font is being converted into CIDFontType2. Besides that, before this patch, when converting a Type 42 into CIDFontType2, the W array was not written at all, because pdf_write_embedded_font did not know about the conversion. Adding a new argument to it for passing that information.[src/gdevpdtb.c src/gxfcopy.c src/gdevpdtd.c src/gdevpdtt.c src/gdevpdtb.h src/gdevpdtw.c src/gxfcopy.h]
2006-09-20T18:26:17.744657Z Alex Cherepanov
Fix Valgrind warnings: (1) don't use sscanf on a non 0-terminated PS strings. Temporaty replace the last character of the string with '\0' before scanning. (2) Don't assign a structure to itself. Check for this case and skip the assignment. Bug 688890.[src/gdevpdfm.c src/gshtscr.c src/gdevprn.c]
2006-09-20T12:01:04.572458Z leonardo
Fix : pdfinflt.ps didn't work with some files. DETAILS : This is a minimal change for my current need. This patch relates to the bug 687796, but doesn't fix it.[toolbin/pdfinflt.ps]
2006-09-19T23:48:03.361024Z Ralph Giles
Correct a typo that cause jpx decoding to fail for all files.[jasper/src/libjasper/jp2/jp2_dec.c]
2006-09-19T23:45:43.473583Z Ralph Giles
Propagate error messages from the jasper library.[src/lib.mak src/sjpx.c]
2006-09-19T19:40:20.717813Z leonardo
Fix (pdfwrite) : Wrinting a PDF/A, convert True Type fonts into CIDFontType2 (continued). DETAILS : This is a partial fix the bug 688790 "pdfwrite : The PDF/A conversion needs to re-encode texts". This is a code restructurization against missed function prototypes. The change is algorithmically equivalent.[src/gdevpdtf.c src/gdevpdtw.c src/gdevpdtf.h src/gdevpdtw.h]
2006-09-19T18:59:10.571301Z leonardo
Fix (pdfwrite) : Wrinting a PDF/A, convert True Type fonts into CIDFontType2. DETAILS : THis is a partial fix the bug 688790 "pdfwrite : The PDF/A conversion needs to re-encode texts". PDF/A doesn't allow True Type fonts with Encoding Differences. Therefore we convert such fonts into CIDFontType2. The main work is done with 2 functions : pdf_convert_truetype_font_descriptor and pdf_convert_truetype_font. See comments in code about the conversion algorithm. Minor change (gdevpdtw.c) : The old code always compressed CIDToGIDMap. The new code does dependently on the CompressFonts distiller parameter. Except that, for a non-PDFA run the code change should be equivalent. Now the font conversion works, but Adobe preflight tool reports missed glyphs by unknown reason. Will need a separate patch for that.[src/gdevpdfx.h src/gdevpdtd.c src/gdevpdtf.c src/gdevpdtw.c src/gdevpdfb.h src/gdevpdtf.h]
2006-09-19T16:08:49.517323Z Alex Cherepanov
Work around a bug in the image operator, which doesn't always restore the operand stack when it fails. Bugs 688532, 688646, 688672, 688736, 688740, 688899.[lib/pdf_draw.ps]
2006-09-19T09:55:25.954073Z leonardo
Fix (pdfwrite) : Uninitialized variables. DETAILS : 1. ps_encoding_index sometimes was not initialized in gdevpdtt.c . Bug 688898 "ps2pdf segfaults in gdevpdtt.c: pdf_reserve_char_code_in_pdfont ()". 2. Cygwin/gcc reports a possibly uninitialized variable in gdevpdfu.c . Actually the compiler is not enough clever. 3. Removed unused variables in gdevpdtt.c .[src/gdevpdtt.c src/gdevpdfu.c]
2006-09-19T08:20:45.476798Z leonardo
Fix (pdfwrite) : Generalize pdf_finish_font_descriptors (continued). DETAILS : This is a preparation for the bug 688790 "pdfwrite : The PDF/A conversion needs to to re-encode texts". The last patch appears incomplete. This adds the pdf_resource_type_t parameter to pdf_finish_resources, and defines pdf_convert_truetype_font_descriptor for future implementation. This change is algorithmically equivalent.[src/gdevpdtd.c src/gdevpdtf.c src/gdevpdfu.c src/gdevpdtw.c src/gdevpdtd.h src/devs.mak src/gdevpdtf.h]
2006-09-19T07:12:54.902919Z leonardo
Fix (pdfwrite) : Generalize pdf_finish_font_descriptors. DETAILS : This is a preparation for the bug 688790 "pdfwrite : The PDF/A conversion needs to to re-encode texts". It generalizes pdf_finish_font_descriptors to pdf_finish_resources. Also define a stub for pdf_convert_truetype_font. This change is algorithmically equivalent.[src/gdevpdtd.c src/gdevpdfu.c src/gdevpdtw.c src/gdevpdtd.h]
2006-09-19T03:55:34.654291Z Ralph Giles
Add the PDF/A and PDF/X prefix source files to the installed library file list. Bug 688861.[src/unixinst.mak]
2006-09-19T02:33:01.156102Z Ralph Giles
Add a few new files to the unix makefile installation target. In particular, opdfread.ps is needed by the ps2write device. We also install the new ps2ps2 convenience script for invoking it. Bug 688861.[lib/ps2ps2 src/unixinst.mak]
2006-09-19T02:21:59.699240Z Ralph Giles
Correct a broken link. Fixes bug 688896.[doc/Ps2pdf.htm]
2006-09-16T02:31:46.612720Z Alex Cherepanov
Change s/steram/stream/ introduced in rev. 7040 and causing compile errors on old versions of MSVC. Bug 688893.[src/gp_mswin.c src/gdevpdfi.c]
2006-09-14T17:29:56.804569Z Alex Cherepanov
Copy a non 0-terminated PS string to a local buffer to avoid scanning past the end of the string. Also fix a few compiler warnings. Bug 688882.[src/gdevpdfp.c]
2006-09-14T17:19:41.966384Z Alex Cherepanov
Pacify Valgrind. Initialize penum->planes[i].source.data in gsimage.c These pointers are enumerated during garbage collection. Bug 688886.[src/gsimage.c]
2006-09-14T12:15:43.242134Z leonardo
Fix (type1 hinter) : Delayedly adjust matrix precision with sbw data. DETAILS : Bug 688875 "type1 hinter: Valgrind reports uninitialized data". The old code initializes matrices after importing data from sbw instruction. If an sbw argument is big, t1_hinter__adjust_matrix_precision adjusts the ctmf matrix coeffitients, which appear uninitialized at that time. In most cases the bug has no consequences besides bothering Valgrind. Only a harmful case was a big glyph width after small coordinates of all outline poles. We don't know whether it practically appears. The new code delays the accounting sbw arguments for the time when all poles are imported. At that time ctmf is definitely initialized, and the trailing moveto already accounted the glyph width. So it only needs to account the glyph origin for the case when its coordinate is a big negative number (a pretty rare case though).[src/gxhintn.c]
2006-09-14T04:31:59.160662Z Ralph Giles
Make the gs configure check the exit code of the jasper configure script and print an error if it fails, avoiding a later build error if jas_config_ac.h is not generated. Patch from Marcos H. Woehrmann. Closes bug 688887.[src/configure.ac]
2006-09-14T02:07:08.908291Z Ralph Giles
Check for a jpx image decoding fewer than the expected number of channels, returning an error instead of a segfault. Work around for bug 688869, customer 531.[jasper/src/libjasper/jp2/jp2_dec.c]
2006-09-14T01:57:35.708945Z Ralph Giles
Add correct copyright header and revision Id to some recently added files. Also set native eol-style.[src/strmio.c src/wtsimdi.c src/strmio.h src/gdevimdi.c]
2006-09-13T17:23:29.059613Z leonardo
Fix (pdfwrite) : CIDFontType2 must not embed into PDF 1.2 . DETAILS : Bug 688889 "pdfwrite : CIDFontType2 must not embed with CompatibilityLevel=1.2". The last patch fixed it incorrectly : it skips the font embedding rather than converts the font into a non-CID. This patch does convert the font into a Type 3 bitmap font.[src/gdevpdtt.c src/gdevpdtf.c]
2006-09-13T11:59:10.663495Z leonardo
Upgrading the clist file access with 64 bits file access. DETAILS : Bug 688394 "clist playback of large pdf image segfaults". clist file position variable changed type to int64_t.[src/gxclmem.c src/gxclfile.c src/gxclist.c src/gxcldev.h src/gxclmem.h src/gxband.h src/gxclread.c src/gxclio.h src/gxclutil.c]
2006-09-13T11:57:46.585499Z leonardo
Implementing a 64 bits file access. DETAILS : This is a preparation for a fix for bug 688394 "clist playback of large pdf image segfaults". This is a preliminary implementation. Now it compiles for MSVC8, Linux/gcc . For other platforms/compilers it is stubbed with 32 bits file access. This patch requires to define -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE compiler options on Linux in Makefile . We could not figure out why Cygwin/gcc defines fopen64, ftello64, fseeko64, and then cannot link them. We didn't find imlementations of those functions in C libraries.[src/lib.mak src/gp_iwatc.c src/gp_macio.c src/gpmisc.c src/gp_mswin.c src/gpmisc.h src/gp_os2.c src/gp_unix.c src/gp_unifs.c src/gp.h src/gp_vms.c]
2006-09-13T11:56:34.416452Z leonardo
Unwinding the revision 7038 due to wrong log message.[src/lib.mak src/gp_iwatc.c src/gp_macio.c src/gpmisc.c src/gp_mswin.c src/gpmisc.h src/gp_os2.c src/gp_unix.c src/gp_unifs.c src/gp.h src/gp_vms.c]
2006-09-13T11:36:29.213707Z leonardo
Fix : Cygwin/gcc warnings. DETAILS : This includes fixes for potentionally harmful warnings : Uninitialized variable : interp.c, zupath.c . Missing function prototype : zfile.h, stream.h (for sfxstdio.c),[src/lib.mak src/gp_iwatc.c src/gp_macio.c src/gpmisc.c src/gp_mswin.c src/gpmisc.h src/gp_os2.c src/gp_unix.c src/gp_unifs.c src/gp.h src/gp_vms.c]
2006-09-13T03:18:02.411968Z L. Peter Deutsch
Fixes a minor logic bug relating to handleerror introduced by rev 6970.[lib/gs_init.ps]
2006-09-13T00:08:23.753905Z leonardo
Fix (pdfwrite) : Improve the encoding choice for 'glyphshow'. DETAILS : Bug 688889 "pdfwrite : CIDFontType2 must not embed with CompatibilityLevel=1.2". Also fixing the test case of the bug 688857 with CompatibilityLevel=1.4 (some characters were converted into outlines). 1. Embedded a CMap, which is not allowed in PDF 1.2 (gdevpdtc.c). 2. CIDFontType2 must not embed inro PDF 1.2 (gdevpdtf.c). 3. Improved pdf_make_text_glyphs_table_unencoded about the choice of character codes for converting /name glyphshow into a PDF text (gdevpdtt.c). See comments in code.[src/gdevpdtc.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdtf.c src/gdevpdtf.h]
2006-09-12T05:07:58.847657Z Ralph Giles
Move the debugging information to a single line to reduce log noise.[src/mkromfs.c]
2006-09-11T20:26:01.824717Z Ralph Giles
Check in working files for the GPL imdi (integer multi-dimensional interpolation) library for color mapping. This is needed by the imdi device. Port from the ghostpcl tree.[imdi/arch.h imdi/imdi.c imdi/Jamfile imdi/imdi.h imdi/imdi_imp.h imdi/imdi_k.c imdi/cctiff.c imdi/LICENSE imdi/imdi_k.h imdi/imdi_tab.c imdi/config.h imdi/imdi_gen.c imdi/README imdi/cgen.c imdi/imdi_tab.h imdi/copyright.h imdi imdi/imdi_gen.h]
2006-09-11T07:02:18.845878Z L. Peter Deutsch
Replaces the unnecessary extra 'stopped' around uses of .completefont (introduced in 7017) with uses of .errorexec, which was created for exactly this purpose; restructures .completefont slightly so if .buildfontxxx signals an error, that error will be reported rather than invalidfont. (This behavior matches the Adobe interpreters.)[lib/gs_fonts.ps]
2006-09-11T03:32:51.278989Z L. Peter Deutsch
Makes zbuildfont0 generate a rangecheck error if the Encoding of a SubsVector-based font is not large enough for the entire code space, for greater Adobe compatibility. (The graphics library only causes an error if a show operator would actually reference an element beyond the end of the Encoding.)[src/zfont0.c]
2006-09-11T03:29:39.283562Z L. Peter Deutsch
Makes kshow generate invalidfont if the current font is a composite font, per PLRM. (The graphics library does enforce this restriction, but in gs_kshow_n_init, not in gs_kshow_begin, and the interpreter uses the latter.)[src/zchar.c]
2006-09-10T22:24:31.060699Z leonardo
Fix : pfont->uid.xvalues uses a wrong allocator DETAILS : Bug 688883 "pfont->uid.xvalues uses a wrong allocator". In the old code build_gs_simple_font allocates uid in the current memory, but few moments later build_gs_sub_font changes the current space to the space of the font dictionary, and allocates the font structure in it. The new code allocates the font's uid in same space as the font dictionary.[src/zbfont.c]
2006-09-10T15:55:10.276590Z Alex Cherepanov
Pacify Valgrind. Initialize an uninitialized variable and break up an expression, which, after overly aggressive optimization, causes an access to uninitialized memory. Partial fix for the bug 688845.[src/sfxstdio.c src/zcontrol.c]
2006-09-10T15:16:03.635497Z Ray Johnston
Change to use 'export' rather than 'checkout' to decrease the size of the local directory. We don't need the .svn tree for the test.[toolbin/search-svn-revs]
2006-09-09T19:22:14.993650Z Alex Cherepanov
Use an integer format to print uint32_t value instead of a long format. We don't support 16-bit platforms but we do support 64-bit platforms where uint32_t and long are of different size. Bug 688860.[src/mkromfs.c]
2006-09-08T17:14:10.868705Z Dan Coby
Fix for matrix operation floating point accuracy differences in the CET 10-xx.ps files. DETAILS: This fix adds casts to float to produce the same floating point results from matrix calculations as expected by the CET.[src/gsmatrix.c src/gscoord.c]
2006-09-07T11:59:03.339408Z leonardo
Fix (pdfwrite) : Provide a conservative choice of BaseEncoiding. DETAILS : Bug 688823 "large files embedding AndaleMonoWTG". The old code choosen BaseEncoding for each text string independently on others. It caused creating multiple font copies due to encoding conflict. The new code implements a new font resource property preferred_encoding_index to make the choice be conservative in case of multiple possibilities.[src/gdevpdtt.c src/gdevpdtf.c src/gdevpdtf.h]
2006-09-07T06:41:20.228510Z Ray Johnston
Fix rangecheck problem (688841) and wrong .notdef appearance (688803) for customer #130.[lib/gs_ttf.ps]
2006-09-05T21:08:03.225425Z leonardo
Fix (pdf14 device) : Properly intersect rects when composing transparency buffers. DETAILS : Bug 688631 "PDF segfault". The old code supposed : the higher buffer, the smaller rect. Not shure why. The test sample includes the opposite case.[src/gdevp14.c]
2006-09-04T22:47:41.607858Z Alex Cherepanov
Add Valgrind error suppression files for Ghostscript and 3rd party libraries to gs/toolbin .[toolbin/vg_bugs.supp toolbin/vg_okay.supp]
2006-09-04T12:50:36.207010Z leonardo
Fix (stroking) : Zero lengh dashes have been missed, part 1. DETAILS : Bug 688838 "stroking: A zero length dash missed". Bug 687720 "Zero length lines must not stroke" (recently reopened). This patch defines a new path element type dash_segment, and uses it for internal needs of the stroking algorithm. The old code skipped zero length dashes with a non-round cap. It appears incompatible to Adobe CPSI. The new code renders zero length dashes with any cap type, if the path is not degenerate. The new type of path segment works for storing the path tangent at the dash start point. The tangent can't represent with a small line segment (as it tried in old hacks) due to insufficient precision of 'fixed'. In subpath_expand_dashes the branch "within epsilon of the end of the dash element" have been changed for a better Adobe compatibility with looking ahead for a zero length dash pattern. When a zero length dash fall to a path corner, the old code choosen the direction of the next segment (after the corner). The new code (as Adobe compatibile) chooses the direction of the last segment (before the corner). In the old code of gx_stroke_path_only_aux we don't understand the branch "if (pgs_lp->dot_length != 0) break;" It look contradicting to the comment above it. Leaving it as it is, but the condition has been changed to (pgs_lp->dot_length != 0 && pseg->type != s_dash) to comply with the new logic. Likely dot_length is now a rudiment. The old code arbitrary applied a horizontal stroke adjustment for zero length dashes. The new code uses the direction of the path tangent. Due to that some dashes got ununiform shapes, and we improved the stroke adjustment against undiserable regression with PixelisAd.pdf. The new code adjusts horizontal and vertical strokes, each stroke by both directions X and Y, if the dash length is greater than 1 pixel, and the dash is isolated. Otherwise the transversal adjustment applies only. The old code did not render zero length subpathes when .setdotlength was called with a non-zero argument. It happens since Revision 4173. The new code restores the correct behavior, which is important for the PCL interpreter. An unfixed problem : When a dash pattern is very short, the last dash of a segment appears ununiform due to accumulating a significant rounding error. This problem to be fixed separately in order to simplify the regression analyzis. Note that this patch doesn't provide an HP LazerJet compatibility, which orients zero length dashes at path corner differently than Adobe. Also HP LazerJet doesn't paint zero length pathes with round caps as PLRM3 specifies.[src/lib.mak src/gxpdash.c src/gxpath.h src/gzpath.h src/gxstroke.c src/gxpcopy.c src/gxpath.c]
2006-09-04T11:40:17.503680Z leonardo
Fix (ps2write) : Didn't write the OPDFRead procset. DETAILS : This patch includes 3 things : 1. In gdevpdfd.c : A temporary fix for Bug 688856 "Problems with ps2write (see comment #5)". We keep the bug open because it still requires our attention about the order of initialization events. 2. In gdevpdtt.c : Allow writing True Types with glyph indices over 255. The old code is compatible to a bug in Adobe reader 3, which is irrelevant to ps2write. The new code keeps the old logic with pdfwrite and skips the check with ps2write. 3. In opdfread.ps : .max was undefined. This patch helps to work on the customer bug 688790 "pdfwrite : The PDF/A conversion needs to to re-encode texts"[src/gdevpdtt.c lib/opdfread.ps src/gdevpdfd.c]
2006-09-01T23:23:22.779504Z Ralph Giles
Port in progress IMDI device from the gs853merge branch. DETAILS: This implements a contone device that does accurate colorspace transforms based on ICCLib/Argyle IMDI. This is work in progress by Dan Coby. It expectes the imdi source code off the gs top-level; this define IMDISRCDIR is in devs.mak, but should be moved to the top level makefile as with the other 3rd party library sources. Committing to trunk so as not to lose the work when the merge branch goes away. New development should happen here.[src/wtsimdi.c src/devs.mak src/gdevimdi.c]
2006-09-01T23:16:13.866145Z Ralph Giles
The official resource path is Resource/Font not Resource/Fonts[src/Makefile.in]
2006-08-31T21:56:16.536344Z Dan Coby
Fix for 'invalid restore' in CET test file 16-04.ps. DETAILS: There are were complications. 1) The procedure .completfont was not properly signalling an error when it occured. 2) This procedure is used from both definefont and findfont. We need the error to be indicated as coming from the appropriate procedure. The fix for this problem is to fix .completefont to properly report errors and to add stopped contexts around each of the invocations of .completefont, loading the errorname from .completefont and calling signalerror again with the appropriate procedure name.[lib/gs_fonts.ps]
2006-08-31T10:34:11.431819Z leonardo
Fix : Improving the documentation about computing a text object tag in gspaint.c . DETAILS : It's how I understand it while communicating with Stefan and Henry. I'll post it to code review for possible further improvements.[src/gspaint.c]
2006-08-31T09:53:51.102347Z leonardo
Fix : Cygwin/gcc warnings. DETAILS : This includes fixes for potentionally harmful warnings : Uninitialized variable : interp.c, zupath.c . Missing function prototype : zfile.h, stream.h (for sfxstdio.c),[src/gxi16bit.c src/gxhintn.c src/zstack.c src/stream.h src/interp.c src/files.h src/gswts.c src/gdevjpeg.c src/zupath.c]
2006-08-30T19:04:15.573176Z L. Peter Deutsch
Adds an Id line, accidentally omitted on initial checkin.[toolbin/ocheck.py]
2006-08-30T18:38:50.635148Z Ralph Giles
Print the hostname and architecture of the machine running the regression to better distinguish multiple reports. This calls common unix tools and may therefore reduce portability. Also, print something to acknowledge empty fields in the report.[toolbin/tests/run_nightly]
2006-08-30T16:37:43.892868Z L. Peter Deutsch
Adds a new tool, ocheck.py, for analyzing the dependency structure of object modules. (It was originally created for detecting references from the library to the PostScript interpreter.) While written in Python, it requires GNU-compatible 'nm' and 'objdump' programs, and also uses Python's subprocess module, so it may only run on Unix/Linux systems.[toolbin/ocheck.py]
2006-08-30T00:24:55.621075Z Ralph Giles
Port Stefan Kemper's object tagging work from the gs853merge branch of the ghostpcl tree. This implements a simple and somewhat ad hoc method of generating tag bits (as for RGBK generation) marking text and vector vs image pixels. DETAILS: This conflicts with Dan Coby's fix for bug 688638 in r6702. Dan will resolve the conflict as part on new work he's doing on the code.[src/lib.mak src/gstext.c src/gdevbit.c src/gspaint.c src/devs.mak src/gsutil.c]
2006-08-29T15:38:38.438783Z leonardo
Fix : MSVC compiler warning.[src/strmio.c]
2006-08-29T04:45:22.639369Z Ray Johnston
Port changes over from the gs853merge tree to allow building a graphics lib with strmio, but without any interpreter modules (PCL6).[src/stream.h src/sfxstdio.c src/files.h src/zfile.c src/stream.c]
2006-08-29T04:26:49.196416Z Ray Johnston
Add missing dependency for sarc4 filter module in pdfwrite. Needed when PDF interpreter is not included, but pdfwrite is.[src/devs.mak]
2006-08-29T04:23:40.404599Z Ray Johnston
Set s->position to aero initially so that sftell before any other operation will be correct. Reformat prototypes in strmio.h to single line format.[src/strmio.c src/strmio.h]
2006-08-29T03:43:36.531545Z Ralph Giles
Port jpeg device scale and translate functions from GhostPCL. DETAILS: This patch adds four new parameters to the jpeg devices. In addition to Quality, one can now set float parameters ViewScaleX, ViewScaleY, ViewTransX, and ViewTransY so set a scale and offset to use when rasterizing the page. This patch also expands some of the device parameter macros and cleans up the comments.[src/gdevjpeg.c]
2006-08-26T19:13:58.371290Z Dan Coby
Fix for CET test file 18-02F.ps. The makepattern operator creates a pattern dictionary that contains an 'Implementation' entry. The PLRM 3rd says the following about the contents of the Implementation entry: "The type and value of this entry are implementation-dependent." However 18-02F.ps page 2 expects that this entry be an array and that the second element of the array be a gstate. We are making GS compatible with what the CET expects.[lib/gs_lev2.ps]
2006-08-26T00:43:26.480835Z Ralph Giles
Fix comment formatting.[src/gsptype1.c]
2006-08-23T01:42:29.044863Z Ray Johnston
Fix missing return of combined string length and add missing return cundition documentation.[src/gpmisc.c]
2006-08-21T20:37:48.696370Z Ray Johnston
Handle IODevice specifications in file name in gp_file_name_combine_generic by detecting leading '%' and returning the filename unchanged. The file_name_ combine logic is platform dependent, but IODevices don't use the same rules, so an IODevice prefix can't be meaningfully processed. DETAILS: IN theory, a %os% header should be treated differently, but for now handle this as an IODevice case. This means that a %os% prefix can be used to avoid processing such as changing A/../B to B.[src/gpmisc.c]
2006-08-19T17:33:54.163240Z Ray Johnston
Revert previous change that could cause an infinite loop until I can figure out this "file_name_combine" logic in order to handle the %device% syntax without the hang.[src/gpmisc.c]
2006-08-18T10:34:25.106987Z leonardo
Fix (pdfwrite) : Quiet the heal validation procedure. DETAILS : See comment in code.[src/gdevpdtt.c]
2006-08-18T07:56:59.656655Z leonardo
Fix : MSVC8 compiler warnings. DETAILS : gs_lib_ctx_get_non_gc_memory_t is called in sfopen and the result is passed to file_open_stream, which assumes non-const. A better fix would be to assume gs_memory_te to be const for allocators and for functions and for structures which pass it transparently to allocators. Actually allocators modify only a subclass data, so that 'const' may be safely broken inside the allocator method when casting to the subclass. The garbager modifies exactly gs_memory_t pointers, but it is NOT called from allocators. The "better" fix requires changes to lots of modules, so we choose the easiest fix for now. Minor changes : 1. Unuseful variable in fapiufst.c unintentiopnally contributed with the last patch. 2. "const char *" to "const byte *" warning in strmio.c .[src/strmio.c src/gslibctx.c src/fapiufst.c src/gslibctx.h]
2006-08-18T04:42:11.979343Z Ray Johnston
Modifications to switch to "strmio" stream I/O so that we can read from either OS file system or IODevice files (such as %rom% file system). Also remove unneeded i_ctx_p from fapi_*_instantiate functions (so that we don't need the PS interpreter). The strmio functions are now included in the graphics lib build (always). Change fapiufst to use strmio instead of FILE * file IO. A separate change is needed in UFST code to do this (fc_dafil.*) Add UFST_ROMFS_ARGS to add the fco's to the %rom% file list. Note that the UFST_ROMFS_ARGS are not defined in any top level makefile in the gs tree but are used by the language_switch build where they have been tested. Remove some 'hard coded' paths in the fapiufst module (F:/...)[src/iplugin.h src/lib.mak src/strmio.c src/int.mak src/fapiufst.c src/strmio.h src/gpmisc.c lib/gs_fapi.ps src/iplugin.c lib/FAPIconfig-FCO src/fapi_ft.c]
2006-08-18T04:04:48.484817Z Ray Johnston
Refactor several FILE stream related routines to sfxstdio.c so that zfile will not be needed in order to use strmio functions coming soon. We want to be able to use strmio without the PS interpreter.[src/stream.h src/sfxstdio.c src/zfile.c]
2006-08-17T15:27:55.324234Z leonardo
Fix (resource machinery) : 'resourceforall' truncated names of file-based resources. DETAILS : Bug 688737 "'resourceforall' truncates names of file-based resources". Thanks to SaGS for the good analyzis done in the bug report. When enumerating file-based resources, the library enumerates resource file paths and then needs to decompose a file path into a directory name and the resource name. The resource name, which matches the specified template, is always a suffix of the path. Thus to know the resource name, one needs to compute the length of the suffix. However the latter is not trivial due to mixing 2 syntacies : the Postscript template string syntax, and the file path syntax of the underlying operating system. To know the suffix length, the old code computed the difference of the directory path template length, and the template argument length. Hoewver the directory path length in not equal to the directory path template length if the patch includes symbols, which need an escapement when converting a string to a template string. The new code passes lengthes of source directory paths though the .generate_dir_list_templates procedure, so that they don't need to restore from the generated templates. The patch enhances the function with inserting source length between the generated template list elements. The new function gets an additional boolean operand, which tells whether to insert lenthes or not. The enhanced function is renemaed into .generate_dir_list_templates_with_length . The old name .generate_dir_list_templates is defined for the backward compatibility as a specialization of the new function. The new function works for ResourceForAll .[lib/gs_res.ps lib/gs_init.ps]
2006-08-16T17:23:10.339348Z leonardo
Fix (font renderer) : Clean up the character cache after a character rendering fails. DETAILS : When a character rendering fails, the old code leaves character data allocated in the cache but the character is not added to the hash table. It breaks a global invariant (1 to 1 correspondence of hash table entries and cached characters), which is assumed by other cache accessors. As a result it causes an infinite loop when the function alloc_char_in_chunk is later called for another character and needs to release cache space from the "incomplete" character. Thanks to Peter L. Deutsch for analyzis. The infinite loop occurance looks pretty stochastic because it depends on many factors, such as cache size and sizes rendered of glyphs. The new code performs a cache cleanup when leaving a character rendering with error code. See comments in code for more details. This fix changes the prototype of gs_type42_append, which is called from the PCL interpreter. It should fix the problem with True Type fonts in the PCL interpreter. For type 1 fonts the cleanup code is a part of the PS interpreter rather than a part of the graphics library. It is not harmful because PCL interpreter doesn't render Type 1 fonts. A better fix needs to modify the prototype of type1_exec_init and store the gs_show_enum pointer into the gs_type1_state instance, to provide the cleanup in type1_continue_dispatch. It would look ugly, so we don't do it now without a strong necessity. Debugged with CET tests 13-12.PS, 13-22.PS .[src/lib.mak src/zchar42.c src/gxfont42.h src/int.mak src/gstype42.c src/zchar1.c]
2006-08-16T00:09:37.858838Z Dan Coby
The ustrokepath operator has an optional matrix parameter. This matrix is concatenated to the CTM. The specified path is then stroked. This change restores the original CTM after the path has been stroked. Fixes the much25 test on page 2 of the CET test file 10-15.ps.[src/zupath.c]
2006-08-14T23:05:38.304015Z Ralph Giles
Enable COMPILE_INITS by default in the autoconf build, as suggested by Ray Johnston.[src/configure.ac]
2006-08-14T22:47:33.394093Z Ralph Giles
Fix a type size issue that prevented mkromfs from running correctly on 64 bit machines. Bug 688792.[src/mkromfs.c]
2006-08-14T22:08:43.391773Z Dan Coby
Add operand type checks and length checks for the currentmatrix, identmatrix, and setmatrix operators. This is done to match error types expected by the CET. 10-03.ps page 2 tests currentmatrix. 10-06.ps page 1 tests identmatrix. 10-14.ps page 2 tests setmatrix.[lib/gs_init.ps]
2006-08-14T12:54:58.867665Z Alex Cherepanov
Report rangecheck or typecheck errors rather than undefined when the image type is not known. Partial fix for 12-07a.ps and 12-08b.ps .[lib/gs_img.ps]
2006-08-14T09:46:08.791598Z Alex Cherepanov
Return undefinedresult instead of rangecheck from dict_int_null_param() and dict_uint_param() procedures when the key is not found. Partial fix for 12-07a.ps and 12-08b.ps .[src/idparam.c]
2006-08-13T03:28:06.727937Z Alex Cherepanov
Emulate sequential operand checking for colorimage operator. Reject strings of different length as multiple date sources for sampled images. Fix a typo in img_unbuild_image_dict procedure.[src/zimage.c lib/gs_img.ps]
2006-08-11T19:44:11.724459Z leonardo
Fix : gs_fillpage passed a low level color to high level devices. DETAILS : This was occasionally detected while working on the bug 688641. gs_fillpage inaccurately checked whether the device can handle high level colors, and sometimes passed low level color instead high level color. It happens so because gx_hld_is_hl_color_available works only after a color is set. We don't expect a behavior change for pdfwrite, ps2write from this patch, because they ignore the initial page fill, which gs_fillpage performs. Other devices don't handle high level color, so the change doesn't affect them also.[src/gspaint.c]
2006-08-11T17:50:36.791125Z leonardo
Fix (pdfwrite) : A stronger condition for skipping the initial fill with a white color. DETAILS : Bug 688641 "pdfwrite is_in_page is broken, leads to spurious transparency". The old code skept any number initial fills with a white color. The new code skips only if the filling box is entire page. Also the condition about nested streams (sbstack_depth == 0) was wrong for ps2write.[src/gdevpdfd.c]
2006-08-11T13:09:34.153091Z leonardo
Fix (type 1 hinter) : Prevent an infinite loop on an incorrect contour. DETAILS : Bug 688676 "Ghostscript 8.53 enters infinite loop rendering a font". The old code inaccurately worked with 'closepath' segments when trying to apply a hint.[src/gxhintn.c]
2006-08-11T11:48:47.724620Z leonardo
Fix (pdfwrite) : Upgrading the documentation about AutoFilter*Images.[doc/Ps2pdf.htm]
2006-08-10T11:13:34.225727Z leonardo
Fix (pdfwrite) : Wrong xref : Unuseful object ID when a font is not really used in the document. DETAILS : Bug 688824 "invalid xref table from pdfwrite", The old code reserved an object ID for the FontFile object when the font is set but no text rendered with the font in the document. The new code skips creating the FontFile object if no object ID assigned to the font descriptor.[src/gdevpdtd.c]
2006-08-10T07:37:45.977950Z leonardo
Fix : MSVC8 compiler warnings.[src/gdevdflt.c src/zfunc0.c]
2006-08-09T17:48:58.178137Z Raph Levien
Fix: Change pdfwrite pattern bbox to use PDF compliant syntax for float bbox coordinates, rather than sprintf %g. Fixes (reopened) bug #688167.[src/gdevpdfv.c]
2006-08-09T01:29:21.048118Z L. Peter Deutsch
Changes the equality algorithm for FontID objects to match Adobe interpreters (we think). NOTE: THIS IS A NON-BACKWARD-COMPATIBLE CHANGE (but one that is unlikely to have any adverse consequences).[src/iutil.c]
2006-08-09T00:32:12.853814Z Dan Coby
Fix for 688822 failure to repair broken xref table. DETAILS: The given test file has problems. The file was not mangled. the application that created the file has some problems. However Acrobat 7.0 is able to display the file. The file does not specify the application which created the file. The file misspells the key word startxref (it says startref). The xref location is given as 54593016. The file only has 2,210,991 bytes. The the location is off by over a factor of 20. The fix consists of making the xref rebuild logic tolerant of the misspelling and verifying that the given xref location is within the file.[lib/pdf_main.ps lib/pdf_rbld.ps]
2006-08-09T00:17:29.773469Z Dan Coby
Change the error reporting to match the CET expected values for CET test file 10-01.ps page 3. We now correctly report stackunderflow and type checks on this page.[src/iutil.c]
2006-08-09T00:11:09.435929Z Ray Johnston
Remove an optimization that doesn't make a measurable difference in preparation for restructuring FILE * stream functions into the graphics library (out of zfile.c).[src/zfile.c]
2006-08-08T16:04:53.066224Z L. Peter Deutsch
Fixes a just-introduced bug in the stackunderflow case of the user path operators.[src/zupath.c]
2006-08-07T17:26:14.883418Z Alex Cherepanov
Makes ifelse and if operators check the type of the topmost argument before checking other arguments.[src/interp.c src/zcontrol.c]
2006-08-07T08:38:34.292323Z L. Peter Deutsch
Makes error returns from ineofill (and many other user path operators) match Adobe interpreters.[src/zupath.c]
2006-08-06T20:36:34.745839Z Alex Cherepanov
Makes dictstack check for the array size before checking for the access status.[src/zdict.c]
2006-08-06T14:13:41.382704Z Alex Cherepanov
Return typecheck rather than invalidaccess when given a literal array instead of a procedure.[src/iutil.c]
2006-08-06T01:34:32.877045Z Alex Cherepanov
Makes rectfill, rectstroke, and rectclip generate typecheck rather than rangecheck when given an argument of the wrong size or content.[src/zdps1.c src/ibnum.c]
2006-08-05T04:33:11.593911Z L. Peter Deutsch
For greater Adobe compatibility, moves all non-standard entries out of errordict: the handler for unknownerror to a new gserrordict (known to the interpreter), and .GShandleerror to systemdict. Similarly, moves making errordict entries for optional features (including Level 2) to the feature implementation file, so that e.g. the DPS entries don't appear in non-DPS systems.[lib/gs_dps.ps lib/gs_dps2.ps src/interp.c src/ierrors.h lib/gs_init.ps src/gserrors.h]
2006-08-05T03:17:54.678058Z Alex Cherepanov
Makes astore generate invalidaccess rather than typecheck when given a packed array.[src/zarray.c]
2006-08-05T02:16:49.849366Z L. Peter Deutsch
When an error occurs within an operator procedure, arranges for the 'error object' to be the pseudo-operator rather than the current interpreter object, to mimic the behavior of primitive operators, for greater Adobe compatibility. This can be overridden locally for callouts such as from filenameforall or resourceforall, using the new .errorexec operator.[src/iconf.c src/interp.c src/opextern.h lib/gs_init.ps]
2006-08-04T22:48:53.701035Z L. Peter Deutsch
Adds braces around the body of the new return_with_error_tx_op macro, to avoid an ambiguous 'else'.[src/interp.c]
2006-08-04T21:43:08.671407Z Alex Cherepanov
Makes astore to a 0-length array valid regardless of the array access status.[src/zarray.c]
2006-08-04T18:28:19.632057Z Alex Cherepanov
Makes roll operator generate stackunderflow rather than rangecheck when there's not enough elements on the stack.[src/zstack.c]
2006-08-04T18:11:09.614818Z Alex Cherepanov
Makes index operator generate stackunderflow rather than rangecheck when there's no element on the stack pointed by the argument.[src/zstack.c]
2006-08-04T17:29:08.193973Z Alex Cherepanov
Makes copy operator generate rangecheck rather than stackunderflow when given a negative argument.[src/zgeneric.c]
2006-08-04T16:55:18.531677Z L. Peter Deutsch
Makes the array operator return limitcheck rather than rangecheck if the requested size is too large.[src/zarray.c]
2006-08-04T15:46:34.786064Z L. Peter Deutsch
Makes packedarray generate stackunderflow rather than rangecheck when given a too-large positive argument.[src/zpacked.c]
2006-08-04T15:20:42.125769Z L. Peter Deutsch
Replaces relevant uses of index by .argindex, and adds a few other checks, so that pseudo-operators will cause a stackunderflow rather than a rangecheck when given too few arguments. Only the following init files have been modified: gs_{btokn,dps1,dps2,init,lev2}.ps -- many more require updating. However, since the only reason for this change is to satisfy the Genoa test suite, further updates can be done as needed.[lib/gs_dps1.ps src/zstack.c lib/gs_dps2.ps lib/gs_lev2.ps lib/gs_btokn.ps lib/gs_init.ps]
2006-08-04T14:07:13.211741Z Alex Cherepanov
Work around a bug in "MSVC .net 2005 express" CRTL, which doesn't support "%+02d" format.[src/iutil.c]
2006-08-04T04:22:48.633454Z Alex Cherepanov
Set the correct error object when special operators (x_add, etc.) fail. DETAILS: If control reaches the special operators (x_add, etc.) as a result of interpreting an executable name, iref points to the name, not the operator, so the name rather than the operator becomes the error object, which is wrong. We detect and handle this case explicitly when an error occurs, so as not to slow down the non-error case.[src/interp.c]
2006-08-04T04:08:45.729436Z Alex Cherepanov
Re-format the exponent in floating point numbers to satisfy Genoa CET test.[src/iutil.c]
2006-08-03T05:43:28.564474Z L. Peter Deutsch
Fixes bug: several dictionary operators (known, undef, where) did not cause a typecheck error if the 'key' argument was a null.[src/idict.c src/zdict.c src/idict.h]
2006-08-03T05:10:23.146390Z L. Peter Deutsch
On Level >=2 systems, makes .undef a synonym for undef rather than vice versa, to produce Adobe-compatible stack traces on errors.[src/zdict.c lib/gs_dps1.ps]
2006-08-02T21:38:04.138968Z L. Peter Deutsch
Fixes eq and ne so that an array is never eq to a packedarray, even if both have zero length.[src/iutil.c]
2006-08-02T21:10:17.237822Z L. Peter Deutsch
On Level >=2 systems, makes .dicttomark a synonym for >> rather than vice versa, to produce Adobe-compatible stack traces on errors.[src/zdict.c lib/gs_lev2.ps]
2006-08-02T21:08:57.885732Z L. Peter Deutsch
Removes dpsnext from the default FEATURE_DEVS, since the presence of deviceinfo creates an Adobe incompatibility in Genoa PS LL3 CET 20-23.[src/Makefile.in]
2006-08-02T19:47:26.316967Z Dan Coby
Fix for 'invalid restore' in CET 09-47n.ps. DETAILS: The test file has a very bad call to the setpattern operator. For this pattern, setpattern is expecting both the pattern dict and a set of four color values. None of the color values are present. THe pattern color space processing logic was roling the stack to verify that the color values are either integers or reals. This correctly produces an error. However the stack was left disordered. This resulted in the invalid restore since the pattern dict (local memory) was still of the stack when the restore was executed. Note: The first attempt at a fix involved trying to use the procedure check_num_stack (which is used by all of the other color spaces). Instead of rolling the stack, a mark was placed and the color values were copied to the top for check_num_stack. If an error was detected then a cleartomark was done. This fails with the given test file since there are marks in the stack where the color values should be. Thus the cleartomark did not clear to the proper mark. The final solution involves sinply checking the type of the color values inline instead of rolling the stack and using check_num_stack.[lib/gs_patrn.ps]
2006-08-02T18:08:56.997894Z L. Peter Deutsch
Makes "(/) token" correctly return an empty name rather than causing a syntaxerror.[src/iscan.c]
2006-08-02T18:05:32.494329Z L. Peter Deutsch
Changes cvs for reals: '<int>e<expt>' is no longer changed to '<int>.0e<expt>', and 0.0001 (a boundary case) now converts to '0.0001' rather than '1.0e+04'. THIS IS A NON-BACKWARD-COMPATIBLE CHANGE for compatibility with Adobe interpreters.[src/iutil.c]
2006-08-02T12:29:12.940833Z L. Peter Deutsch
Changes pathbbox from an operator procedure to an operator, in order to match the stack trace (on an error) from Adobe interpreters (checked by the Genoa CET).[src/zpath1.c lib/gs_init.ps]
2006-08-02T04:35:45.952210Z L. Peter Deutsch
Pops arguments off the stack if an error occurs while interpreting a user path (for Adobe compatibility); enforces the user path order requirements (ucache must come first if at all, setbbox must come first or immediately after ucache, setbbox is required).[src/zupath.c]
2006-08-02T01:14:35.678026Z Alex Cherepanov
Make string operator error reprorting similar to Distiller's.[src/zstring.c]
2006-08-02T00:47:25.925799Z Alex Cherepanov
Make putinterval operator error reprorting similar to Distiller's.[src/zgeneric.c]
2006-08-01T22:43:34.939677Z Alex Cherepanov
Make get operator error reprorting similar to Distiller's.[src/zgeneric.c]
2006-08-01T21:12:02.550966Z Alex Cherepanov
Make forall operator error reprorting similar to Distiller's.[src/zgeneric.c]
2006-08-01T18:52:57.821971Z Alex Cherepanov
Make copy operator error reprorting similar to Distiller's.[src/zgeneric.c]
2006-08-01T16:55:54.568960Z Alex Cherepanov
Make anchorsearch error reprorting compatible with Distiller.[src/zstring.c]
2006-08-01T01:10:30.751173Z Ralph Giles
Require transparency support when building the graphics library. DETAILS: Prior to this change, Ghostscript would not build without translib.dev because the ADDCOMP pdf14trans line in libs.dev, which defined the device but did not pull in its implementation. Normally this happens through pdf.dev. A better fix might be to move the pdf14trans line to pdf.dev and let those needing transparency support outside of pdf add translib.dev explicitly to FEATURE_DEVS.[src/lib.mak]
2006-08-01T00:06:02.095465Z Ralph Giles
MD5 is required by the persistent cache implementation on unix. Add it to the platform dependency list.[src/unix-aux.mak]
2006-07-31T18:49:16.317202Z Ralph Giles
Pass a 32-element string to cvrs in instances where the int could be more than 32 bits on some architectures. After a sketch by L. Peter Deutsch, Closes bug 688794. DETAILS: An <int> in the Ghostscript ps interpreter is a C long, and so on 64 bit Linux, for example, it will be 64 bits, which in these instances require more than 8 characters for representation in hex. We use 32 characters (128 bits of hex) to be on the safe side. The PLRM says the size of an int is implementation dependent. It can also be argued that it assumes this is 32 bits. In fact, one of the Genoa tests fails with longer ints. We choose to follow the clearest statement here, that the size is up to us.[lib/pdf_font.ps lib/gs_ttf.ps]
2006-07-31T17:39:29.043892Z Ralph Giles
Remove the 'dosdefault' stamp file, whose creation causes problems on MS Windows 9X. Closes bug 688816.[src/msvccmd.mak]
2006-07-31T02:39:25.938560Z L. Peter Deutsch
Makes gs match an apparent bug in Adobe interpreters, which cause an invalidaccess error when 'exec'ing a noaccess literal (other than dictionaries). Fixes a "failure" in Genoa PS3 CET 24-09.[src/zcontrol.c]
2006-07-31T02:38:14.326304Z L. Peter Deutsch
Makes gs match the behavior of Adobe interpreters, which allow executing noaccess on a readonly or noaccess dictionary, even though Red Book 3 says that changing the access of a read-only dictionary is not allowed. Fixes a "failure" in Genoa PS3 CET 24-09.[src/ztype.c]
2006-07-28T06:22:57.072635Z leonardo
Fix (pdfwrite) : Incorrect image conversion with CompatibilityLevel=1.2 . DETAILS : Bug 688766 "Wrong graphics after ps2ps2 conversion." Bug 688772 "Bad PDF generated with -dCompatibilityLevel=1.2" Patch from SaGS. 1. pdf_begin_typed_image() did not synchronize the clipping path in some cases (gdevpdfi.c). 2. Delayed the synchronization for after checking the matrix singularity against writing an unuseful clipping before a skipped image. 2. write_image_with_clip improiperly placed the 2nd and further subimages due to dropping the image's 'cm' with the subimage's 'Q'. 3. gx_image_enum_begin computed a wrong clipping box. In the new code pdf_setup_masked_image_converter installs a better get_clipping_box method, which is implemented with the new function lcvd_get_clipping_box_shifted_from_mdev. 4. pdf_image3_make_mcde passed the clipping path to a memory device, which uses a different coordinate system. The new code does not pass the clipping path (gdevpdfi.c) and uses the device clipping box instead. For more details see Bug 688766.[src/gdevpdfx.h src/gdevpdfd.c src/gdevpdfi.c]
2006-07-28T01:23:29.511044Z Dan Coby
Fix for pages 4, 5, 13, 14 of the CET test file 12-02.ps. This file creates colorimages with a size of zero. The CET expects that these colorimages will be ignored.[lib/gs_img.ps]
2006-07-27T07:06:36.388322Z Dan Coby
Fix for segv in CET files 32-32.ps and 22-11.ps. Both files use binary object sequences with an object type of 'user name' however no user names have been defined. The fix consists of checking for this situation and returning an e_undefined error. (The choice of error is because CPSI also returns a 'undefined' error.[src/iscanbin.c]
2006-07-27T01:15:59.601586Z Alex Cherepanov
Accept string values of page device, halftone, and rendering intent names. PLRM specifies that all these values can be names or strings. Bug 688776.[lib/gs_lev2.ps]
2006-07-26T05:03:57.276453Z Dan Coby
Fix for CET test file 12-14c.ps. This file was seg faulting. The cause was some uniniitalized pointers that were being freed when given invalid function parameters. (The test file was verifying the handling of invalid functions.)[src/zfunc0.c]
2006-07-25T18:29:43.943994Z Ray Johnston
Fix CIDFontType 4 (FontType 32) handling so that read-only font dicts can be used. Fixes PSLL3 CET 35-02.ps 'invalidaccess in -put-'.[lib/gs_typ32.ps]
2006-07-23T19:25:14.174116Z Ralph Giles
Remove the requirement for HAVE_LONG_LONG to be defined before generating ARCH_LOG2_SIZEOF_LONG_LONG. Since this was added, we've begun requiring both signed and unsigned 64 bit types. Almost all platforms with a 64 bit int provide long long, so this defaulting to on is a better approach. We make an exception for MSVC which we support and which does not provide 'long long'. The requirement for a 64 bit type is taken care of by a matching platform-specific #ifdef section in stdint_.h. To add support for other such platforms, add another platform option to this #ifdef and a corresponding section to stdint_.h. Bug 688805 for customer 613.[src/genarch.c]
2006-07-21T20:48:22.048908Z Ray Johnston
Add in aliases for glyphs that have the same Unicode value in the Adobe Glyph List version 2.0. If both names are defined (presumably unique) don't change them. If either name is known, make the other name an alias. Bug 688799 and 688800 for customer 130.[lib/gs_ttf.ps]
2006-07-20T22:35:31.758145Z Raph Levien
Finishes implementation of LeadingEdge parameter, primarily intended for rotating pages to fit paper tray orientation. The LeadingEdge parameter is an Adobe-defined setpagedevice parameter, and can be set by PostScript code for explicit control over rotation, or can be set by the device to reflect device knowledge of the tray orientation (the mechanism for the latter is documented in Drivers.htm). This patch completely replaces the old TrayOrientation parameter, which had similar goals but was not standard, and fixes some problems with that implementation.[src/gsdparam.c src/gdevdflt.c doc/Drivers.htm src/gxdevice.h doc/Language.htm lib/gs_setpd.ps src/gsdevice.c src/gxdevcli.h]
2006-07-20T19:18:25.263338Z leonardo
Fix : Cygwin/gcc warned unuseful variables.[src/zfont0.c src/zbfont.c src/gdevpdfg.c]
2006-07-20T18:57:07.315529Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 28. DETAILS : Disable a debug-purpose code, which unintentionally left in the last patch.[src/fapiufst.c]
2006-07-20T18:50:28.389414Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 27. DETAILS : Provide a static list of FCO handles, which are useful for a multilanguage embedded systems. We define a storage for 2 handles because currently we need only 2 ones - one for Windings and another for all other fonts. FCO plugin does not go to this list, because it doesn't define a font.[src/lib.mak src/fapiufst.c src/gxfapiu.c src/gxfapiu.h]
2006-07-20T06:45:50.863988Z Ray Johnston
Establish alias glyph names (instead of replacement names) for example Ldotaccent as an alias for Ldot. Bug 688799 for customer 130. --this line, and those below, will be ignored-- m gs_ttf.ps[lib/gs_ttf.ps]
2006-07-19T22:52:24.858615Z Dan Coby
Fix for 688788 /rangecheck in resolveR. DETAILS: The file is damaged and has to have it xref table rebuilt. Ralph Giles correctly guessed the cause of the problem with his comment: "The file is corrupted by the addition of a leading newline; after removing the initial '0x0d 0x0a' character sequence the file renders fine. This offset is apparently confusing the xref table repair." We have a value called PDFoffset which indicates the amount of white space at the beginning of a file. This value is added to all xref table entry file locations when they are referenced. The xref rebuild logic was creating xref locations which give the file position without considering the value of PDFoffset. The fix consists of simply subtracting the values of PDFoffset from the xref object locations when the xref tables are rebuilt.[lib/pdf_rbld.ps]
2006-07-19T22:38:15.499527Z Dan Coby
Fix for 688787 /undefined in /BXlevel. DETAILS: The given test file has definite problems. Most of the xref entries are off by one byte. Several of the xref entries are off by thousands of bytes. However the worst problem is the value given for startxref. This value is off by tens of thousands of bytes. The xref rebuild logic needs to find the final trailer dictionary. It uses the startxref value to find this dictionary. Since the file is damaged the rebuild logic does not simply assume that the trailer dictionary is at the given location. Instead this logic compares ithe value to the size of the file. If less than one half of the size of the file then we search at the beginning of the file. This generally works for 'linearized' PDF files. Othewise the rebuild logic search for the last trailer dict in the file. This works for most non linearized files. This file indicates that the trailer dict should be at the start of the file. However the trailer dict is at the end of the file. The fix consists of searching at the end of the file when a trailer dict is not found at the start of a file.[lib/pdf_rbld.ps]
2006-07-17T19:11:34.040541Z leonardo
Fix (pdfwrite) : Support OS/2 table version 2 in True Type fonts. DETASILS : We don't use the new fields in the 96-byte structure and continue to create 86-byre structures. The extra space is used as a buffer when we copy the structure intact. Bug 688536 "/invalidfont in --show-- when trying to convert the PDF file". Patch from Alex with an improvement against regressions.[src/gxttf.h src/gdevpsft.c]
2006-07-13T21:35:15.090210Z leonardo
Fix (pdfwrite) : A further improvement for the text rotation logic. DETASILS : Bug 688793 "document pages rotated with Ghostscript, not with Acrobat" This patch implements Raph's suggestion how I understand it. [beg quote] There are two issues here. First, the document-global viewing_orientation info isn't being copied into the page-specific info. [skipped] Second, when the inferred text rotation and the dsc orientation can't match (i.e. are off by an odd multiple of 90 degrees), precedence is given to the text rotation. [skipped] [Skipped] reverse the precedence so that if both dsc orientation is set and text rotation is inferred, use the dsc value. [end quote] See the bug 688793 for more details. I marked the change with Bug688793 macro because I can't say that I fully foresee its consequences. The mark will help to analyze problems if any appear.[src/gdevpdf.c]
2006-07-13T12:37:03.107591Z leonardo
Fix : MSVC8 compiler warnings.[src/ziodevsc.c]
2006-07-13T12:25:38.449013Z leonardo
Fix (True Type font loader) : A wrong encoding created when no 'post' presents. DETAILS : Bug 688789 "incorrect encoding displayed using ArialUnicodeMS". The old code in .charkeys computes (with dropping minor details) : CharStrings = glyphencoding^-1 Encoding = cmap*glyphencoding It is correct when 'post' presents due to glyphencoding = post, and post maps glyph indices to glyph names. In the test case (with no 'post') .charkeys must compute (with dropping same details) : CharStrings = glyphencoding^-1 * cmap Encoding = glyphencoding because glyphencoding is stubbed with an encoding. I'm not sure why the old code worked so long with no problem. Likely every font manufacturers loved to define 'post'. Now we got one which doesn't. BTW, I guess an useful optimization would be to replace 'numloca' with a better estimation. In the test case it appears too big, so we process a huge trash and then drop it. The better estimation, the smaller time consumption. Another useful optimization is marked with "% a stub for a while. Must skip the entry." in the new code. Dalaying it for better times. Inserted a debug printing for CharStrings. Using it one can se how big trash it processes. The old code truncates Encoding if it is longer than 'loca'. It appears wrong with the new CharString composition logics - creates a tool short Encoding for fonmts in bug_687457.pdf . The truncation has been removed from .charkeys . It should work fine because recently we improved C code about acessing glyphs outside 'loca' - see the revision 6874. The test case to be added to comparefiles.[lib/gs_ttf.ps]
2006-07-13T05:38:11.096275Z Dan Coby
Remove a mixture of DOS and Unix style line endings.[src/gsnamecl.c]
2006-07-13T01:16:11.812282Z Ray Johnston
Remove (now) superfluous stdout_buf and stderr_buf areas from main instance (no longer needed -- buffers are allocated when stdio is opened).[src/iminst.h]
2006-07-12T21:46:07.133984Z Ray Johnston
Clean up some gcc warnings created by last commit.[src/imain.c src/sfxstdio.c src/zfproc.c src/ziodevsc.c]
2006-07-12T21:30:00.448371Z Ray Johnston
Change stdio callback mechanism to call directly from the stream processing function, not requiring a CALLC callout all the way back through the interp to 'imain.c' This simplifies some of the calling and is more efficient. DETAILS: gsapi_ and/or gsdll_ clients will see no difference.[src/imain.c src/interp.c src/zfileio.c src/zfproc.c src/ziodevs.c src/ziodevsc.c src/files.h src/iminst.h src/ierrors.h]
2006-07-12T21:24:01.592491Z Ray Johnston
Refactor 'file_prepare_stream' for use by non-PS (graphics library only) clients such as gsiorom (the %rom% device can be used by non-PS builds).[src/sfxstdio.c src/zfile.c]
2006-07-12T21:19:34.152242Z Ray Johnston
Header file missed on previous commit to refactor 'file_prepare_stream' for use by graphics library (no PS interpreter) clients (gsiorom.c).[src/stream.h]
2006-07-12T21:15:11.292479Z Ray Johnston
Get rid of deprecated %static% device. This has been replaced by the more efficient and versatile %rom% device.[src/int.mak src/ziodevst.c]
2006-07-12T17:59:16.470870Z leonardo
Fix (pdfwrite) : More PDF/A-1b complience, continued 6. DETAILS : Bug 688783 "commit 6892 mis-uses the TZ environmental". Completely removed the time zone computation because it's not working properly with some compilers. Always write the UTC time instead. It looks compliant with all PDF/A, PDF 1.6, ANSI C and http://www.w3.org/TR/NOTE-datetime standards.[src/gdevpdf.c]
2006-07-12T12:24:10.438308Z leonardo
Fix (pdfwrite) : More PDF/A-1b complience, continued 5. DETAILS : Bug 688783 "commit 6892 mis-uses the TZ environmental". An improved code with using CRTL functions to compute the tize zone. This works on both my local Windows and on Linux on peeves.[src/gdevpdf.c]
2006-07-12T11:26:28.547453Z leonardo
Fix (pdfwrite) : More PDF/A-1b complience, continued 4. DETAILS : Bug 688783 "commit 6892 mis-uses the TZ environmental". An improved code with using CRTL functions to compute the tize zone. Thanks to SaGS for suggestion.[src/gdevpdf.c]
2006-07-11T21:32:55.057296Z leonardo
Fix (pdfwrite) : More PDF/A-1b complience, continued 3. DETAILS : Bug 688742 "PDF/A label missing error in Acrobat preflight", part 2. Bug 688783 "commit 6892 mis-uses the TZ environmental". Use CRTL functions to compute the tize zone. Thanks to SaGS for suggestion.[src/gdevpdf.c doc/Ps2pdf.htm src/devs.mak]
2006-07-10T11:00:18.723002Z Tor Andersson
remove the null memory context argument to errprintf in gs_throw_imp that was accidentally left in from when the function was ported over from ghostpcl.[src/gsmisc.c]
2006-07-09T14:04:23.380577Z Ralph Giles
Compile in read support when building libpng. It is needed for XPS parsing.[src/libpng.mak]
2006-07-07T17:22:51.824275Z Ray Johnston
Fix gcc reported problems.[src/mkromfs.c]
2006-07-07T00:26:45.026656Z Ray Johnston
Correct typo in header that MSVC ignores.[src/files.h]
2006-07-06T23:59:24.561744Z Ray Johnston
Fix missed edit to remove RESOURCE_LIST from top makefiles.[src/msvclib.mak]
2006-07-06T21:32:50.019697Z Ray Johnston
Several %rom% related improvements. Add PSRESDIR macro to define the location of the Resource/ path during the build. Remove the RESOURCE_LIST from the top level makefiles (list now only in src/int.mak). Correct the font path to the Adobe standard Resource/Font. Change the GS_LIB_DEFAULT to include Resource/Font rather than the useless Resource path. Change the %rom% device to return a custom 'block' stream that decompresses by blocks into the buffer so that the entire file is never decompressed into a 'string' for a sread_string type stream. The 'file_prepare_stream' is now exported for use by gsiorom.c. DETAILS: That wasn't enough ? One hack is that the s->file pointer in the stream_s is used to hold the pointer to the node header in the %rom% file system. This seemed to make some sense. Unlike the FILE * structure (which is somewhat opaque), there is no dynamic state info in a node -- the s->position and read pointer within cbuf are enough to allow read_process, seek, and available procs to operate. The buffer is slighty larger than the ROMFS_BLOCKSIZE to allow for some data (up to 256 bytes) not being consumed from the buffer when read_process is used to refill the buffer. This way we can decompress directly into the cbuf (at the correct point, of course) and avoid another buffer and copy. This also means that each 'block' is always at or near the front of cbuf. After a seek, the block will load at the beginning of cbuf (assuming we did not already have the requested pos in the buffer). As with 'file' type streams, the s->read_id is bumped so that the stream access functions will see the file as 'invalid' (read_id won't match rsize). The cbuf is also freed when the file is closed (to prevent leaks in a non GC memory system). NOTE: IT IS THE CALLER'S RESPONSIBILITY TO FREE THE STREAM RETURNED BY THE romfs_open_file() function using the memory in the s->memory allocator. In PostScript, since the -file- ref can be passed around among objects, the GC is relied upon to free when no further references exist.[src/gsiorom.c src/watcw32.mak src/macosx.mak src/int.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/bcwin32.mak src/ugcclib.mak src/unix-gcc.mak src/msvc32.mak src/macos-mcp.mak src/files.h src/zfile.c src/watclib.mak]
2006-07-06T17:12:15.527898Z Stefan Kemper
Fix null ptr dereference committed on rev 6866 DETAILS: In the case where gx_alloc_char_bits is called with a null device pointer the default of 72 dpi is used.[src/gxccman.c]
2006-07-06T11:10:42.178658Z Alex Cherepanov
Replace empty MediaBox or CropBox box with a box that is equal to the current page size. Bug 688744, customer 384.[lib/pdf_main.ps]
2006-07-06T00:24:31.497014Z Alex Cherepanov
Modify cmap table handling routines to support a large ( >= 64K ) table represented as an array of strings. Bug 688688, customer 562.[lib/gs_ttf.ps]
2006-07-05T21:06:53.575845Z leonardo
Fix (pdfwrite) : More PDF/A-1b complience, continued 2. DETAILS : Bug 688742 "PDF/A label missing error in Acrobat preflight", part 4. This is an experimental patch, which drops the setting of the symbolic flag for fonts in PDF/A documents. Doing so because the Acrobat preflight tool doesn't allow Encoding for symbolic True Type fonts. The decision for setting the symbolic flag for most fonts has been done a long ago, and currently we cannot reconstruct all the related history. We suspect that in novadays that decision appears obsolete. We commit this patch to allow an accumulation of information about how this flag affects 3d party software.[src/gdevpdtd.c src/gdevpdtd.h]
2006-07-05T20:28:10.067306Z leonardo
Fix (pdfwrite) : More PDF/A-1b complience, continued. DETAILS : Bug 688742 "PDF/A label missing error in Acrobat preflight", part 3. 1. Substitute the DeviceRGB color space. 2. Write the instance ID into the pdfaid item. 3. /Type/Metadata/Subtype/XML is required for metadata stream dictionary.[lib/gs_devcs.ps src/gdevpdfe.c]
2006-07-05T18:17:52.450829Z Alex Cherepanov
Use /PageSize from the currrent page device dictionary when the /MediaBox pget fails. Bug 688771, customer 581.[lib/pdf_main.ps]
2006-07-05T14:03:49.473556Z leonardo
Fix (pdfwrite) : More PDF/A-1b complience. DETAILS : Bug 688742 "PDF/A label missing error in Acrobat preflight", part 2. 1. Always embed all fonts when writing a PDF/A document. 2. Provide a precize time and time zone (see the documentation change included). 3. Wrtte an OutputConditionIdentifier. See the documentation change for details.[src/gdevpdf.c doc/Ps2pdf.htm src/gdevpdtf.c src/gdevpdfe.c lib/PDFA_def.ps src/devs.mak]
2006-07-05T10:26:03.786036Z leonardo
Fix (pdfwrite) : Write out the PDF/A compliance label. DETAILS : Bug 688742 "PDF/A label missing error in Acrobat preflight". Patch from Eduard Tiganas.[src/gdevpdfe.c]
2006-07-04T23:13:13.666885Z Ralph Giles
Modularize the soname and link flags for the unix shared library build to facilitate use on different platforms.[src/unix-dll.mak]
2006-07-04T21:31:43.405686Z Alex Cherepanov
Increase the operand stack size limit to the current working maximum = 65414. Bug 688764. DETAILS: PostScript stack cannot exceed the size of a PostScript array (65535) because the stack is copied to an array when the stack overflows. The stack space is allocated in blocks. The stack overflow is checked when the new block is allocated. If the MaxOpStack is set close enough to 65535 the actual stack size exceeds 65535 at the moment of stack overflow. This condition is detected when the stack is copied to an array during stackoverflow processing, causing a low level stack dump.[lib/gs_init.ps]
2006-07-02T11:50:18.654475Z Alex Cherepanov
Fix calculation of the index in the DecodeDEF[G] table. The old code rendered wildly different colors when the range of RangeDEF[G] was not close to 1. Bug 688763.[src/gsciemap.c]
2006-07-01T15:08:30.368356Z Ray Johnston
Replace $Id lines inadvertently removed.[src/imain.c src/zfile.c]
2006-06-30T20:00:21.389005Z Ray Johnston
Changes to make the JOBSERVER and exitserver operate correctly. This is essential to proper CET and FTS execution. DETAILS: The primary changes to allow exitserver to work from files, stdin, strings and executive mode were making sure that the strings, procedures and files (or subfildecode filters) were all in "system vm" which is always a 'stable' memory immune from save/restore (curing the /invalidrestore errors previously seen). To support executive mode, the statementedit and lineedit IODevices always allocate in system VM (imemory_system) as well. Also changed was to omit the grestoreall in .startnewjob after the restore since this would go back to the previous 'null' device and close the device we want (e.g. x11 or display). This relates to bug 688312, which I will close after determining if there is any other documentation needed. Also this fixes #201952 which was previously closed as WONTFIX. Note that with -dJOBSERVER Ghostscript (unlike ghostpcl) will run the -c string or the files on the command line or the input to the GS> prompt as an encapsulated job and multiple files on the command line will NOT be treated as separate jobs. File that contain a ^D (0x04) at the end _WILL_ restore the VM state and start a new encapsulated job for subsequent interpreter actions. To run an inital file in 'exitserver' mode (affecting the permanent server state), the -c "true 0 startjob pop" -f can be used prior to the file. To run files as individual encapsulated jobs (when it is not known if the job ends with ^D) simply add a file that contains a ^D between each job on the command line. For example, if '04' is a file that contains a ^D: gs -dJOBSERVER x.ps 04 y.ps 04 z.ps -c "true 0 startjob quit" Also note above that since 'quit' is defined as 'stop' in order to actually quit you have to go to exitserver mode first (true 0 startjob) or use the -dBATCH option.[src/imain.c src/zfilter.c lib/gs_lev2.ps src/ziodev.c src/opextern.h src/zdevice.c src/zfile.c lib/gs_init.ps src/zsysvm.c]
2006-06-30T19:14:40.807461Z Ray Johnston
Clean up memory when the gsapi_delete_instance is called. Prevents leaks from repeated invocations of ghostscript gsapi_ instances. Bug 688181.[src/iapi.c]
2006-06-29T04:25:55.982235Z Alex Cherepanov
Add support of AdjustWidth parameter to tiffg32d and tiffg4 devices. Bug 688748. DETAILS: According to Devices.htm, all black-and-white TIFF devices support AdjustWidth parameter, but tiffg32d and tiffg4 didn't, always adjusting the page size. The user had no way to switch off this, possibly undesired, feature.[doc/Devices.htm src/gdevtfax.c]
2006-06-29T04:07:16.134871Z Alex Cherepanov
Add embedded OpenType support to the PDF interpreter. Bug 688729, customer 700. DETAILS: According to the OpenType specification, OTTO tag is used only when the font file has CFF data. We need to add more checking if we encounter OTTO fonts with TTF data.[lib/pdf_font.ps lib/gs_cff.ps]
2006-06-28T20:24:34.110786Z leonardo
Fix (pdfwrite) : Improve the filter choice logic. DETAILS : Bug 688773 "/JPXEncode always used when -dCompatibilityLevel=1.5". "[Color|Gray|]AutoFilterStrategy = /JPEG2000" applied when "AutoFilter[Color|Gray]Images == false".[src/gdevpsdi.c]
2006-06-28T16:29:52.237586Z leonardo
Fix (pdfwrite) : Luratech filters must not apply to indexed images. DETAILS : 1. The old code erroneusely sets up the image compression chooser for Indexed images (gdevpdfi.c). 2. Don't allow the lossless JPXEncode for indexed images (gdevpsdi.c). (This change has no effect with no Luratech).[src/gdevpsdi.c src/gdevpdfi.c]
2006-06-28T09:57:13.290010Z leonardo
Fix (TT font loader) : Work around a wrong specificID. DETAILS : The test document includes a name record with platformID=3, specificID=768. We could not find a dicument, which allows such combination, and we believe it is incorrect. This patch implements a general workaround for strings, which consist of 2-byte characters, each of which has a zero leading byte. Bug 688769 "pdfwrite : an Incorrect embedded font object".[lib/gs_ttf.ps]
2006-06-28T00:45:47.790609Z leonardo
Fix (pdfwrite) : Preserve ToUnicode for Type 0 fonts when re-distilling a PDF. DETAILS : The old code didn't account ToUnicode CMaps of Type 0 fonts in PDF documents : 1. It attached GlyphNames2Unicode after defonefont happens, so that C code never got it. 2. gdevpdtc.c didn't check Type 0 fonts for GlyphNames2Unicode. The fix consists of 2 parts : 1. The new code in gs/lib factors out an auxiliary function .composefontdict from composefont . That function is called before .processToUnicode in pdf_font.ps for Type 0 font. 2. The new code in gs/src factors out the new function get_GlyphNames2Unicode, which now works for Type 0 fonts also. The change to gdevpdtc.c checks whether a Type 0 fonts has GlyphNames2Unicode. If a Type 0 font has GlyphNames2Unicode, it comes from a PDF, and thus descendent fonts have no GlyphNames2Unicode. Minor change : Don't search Resource/Decoding/Unicode for CIDs when composing a ToUnicode CMap, because that resource translates glyph names only. Bug 688768 "pdfwrite: missing ToUnicode".[src/bfont.h lib/pdf_font.ps src/gdevpdtc.c src/zfont0.c src/zbfont.c lib/gs_cmap.ps]
2006-06-27T18:05:59.082925Z leonardo
Fix (pdfwrite) : Don't create a group from an image with SMask. DETAILS : An image with SMask is implemented in the PDF interpreter with creating a temporary internal transparency group (see doimagesmask in pdf_draw.ps). The old code copyed that group to the PDF output when re-distilling a PDF. This patch implements the new key .image_with_SMask for the .begintransparencygroup dictionary operand for designating the internal group, and the flags : gx_device_pdf_s::image_with_SMask gs_transparency_group_params_s::image_with_SMask gs_pdf14trans_params_s::image_with_SMask for passing this info to gdevpdft.c . Bug 688767 "pdfwrite: bad transparency group".[src/gdevpdfx.h src/gstrans.c src/ztrans.c src/gdevpdft.c src/gstparam.h lib/pdf_draw.ps src/gdevpdfb.h src/gstrans.h]
2006-06-26T17:57:55.566936Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 27. DETAILS : Fix the FreeType bridge to compile with the new FAPI interface definition.[src/int.mak src/fapi_ft.c]
2006-06-26T17:01:42.828008Z leonardo
Fix (pdfwrite) : Improve the documentation about generating a PDFX document. DETAILS : Fixes the part of the bug 688463 "Overprint can not render with with -dUseCIEColor", which is related to PDFX (the comment #11).[doc/Ps2pdf.htm]
2006-06-23T19:15:03.500541Z Ray Johnston
Substantial performance improvement on Windows platforms to JPEG2000/JPXDecode filter made by making jasper 'seek' work within the buffer. Bug 688073 and 688758 for customer #531. DETAILS: This wasn't a very big change, but by avoiding going to the OS for 'seek' operations, the Windoze performance was improved >40 fold. On linux this doesn't make any improvement but the OS must be a lot more efficient (I'm actually surprised by this). The time for the customer file with 688758 runs in 10 seconds (at 40dpi x11) on peeves before and after the fix. On my Windoze 2.8Ghz P4 (peeves is 3.2GHz P4) the time is 43 seconds after the fix.[jasper/src/libjasper/base/jas_stream.c jasper/src/libjasper/include/jasper/jas_stream.h]
2006-06-21T22:33:35.061227Z leonardo
Fix (CIDFontType 1) : Check for GDBytes elements to point past the 'loca' table end. DETAILS : Bug 688669 "/invalidfont in --@0x100194e0--". The old code didn't check GDBytes consistency, taking occasional data past the 'loca' table with an occasional result. Note that the change to z11_CIDMap_proc in zfcid1.c trows exception, which is handled by the procedure %Type11BuildGlyph in gs_cidfn.ps with substituting .notdef . The test document embeds an incorrect True Type data for the font OBMKGG+H2gtrM. The True Type header specifies the size of 'loca' table equals to 12 bytes. In the sfnts array it is a separate string with the array index 2. Then it renders the glyph index 3 accessing outside the loca table. It hapens while rendering the text : /TT5 1 Tf 0.365 0 TD <0001>Tj Probably the problem happens because 2 font descriptors (43 0 obj and 38 0 obj, which correspond to local font names /TT4 and /TT5) refer to same single font data 39 0 obj. This data is an embedded font subset, which is enough for /TT4 and has no glyphs for /TT5. This problem to be reported to Adobe Distiler 6, which created the test document. Is the version 7 better ? (can't check due to no Postscript source). In the test case .notdef is the CID 0 and defined in the font as a hollow box. Don't know why Adobe doesn't print it in the test document. That's another story. The font doesn't define a space character.[src/zfcid1.c src/gstype42.c]
2006-06-21T11:17:27.414299Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 26. DETAILS : Provide a locking of a global static UFST instance for a multilanguage embedded systems.[src/fapiufst.c src/gxfapiu.c src/gxfapiu.h]
2006-06-20T17:16:59.040107Z leonardo
Fix (FAPI Font resource, CIDFont emulation) : Relative paths with FAPIconfig-FCO. DETAILS : Set current directory as a font file search origin.[lib/FAPIconfig-FCO]
2006-06-20T16:55:22.666128Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 25. DETAILS : Provide the configuration with no Type 1 and no True Type parsers for a compatibility with the PCL build.[src/fapiufst.c]
2006-06-20T16:31:15.616110Z leonardo
Fix (UFST resource handling) : Provide an uniform way for specifying FAPI font map and configuration. DETAILS : 1. The new command line argument FAPIfontmap specifies a FAPI font map file. The old argument FCOmap has been removed. 2. The new command line argument FAPIcidfmap specifies a FAPI font map file. The old code hardcoded a particular value. 3. FAPIfontmap may include both general records, and special record groups for describing FCO elements. See the documentation change for details.[lib/FCOfontmap-PCLPS3 lib/FCOfontmap-PS3 doc/Use.htm doc/Develop.htm lib/FAPIfontmap lib/FAPIconfig lib/gs_fapi.ps lib/FAPIconfig-FCO lib/FCOfontmap-PCLPS2]
2006-06-20T15:04:05.008037Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 24. DETAILS : Remove dead development branches.[src/fapiufst.c]
2006-06-20T14:49:58.556233Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 23. DETAILS : Account the replaced Mrtrics when the renderer can't handle it. It was a real bug in the FAPI client.[src/zfapi.c]
2006-06-20T12:35:33.822923Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 22. DETAILS : Implementing the design bounding box expansion and warnings against cropping glyphs when caching.[src/ifapi.h src/fapiufst.c src/zfapi.c]
2006-06-20T09:51:08.611471Z leonardo
Fix (FAPI) : The cache device had a wrong HWResolution. DETAILS : It was set to 72 dpi independently on the target device. Ghostscript font renderer doesn't rely on it, but UFST does. Due to that UFST generated different rasters with and without NOCACHE.[src/gxchar.c src/gxccman.c]
2006-06-20T09:46:21.713177Z leonardo
Fix (FAPI Font resource, CIDFont emulation) : Always convert FontName into a name (continued). DETAILS : The last patch appears incomplete.[lib/gs_fntem.ps]
2006-06-20T09:37:23.049325Z leonardo
Fix (FAPI Font resource, CIDFont emulation) : Always convert FontName into a name. DETAILS : The old code could create fonts with a string as the FontName or CIDFontName value. It caused an invalidaccess when the string is local and the font dictionary is global. Debugged with alphabet.ps .[lib/gs_fntem.ps]
2006-06-20T08:48:27.280806Z leonardo
Fix (FAPI Font resource, CIDFont emulation) : Load resident fonts into global VM (continued). DETAILS : The last patch appears incorrect in the part 3 : [beg quote] 3. A minor change in gs_type1.ps creates FontInfo in same VM where the font dictionary resides. [ebnd quote] and caused pdfwrite regressions. This path fixes that.[lib/gs_type1.ps]
2006-06-19T01:36:39.845267Z leonardo
Fix (FAPI Font resource, CIDFont emulation) : Load resident fonts into global VM. DETAILS : 1. MakeInstance creates instances in global VM. 2. A bug in gs_fntem.ps : accessed "1 index" instead "0 index". Apparently they were always equal. Now they are not. 3. A minor change in gs_type1.ps creates FontInfo in same VM where the font dictionary resides. Debugged with 129-01.ps .[lib/gs_cidtt.ps lib/gs_fntem.ps lib/gs_fapi.ps lib/gs_type1.ps]
2006-06-18T23:40:16.946225Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 21. DETAILS : A bug in the FAPI client : Truncate the "~GS~" suffix, which the PDF interpreter adds when creating extended glyph names. Debugged with ADOBE1-4.pdf .[src/zfapi.c]
2006-06-18T21:38:33.730811Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 20. DETAILS : An UFST bug tolerance about the .nmotdef appearence. See comment in code.[src/fapiufst.c]
2006-06-18T20:03:50.504209Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 19. DETAILS : An UFST bug tolerance about the hollow box design scale.[src/fapiufst.c]
2006-06-18T19:25:03.018019Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 18a. DETAILS : Adjust symbolic Decodings with UFST 5.0 specifics.[Resource/Decoding/FCO_Dingbats Resource/Decoding/FCO_Symbol Resource/Decoding/FCO_Wingdings]
2006-06-15T20:52:37.321465Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 18. DETAILS : 1. Outline fonts ignored Stroke Width ( a real bug in the FAPI client code ). 2. Fixing missed pixels in outline fonts.[src/fapiufst.c src/zfapi.c]
2006-06-15T10:41:20.991984Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 17. DETAILS : Provide the UFST callback dispatching for the language switching project. See comment in code. Actually thois restores the old gxfapi.c (which was recently removed) with minor modifications, and the module name is changed for a better reflection of the purpose.[src/lib.mak src/int.mak src/fapiufst.c doc/Develop.htm src/gxfapiu.c src/gxfapiu.h]
2006-06-14T21:03:34.912427Z Ralph Giles
Turn on Id keyword substitution and native line endings.[lib/winmaps.ps]
2006-06-14T09:41:33.338945Z leonardo
Fix (UFST resource handling) : Provide alternative FCO map files. DETAILS : 1. The new command line argument FCOmap specifies an FCO map file. The old code hardcoded FCOfontmap. 2. Addint new FCO map files FCOfontmap-PCLPS2, FCOfontmap-PCLPS3, FCOfontmap-PS3 for various FCO files. The old file FCOfontmap to be removed. 3. The new command line argument FCOfontfile2 works for locating the Wingdings FCO file.[doc/Develop.htm]
2006-06-14T09:35:49.305252Z leonardo
Fix (UFST resource handling) : Provide alternative FCO map files. DETAILS : 1. The new command line argument FCOmap specifies an FCO map file. The old code hardcoded FCOfontmap. 2. Addint new FCO map files FCOfontmap-PCLPS2, FCOfontmap-PCLPS3, FCOfontmap-PS3 for various FCO files. The old file FCOfontmap to be removed. 3. The new command line argument FCOfontfile2 works for locating the Wingdings FCO file.[lib/FCOfontmap-PCLPS3 lib/FCOfontmap-PS3 doc/Use.htm lib/gs_fapi.ps lib/FCOfontmap lib/FCOfontmap-PCLPS2]
2006-06-14T08:25:03.916153Z leonardo
Fix (FAPI) : Implement a lazy font object acquisition, part 2. DETAILS : The old code creates a font object per character due to a complex protocol of gs_show_enum. Rather font renderers usually cache font objects, the data format accommodation appears too expensive. Main change : 1. FAPI_do_char uses I->face to check whether it is same font-matrix request as for a previous call. If so, it uses the old font object stored in the renderer. Minor changes : 2. enum FAPI_descendant_code_s is defined for clarity instead an int type. 3. Interface functions drop the subfont and bVertical operands. They are moved into FAPI_font structure, which was passed by a neighbour argument. 4. The new function release_typeface takes care for a complete cleanup in a single code portion.[src/ifapi.h src/fapiufst.c src/fapi_ft.c src/zfapi.c]
2006-06-14T05:03:07.378642Z leonardo
Fix (FAPI) : Implement a lazy font object acquisition, part 1. DETAILS : The old code creates a font object per character due to a complex protocol of gs_show_enum. Rather font renderers usually cache font objects, the data format accommodation appears too expensive. This change is algorithmically equivalent. It moves necessary data to the renderer interface structure, so that it may be useful for lazy font object creation. The new structure FAPI_face stores a "key" for requesting a font-matrix pair from a renderer. It is reserved for further improvements.[src/ifapi.h src/int.mak src/fapiufst.c src/fapi_ft.c src/zfapi.c]
2006-06-14T02:12:47.303815Z Alex Cherepanov
Use more aggressive PDF identification. Consider PDF every file that has "%PDF-1." not preceeded by "%!PS" in the first 127 bytes of the file. Bug 688743.[lib/pdf_main.ps]
2006-06-14T00:23:19.323225Z Alex Cherepanov
Fix broken definition of customcolorimage. Bug 688750.[lib/gs_lev2.ps]
2006-06-13T17:01:52.331288Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 16. DETAILS : Provide a working mode with no *.ss files and/or with no FCO plugin.[src/fapiufst.c]
2006-06-12T22:07:57.059825Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 15. DETAILS : Fixed file paths on Linux.[src/fapiufst.c src/zfapi.c]
2006-06-08T17:59:04.960338Z Ray Johnston
Add code in getencoding to accept an array for the Encoding in a Font dict. Only a name or dictionary are legal PDF. Bug 688741. DETAILS: Adobe Acrobat Reader lists "Encoding: Standard" for this font, but we get the correct results by using the Encoding array given in the font.[lib/pdf_font.ps]
2006-06-08T01:46:13.481025Z Alex Cherepanov
Fix string overflow in cvrs on 64-bit systems. Suppress the sign expansion of unique ID. Bug 688725.[lib/gs_ttf.ps]
2006-06-08T01:26:36.293278Z Alex Cherepanov
Make the pointer the last element of gs_pixel_image_t structure. Otherwise, on LP64 platforms, the padding at the end of the structure overwrites the 1st member of the derived structure when the base structure is assigned to the derived structure. Bugs 613909, 688725.[src/gximage3.c src/gsiparam.h]
2006-06-07T19:20:14.417139Z Ray Johnston
Fix handling of TrueType fonts with a large number of glyphs in the 'post' table. Bug 688723 for customer number #130. DETAILS: First, avoid using the 'postfirst' string to scan the post table. Second, avoid putting a large array on the op stack when building the 'postnames' and 'glyphencoding' arrays (pre allocate them and simply 'put' the values in). Third, don't create dummy names for .notdef glyphs when building up the CharStrings dict. With all of these changes, the TT font with 16000 actual named glyohs can be loaded as a Type 42 font and doesn't overflow the current default MaxOpStack (50000) or the 64K name limit when EXTEND_NAMES=0 (the default). In the future, if we see a font with too many named glyhs, we may get a 'limitcheck in --cvn--' which will tell us we need to build with EXTEND_NAMES=1. At that time we can decide if we want to increase the default for EXTEND_NAMES.[lib/gs_ttf.ps]
2006-06-07T15:26:51.814233Z Ralph Giles
Correct the copyright holder and Id keyword after the licese header reversion.[src/md5.c src/md5.h]
2006-06-03T06:34:51.036122Z leonardo
Fix (Font resource machinery) : Improve finding encodings in gs_fntem.ps (issue 2). DETAILS : It's a temporary work around the bug 688710 "Fix the Encoding resource category" for the UFST integration project.[lib/gs_fntem.ps]
2006-06-02T18:50:15.915729Z Dan Coby
Make capture_spot_equivalent_cmyk_colors global.[src/gsequivc.c src/gsequivc.h]
2006-06-02T01:37:20.018191Z Alex Cherepanov
Fix an infinite loop on 64-bit platforms; make the size of max_import_coord to be as big as the size of the 'fixed' type. Bug 688724.[src/gxhintn.h]
2006-06-01T15:45:30.982915Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 15. DETAILS : Improving the font mapping.[lib/FCOfontmap]
2006-06-01T14:09:52.659638Z leonardo
Add Wingdings Encoding, Decoding resource files.[Resource/Encoding/Wingdings Resource/Encoding Resource/Decoding/FCO_Wingdings]
2006-06-01T13:44:48.615495Z leonardo
Fix (Font resource machinery) : Improve finding encodings in gs_fntem.ps . DETAILS : It's a temporary work around the bug 688710 "Fix the Encoding resource category" for the UFST integration project.[lib/gs_fntem.ps]
2006-06-01T11:42:08.068704Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 14. DETAILS : Returning the hack about rendering a space instead hollow box. See comment in code.[src/fapiufst.c]
2006-06-01T07:50:53.652962Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 13. DETAILS : Fix the replaced left side bearing. Debugged with 093-01.ps, the box 093-03.[src/zfapi.c]
2006-06-01T06:16:00.401809Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 12. DETAILS : Add a dependency missed in the last patch.[src/int.mak]
2006-06-01T01:54:55.252144Z Alex Cherepanov
Clean up the code that opens starting arg files (@ files). Use iodev_default when it is available. Otherwise use the staticly initialized %os% device. Bug 688720.[src/gsiodev.c src/zfile.c]
2006-06-01T00:09:21.528804Z Alex Cherepanov
Fix FPE in t1_hinter__set_stem_snap() on Alpha. Don't process stem snap elements when there's none. Bug 688727.[src/gxhintn.c]
2006-05-31T17:10:39.858313Z Stefan Kemper
Revert copywrite notices for public domain code used by ghostscript.[src/gdevsgi.h src/gdevifno.c src/md5.c src/gdevsgi.c src/md5.h src/md5main.c src/gdev4693.c src/gp_vms.c]
2006-05-31T15:29:52.122361Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 11. DETAILS : 1. AgfaUFST plugin is renamed into UFST, because the manufacturer (Monotype Imaging) separated from Agfa. 2. Provide loading UFST plugin with UFST_PlugIn command line option. 3. The command line option UFSTdir is renamed into UFST_ssdir 4. Adjust FCOfontmap to PCLPS2 fonts. 5. Improve comments for EF_SUBSTHOLLOWBOX_TYPE.[doc/Use.htm doc/Make.htm lib/FAPIcidfmap src/fapiufst.c lib/FAPIfontmap lib/gs_fapi.ps lib/FCOfontmap]
2006-05-31T14:51:47.948908Z Ralph Giles
In generating the changelog files in the documentation, treat "DIFFERENCES:" the same as "EXPECTED DIFFERENCES:". Also trim everything from the log message after this point since that section is of ephemeral interest. Bug 688715. Note that this means nothing important should be placed after such a section heading.[toolbin/split_changelog.py]
2006-05-31T01:21:42.643282Z Ralph Giles
Minor release documentation updates.[doc/Release.htm]
2006-05-31T00:44:40.105558Z Ralph Giles
macos-mcp.mak is now distributed with all releases.[doc/Make.htm]
2006-05-31T00:24:37.164443Z Ralph Giles
Merge license clarifications from the GPL Ghostscript 8.51 release documentation.[doc/Fonts.htm doc/Commprod.htm]
2006-05-30T13:56:04.780494Z Alex Cherepanov
Fix incorrect element size argument of qsort(), that causes SEGV on platforns with sizeof(void *) != sizeof(int) since rev. 6669. Bug 688721.[src/gxfcopy.c]
2006-05-26T14:09:02.598171Z Tor Andersson
Ignore errors when zlib streams fail on the checksum. Fixes bug 688716.[src/szlibd.c]
2006-05-25T10:51:09.698836Z leonardo
Fix (Font resource machinery) : Apply general methoid for finding a font substitute. DETAILS : If a font isn't found, the old code loads Courier definted in Fontmap.GS . This causes problems with FAPI, which defines its own Courier in FAPIfontmap. The new code re-starts the search from the top of the resource substitution logic, which may be enhanced multiple times with Font resource category redefinition, particularly with MappedCategoryRedefiner.[lib/gs_fonts.ps]
2006-05-25T07:12:51.456665Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 10. DETAILS : This code change doesn't affect a regular build with no UFST bridge. Fixing Cygwin/gcc warnings.[src/fapiufst.c]
2006-05-25T06:53:55.033342Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 9. DETAILS : This code change doesn't affect a regular build with no UFST bridge. This patch provides building and running with both UFST_REENTRANT 0 and UFST_REENTRANT 1.[src/fapiufst.c]
2006-05-25T05:37:45.106052Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 8. DETAILS : This code change doesn't affect a regular build with no UFST bridge. 1. Implementing PaintType 2 for fonts. 3. Fixed wording in a comment in fapiufst.c .[src/ifapi.h src/fapiufst.c src/zfapi.c]
2006-05-25T05:09:21.683800Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 7. DETAILS : This code change doesn't affect a regular build with no UFST bridge. 1. Fixing another problem with coordinate rounding - see comments in code. 2. Removing unused variables. 3. A minor code cleanup in zfapi.c : removed a rudimentary check that never suceeds.[src/fapiufst.c src/zfapi.c]
2006-05-24T18:23:16.110633Z Ralph Giles
Cast character values to (unsigned char) before calling isprint() and friends. They are designed to work only with ASCII characters, but some implementations support passing 8 bit character data but only if it is positive to avoid conflict with a (-1) definition of EOF. Thus we should cast to map the high characters from negative to positive values on systems where char is signed by default. Bug 687529.[icclib/icc.c src/dscparse.c src/gsmisc.c src/imainarg.c]
2006-05-24T18:11:33.648730Z Ralph Giles
Define specific compilers for the jbig2 and jpx libraries so their CFLAGS are passed to the compiler first. This should prevent version skew problems when building on systems with other versions of the same headers installed elsewhere.[src/lib.mak src/int.mak src/jasper.mak]
2006-05-24T17:19:27.863933Z Ralph Giles
Move a negation inside the test(1) exprepression for better portability. Fixes bug 688713.[lib/ps2epsi]
2006-05-24T13:31:11.438055Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 6. DETAILS : This code change doesn't affect a regular build with no UFST bridge. Fixing minor problems with coordinate rounding.[src/fapiufst.c src/zfapi.c]
2006-05-24T12:12:41.294216Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 5. DETAILS : This code change doesn't affect a regular build with no UFST bridge. Completely remove gxfapi.c, gxfapi.h . Now FAPI is the interpreter part and doesn't need a special module in the graphics library. Also UFST bridge is now fully reentrant.[src/lib.mak src/gxfapi.c src/fapiufst.c src/gxfapi.h]
2006-05-24T11:15:26.002807Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 4. DETAILS : This code change doesn't affect a regular build with no UFST bridge. The change corresponding to the UFST patch with improved subglyph placement. 1. Fixed a bug about text size when rendering comparefiles/two_encodings.ps . (changes related to orig_FontMatrix). 2. Implementing a command line option for UFSTdir for specifying a symbol set file directory for UFST. See change to doc/Use.htm about user interface. For doing (2) we pass a parameter to the ensure_open method of a FAPI server plugin. Note it is a string, therefore Postscript code must serialize complex parameters. Now it's not complex because we pass a single option to a single plugin.[src/ifapi.h doc/Use.htm src/fapiufst.c lib/gs_fapi.ps src/fapi_ft.c src/zfapi.c]
2006-05-24T07:12:33.924004Z leonardo
Fix : 'space' charater was missed in Unicode Decoding resource.[Resource/Decoding/Unicode Resource/Decoding/FCO_Unicode]
2006-05-23T12:13:59.337888Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 3. DETAILS : This code change doesn't affect a regular build with no UFST bridge. The change corresponding to the UFST patch with improved subglyph placement.[src/fapiufst.c]
2006-05-23T07:13:03.590113Z leonardo
UFST bridge : Implementing FCOfontmap to simplify running UFST with resident fonts only. See the documentation change included in this patch.[lib/xlatmap lib/gs_fapi.ps lib/FCOfontmap]
2006-05-23T07:04:16.420792Z leonardo
UFST bridge : Upgrading to UFST 5.0, part 2. DETAILS : This code change doesn't affect a regular build with no UFST bridge. 1. Providing ununique character codes in Decoding resources (ifapi.h, zfapi.h). The old field FAPI_char_ref::char_code is now depricated, but we still provide the backward compatibility. FAPI_char_ref::char_codes will work instead FAPI_char_ref::char_code. UFST bridge and FreeType bridge don't implement ununique character codes yet. This feature isn't debuged but stored for further developemnt. 2. Improving the 'xlatmap' handling for Microtype font type (fapiufst.c). 3. Enlarde the decodingID field (fapiufst.c). 4. Preserve Decoding if it is specified in the fomt dictionary. 5. Fixing FONTCONTEXT data for FCO font type (fapiufst.c). 6. Obtaining design_bbox with USBOUNDBOX feature of UFST 5.0. It requires a patch to UFST 5.0.[src/ifapi.h src/fapiufst.c src/zfapi.c]
2006-05-23T06:48:01.451051Z leonardo
UFST bridge : More decoding resources since FCOs assume slightly different encodings.[Resource/Decoding/FCO_Dingbats Resource/Decoding/FCO_Symbol Resource/Decoding/FCO_Unicode]
2006-05-21T02:36:04.902497Z Ralph Giles
Update release documentation somewhat to reflect current practice.[doc/Release.htm]
2006-05-21T02:21:48.624607Z Ralph Giles
Bump version number after the 8.54 release.[doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]
2006-05-20T20:29:29.474563Z Ralph Giles
Merge changes from the 8.54 branch to support svn in the release utilities.[toolbin/pre.tcl toolbin/split_changelog.py]
2006-05-20T20:27:09.924280Z Ralph Giles
Merge documentation updates from the 8.54 release branch. This updates the release date and changelogs.[doc/History7.htm doc/Projects.htm doc/History8.htm doc/Use.htm doc/Readme.htm doc/Maintain.htm doc/Deprecated.htm doc/Source.htm doc/Install.htm doc/Changes.htm doc/Copying.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/Fonts.htm doc/Ps2ps2.htm doc/Develop.htm doc/Ps2pdf.htm doc/Helpers.htm doc/Psfiles.htm doc/Lib.htm doc/gs-vms.hlp doc/Htmstyle.htm doc/News.htm 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 doc/History3.htm doc/History4.htm doc/Details.htm doc/Ps2epsi.htm doc/History5.htm doc/History6.htm]
2006-05-19T01:19:20.532036Z Alex Cherepanov
Allocate scanline_buffer for DCTDecode filter in stable memory to prevent it from being freed twice: by restoring the state before the filter was used for reading and by closing the filter. Bug 688694 from the customer 632.[src/sdctd.c]
2006-05-18T16:51:54.327153Z Ray Johnston
Change example code so that users/customers that copy it will avoid the memory leak mentioned in bug 688599.[src/gs.c]
2006-05-17T23:31:29.652305Z Dan Coby
Fix for 688675 Reading / Converting PDF File created with Adobe Lifecycle Designer 7.0. DETAILS: The test file has xref tables with incorrect generation numbers for serveral entries. The xref verification logic finds the mismatch between the generation numbers specified in the xref and the generation numbers in the objects. It then attempts to requild the xref table. This fails since the xref rebuild logic does not handle rebuilding compressed object streams. As a result the file cannot be displayed. The fix consists of three parts. 1. Change the xref verification logic to exit if compressed object streams are detected. I am not attempting to recover objects in compressed object streams since anything that damages a file will generally trash any compressed data. 2. Change the logic which checks the generation number to simply print a warning but to continue. Previously this logic would print a warning and then reject the object. Rejecting an object generally causes an error to occur as the PDF interpreter attempts to use the object. The warning message was also enhanced to print both the expected and actually generation numbers. The given test file produces about 400 warning messages. 3. Enhance the comments for the print_xref. Note: Thanks to Alex for his work in determining that the file can be processed if these changes are made.[lib/pdf_main.ps lib/pdf_base.ps lib/pdf_rbld.ps]
2006-05-17T19:55:41.010790Z Ray Johnston
Fix for yet another non-spec PDF that Adobe Acrobat Reader handles silently. (missing whitespace after 'endobj'). Bug 688695 for customer 580. DETAILS: Since the extra checking for /endobj.*/ only happens when we are about to issue 'Unknown operator' tokenerror, the performance impact of this hack is non-existent for valid PDF files.[lib/pdf_base.ps]
2006-05-17T18:39:07.604408Z Ralph Giles
Use pkg-config to request linking with GTK 2 in the unix dll build instead of the older gtk-config with specifies GTK 1. This will break the (generally unsupported) dll build on very old systems but fixes it for most current and near future platforms. Bug 688701.[src/unix-dll.mak]
2006-05-17T18:34:00.699127Z Ralph Giles
Enable the cfax device in the default autoconf build for the convenience of free users. This is required to use Ghostscript to drive capifax devices. DETAILS: In general we don't enable random devices used by a subset of users, but we already include the three raw fax devices, so it isn't worth objecting to a fourth. CAPI fax is commonly used over ISDN in Europe. In the future we'd like to support device selection from the configure commandline, similar to what is done in ESP Ghostscript. With that it would be reasonable to remove most of the little-used devices since package build systems will have a standard way to select their set, and we will have a standard way to enable all supported devices for testing.[src/Makefile.in]
2006-05-17T18:06:04.522955Z Ralph Giles
Remove ARCH_STRUCT_ALIGN_MOD entirely and revert to ARCH_ALIGN_MEMORY_MOD not having the extra jmp_buf alignment requirements. This satisfies the assumption that structure alignment and sizeof(ref) agree in the Ghostscript code and should finally fix 687643. Also add a cast back to jmp_buf in the alignment macro setjmp_.h. Fixes bug 688698. Patch from Alex Cherepanov.[src/std.h src/setjmp_.h src/genarch.c]
2006-05-17T15:24:29.868984Z Ralph Giles
Add recent new files to the listing in the developer documentation.[doc/Develop.htm]
2006-05-17T15:14:51.387610Z Ralph Giles
Set native eol-style and and enable Id keyword substitution.[lib/FCOfontmap]
2006-05-17T11:34:54.678587Z leonardo
UFST bridge : Copyright banner and RCS line have been missed in the last commit.[lib/FCOfontmap]
2006-05-17T11:33:20.081655Z leonardo
UFST bridge : Copyright banner and RCS line have been missed in the last commit.[lib/FCOfontmap]
2006-05-17T11:29:55.042925Z leonardo
UFST bridge : Copyright banner and RCS line have been missed in the last commit.[lib/FCOfontmap]
2006-05-17T11:23:20.989390Z leonardo
UFST bridge : Implementing FCOfontmap to simplify running UFST with resident fonts only. See the documentation change included in this patch.[doc/Use.htm lib/gs_fapi.ps lib/FCOfontmap]
2006-05-17T04:50:12.217865Z Ray Johnston
Fix so that dictionaries that grow preserve attributes. Several problems reported including a potential security hole when in SAFER mode. Thanks to mat Gh Savulescu (SaGS) for the bug report, the patch and excellent analysis of the problem. DETAILS: Ordinarily dictionaries have unprotected, non-exectue status, but it is possible to "grow" executable or even "read-only" dictionaries (contact Ray Johnston for an explanation as provided by mat Gh Savulescu). The bug in idict.c would not preserve the attributes, making the dictionary not executable, and not readonly even if those were the original attributes.[src/idict.c]
2006-05-16T09:56:13.829816Z leonardo
UFST bridge : Upgrading to UFST 5.0 . DETAILS : This code change doesn't affect a regular build with no UFST bridge, except an unimportant change to lib.mak . This revision allows the UFST bridge to compile and work somehow. This revision of UFST bridge was not systematically tested. UFST 5.0 doesn't implement design bbox for non-FCO fonts, therefore it is stubbed with Em box. In this case glyphs are cropped. For FCO fonts the implementation of USBOUNDBOX in UFST 5.0 appears incomplete, and it needs our patch to work properly. The change to UFST 5.0 code is not included here.[src/lib.mak src/ifapi.h src/gxfapi.c src/fapiufst.c src/gxfapi.h src/zfapi.c]
2006-05-15T22:07:53.891632Z Raph Levien
Commits setjmp_.h, which I left out of the previous patch.[src/setjmp_.h]
2006-05-15T21:29:29.006940Z Ralph Giles
Correct a typo resulting in inproper glyph placement with transposed text and a top left reference corner. Fixes bug 688645.[jbig2dec/jbig2_text.c]
2006-05-15T20:35:29.086193Z Ralph Giles
Ignore common generated files.[jasper jasper/src/libjasper/pgx jasper/src/libjasper jasper/src/libjasper/include/jasper jasper/src/libjasper/base jasper/src/libjasper/mif jasper/src/libjasper/jpc jasper/src/libjasper/bmp jasper/src/libjasper/jpg jasper/src/appl jasper/src/libjasper/include jasper/src jasper/src/libjasper/ras jasper/src/libjasper/pnm jasper/src/libjasper/jp2 jasper/src/msvc]
2006-05-15T20:27:21.734326Z Ralph Giles
Remove a generated source file from the included jasper library.[jasper/src/libjasper/include/jasper/jas_config_ac.h]
2006-05-15T18:44:16.729159Z Raph Levien
FIX: Allocate jmp_buf with padding, to satisfy alignment constraints. Fixes bug #687643.[src/lib.mak src/sjpegd.c src/sjpege.c src/sdct.h src/ttinterp.c src/ttobjs.h src/sjpegc.c]
2006-05-12T23:39:33.380797Z Ralph Giles
Document how to compile Ghostscript with the Luratech compression libraries. Bug 688665.[doc/Make.htm]
2006-05-12T23:17:47.022921Z Ralph Giles
Update Language.htm to better describe the current level of PDF support. Bug 688661.[doc/Language.htm]
2006-05-12T22:47:54.173109Z Ralph Giles
Add commented out line for manually enabling the luratech build with autoconf.[src/Makefile.in]
2006-05-12T22:23:14.706617Z Ralph Giles
Always make read progress is s_jbig2encode process when there is data available. Fixes bug #688658.[src/sjbig2_luratech.h src/sjbig2_luratech.c]
2006-05-11T04:59:24.800767Z Dan Coby
Fix for 688686 segfault in find_bit_map(). DETAILS: The addition of the compressed encoded color logic created a problem for the psdrgb device. This device shares most of its code with the psdcmyk device. The common print_page procedure uses devn_unpack_row. This routine was modified to work with the compressed encoded color values. However the psdrgb device does not use the compressed encoded color logic. The fix consists of checking for the presence or absence of a compressed color list pointer. The presence of this pointer indicates if the compressed color logic is being used. The appropriate uncompress logic is used.[src/gdevdevn.c]
This is the fifth stable release in the 8.5x series of Ghostscript. It contains a numerous bug fixes and improvements.
The following bugs were open at the time of this release:
226943, 405501, 430175, 465936, 493348, 530011, 535932, 578865, 592160, 610478, 614298, 626295, 686747, 686853, 686865, 687011, 687039, 687063, 687084, 687095, 687108, 687125, 687146, 687193, 687196, 687219, 687229, 687231, 687257, 687271, 687280, 687295, 687297, 687303, 687304, 687314, 687316, 687327, 687342, 687345, 687346, 687375, 687397, 687399, 687414, 687445, 687460, 687475, 687480, 687484, 687492, 687498, 687514, 687520, 687529, 687531, 687536, 687559, 687561, 687593, 687595, 687608, 687630, 687650, 687666, 687674, 687677, 687679, 687680, 687695, 687697, 687702, 687715, 687721, 687728, 687729, 687731, 687775, 687780, 687782, 687793, 687796, 687805, 687814, 687825, 687844, 687850, 687863, 687887, 687896, 687903, 687904, 687907, 687915, 687919, 687931, 687950, 687957, 687960, 687970, 687974, 687977, 687978, 687981, 687983, 687988, 687992, 687996, 688006, 688007, 688009, 688020, 688022, 688024, 688026, 688032, 688035, 688036, 688039, 688042, 688047, 688054, 688058, 688061, 688064, 688066, 688071, 688072, 688073, 688075, 688081, 688095, 688108, 688124, 688129, 688130, 688134, 688151, 688152, 688159, 688166, 688181, 688184, 688187, 688200, 688203, 688204, 688207, 688210, 688215, 688225, 688227, 688239, 688243, 688249, 688258, 688260, 688267, 688269, 688274, 688278, 688280, 688282, 688283, 688288, 688291, 688295, 688311, 688312, 688317, 688318, 688320, 688323, 688329, 688332, 688333, 688337, 688338, 688339, 688342, 688358, 688359, 688360, 688361, 688363, 688372, 688375, 688378, 688383, 688386, 688387, 688389, 688394, 688395, 688396, 688400, 688413, 688425, 688427, 688428, 688429, 688434, 688436, 688437, 688440, 688446, 688448, 688463, 688468, 688473, 688474, 688475, 688477, 688479, 688483, 688490, 688493, 688495, 688500, 688515, 688517, 688518, 688526, 688528, 688532, 688533, 688536, 688539, 688540, 688542, 688543, 688557, 688565, 688570, 688573, 688580, 688581, 688588, 688596, 688598, 688599, 688601, 688604, 688605, 688610, 688613, 688616, 688617, 688619, 688621, 688623, 688626, 688627, 688631, 688633, 688634, 688635, 688636, 688637, 688638, 688639, 688640, 688641, 688643, 688646, 688647, 688650, 688651, 688652, 688653, 688655, 688669, 688671, 688672, 688673, 688674, 688675, 688676, 688678, 688683, 688687, 688688, 688689, 688691, 688692.
There are no known incompatible changes at this point.
2006-05-17T18:27:07.676488Z Ralph Giles
Merge change from trunk. Remove ARCH_STRUCT_ALIGN_MOD entirely and revert to ARCH_ALIGN_MEMORY_MOD not having the extra jmp_buf alignment requirements. This satisfies the assumption that structure alignment and sizeof(ref) agree in the Ghostscript code and should finally fix 687643. Also add a cast back to jmp_buf in the alignment macro setjmp_.h. Fixes bug 688698. Patch from Alex Cherepanov.[/branches/ghostscript-8.54/src/std.h /branches/ghostscript-8.54/src/setjmp_.h /branches/ghostscript-8.54/src/genarch.c]
2006-05-17T15:32:18.088676Z Ralph Giles
Port the fix for bug #688149 from trunk. Originally committed by Ray Johnson. Fix so that dictionaries that grow preserve attributes. Several problems reported including a potential security hole when in SAFER mode. Thanks to mat Gh Savulescu (SaGS) for the bug report, the patch and excellent analysis of the problem. DETAILS: Ordinarily dictionaries have unprotected, non-exectue status, but it is possible to "grow" executable or even "read-only" dictionaries (contact Ray Johnston for an explanation as provided by mat Gh Savulescu). The bug in idict.c would not preserve the attributes, making the dictionary not executable, and not readonly even if those were the original attributes. EXPECTED DIFFERENCES: None. (we don't run regression in SAFER mode and don't rely on 'special' dict attributes).[/branches/ghostscript-8.54/src/idict.c]
2006-05-15T23:32:49.061208Z Ralph Giles
Additional release date updates.[/branches/ghostscript-8.54/doc/Details8.htm /branches/ghostscript-8.54/doc/History8.htm]
2006-05-15T23:03:16.814804Z Ralph Giles
Update release date for 8.54rc2.[/branches/ghostscript-8.54/doc/Issues.htm /branches/ghostscript-8.54/doc/DLL.htm /branches/ghostscript-8.54/doc/Drivers.htm /branches/ghostscript-8.54/man/pfbtopfa.1 /branches/ghostscript-8.54/doc/Commprod.htm /branches/ghostscript-8.54/doc/Release.htm /branches/ghostscript-8.54/doc/Xfonts.htm /branches/ghostscript-8.54/doc/Devices.htm /branches/ghostscript-8.54/doc/Language.htm /branches/ghostscript-8.54/src/version.mak /branches/ghostscript-8.54/man/gs.1 /branches/ghostscript-8.54/doc/Fonts.htm /branches/ghostscript-8.54/doc/Ps2ps2.htm /branches/ghostscript-8.54/man/pf2afm.1 /branches/ghostscript-8.54/doc/Develop.htm /branches/ghostscript-8.54/doc/Ps2pdf.htm /branches/ghostscript-8.54/man/printafm.1 /branches/ghostscript-8.54/doc/Helpers.htm /branches/ghostscript-8.54/man/pdf2dsc.1 /branches/ghostscript-8.54/doc/Psfiles.htm /branches/ghostscript-8.54/doc/Lib.htm /branches/ghostscript-8.54/doc/gs-vms.hlp /branches/ghostscript-8.54/man/gsnd.1 /branches/ghostscript-8.54/man/font2c.1 /branches/ghostscript-8.54/doc/Htmstyle.htm /branches/ghostscript-8.54/man/pdfopt.1 /branches/ghostscript-8.54/man/ps2pdf.1 /branches/ghostscript-8.54/man/pdf2ps.1 /branches/ghostscript-8.54/doc/News.htm /branches/ghostscript-8.54/doc/Details8.htm /branches/ghostscript-8.54/doc/Make.htm /branches/ghostscript-8.54/doc/Testing.htm /branches/ghostscript-8.54/doc/Unix-lpr.htm /branches/ghostscript-8.54/doc/C-style.htm /branches/ghostscript-8.54/doc/Ps-style.htm /branches/ghostscript-8.54/doc/History1.htm /branches/ghostscript-8.54/doc/History2.htm /branches/ghostscript-8.54/man/gslp.1 /branches/ghostscript-8.54/man/wftopfa.1 /branches/ghostscript-8.54/doc/History3.htm /branches/ghostscript-8.54/doc/Ps2epsi.htm /branches/ghostscript-8.54/doc/History4.htm /branches/ghostscript-8.54/man/ps2pdfwr.1 /branches/ghostscript-8.54/man/ps2ps.1 /branches/ghostscript-8.54/doc/History5.htm /branches/ghostscript-8.54/doc/History6.htm /branches/ghostscript-8.54/doc/History7.htm /branches/ghostscript-8.54/doc/Projects.htm /branches/ghostscript-8.54/doc/History8.htm /branches/ghostscript-8.54/man/dvipdf.1 /branches/ghostscript-8.54/man/ps2ascii.1 /branches/ghostscript-8.54/doc/Use.htm /branches/ghostscript-8.54/doc/Readme.htm /branches/ghostscript-8.54/doc/Source.htm /branches/ghostscript-8.54/doc/Deprecated.htm /branches/ghostscript-8.54/doc/Maintain.htm /branches/ghostscript-8.54/man/ps2epsi.1 /branches/ghostscript-8.54/doc/Install.htm /branches/ghostscript-8.54/doc/Copying.htm /branches/ghostscript-8.54/doc/API.htm]
2006-05-15T22:59:12.198801Z Ralph Giles
Update changelogs for 8.54rc2.[/branches/ghostscript-8.54/doc/News.htm /branches/ghostscript-8.54/doc/Details8.htm /branches/ghostscript-8.54/doc/Details.htm /branches/ghostscript-8.54/doc/Changes.htm /branches/ghostscript-8.54/doc/History8.htm]
2006-05-15T22:51:20.894499Z giles
Add setjmp_.h, which was left out of the patch fixing bug #687643.[/branches/ghostscript-8.54/src/setjmp_.h]
2006-05-15T21:31:28.156524Z giles
Correct a typo resulting in inproper glyph placement with transposed text and a top left reference corner. Fixes bug 688645. Fix merged from trunk.[/branches/ghostscript-8.54/jbig2dec/jbig2_text.c]
2006-05-15T21:07:48.699439Z giles
Update MSVC build to refer to the release version of MS Visual Studio .NET 2005.[/branches/ghostscript-8.54/doc/Make.htm /branches/ghostscript-8.54/src/msvc32.mak]
2006-05-15T19:17:06.838612Z giles
Update the usage line for the split_changelog utility.[/branches/ghostscript-8.54/toolbin/split_changelog.py]
2006-05-15T19:16:13.375379Z giles
Correct a problem with the display device. The initialiser needs to be a scaler, not the array that was being used. GCC on OS/2 was giving a warning about this. This makes it consistent with gdevtsep.c. Patch from Russell Lang.[/branches/ghostscript-8.54/src/gdevdsp.c]
2006-05-15T19:08:28.721428Z giles
Update changelogs.[/branches/ghostscript-8.54/doc/News.htm /branches/ghostscript-8.54/doc/Details8.htm /branches/ghostscript-8.54/doc/Details.htm /branches/ghostscript-8.54/doc/Changes.htm /branches/ghostscript-8.54/doc/History8.htm]
2006-05-15T19:00:31.775976Z giles
FIX: Allocate jmp_buf with padding, to satisfy alignment constraints. Fixes bug #687643. Change merged from trunk.[/branches/ghostscript-8.54/src/sdct.h /branches/ghostscript-8.54/src/ttinterp.c /branches/ghostscript-8.54/src/ttobjs.h /branches/ghostscript-8.54/src/sjpegc.c /branches/ghostscript-8.54/src/lib.mak /branches/ghostscript-8.54/src/sjpegd.c /branches/ghostscript-8.54/src/sjpege.c]
2006-05-15T17:36:28.446043Z giles
Port documentation updates from trunk. DETAILS: Document how to compile Ghostscript with the Luratech compression libraries. Bug 688665. Update Language.htm to better describe the current level of PDF support. Bug 688661.[/branches/ghostscript-8.54/doc/Make.htm /branches/ghostscript-8.54/doc/Language.htm]
2006-05-15T17:35:26.789659Z giles
Add commented out line for manually enabling the luratech build with autoconf. Change ported from trunk.[/branches/ghostscript-8.54/src/Makefile.in]
2006-05-15T17:34:18.223579Z giles
Always make read progress is s_jbig2encode process when there is data available. Fixes bug #688658. Port from trunk to the 8.54 branch.[/branches/ghostscript-8.54/src/sjbig2_luratech.c /branches/ghostscript-8.54/src/sjbig2_luratech.h]
2006-05-15T01:29:53.383801Z dan
Port fix for 688686 segfault in find_bit_map() to 8.54 branch. DETAILS: The addition of the compressed encoded color logic created a problem for the psdrgb device. This device shares most of its code with the psdcmyk device. The common print_page procedure uses devn_unpack_row. This routine was modified to work with the compressed encoded color values. However the psdrgb device does not use the compressed encoded color logic. The fix consists of checking for the presence or absence of a compressed color list pointer. The presence of this pointer indicates if the compressed color logic is being used. The appropriate uncompress logic is used.[/branches/ghostscript-8.54/src/gdevdevn.c]
2006-05-11T01:28:43.068966Z giles
Update the changelog xml2html script to handle the output of 'svn log --verbose --xml' instead of 'cvs2cl'.[/branches/ghostscript-8.54/toolbin/split_changelog.py]
2006-05-10T22:05:04.536292Z giles
Fix up pre.tcl a bit to handle svn Id: lines.[/branches/ghostscript-8.54/toolbin/pre.tcl]
2006-05-10T21:57:36.424976Z giles
Propagate release number and data changes to the documentation.[/branches/ghostscript-8.54/doc/Issues.htm /branches/ghostscript-8.54/doc/DLL.htm /branches/ghostscript-8.54/doc/Drivers.htm /branches/ghostscript-8.54/man/pfbtopfa.1 /branches/ghostscript-8.54/doc/Commprod.htm /branches/ghostscript-8.54/doc/Release.htm /branches/ghostscript-8.54/doc/Xfonts.htm /branches/ghostscript-8.54/doc/Devices.htm /branches/ghostscript-8.54/doc/Language.htm /branches/ghostscript-8.54/man/gs.1 /branches/ghostscript-8.54/doc/Fonts.htm /branches/ghostscript-8.54/doc/Ps2ps2.htm /branches/ghostscript-8.54/man/pf2afm.1 /branches/ghostscript-8.54/doc/Develop.htm /branches/ghostscript-8.54/doc/Ps2pdf.htm /branches/ghostscript-8.54/man/printafm.1 /branches/ghostscript-8.54/doc/Helpers.htm /branches/ghostscript-8.54/man/pdf2dsc.1 /branches/ghostscript-8.54/doc/Psfiles.htm /branches/ghostscript-8.54/doc/Lib.htm /branches/ghostscript-8.54/doc/gs-vms.hlp /branches/ghostscript-8.54/man/gsnd.1 /branches/ghostscript-8.54/man/font2c.1 /branches/ghostscript-8.54/doc/Htmstyle.htm /branches/ghostscript-8.54/man/pdfopt.1 /branches/ghostscript-8.54/man/ps2pdf.1 /branches/ghostscript-8.54/man/pdf2ps.1 /branches/ghostscript-8.54/doc/Details8.htm /branches/ghostscript-8.54/doc/Make.htm /branches/ghostscript-8.54/doc/Testing.htm /branches/ghostscript-8.54/doc/Unix-lpr.htm /branches/ghostscript-8.54/doc/C-style.htm /branches/ghostscript-8.54/doc/Ps-style.htm /branches/ghostscript-8.54/doc/History1.htm /branches/ghostscript-8.54/doc/History2.htm /branches/ghostscript-8.54/man/gslp.1 /branches/ghostscript-8.54/man/wftopfa.1 /branches/ghostscript-8.54/doc/History3.htm /branches/ghostscript-8.54/man/ps2ps.1 /branches/ghostscript-8.54/doc/Ps2epsi.htm /branches/ghostscript-8.54/doc/History4.htm /branches/ghostscript-8.54/man/ps2pdfwr.1 /branches/ghostscript-8.54/doc/History5.htm /branches/ghostscript-8.54/doc/History6.htm /branches/ghostscript-8.54/doc/History7.htm /branches/ghostscript-8.54/doc/Projects.htm /branches/ghostscript-8.54/doc/History8.htm /branches/ghostscript-8.54/man/dvipdf.1 /branches/ghostscript-8.54/man/ps2ascii.1 /branches/ghostscript-8.54/doc/Use.htm /branches/ghostscript-8.54/doc/Readme.htm /branches/ghostscript-8.54/doc/Source.htm /branches/ghostscript-8.54/doc/Deprecated.htm /branches/ghostscript-8.54/doc/Maintain.htm /branches/ghostscript-8.54/man/ps2epsi.1 /branches/ghostscript-8.54/doc/Install.htm /branches/ghostscript-8.54/doc/Copying.htm /branches/ghostscript-8.54/doc/API.htm]
2006-05-10T21:54:27.892199Z giles
Update the libpng version number to match the included release.[/branches/ghostscript-8.54/src/ugcclib.mak /branches/ghostscript-8.54/src/macosx.mak /branches/ghostscript-8.54/src/watcw32.mak /branches/ghostscript-8.54/src/dvx-gcc.mak /branches/ghostscript-8.54/src/msvc32.mak /branches/ghostscript-8.54/src/unix-gcc.mak /branches/ghostscript-8.54/src/unixansi.mak /branches/ghostscript-8.54/src/macos-mcp.mak /branches/ghostscript-8.54/src/msvclib.mak /branches/ghostscript-8.54/src/all-arch.mak /branches/ghostscript-8.54/src/os2.mak /branches/ghostscript-8.54/src/watclib.mak /branches/ghostscript-8.54/src/bcwin32.mak /branches/ghostscript-8.54/src/openvms.mak]
2006-05-10T21:44:14.213811Z giles
Update version numbers and dates for release.[/branches/ghostscript-8.54/src/winint.mak /branches/ghostscript-8.54/doc/News.htm /branches/ghostscript-8.54/src/gscdef.c /branches/ghostscript-8.54/src/version.mak /branches/ghostscript-8.54/src/dwsetup.rc]
2006-05-10T21:06:42.656903Z giles
Branch for the AFPL Ghostscript 8.54 release.[/branches/ghostscript-8.54]
2006-05-10T21:05:11.037293Z Ralph Giles
We must reset the state structure pointers passed as userdata for the luratech library read and write callback from within the s_jpxe_process method because the garbage collector may have move the struct since the call to s_jpxe_init. Fixes bug 688657. Thanks to Ray Johnston for his analysis of the issue.[src/sjpx_luratech.c]
2006-05-10T11:23:25.592534Z Alex Cherepanov
Upgrade Japanese Unicode CMap resources from ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/aj16.tar.Z Bug 688685. DIFFERENCES: None[Resource/CMap/UniJISX0213-UTF32-H Resource/CMap/UniJIS-UTF32-H Resource/CMap/UniJIS-UTF16-H Resource/CMap/UniJIS-UTF8-H]
2006-05-08T17:43:01.487840Z Ray Johnston
Add checking for required Function in some shadings to prevent later SEGV. Detected with CET 12-14b.ps EXPECTED DIFFERENCES: None. This CET tests known ILLEGAL cases. The CET is not part of the nightly regression suite.[src/zshade.c]
2006-05-08T05:39:29.301618Z Ray Johnston
Move internal type 'gs_pattern1_instance_t' and 'gs_pattern2_instance_t' into an array for compatibility with CPSI and a poorly designed CET (09-03.ps). DETAILS: The CET doesn't bother to examine the array contents, so this ruse works. Since patterns aren't that common, we go ahead and use a 2 element array even though we only use the first element. EXPECTED DIFFERENCES: None.[lib/gs_patrn.ps lib/gs_lev2.ps src/zcolor.c]
2006-05-04T19:57:23.542378Z Ray Johnston
Fix a missing image problem seen in 468-03 (part of 468-01.ps). Even though this test appears to violate the rules in the PLRM for Mask and Data Image sizes for ImageType3, Adobe CPSI and other RIPS ignore the problem. EXPECTED DIFFERENCES: 468-01.ps[src/gximage3.c]
2006-05-03T15:24:53.610732Z Ralph Giles
Add a note about additional license change cleanup to be done when making GPL releases. Bug 688677.[doc/Release.htm]
2006-04-28T07:43:58.270935Z leonardo
pdfwrite : Luratech filters must not apply to inline images, part 2. DETAILS : Bug 688679 "/syntaxerror in ID with luratech coded pdf". The last patch appears incomplete. THis one fixes that. EXPECTED DIFFERENCES : None.[src/gdevpsdi.c]
2006-04-27T17:39:56.495819Z leonardo
Fix (UFST bridge) : Update makefile for UFST 4.6 . DETAILS : An .h file has been renamed. EXPECTED DIFFERENCES : None.[src/lib.mak src/int.mak]
2006-04-27T17:36:41.601504Z leonardo
pdfwrite : Luratech filters must not apply to inline images and for Indexed images. DETAILS : Bug 688659 "A wrong encoding with Luratech encoder". 1. JPXEncode, JBIG2Encode can't apply to inline images because PDF specification doesn't define short names for them. 2. JPXEncode can't apply to Indexed images. EXPECTED DIFFERENCES : None.[src/gdevpdfb.c src/gdevpdfv.c src/gdevpsdi.c src/gdevpsdf.h src/gdevpdfi.c]
2006-04-26T22:26:54.710871Z Ralph Giles
As of libpng 1.2.10 we have to define PNG_NO_ASSEMBLY_CODE or include one of the two asm files on MacOS X. We don't want to fiddle with the source list based on compiler at this point (MSVC vs GCC) so just do without the assembly as before.[src/libpng.mak]
2006-04-26T19:16:55.695237Z Ray Johnston
Fix SEGV when 'reversepath' invoked with a currentpoint but no segments. Detected with the CET Global Interference test. EXPECTED DIFFERENCES: The CET tests might run now ;-) Otherwise no differences.[src/gspath1.c]
2006-04-26T01:17:13.575661Z Ray Johnston
Fix for 470-01 at some resolutions (90 dpi failed, 125 dpi worked). Zero width or height clip box confused shading logic. EXPECTED DIFFERENCES: None. 470-01.ps was not in the comparefiles (yet). I will be adding it.[src/gsshade.c]
2006-04-25T17:31:26.091156Z leonardo
pdfwrite : Implementing ColorImageAutoFilterStrategy, GrayImageAutoFilterStrategy. DETAILS : This patch implements ColorImageAutoFilterStrategy, GrayImageAutoFilterStrategy destiller parameters, and applies them for choosing image encoding filters when Ghostscript is built with Luratech filters. 1. Since the old architecture defines common image parameter lists for pswrite and pdfwrite, now we need to pass CompatibilityLevel to those common modules. Doing that in a hackish way with defining a new field gx_device_psdf::ParamCompatibilityLevel, and setting it whenever that stuff is called from pdfwrite. 2. Using it for the filter choice in psdf_setup_image_filters. 3. Enhance psdf_get_image_params and psdf_put_image_params with ColorImageAutoFilterStrategy, GrayImageAutoFilterStrategy (gdevpsdp.c). 4. Passing the lossless option for JPXEncode filter in setup_image_compression, and using that filter for lossless compression instead FlateEncode/LZWEncode when it is available, depending on ColorImageAutoFilterStrategy, GrayImageAutoFilterStrategy. 5. With CompatibilityLevel>=1.5, with 1bpp images we choose JBIG2Encode instead FlateEncode/LZWEncode when it is available. Thus, when Luratech filters are available, with CompatibilityLevel>=1.5, Luratech filters work by default. EXPECTED DIFFERENCES : None.[src/gdevpsdp.c src/gdevpdfp.c src/gdevpdfb.c src/gdevpdfv.c src/gdevpsdi.c src/gdevpsdf.h src/gdevpdfi.c]
2006-04-25T16:40:09.951186Z Ralph Giles
Copy the new 1.2.10 libpng release into our tree.[libpng]
2006-04-25T16:39:48.646150Z Ralph Giles
Remove the included libpng 1.2.8.[libpng]
2006-04-25T03:10:32.157126Z Ralph Giles
Add hooks for setting the lossly compression quality target or lossless compression to the jpxe stream state. Both new parameters are optional, but the set_defaults method must now be called for consistent behavior. The quality option allows setting a quality value (1-100 inclusive) different from the default, currently 60. Setting the lossless flag specifies lossless encoding and overrides any quality setting.[src/sjpx_luratech.h src/gdevjpx.c src/sjpx_luratech.c]
2006-04-22T01:59:07.027378Z Ray Johnston
Change ASCII85Decode EOD handling to make sure that the EOD characters are consumed before we provide the last bit of data to the caller. The ~> sequence (actually could be <cr> <lf> ~ <cr> <lf> > ) left in the currentfile would cause an /undefined error. Bug 688618. DETAILS: When the input is piped from %stdin the smaller buffers tripped over this frequently with the test file simply because there were more buffer bounds conditions. Note that this area is _still_ not quite the way Adobe works, but without major surgery and analysis of Adobe filter behaviour we aren't likely to achieve 100% compatiblity. Since we handle the case where the EOD sequence is in the part of the buffer that we defer processing on (if last is false) we should be quite similar as far as when we process the EOD since if a complete EOD wasn't in the buffer previously, the '~' was left there. Now we avoid returning the last word of data if the complete EOD isn't in the tail of the buffer. If the EOD sequence seen in the tail is preceded by the 'real' EOD before the tail in the current buffer, the "false positive" does no harm. Similarly if there is a malformed EOD '~' not followed by '>' (possibly with intervening <cr><lf>) the error condition will still be detected when the '~' is actually parsed in the deocder. EXPECTED DIFFRENCES: None. The regression suite still runs fine for me, including FTS files that use the ASCII85Decode filter such as 119-01.ps.[src/sa85d.c]
2006-04-22T01:15:50.051226Z Ray Johnston
Yet another apparently broken PDF file that Acrobat Reader handles silently. In this case a 'Tj' operator when the font is an embedded double byte font (CIDFont) has an odd number of bytes in the string. Change to return a .notdef' glpyh for the tail of the string. Bug 688670 fro customer 562. EXPECTED DIFFERENCES: None since we did not have any files with this problem.[src/gsfcmap1.c]
2006-04-21T01:11:36.736823Z Dan Coby
Fix for 688648 Too many MAP file names. DETAILS: The Borland C++ 5.5 Builder no longer worked. The problem was caused by an earlier change: r5596 | igor | 2004-12-20 14:17:39 -0800 (Mon, 20 Dec 2004) | 18 lines Fix : Completely remove the platform dependent target lib.tr from makefiles There was a note in that change message that it had not been tested with the Borland compiler. The bug was also subtle in that the only reason that the linker command worked previously was because the lib.tr file was empty.[src/bcwin32.mak]
2006-04-20T18:14:11.385429Z leonardo
Fix (pdfwrite) : Work around degenerate CTM while stroking a path. DETAILS : Bug 688606 "ps2pdf fails with Error: /undefinedresult in --stroke--". The pdfwrite device uses an inverse CTM to satisfy Adobe Reader constraing for user coordinates. The test document demonstrates another case when a 3d party software strokes a path with a degenerate CTM. The old code already implements a workaround for a si,ilar case. However the old condition in there appears too strong, and now we make it weaker to pass a new class of degenerate CTMs. NMot sure whether we should pass any degenerate CTM. Will see if new ones appear. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c]
2006-04-18T17:32:25.849734Z Ray Johnston
Implement the status operation for the %rom% device. Restructure the makefiles to correct some dependency problems. The creation time of files in the %rom% device are now set to the build time. The need for this was established during bug 687094. DETAILS: Not tested on VMS or OS/2. Header file dependencies were missing. Now the mkromfs ZLIB objs are a shared macro list as are the header list. EXPECTED DIFFERENCES: None since this only is used if COMPILE_INITS=1.[src/lib.mak src/openvms.mak src/mkromfs.c src/gsiorom.c src/unix-aux.mak src/macos-mcp.mak src/msvctail.mak src/os2.mak]
2006-04-16T19:08:54.198111Z leonardo
Fix (MSVC build) : Always use nodebug CRTL when building a nodebug Ghostscript. DETAILS : The old makefile gave a wrong profiling result due to linking with debug CRTL when TDEBUG=0 DEBUGSYM=1. EXPECTED DIFFERENCES : None.[src/msvc32.mak]
2006-04-16T19:01:41.671156Z leonardo
Fix (memory manager) : Reduce the CPU time consumption for 'restore', step 2. DETAILS : This fixes the bug Bug 688602 "Displaying file with GS-8.53 is much slower than with GS-8.51" with switching on the new code. See the revision 6706 log message. EXPECTED DIFFERENCES : None.[src/gxalloc.h]
2006-04-14T19:49:13.902581Z leonardo
Fix (memory manager) : Reduce the CPU time consumption for 'restore'. DETAILS : This is a preparation for fixing Bug 688602 "Displaying file with GS-8.53 is much slower than with GS-8.51". Currently the new code is disabled with the macro NO_INVISIBLE_LEVELS defined in gxalloc.h . The performance flaw happened in revision 5980. Before it the memery manager created "invisible" save levels when the changes list becomes too long and needs a big time for restoring l_new marks. The idea was to skip marls for older changes so that they don't consume processor time. The cost was an extra growth of the changes list, because such changes are stored at second time if happen again after the "invisible" 'save'. While fixing the bug 68815 this optimization was lost because it was not documented. In same time, "invisible" 'save' levels appear logically incorrect, because they cause the problem documented in the bug 68815. This change implements same idea (the skipping of old changes while 'restore'), but it does that with no extra 'save' levels. The new implementation maintains a pointer gs_ref_memory_t::scan_limit, which points to a middle element of the changes list. Elements after that pointers do not restore l_new mark during 'restore'. Besides that, this change introduces a new kind of change list elements, which is marked with AC_OFFSET_ALLOCATED in the 'offset' field. Such elements do not represent a memory content change, but they represent an allocation event for 'ref' arrays. The l_new mark is restored for those refs, which were allocated after the change element pointed by gs_ref_memory_t::scan_limit. To simplify debugging, we define a new switch NO_INVISIBLE_LEVELS in gxalloc.h . When NO_INVISIBLE_LEVELS is zero, an algorithmically equivalent change happens in isave.c and igcref.c, and other modules are not affected. In this case : 1. Factored out a new function mark_allocated (isave.c). 2. Added a new argument to save_set_new, save_set_new_changes to know that it is called for an invisible level (isave.c). 3. Factored out a new function igc_reloc_ref_ptr_nocheck (igcref.c). When NO_INVISIBLE_LEVELS is 1 : 1. Invisible save levels are not created (the change to alloc_save_state in isave.c). 2. Instead that, it creates a new kind of alloc_change_t element, which is marked with AC_OFFSET_ALLOCATED in the 'offset' field. Such element points to the beginning of a newly allocated 'ref' array (either packed or not) (see alloc_save_change_alloc in isave.c). 3. The new function alloc_save_remove removes such elements when the object is being removed explicitely. 4. save_set_new is expanded to process the new kind of alloc_change_t elements. With such elements it calls mark_allocated (see above), so that the effect is same as before the patch. 5. The scanning of allocated objects in save_set_new is removed due to (3). 6. save_set_new_changes is extended with computing the size of newly allocated 'ref' arrays, which are processed during the scan. It appears to be close to what save_set_new did while scanning allocated objects (the variable 'changed'). 7. The new field gs_ref_memory_t::scan_limit stores a termination condition for scanning objects in save_set_new_changes. The value is stored when save_set_new_changes is called from alloc_save_state as it was for creatng an invisible save level. Rather the new code doesn't create an invisible level, the scan termination condition work as it were created. 8. save_set_new_changes uses the variable 'changed' for a proper setting of the termination condition. The condition is not exactly equivalent to the old one, because the old code also accounts a scanning of non-ref objects, but the new code doesn't bother with them. Therefore new termination conditions appear in some different points than invisible levels did. Therefore the behavior isn't algorithmically equivalent. 9. The new code always restore to a 'visible' level. In same time, doing a 'restore', some of l_new marks may be left unrestored due to the scan tremination condition. This effect may be considered as caching a reasonable number of recently changed objects by marking with l_new. Older changes loose the l_new mark and their further changes will be stored again in the 'changes' list. This causes an extra growth of the 'changes' list, but saves the processor time from redundant setting of multiple l_new marks when save-restore is executed multiple times after a big number of changes. 10. The garbager implements a special processing for AC_OFFSET_ALLOCATED elements. The 'where' pointer is not enumerated and isn't tracked while the marking phase. Instead that the garbager calls a special function alloc_save__filter_changes to remove those elements, which point to unused ref blocks. Also a special function igc_reloc_ref_ptr_nocheck is used to relocate 'where' pointers. See comments in code. 11. In AC_OFFSET_ALLOCATED elements 60% of their size appears unused. We would like to define a smaller structure for them, but we don't want enlarge the CPU time expense for checking types in loops. Thus NO_INVISIBLE_LEVELS 1 reconstructs the optimization, which was lost while fixing the bug 688153 with the revision 5980. Rather the behavior isn't strongly equivalent, the overall logic is mostly same. Now we commit this patch with new code disabled. We'll enable it separately after the regression testing of the algorithmically equivalent part. EXPECTED DIFFERENCES : None.[src/isave.h src/gxalloc.h src/idosave.h src/igcref.c src/int.mak src/igc.c src/ialloc.c src/gsalloc.c src/isave.c]
2006-04-14T17:55:42.321007Z Ray Johnston
Indirect W, W2, Dw or DW2 values were not resolved at the correct point which caused a check for 0 length W and W2 arrays to not work. Bug 688649.[lib/pdf_font.ps]
2006-04-14T01:03:31.516512Z Dan Coby
Remove a piece of extra code that came in as part of the 'Named color' logic.[src/gscdevn.c]
2006-04-13T04:24:47.344362Z Ray Johnston
Fix typo. IdoimSet was in RESOURCE_LIST instead of IdiomSet. Thanks to "Edward" for spotting this. Bug 688644.[src/bcwin32.mak src/openvms.mak src/ugcclib.mak src/macosx.mak src/watcw32.mak src/Makefile.in src/dvx-gcc.mak src/msvc32.mak src/unix-gcc.mak src/unixansi.mak src/macos-mcp.mak src/msvclib.mak src/os2.mak src/watclib.mak]
2006-04-11T05:56:23.659314Z Dan Coby
Fix for 688068 Problem with overprint in 1bit cmyk device. DETAILS: This problem was caused by an earlier change which was made for support of ROPs in the GhostPCL product. Logically there are some conflict between the requirements for ROPs versus overprint. See the discussion in 688638 for the details. Logically this change backs out the earlier change to big_map_color_rgb. In actuality, a new routine call bit_decode_color was made which operates like the earlier version of bit_map_color_rgb. The new routine was created since the current bit_map_color_rgb will be needed for ROP support.[src/gdevbit.c]
2006-04-11T04:54:24.181044Z Ray Johnston
The .ResourceFile logic did not work with the %rom% device since it relied on the 'status' operator. This change avoids the use of 'status' by using the 'file' operator in a stopped context. Bug 687094. DETAILS: The %rom% device needs to add a 'status' function that comes up with some reasonable results. EXPECTED DIFFERENCES: None.[lib/gs_res.ps]
2006-04-06T00:30:46.126294Z Dan Coby
Fix for 688625 5x to 15x slowdown between 8.50 and 8.53 (ref#10273). DETAILS: The given test file specifies a graphics state for almost every line drawn. As a result, over 380,000 extra transparency mask initializations are done. The extra time occurred when the PDF transparency processing was changed being passed through the clist.These extra initializations were using both CPU time and clist memory (disk) space. The fix consists of only processing PDF transparency features when it is actually needed by the file. Note: This was already being done for most PDF transparency operations but not for the mask initializtion.[lib/pdf_ops.ps]
2006-04-03T13:43:22.538056Z Alex Cherepanov
Fix all obvious cases where the name of an operator for signalerror procedure is searched in the dictionary stack instead of retrieving it from systemdict. Bug 688548. DIFFERENCES: None[lib/gs_lev2.ps lib/gs_img.ps lib/gs_dpnxt.ps lib/gs_cspace.ps]
2006-04-02T00:17:36.683425Z Ray Johnston
Fix rangecheck in shfill caused by floating point inaccuracies in the function logic. Previous logic allowed for inaccuracy, but the value scaling was wrong making the test too stringent. Bug 688574 for customer 531. DETAILS: This rangecheck failure was not consistent across various builds, but _was_ repeatable on peeves. The problem was a floating point calculation truncation which caused a vaule to go outside of the defined range (in this case, the value went negative and the limit was 0.0). There was logic present in 'fn_1ItSg_is_monotonic' to allow for small 'out of bounds' conditions, but the value used was defined for a different range and thus was too strict. While fixing this (by splitting the 'small' values to different ones for the 'b' range and the 'e' range) I also corrected many spelling errors (s/noize/noise/ and s/beak/peak). I also regularized the small float value to (float)1e-6 in the various modules.[src/lib.mak src/gsfunc0.c src/gsfunc3.c src/gxpcopy.c]
2006-04-01T22:16:27.729522Z Alex Cherepanov
Work around a bug in GCC 2.96 for x86. Pre-load stack pages to avoid a SEGV. Bug 688574. DETAILS: It is well known that GCC 2.96 for x86 sometimes forgets to adjust $esp and leaves automatic variables at small distance below the stack pointer. Apparently, when the access to the automatic variable causes a page fault Linux sends a SEGV signal instead of committing the page if the access happens below the stack pointer. Pre-loading the stack pages from a known good context resolves the problem. DIFFERENCES: None.[src/gs.c]
2006-04-01T15:09:59.196553Z Alex Cherepanov
Recognize PDF fonts by the first 4 bytes of the font stream. Simplify Type 1 font reader and PFB font reader. Bug 688569 from customer 850. DETAILS: Some PDF files mis-identify font type of the embedded font streams or include raw PDF font streams. Length1, Length2, Length3 may be wrong or missing. Adobe Acrobat corrects these types transparently to the user. All PDF font streams can be easily recognized by the 1st 4 bytes of the font stream. The PFB stream can be recognized by the 1st 2 bytes. The Type 1 font reader doesn't need to follow 3-part structure of the Type 1 font but interpret it as a single stream. PDF specifies that Type 1 fonts with binary-encoded eexec streams can be embedded. One can imagine a binary eexec stream that is mis-identified as a hexadecimal eexec stream by a standard PostScript eexec operator. So the encoded stream was converted to hexadecimal stream before rev. 6568 . In practice we've never seen a stream that need a hexadecimal conversion but had several real hexadecimal streams. When the hexadecimal conversion was removed in rev. 6568, handling of 3-part Type 1 structure became a rudiment with is removed now. Existing code restores the operand and dictionary stacks after the font interpretation. So no extra code is required to support fonts without the 3rd part - zeros and cleartomark. These changes enable Ghostscript to interpret many kinds of malformed font streams but reduce it's utility as a verification tool. Checking of the declared type, subtype, and length parameters vs. actual values has been moved to the bug 688627 and will be implemented later. DIFFERENCES: None[lib/pdf_font.ps]
2006-04-01T13:35:02.551726Z Alex Cherepanov
Fix /ioerror when the length of the string data target is equal to number of generated bytes. Calculate the exact number of \n characters inserted by ASCIIHexEncode filter instead of the high bound Bug 688569 DIFFERENCES: None[src/sstring.c]
2006-04-01T13:13:59.549095Z Alex Cherepanov
Enable redefinition of /image and /imagemask operators in PDF interpreter whan DELAYBIND option is in effect. Bug 688555 DETAILS: pdf_draw.ps is loaded after gs_img.ps, gs_init.ps, gs_l2img.ps where /image and /imagemask are redefined. So these names can be safely resolved at the loading time, instead of taking the value from systemdict at run time as it was done before. DIFFERENCES: None[lib/pdf_draw.ps]
2006-03-31T01:07:31.896512Z Dan Coby
Fix for 688608 image rendered black in PDF-file DETAILS: The test file for this problem has several 1 bit DeviceGray images. The file also uses the 'Darken' blending mode. This result of this blending mode is the darker of the background and source colors. The problem was that 1 bit DeviceGray images are handled by the copy_mon device procedure. The PDF 1.4 transparency compositor devices were using the gx_default_copy_mono procedure. However this routine first sets the specified area to black and then sets the white regions. Since the entire area is first set to black, the blending operation always produced a black result. The fix consists of creating a new copy_mono procedure for the PDF 1.4 transparency compositor devices. The new routine does not set the entire area to black first.[src/gdevp14.c]
2006-03-29T21:50:36.299258Z Ray Johnston
Document the new '-o' option. Also minor cleanup in the same area.[doc/Use.htm]
2006-03-29T20:43:28.951336Z Ray Johnston
Correct double "" typo that made 'usage:' not work.[toolbin/search-svn-revs]
2006-03-29T19:39:10.090689Z Raph Levien
Adds -o<fn> switch to command, which is essentially an alias for -sOutputFile=<fn>, -dNOPAUSE, and -dBATCH.[src/imainarg.c]
2006-03-29T19:31:05.448360Z Ralph Giles
The luratech JPEG 2000 encoder defaults to lossless coding mode, which doesn't offer any size advantages over the older DCT encode filter. Instead ask for quality-based rate control at 60 on a scale of 1-100. This also requires switching to the 9,7 wavelet from the reversible 5,3.[src/sjpx_luratech.c]
2006-03-28T01:05:49.592416Z Ray Johnston
Return a success code from the clist compression initialization functions. Bug 688603. Thanks to "Nix" for spotting this. DETAILS: This problem actually existed with the LZW comoression init as well as ZLIB.[src/gxclzlib.c src/gxcllzw.c]
2006-03-27T19:01:29.123835Z Ray Johnston
Fix typo in double inclusion protection.[src/sjpx_luratech.h]
2006-03-27T18:53:39.250165Z Ray Johnston
Fix a problem handling ' " and \ characters that gave false postives when checkin sources for C++ comments. Remove some modules from the 'skip' list that did not belong there (IMHO) -- they were probably there due to previous false positives. DETAILS: This module was already sort of hackish. It works better, but probably can still be fooled. At least we now ignore the character following a '\' and can handle things like '"' and "'" without getting confused. EXPECTED DIFFERENCES: src/gdevpdfe.c will no longer be listed as having C++ comments.[toolbin/tests/check_comments.py]
2006-03-25T01:38:29.250332Z Ralph Giles
Fix luratech-based encode filters. We now appear to work correctly. DETAILS: Invert the JBIG2 image data before passing it to the encoder library. We allocate a scratch buffer for this because the buffer we are passed in the read cursor struct is marked const. We now produce output with the correct meaning for 0 and 1 bits, but the output of the jbig2 output device is now inverted. In both the jbig2 and jpx encode filters, repeatedly grow dynamic buffers until they reach the required size instead of assuming a single doubling will be sufficient. This fixes a segfault inside the library compressing large JPX images.[src/sjbig2_luratech.h src/sjbig2_luratech.c src/sjpx_luratech.c]
2006-03-24T23:58:42.888065Z Ralph Giles
Correct an unitialized variable warning.[src/gdevjbig2.c]
2006-03-24T01:10:06.296187Z Alex Cherepanov
Use .languagelevel operator instead of languagelevel name to prevent languagelevel redefinition to affect Ghostscript operation. Bug 688583 DIFFERENCES: None[lib/gs_img.ps]
2006-03-23T19:32:06.035048Z Ray Johnston
Change PDF curve rendering to use 'accurate' curves. PostScript method is retained for Adobe CPSI compatibility. Bug 688434. EXPECTED DIFFERENCES: All are varified as progressions (improvements). I will run update_specific immediately after the patch is committed. The file list is: 0.pdf 1_2001.pdf 1_pct_50_bang.pdf 86554321.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 Bug687724.pdf Bug687828.pdf Bug687840.pdf DisplayedGood.pdf DisplayedWrong.pdf GS_Stroke_error.pdf Openhuis_pdf_zw.pdf PixelisAd.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf SmoothShading.pdf Svd.pdf adesso8.pdf ai2.pdf annots.pdf besttest.pdf bugsample.pdf bulletin.pdf ca.pdf chartab.pdf chilis_black.pdf chilis_red.pdf file.pdf file2.pdf knight.pdf messenger.pdf messenger16.pdf p2b-100.pdf probe3.pdf si_tg_brochure.pdf time1.pdf[lib/pdf_main.ps]
2006-03-23T12:39:23.850800Z leonardo
Fix (pdfwrite) : The font copying and the font comparizon didn't work with segmented True Type data. DETAILS : Bug 688611 "Font included in the PDF file several times". In Postscript documents Trus Type font data are segmented to fit into a maximal Postscript string. If a True Type table is bigger, it must be segmented. When creating a stable font copy such case is rare, because we copy small tables only (skipping such big tables as 'glyph' in order to create a font subset). In the supplied test case True Type font is so wrongly segmented, that 'cvt' table consistes of 2 segments, rather it could fit into a single string. Due to that the old code accessed occasional data after a segment break. We believe that the test document is an incorrect Postscript, but we decided to do effort for handling this case. EXPECTED DIFFERENCES : None.[src/gxfcopy.c src/gdevpsft.c]
2006-03-23T09:56:47.387302Z leonardo
(pdfwrite) : Integrating Luratech modules for JPXEncode, JBIG2Encode. DETAILS : This imolements a better filter initialization and a proper writing of filter names to the PDF output file. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h src/gdevpdfu.c src/gdevpsdi.c src/devs.mak]
2006-03-22T18:35:22.304671Z Raph Levien
FIX: Fixes segfault in wts persistent cache logic when no cache key is generated. Fixes bug #688132.[src/gswts.c]
2006-03-22T18:10:43.455701Z Ralph Giles
Fix printafm to properly handle files with more than 256 glyphs. Patch from Michail Vidiassov. Bug 688610.[lib/printafm.ps]
2006-03-22T16:44:15.233805Z leonardo
(pdfwrite) : Integrating Luratech modules for JPXEncode, JBIG2Encode. DETAILS : This is a preliminary implementation. The new filters in this revision isn't working well and need more debugging. To build Ghostscript with new filters, specify "JBIG2_LIB=luratech JPX_LIB=luratech" in the command line when running 'make' utility. Use this Postscript prefix to invoke new filters : << /ColorImageFilter /JPXEncode /GrayImageFilter /JPXEncode /MonoImageFilter /JBIG2Encode >> setdistillerparams JPXEncode requires CompatibilityLevel=1.5 , JBIG2Encode requires CompatibilityLevel=1.4 . IMPORTANT NOTE : The change to gdevpsdi.c near line 239 slightly changes the behavior in the case when no new filters involved. When AutoFilter=true, the old code completely disregarded the filter specified in ColorImageFilter, GrayImageFilter. The new code leaves it as a candidate for the automatic choice if it is a non-lossless filter. EXPECTED DIFFERENCES : None.[src/gdevpsdp.c src/gdevpdfp.c src/gdevpsdi.c src/devs.mak]
2006-03-22T14:56:00.546050Z leonardo
Fix (pdfwrite) : A minor code cleanup. DETAILS : This is a preparation for integrating Luratech modules for JPXEncode, JBIG2Encode. This change is algorithmicly equivalent. 1. Allowed CompatibilityLevel=1.5 . Old code replaced with 1.4 . The new code behaves same as the old one. 2. In gdevpsdi.c set_defaults was called twice for same filter in some cases. EXPECTED DIFFERENCES : None.[src/gdevpdfp.c src/gdevpsdi.c]
2006-03-22T08:43:11.486957Z leonardo
Fix : MSVC, Cygwin/gcc warnings. DETAILS : Note 1: This patch inserts 2 initializations into gswts.c against an indeterminzm, but we don't case about correct values in those cases. Note 2: This patch removes the messing pointer type cast insetred with the last patch. EXPECTED DIFFERENCES : None.[src/gsimage.c src/gxfcopy.c src/gxwts.h src/gdevpdfg.c src/gswts.c]
2006-03-22T08:04:49.413437Z Ray Johnston
Fix compile problems and MSVC warnings.[src/gxwts.h src/gswts.c]
2006-03-22T07:05:00.066628Z Raph Levien
Patch to put WTS halftones in clist so that WTS halftoning works in banded mode. Also uses persistent cache when available to save time initializing the WTS halftone structures. Some memory cleanup and optimization work remains.[src/gp_unix_cache.c src/gswts.h src/gshtscr.c src/gxdhtserial.c src/gxwts.h src/gsht.c src/gswts.c src/gxclrast.c src/gxdevndi.c src/gp.h src/gxclimag.c]
2006-03-22T04:58:45.401369Z Alex Cherepanov
Add ToWrite dictionary to complete the environment for pdfwrite.ps procedures and enumerate JBIG2Globals parameter before the image to avoid recursion during stream copying. Bug 688556 DIFFERENCES: None[lib/pdfopt.ps]
2006-03-21T12:09:23.846370Z leonardo
Fix (pdfwrite) : Order embedded fonts against an indeterminizm. DETAILS : Bug 688561 "PDF content depends on memory allocation." The old code writes font data depending on glyph name indices, which are Postscript name indices and depend on memory allocation order, which depend on occasional factors and events. This patch implements a font data ordering by glyph names, which are strings. The ordering is implemented for stable font copies, which only represent an embedded font before writing it. See comments added into gxfcopy.h . EXPECTED DIFFERENCES : None.[src/gdevpdtb.c src/gxfcopy.c src/gxfcopy.h]
2006-03-20T23:35:52.190540Z Ralph Giles
Implement RGB and CMYK output in the example JPX output device. The CMYK device isn't confirmed to be correct.[src/devs.mak src/gdevjpx.c]
2006-03-17T20:26:58.555712Z Ralph Giles
Add the new luratech integration and testing files to the file list in the documentation.[doc/Develop.htm]
2006-03-17T20:16:46.140063Z Ralph Giles
Add missing revision comment lines.[src/gscedata.h src/gdevpdtv.c src/gdevpdtv.h src/gscedata.c]
2006-03-17T07:19:58.022114Z leonardo
Type 1 hinter : More improvements (continued 3). DETAILS : The revision 6642 appears incorrect. We thought that the 'uninitialized' warning was issued due to the compiler stupidity, however it appears useful. Those variables could be uninitialized due to the operator 'continue' above their assignments. Revisions before 6642 are indeterministic. This patch provides a correct fix for that error. The last patch fixed the indeterminizm, but the computation was inaccurate. EXPECTED DIFFERENCES : normal 72 dpi : "Bug687724.pdf" "chess.ps" "MagicEye.pdf" normal 300 dpi : "86554321.pdf" "alphabet.ps" "t\Bug687724.pdf" "t\fonts.pdf" "t\MagicEye.pdf" "t\PixelisAd.pdf" "t\prob.pdf" "t\spec_gs.pdf" "t\spec_gv.pdf" pdfwrite 72 dpi : "Bug687724.pdf" "chess.ps" "t\Bug687724.pdf" "t\chess.ps" "t\MagicEye.pdf" pdfwrite 300 dpi : "86554321.pdf" "alphabet.ps" "Bug687603.ps" "Bug687724.pdf" "fonts.pdf" "MagicEye.pdf" "PixelisAd.pdf" "prob.pdf" "spec_gs.pdf" "spec_gv.pdf"[src/gxhintn.c]
2006-03-16T19:59:07.187142Z Ray Johnston
Remove individual credit from 'usage'.[toolbin/search-svn-revs]
2006-03-15T19:56:58.028675Z Ralph Giles
Remove excessive debugging output.[src/sjpx_luratech.c]
2006-03-15T19:45:00.902158Z Ray Johnston
Fix color procs to get gray scale instead of _b_w_.[src/gdevjpx.c]
2006-03-15T14:35:27.348378Z Alex Cherepanov
Use gput procedure to store data in the PDF graphic state instead of the plain def because initial graphic state is a read-only dictionary. Bug 688593 from customer 870. DIFFERENCES: None[lib/gs_ttf.ps]
2006-03-15T06:33:42.151793Z Ralph Giles
Add test frameworks for the JBIG2 and JPX encode filters. This code only depends on the encoder streams being available, but currently that is only possible when building against the proprietary Luratech implementation libraries.[src/gdevjbig2.c src/gdevjpx.c src/devs.mak]
2006-03-15T05:46:07.272587Z Ralph Giles
Initial check in of JPX encode filter support based on the Luratech LWF JP2 library.[src/sjpx_luratech.h src/sjpx_luratech.c]
2006-03-15T05:43:50.703217Z Ralph Giles
Commit header changes associated with the previous commit.[src/sjpx_luratech.h]
2006-03-15T05:41:25.246375Z Ralph Giles
Instead of using the dimensions and depth of the first image component, take the maximum of the values for each component, giving the highest resolution image. The library doesn't supply the information from the Image Header Box which should be the actual target resolution, so we still need to implement passing the target image dimensions from the image dictionary for complete robustness. Also, some code clean up and improvement of debugging messages.[src/sjpx_luratech.c]
2006-03-13T21:11:43.073623Z stefan
Use vsprintf for currently unused gs_throw_imp for now.[src/gsmisc.c]
2006-03-13T20:53:43.657512Z stefan
remove abberant include of stdint.h[src/gdevpdfe.c]
2006-03-13T20:37:32.485353Z Ray Johnston
Add warning about potential misleading results as pointed out by Igor. Credit him with this observation in the 'usage' explanantion.[toolbin/search-svn-revs]
2006-03-13T19:52:46.775800Z Ralph Giles
Fix a typo that was introduced in r6651.[src/gserror.h]
2006-03-13T19:41:07.288420Z Ralph Giles
Use the Id keyword instead of the old RCSFile and Revision.[src/gserror.h]
2006-03-13T16:18:19.024819Z stefan
changed copyright headers[src/iplugin.h src/gdevm48.c src/gsgdata.h src/configure.ac src/gsropt.h src/gdevmsxf.c src/gdevmem.c src/gdevmem.h src/zvmem.c src/write_t1.c src/gstrap.c src/icstate.h src/gxxfont.h src/write_t1.h src/gstrap.h src/gzacpath.h src/gdevcgmx.h src/gscssub.c src/gp_msdos.c src/gdevlbp8.c src/gdevdm24.c src/gdevpdfx.h src/zcsdevn.c src/dwsetup.rc src/zcontext.c src/gscssub.h src/icie.h src/gxdhtserial.c src/gdevpdts.c src/ccfont.h src/gxdither.h src/gxdhtserial.h src/gdevpdts.h src/macsystypes.h src/gxclutil.c src/gxcomp.h src/echogs.c src/oper.h doc/History7.htm src/zchar42.c src/gscscie.c src/gsfont0.c src/zchar42.h src/icfontab.c src/zht1.c src/zdevcal.c src/zpcolor.c src/gdevpdfi.c src/zcssepr.c src/ifont42.h src/sdcparam.c doc/Install.htm src/bcwin32.mak doc/Issues.htm src/sdcparam.h src/gdevpdtd.c src/gdevokii.c src/zcfont.c src/gdevpdtd.h src/gdevprna.c src/zcolor.c src/gxhtbit.c src/oparc.h src/sfxfd.c src/gdevprna.h src/gp_mspol.c src/dwuninst.h src/ttconfig.h src/gpmisc.c src/ireclaim.c src/gxstdio.h src/gsmemraw.h src/gpmisc.h doc/Lib.htm src/gxline.h doc/Ps-style.htm src/ijs.mak src/gserver.c src/gp_psync.c src/gp_os2pr.c src/gdevpsd.c src/gsiomacres.c src/gxclfile.c src/gxfilltr.h src/gdebug.h src/zfile.c src/gdev4693.c src/gxchar.c src/gxchar.h src/gsline.c src/gsfcid2.c src/gsalloc.c src/gsline.h src/gsiparm2.h src/gsalloc.h src/gxfont0.h src/gdevmeds.c src/gs16spl.c src/gdev4081.c src/gdevmeds.h src/srdline.h src/dpmain.c src/wctail.mak src/winlib.mak doc/History8.htm src/szlibx.h src/zmath.c src/gdevpdfk.c src/gxfont0c.h src/iimage.h src/gxpcolor.h src/gdevpdtf.c src/gp_unifn.c doc/Xfonts.htm src/gdevddrw.c src/gschar.c src/gdevpdtf.h src/gdevpsfm.c src/gdevddrw.h src/sarc4.c src/gschar.h src/gsptype2.c src/gdevpsu.c src/zfcid1.c src/sarc4.h src/gstrans.c src/gsptype2.h src/gdevpsu.h src/gstrans.h src/iestack.h src/gxbitfmt.h src/gxclio.h src/gstype2.c src/itoken.h src/inameidx.h src/gxhldevc.c src/gxhldevc.h src/sfxboth.c src/gp_macio.c src/wrfont.c src/sbhc.c src/gsdps.c src/zfont1.c doc/Maintain.htm src/wrfont.h src/sbhc.h src/gsdps.h src/spngp.c src/ghost.h src/gxalloc.h src/gsmatrix.c src/gxsamplp.h src/istruct.h src/gdevpsf.h src/gsmatrix.h src/zdouble.c src/dwreg.c src/spdiff.c src/gxfcmap1.h src/dwreg.h src/scommon.h src/gdevpdtw.c src/gdevpdtw.h src/unixhead.mak src/gsiparm4.h src/gxiscale.c src/gxbcache.c src/dwinst.cpp src/gxbcache.h src/ibnum.c src/gdevxcmp.c src/estack.h src/ibnum.h src/scfe.c src/gscompt.h src/gsdcolor.h src/gxdtfill.h src/gdevxcmp.h src/gdevlj56.c src/gdevhl7x.c src/gdevos2p.c src/gsparam.c src/gdevmr8n.c src/gsbitops.c src/gxftype.h src/gp_unix_cache.c src/gdevpdfm.c src/imain.c src/gsparam.h src/gsbitops.h src/zfilter2.c src/imain.h src/ifilter.h src/zfont42.c doc/Language.htm src/spdiffx.h src/smd5.c src/smd5.h src/gxhttype.h src/gs16spl.rc src/gspenum.h src/sjpx.c src/sjpx.h src/gxipixel.c src/sfilter2.c src/gdevsnfb.c src/gdevifno.c src/gscrd.c src/gxmclip.c src/gxcie.h src/gsio.h src/gscrd.h src/gxmclip.h src/unix-end.mak src/inobtokn.c src/gp_mslib.c src/gsiodev.c src/gdevescp.c src/igc.c src/msvc32.mak src/gdevmacxf.c src/gsfunc0.c src/igc.h src/jerror_.h src/zdosio.c src/gsfunc0.h src/gdevpsds.c src/gdevpsf1.c src/siscale.c src/gdevpsds.h src/ilevel.h src/gxfill.c src/gsdsrc.c src/siscale.h src/gxclread.c src/gxfill.h src/gsdsrc.h src/iostack.h src/gdevmr1.c src/gsdll.c src/gspath1.c src/gsdll.h src/sjpegc.c src/zfdcte.c src/zfcmap.c doc/Readme.htm src/gdevbit.c src/gdevfax.c src/gsequivc.c src/gsdevice.c src/gp_wsync.c src/gdevfax.h src/gsequivc.h src/gsdll32.rc src/gxclmem.c src/gshtx.c src/gscparam.c src/gdevpdfo.c src/gdevsj48.c src/gsdevice.h src/gsbittab.c src/sdctd.c src/macos_carbon_pre.h src/gxclmem.h src/gshtx.h src/gsmemory.c src/gdevpdfo.h src/gsbittab.h src/ifwpred.h src/gdevcdj.c doc/Devices.htm src/files.h src/gsmemory.h src/gxband.h src/scfdgen.c src/ttinterp.c src/ttcalc.c src/gsbitmap.h src/gdevtknk.c src/idsdata.h src/ttinterp.h src/ttcalc.h src/gxfont42.h src/scf.h src/inames.h src/gxidata.c src/gsroptab.c src/gdevm1.c src/gsistate.c src/os2.mak src/gscolor2.c src/gzline.h src/gscolor2.h src/gsmalloc.c src/ttfmain.c src/ivmem2.h src/gsmalloc.h src/gscindex.h src/gxiodev.h src/gp_macpoll.c src/dwmain.c src/gdevpcfb.c src/gdevvec.c src/dwmain.h src/gdevpcfb.h src/gdevvec.h src/ostack.h src/gsrect.h src/sdeparam.c src/idosave.h src/gsncdemo.c src/ifrpred.h src/gdevimgn.c src/gdevvglb.c src/gsmdebug.h src/gsovrc.c src/gxshade1.c src/gdevm32.c src/scfx.h src/gsovrc.h src/all-arch.mak src/bfont.h src/idparam.c src/gsparams.c src/gdevbjcl.c src/gdevpsdu.c src/dvx-gcc.mak src/idparam.h src/gsparams.h src/gxblend.c src/gdevdsp2.h src/gp_mswin.c src/gdevbjcl.h src/gxblend.h src/gp_mswin.h src/gp_os2.c src/zcolor1.c src/math_.h src/gp_os2.h src/gxfunc.h src/gdevstc.c src/macos-fw.mak src/ialloc.c src/gdevstc.h src/ialloc.h src/gserrors.h src/sjpege.c src/gxsample.c src/gxfarith.h src/dxmainc.c src/gdevbmp.c src/gxsample.h src/gserror.h src/gdevbmp.h src/gdevsppr.c src/igcstr.c src/gdevn533.c src/idebug.c src/igcstr.h src/iccinit1.c src/idebug.h src/gsht.c src/ifont2.h src/gdevpsdf.h src/gdevm16.c src/gsht.h src/scantab.c src/gxfapi.c src/zfilter.c src/gstype42.c src/gxfapi.h src/iutilasm.asm src/gsfunc.c src/sbcp.c src/iref.h src/gsfunc.h src/sbcp.h src/gdevtrac.c src/gp_ntfs.c src/libpng.mak src/gdevatx.c src/zfproc.c src/gs_dll_call.h src/dmmain.c src/istream.h src/gs.c doc/Ps2epsi.htm src/zdevice2.c src/iscannum.c src/sjbig2.c src/gdevpdfb.c src/gscrdp.c src/gspmdrv.c src/iscannum.h src/dmmain.r src/sjbig2.h src/gsfemu.c src/gdevpdfb.h src/gscrdp.h src/gspmdrv.h src/inamestr.h src/gxclrast.c src/gdevxres.c src/zfile1.c src/zimage3.c src/istkparm.h src/gdevo182.c src/zarith.c src/zcspixel.c src/gximage1.c src/msvctail.mak src/gsfunc4.c src/isdata.h src/gxclpath.c src/gsfunc4.h src/gxcmap.c src/gxclpath.h src/icsmap.h src/gxcmap.h src/gpgetenv.h src/zpath.c src/ttload.c src/gsnorop.c src/gdevmrop.h src/gxfillsl.h src/zcolor3.c src/ttload.h src/tttype.h src/gxcpath.c doc/Unix-lpr.htm src/gxcpath.h src/gdevlxm.c src/gxp1impl.h src/rinkj/rinkj-epson870.c src/rinkj/rinkj-epson870.h src/gxgetbit.h src/gdevabuf.c doc/Source.htm src/md5.c src/gp_mac.c src/gdevsgi.c src/zcie.c src/md5.h src/gdevsco.c src/gp_mac.h src/stream.c src/gdevsgi.h src/gdevdflt.c src/stream.h src/gsdpnext.h src/gdev8510.c src/gxstroke.c src/gdevpxut.c src/zmisc2.c src/ttmisc.h src/zfunc3.c src/iparam.c src/zrelbit.c src/gdevpxut.h src/gxclist.c src/gdevxini.c src/iparam.h src/gxclist.h src/jbig2.mak src/gdevpsfu.c src/gdevlp8k.c src/gdevpdt.c src/ttfmemd.c src/gdevpdt.h src/gp_dosfs.c src/ttfmemd.h src/gpcheck.h src/jasper.mak src/ztype.c src/dwuninst.cpp src/gdevxxf.c src/shc.c src/zshade.c doc/Use.htm src/opcheck.h src/shc.h src/gdevpdfd.c src/gdevcfax.c src/zicc.c src/vdtrace.c src/gxdda.h src/iscan.c src/vdtrace.h src/iscan.h src/gsnotify.c src/gximage3.c src/srle.c src/gsnotify.h src/zfilterx.c src/gsdll2.rc src/gximage3.h src/iparray.h src/memory_.h src/gsuid.h src/gdevstc2.c src/ziodev2.c src/gsiodevs.c src/zmisc.c src/gsargs.c src/devs.mak src/gp_win32.c src/gsargs.h src/gsinit.c src/gxttfb.c src/wmin.mak src/gxttfb.h src/dscparse.c src/winplat.mak src/gdev3852.c src/dscparse.h src/gp_getnv.c src/gp_wgetv.c src/gdevpxen.h src/gdevadmp.c src/gdevpxat.h src/zchar2.c src/errno_.h src/slzwc.c src/gdevpdfu.c src/ttcommon.h src/gdevp14.c src/dwinst.h doc/Ps2ps2.htm src/sfilter.h src/gdevp14.h src/ifcid.h src/sisparam.h src/ifont.h src/zfmd5.c src/unixlink.mak doc/Psfiles.htm src/zrop.c src/gdevegaa.asm src/zfjpx.c src/gspaint.c src/gspaint.h src/sa85x.h src/gsalpha.c src/int.mak src/gsalpha.h src/icremap.h src/imainarg.c src/gp_dvx.c src/imainarg.h src/spprint.c src/gxcldev.h src/zbfont.c src/unix-gcc.mak src/spprint.h src/igstate.h src/unistd_.h src/version.mak src/dwtext.c src/sbwbs.c src/gxdevmem.h src/icharout.h src/gdevstc4.c src/dwtext.h src/sbwbs.h src/szlibd.c src/gdevpccm.c src/gdevdfax.c src/gdevdbit.c src/gdevpccm.h src/strimpl.h src/gsutil.c src/opextern.h src/gsutil.h src/zimage.c src/gdevcgm.c src/gdevtsep.c src/gsfont0c.c doc/Deprecated.htm src/gsht1.c src/gspcolor.c src/gxi12bit.c src/gsht1.h src/iddstack.h src/rinkj/rinkj-config.c src/gspcolor.h src/zfjbig2.c src/std.h src/rinkj/rinkj-config.h src/gdevs3ga.c src/slzwe.c src/scfdtab.c src/gscolor.c src/stdint_.h src/ztoken.c src/gxpaint.c src/seexec.c src/zchar32.c src/gdevm56.c src/gscolor.h src/icid.h src/spsdf.c src/gxpaint.h src/gsfname.c src/spsdf.h src/gsfname.h src/gxalpha.h src/md5main.c src/srlx.h src/gxclipsr.h src/gdevmac.c src/idisp.c src/jpeg.mak src/gdevmac.h src/idisp.h src/idstack.c src/gdevrinkj.c src/idstack.h src/gdevwdib.c src/gxoprect.c doc/Copying.htm src/gdevsunr.c src/gdevpdtc.c src/gxoprect.h src/gsfcmap1.c src/gswts.c src/gsstate.c src/gswts.h src/ichar1.h src/gxiparam.h src/gsstate.h src/gdevcljc.c doc/Ps2pdf.htm src/iscanbin.c src/gdevmiff.c src/iscanbin.h src/gp_mshdl.c src/zfcid.c src/zfont.c src/unixinst.mak src/iminst.h src/zarray.c src/gxdevcli.h src/fcntl_.h src/gdevpe.c doc/Humor.htm src/zdfilter.c src/write_t2.c src/zdps1.c src/write_t2.h doc/Commprod.htm src/zhsb.c src/gxsync.c src/zupath.c src/dstack.h src/gsccolor.h src/gxsync.h src/gdevpdtt.c src/gdevpbm.c src/gdevpdtt.h src/gdevmrun.c src/gsdllwin.h src/gconf.c src/gdevmrun.h src/gconf.h src/sdct.h src/zfbcp.c src/gsipar3x.h src/gzcpath.h src/scfetab.c src/gxstate.h src/gdevpcl.c src/gdevcmap.c src/zht2.c src/gxfmap.h src/gdevpdfj.c src/zfarc4.c src/gdevpcl.h src/ichar.h src/gdevcmap.h src/zht2.h src/gdevwprn.c src/gxpdash.c src/ztrap.c src/gxlum.h doc/Drivers.htm src/gdevpdte.c src/gdevdevn.c src/gsgcache.c src/gdevdevn.h src/gsgcache.h src/gsptype1.c src/gxclbits.c src/zfcid0.c src/gsptype1.h src/macos_classic_d_pre.h src/zgstate.c src/zfontenum.c src/ctype_.h src/inouparm.c src/rinkj/rinkj-screen-eb.c src/slzwx.h src/gstype1.c src/gxdhtres.h src/gdevmpla.c src/rinkj/rinkj-screen-eb.h doc/Testing.htm src/gstype1.h src/dwmain.rc src/gxcspace.h src/gdevmpla.h src/rinkj/evenbetter-rll.c src/watclib.mak src/rinkj/evenbetter-rll.h src/gxfcache.h src/gxclzlib.c src/istack.c src/zfont0.c src/gstparam.h src/istack.h src/gdevevga.c src/gdevhit.c src/gxclimag.c src/gsdfilt.c src/gxfillts.h src/gsdfilt.h src/gxht.c src/gxdcconv.c src/gdevpsdp.c src/gxcht.c src/openvms.mak src/gdevxalt.c src/gdevclj.c src/gxht.h src/gxdcconv.h src/zvmem2.c src/gdevpdtv.c src/contrib.mak src/rinkj/rinkj-device.c src/gdevpdtv.h src/lwf_jp2.mak src/gxclpage.c src/gsiparm3.h src/gxfont1.h src/rinkj/rinkj-device.h src/icontext.c src/gsdllos2.h src/gxclpage.h src/zstring.c src/icontext.h src/unix-aux.mak src/gzspotan.c src/zfont32.c src/ttfoutl.h src/gxclip2.c src/szlibxx.h src/gdevdrop.c src/gzspotan.h src/gxclip2.h src/scfd.c src/cfonts.mak src/gxiclass.h src/gdevcgml.c src/gdevcgml.h src/gdevpx.c src/windows_.h src/gdevl256.c doc/DLL.htm src/igcref.c src/zcharx.c src/gxtype1.c src/gxtype1.h src/gdevcp50.c src/idictdef.h src/gsmemret.c src/gxclip.c src/gsmemret.h src/sfilter1.c src/iname.c src/sddparam.c src/gxclip.h src/zmedia2.c src/iname.h src/gs.mak src/gxpcmap.c doc/News.htm src/gp_msdll.c src/gxcid.h src/gdevnfwd.c src/macos-mcp.mak src/ttobjs.c doc/History1.htm src/zcontrol.c src/ttobjs.h src/icclib.mak src/gsfcmap.c src/zfont2.c src/iimage2.h src/gxrplane.h src/gsfcmap.h src/gxp1fill.c src/imemory.h src/gsciemap.c src/dos_.h src/zdscpars.c src/gscdef.c src/gdevwpr2.c src/gxtmap.h src/gsbitcom.c src/zchar.c src/gdevsun.c src/gscrypt1.c doc/Fonts.htm src/gscrypt1.h src/ztrans.c src/dwmainc.c src/gxdht.h src/dvx-head.mak src/zcsindex.c src/zcidtest.c src/gdevrops.c src/gdevpdtx.h src/gdevijs.c src/icolor.h src/stdpn.h src/store.h src/gxfixed.h src/gstypes.h src/gsserial.c src/string_.h src/gdevcslw.c src/gsjmorec.h src/gsserial.h src/zfdctd.c src/zdps.c src/gxpcache.h src/scanchar.h src/lib.mak src/gdevdsp.c src/zmatrix.c src/sdctc.c src/gdevdsp.h src/gdevpipe.c src/gspmdrv.rc src/gdevsvga.c src/gdevpdti.c src/gdevsvga.h src/gdevpdti.h src/gdevepsn.c src/gsparam2.c src/gp_mktmp.c src/stat_.h src/zfsample.c src/zfdecode.c src/gsstruct.h src/gximag3x.c src/gsgc.h src/gscolor1.c src/gsnamecl.c src/dwtrace.c src/gdevmswn.c src/ierrors.h src/gxfcmap.h src/gdevjpeg.c src/gximag3x.h src/siinterp.c src/gscolor1.h src/gsnamecl.h src/dwtrace.h src/gdevmswn.h src/gdevbbox.c src/siinterp.h src/opdef.h src/gdevbbox.h src/iddict.h doc/History2.htm src/gp_stdin.c src/gdevtfax.c src/gdevpjet.c src/gendev.c src/gsexit.h src/gdevphex.c src/gp.h src/gslparam.h src/ivmspace.h src/gdevtfax.h src/gshtscr.c src/bench.c src/gsnogc.c src/gdevbmpa.c src/gsnogc.h src/stdio_.h src/tttables.h src/gdevemap.c src/gp_sysv.c src/gsrefct.h src/iastruct.h src/gdevbjc.h src/gdevpsf2.c src/gzht.h doc/Develop.htm src/gxcvalue.h src/sstring.c src/gxpath.c src/scfparam.c src/iconf.c src/gdevupd.c src/sstring.h src/gxpath.h src/interp.c src/zcrd.c src/iconf.h src/dwnodll.c doc/C-style.htm src/dwdll.c src/interp.h src/gdevm40.c src/dwdll.h src/gsiodisk.c src/sjpegd.c src/gspath2.h src/gdevpsim.c src/dvx-tail.mak src/errors.h src/gp_msprn.c src/gxino12b.c src/gdevmgr.c src/gdevpdfp.c src/gxacpath.c src/gslib.c src/ziodev.c src/gdevmgr.h src/iccinit0.c src/sdcte.c doc/Release.htm src/gxccache.c src/gslib.h src/ifont1.h src/zfunc0.c src/gxmatrix.h src/ifunc.h src/gxfdrop.c src/gp_unifs.c src/gxobj.h src/gxfdrop.h src/gxhintn.c src/gsiorom.c src/isstate.h src/gdevm2.c src/gxhintn.h src/gsiorom.h src/ifilter2.h src/gdevwddb.c src/gspath.c src/gxpcopy.c src/gscolor3.c src/gspath.h src/gdevdjet.c src/gscolor3.h src/rinkj/rinkj-dither.c src/zpath1.c doc/History3.htm src/gdevm24.c src/gp_unix.c src/rinkj/rinkj-dither.h src/inamedef.h src/ilocate.c src/gxdcolor.c src/gdevpm.c src/gscdefs.h src/vmsmath.h src/gscencs.c src/gxdcolor.h src/gzstate.h src/gdevbmpc.c src/gdevpm.h src/gschar0.c src/iht.h src/zdevice.c src/gscie.c src/gscencs.h src/ifapi.h src/gxi16bit.c src/zimage2.c src/gscie.h src/iastate.h src/pipe_.h src/gxbitops.h src/ipacked.h src/gpsync.h src/gsfunc3.c src/gdevperm.c src/gswin.rc src/gsccode.h src/gxpath2.c src/gsfunc3.h src/gp_strdl.c src/gxdevbuf.h src/genconf.c src/sa85d.c src/gscsel.h src/sa85d.h src/openvms.mmk src/zcolor2.c src/gp_stdia.c src/gdev3b1.c src/gxttf.h src/ttconf.h src/genht.c src/zgeneric.c src/gxarith.h src/gxclrect.c src/gsshade.c src/gsshade.h src/msvclib.mak src/gsicc.c src/zcid.c src/dwsetup.cpp src/gdevp2up.c src/gsicc.h src/dwuninst.rc src/gdevpdfr.c src/gdevppla.c src/zmisc1.c src/gsdevmem.c src/gdevppla.h src/wccommon.mak src/gxfcopy.c src/gdevpsft.c src/gxfcopy.h src/gsmisc.c src/gdevtfnx.c src/gdevm4.c src/gxicolor.c src/ldf_jb2.mak src/gxpageq.c src/winint.mak src/gsdparam.c doc/Make.htm doc/Details8.htm src/gxpageq.h src/gxdevrop.h src/gsstype.h src/gdevprn.c src/gdevcif.c src/gxdevndi.c doc/History4.htm src/gdevprn.h src/gxdevndi.h src/iesdata.h src/dxmain.c src/gdevpdfc.c src/iapi.c src/spngpx.h src/btoken.h src/gdevherc.c src/gdevpdfc.h src/iapi.h src/zcharout.c src/gdevepsc.c src/gxdevice.h src/gximage2.c src/srld.c src/zht.c src/gxshade4.c src/sjpx_luratech.c src/gxshade4.h src/iinit.c src/watcw32.mak src/gdevstc1.c src/gxbitmap.h src/sjpx_luratech.h src/gxccman.c src/iinit.h src/gsalphac.c src/gxshade.c src/sbtx.h src/zfunc.c src/gsclipsr.c src/gsalphac.h src/gxshade.h src/gsrop.c src/gsclipsr.h src/idict.c src/gxistate.h src/gsrop.h src/gscoord.c src/idict.h src/macos_carbon_d_pre.h src/gxcolor2.h src/gscoord.h src/genarch.c src/gscedata.c doc/Projects.htm src/gxcindex.h src/gscpm.h src/gscedata.h src/gp_nsync.c src/gdevdgbr.c src/gdevmr2n.c src/gdevdsha.c src/zlib.mak src/gdevxcf.c src/gxtext.h src/zchar1.c src/gscdevn.c src/gscdevn.h src/gdevpdft.c src/gdevpsdi.c src/shcgen.c src/gsiparam.h src/zmisc3.c src/zfapi.c src/zfunc4.c src/malloc_.h src/shcgen.h src/gscpixel.c src/gscpixel.h src/gdevplnx.c src/dirent_.h src/gdevplnx.h src/zfzlib.c src/Makefile.in src/gscsepr.c src/iutil2.c doc/History5.htm src/gscsepr.h src/gxwts.c src/ipcolor.h src/gsimage.c src/sjpeg.h src/iutil2.h src/gstext.c src/gxwts.h src/gsimage.h src/msvccmd.mak src/gstext.h src/gdevpdfe.c src/rinkj/rinkj-byte-stream.c src/gsflip.c src/rinkj/rinkj-byte-stream.h src/gsflip.h src/gdevdljm.c src/zdpnext.c src/geninit.c src/gdevdljm.h src/zusparam.c src/gxchrout.c src/gximage4.c src/gxchrout.h src/gxshade6.c src/gxcoord.h src/gdevpdf.c src/macosx.mak src/tttypes.h src/zpacked.c src/gdevstc3.c src/gsparamx.c src/gp_dosfe.c src/iutil.c src/szlibc.c src/gsparamx.h src/gdevpng.c src/iutil.h src/gzpath.h src/sfxstdio.c src/gxcdevn.h src/sjbig2_luratech.c src/gxropc.h src/gxfcid.h src/gxfont.h src/sjbig2_luratech.h src/gdevccr.c src/mkromfs.c src/gslibctx.c src/gdevdcrd.c src/unix-dll.mak src/gslibctx.h src/zbseq.c src/ziodevsc.c src/gdevdcrd.h src/gdevl31s.c src/zfrsd.c src/iosdata.h src/gdevdjtc.c src/gdevmacpictop.h src/gxino16b.c src/gdevpcx.c src/gdevpxop.h src/zfileio.c src/slzwd.c src/gdevpdfv.c src/gxpflat.c src/gxifast.c src/dwimg.c src/fapi_ft.c src/zsysvm.c src/gsimpath.c src/dwimg.h src/gdevx.c src/gsmemlok.c src/gsos2.rc src/gximage.c src/gdevx.h src/gsmemlok.h src/ziodevs.c src/unixansi.mak src/gdevpsfx.c src/gximage.h src/gscspace.c src/gdevmacttf.h src/gdevm8.c src/gdevpnga.c src/gscspace.h src/gsropc.c src/gsxfont.h src/ttfsfnt.h src/gsjconf.h src/gsfcid.c src/zstack.c src/gsfont.c src/gsropc.h src/gsfont.h src/isave.c doc/History6.htm src/isave.h src/gdevm64.c src/zdict.c src/gxfrac.h src/gx.h src/iccfont.c src/gdevpdfg.c src/png_.h src/gdevps.c src/gxcllzw.c src/gdevpdfg.h src/gxhttile.h doc/API.htm src/gdevpdtb.c src/gsdps1.c src/time_.h src/gdevpdtb.h src/ttfinp.c src/gshsb.c src/pcwin.mak src/vms_x_fix.h src/ziodevst.c src/smtf.c src/ttfinp.h src/x_.h src/gdevtifs.c src/gshsb.h src/smtf.h src/gdevtifs.h src/gximono.c src/fapiufst.c src/szlibe.c src/gxctable.c src/main.h src/gp_vms.c src/gp_iwatc.c src/ugcclib.mak src/gxctable.h src/gdev8bcm.c src/dwsetup.h src/gp_os9.c src/gdevbj10.c src/gxclipm.c src/gdev8bcm.h src/zpaint.c src/stdpre.h src/iplugin.c src/gxclipm.h src/gsgdata.c]
2006-03-12T20:26:06.745233Z leonardo
Fix : gx_path_merge_contacting_contours incorrectly released path segments. DETAILS : Bug 688591 "Garbager problem with -r72 ppmraw S2_Digitalproof-Forum_x3k.pdf". Path segments are always allocated in stable memory. EXPECTED DIFFERENCES : None.[src/gxpcopy.c]
2006-03-12T06:28:39.018444Z Ralph Giles
Set the executable property on the new search script.[toolbin/search-svn-revs]
2006-03-12T02:47:35.883320Z Ray Johnston
Add a bash script to search for the first svn rev. that succeeds. Binary search is used to decide which rev to try next. DETAILS: There is a 'usage' if no parameters are given. If Ghostscript exits with a non-zero exit code, then the 'test' operand is not needed. For example, if rev. 6170 corresponds to 8.53, and the current HEAD is 6647, then the following will find the first revision which succeeds (6579): search-svn-revs 6170 6647 'bin/gs -dBATCH -dNODISPLAY -dNOPAUSE -q coloraerial.pdf' The gs output is captured in 'test.log' so that output can be examined (for instance using 'grep') for status conditions where the gs exit code is not useful. Note that if this is run on casper, where the svn repository is local, then changing the "svn co ..." line to from "svn+ssh://svn.ghostscript.com/" to "file:///" will perform the checkout more quickly. There is a guess made for GS_LIB which is concatenated to the previous definition (if any), to ./lib:/home/regression/fonts which also works on casper or peeves.[toolbin/search-svn-revs]
2006-03-10T16:20:52.667102Z leonardo
Fix : Shading fill applied a wrong path adjustment. DETAILS : Bug 688568 "Shading fill applies a wrong path adjustment". See also the log message of the patch http://ghostscript.com/pipermail/gs-cvs/2006-February/006379.html 1. Removes the OLD_CODE_COMPATIBILITY flag. 2. An indeterministic bug while computing fill adjustment when gx_cpath_intersect_with_params is called (indirectly) from gs_shfill. 3. gs_shfill didn't apply fill adjustment. EXPECTED DIFFERENCES : "464-01-fixed.ps" "gradmesh.ai" "S2_Digitalproof-Forum_x3k.pdf" "shading_prob_800.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "Testform.v1.0.2.pdf"[src/gxcpath.c src/gxfill.c src/gscolor3.c]
2006-03-10T08:27:48.551311Z leonardo
pdfwrite : A simplified implementation for ColorConversionStrategy, continued 4. DETAILS : Fixing a crash with imagemask. EXPECTED DIFFERENCES : None.[src/gdevpdfi.c]
2006-03-09T23:15:58.290889Z Dan Coby
Add a description of the files which were added for the 'named color' callback.[doc/Develop.htm]
2006-03-09T22:59:58.579801Z Dan Coby
Set the Id keyword for the 'named color' files.[src/gsnamecl.h src/gsncdemo.c src/gsnamecl.c]
2006-03-09T22:24:34.708728Z Alex Cherepanov
Add missing initialization to the streams allocated on the stack or in raw memory. Bug 688572 DETAILS: The following code doesn't initialize all the fields in the stream structure. stream s; sread_string(&s, ...); but it initializes enough fields to be mostly working. The bug has been detected by Valgrind. DIFFERENCES: None[src/gdevpdfo.c src/gxfcopy.c src/gdevpdfc.c src/gxshade.c src/gdevpdfu.c src/gdevps.c src/gxclpath.c]
2006-03-09T11:09:19.401813Z leonardo
Fix : Cygwin/gcc warnings. DETAILS : 1. Removed unuseful variable in gstype42.c . 2. The compiler claims an unititialized variable due to its stupidity. Forced an initialization to quiet the misleading warning. EXPECTED DIFFERENCES : None.[src/gxhintn.c src/gstype42.c]
2006-03-09T11:05:49.196378Z leonardo
pdfwrite : A simplified implementation for ColorConversionStrategy, continued 3. DETAILS : 1. is_pattern2_allowed_in_stradegy was underimplemented. 2. Fixed the spelling in "stradegy". EXPECTED DIFFERENCES : None.[src/gdevpdfg.c]
2006-03-09T10:54:46.558875Z leonardo
pdfwrite : A simplified implementation for ColorConversionStrategy, continued 2. DETAILS : This implements color conversion for images. 1. make_device_color_space is factored out from psdf_setup_image_colors_filter, because the substituted color spase is needed for pdf_begin_write_image, which works before installing the image colors filter. 2. In pdf_begin_typed_image the new variables pcs_device and pcs_orig provide a right logics for the color space substitution. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm src/gdevpsdi.c src/gdevpsdf.h src/gdevpdfi.c]
2006-03-09T02:18:37.723914Z Alex Cherepanov
Work around an internal compiler error C1001 in MSVC 7.1.3088. Split expressionss with multiple type conversions into 2 expressions. Bug 688579 DIFFERENCES: None[src/gdevpdfe.c]
2006-03-08T08:06:00.462700Z leonardo
Fix : MSVC8 warnings. DETAILS : Type cast. EXPECTED DIFFERENCES : None.[src/imain.c src/zfile.c]
2006-03-08T01:15:50.548475Z Ralph Giles
Fix filename lookup in the %rom% device to match the lenth of the requested path, not just a common start.[src/gsiorom.c]
2006-03-08T00:21:56.952083Z Ralph Giles
Fix the unix install to include Fontmap.GS. This was the cause of 688567. DETAILS: The mkromfs utility uses the passed paths as templates for file enumeration, so EXTRA_INIT_FILES was added containing only 'Fontmap' and 'FAPI' as a shorthand for the collections "Fontmap*" and "FAPI*". However, this variable is also used in unixinst.mak as a literal list of files to install, and so only 'Fontmap' was actually being installed. This fix remains confusing, but in practice handles the install.[src/int.mak src/unixinst.mak]
2006-03-07T05:19:23.913236Z Ray Johnston
Handle yet another PDF that Acrobat Reader accepts silently that does not conform to the specification. In this case the /Subtype is /TrueType but the font is in the /FontFile, not the FontFile2 or FontFile3 stream. Bug #688585 for customer #780. DETAILS: As usual, we issue a descriptive pdfformaterror message complaining about the non-conformance.[lib/pdf_font.ps]
2006-03-06T21:55:46.036109Z Ralph Giles
Calculate the input image stride in the jbig2encode stream init procedure so the caller doesn't have to.[src/sjbig2_luratech.c]
2006-03-06T19:54:28.434131Z Ralph Giles
Fix a problem with CMYK JPXDecode filter image streams. DETAILS: The Luratech jp2 decoder does not return a general image size for CMYK images (this seems to be a bug) or for images with subsampled components. Therefore we use the dimensions of the zeroth component rather than querying the overall image (component -1). When the JPXDecode filter implementation is extended to pass the required Colorspace information from the image dictionary, it should also pass the specified width and height of the image, since this is the actual specification the filter must produce data for.[src/sjpx_luratech.c]
2006-03-05T21:28:16.082867Z Ray Johnston
Move init files on %rom% device to lib directory prefix (%rom%lib/). This prefix is used independent of the host OS. Requested by Ralph and Stefan. The -d destination prefix might be useful for adding other directories from other source directories to explicit locations in the %rom% device.[src/imain.c src/mkromfs.c src/int.mak]
2006-03-02T14:20:22.695510Z Ray Johnston
Increase the MSVC compiler heap size to allow compilation of large initializers for the %rom% device. The current setting worked with all Resource files, 35 PS Type 1 fonts and 17 CJK fonts, the largest of which was the 12.2Mb MOEKai-Regular.[src/msvccmd.mak]
2006-03-01T20:51:32.316771Z Ray Johnston
Fix opening of lib files so that %rom% files can be found. Previous code only worked for default (os) device. Change iccinit1 so that gs_init.ps is opened with .libfile allowing gs_init.ps to be changed even when COMPILE_INITS=1. Remove another vestige of the old 'static resource' approach that is no longer needed by COMPILE_INITS=1. DETAILS: This was a moderate amount of surgery, but was functionally extracted from the old lib_fopen_with_libpaths and merged into lib_open_file which now returns a PS file object. The lib_fopen now gets the FILE * pointer from the stream structure for use in processing @ files. Since the -I paths and the environment GS_LIB paths precede the %rom% device (present when COMPILE_INITS=1) it is now eay to supersede the init files, cidfmap, Fontmap, during development or debug, so there is little downside to running COMPILE_INITS=1 other than making the executable bigger (6.6Mb vs 3.3Mb with the current CMaps). Defining the GenericResourceDir string (using -s) on the command line also still works since the PS code in iccinit1.c only sets this if it is not predefined. The upside to having COMPILE_INITS=1 is that the gs executable is fully self contained and does not need to be 'installed'. If we built in the fonts (in the Resource/Fonts directory) then even these aren't needed externally. It might reduce some of the common newbie problems using Ghostscript. Then the executable grows to a healthy 9.9Mb (fonts don't compress hardly at all currently). EXPECTED DIFFERENCES. None.[src/imain.c lib/gs_res.ps src/iccinit1.c src/files.h src/zfile.c]
2006-03-01T19:23:16.175578Z Ray Johnston
Add missing files that were part of %rom% implementation.[doc/Develop.htm]
2006-03-01T02:23:08.031658Z Dan Coby
Clean up for the last commit for 688575. The previous commit had problems with the gcc compiler.[src/gsnamecl.h]
2006-03-01T01:53:29.361859Z Dan Coby
Implement enhancement 688575 Add a cal back mechanism for support of PANTONE or other special spot colors DETAILS: Ghostscript currently does not current have a mechanism for special handling of PANTONE or other special spot colors. Currently all spot colors, in either a DeviceN or a Separation color space, are either processed via the alternate tint transform for the color space, or treated as a separation (as in the tiffsep device). Obtaining the proper appearance of PANTONE or other special sets of spot colors, when custom inks are not available, usually depends upon values which are specific the devices inks, media, etc. This is not usually handled properly by the tint transform function. This enhancement adds a call back mechanism to allow custom processing of DeviceN and Separation color spaces by the calling application. A description of the implementation is present in the comment block at the start of src/gsnamecl.c. An example implementation is provided in src/gsncdemo.c. The example implemenation shows how to interface with the various Ghostscript structures and routines. The example implementation only contains a few demo colors. The entire implemenation is conditionally compiled by a switch called ENABLE_NAMED_COLOR_CALLBACK in src/gsnamecl.h. Currently this switch is set to disable the implementation.[src/lib.mak src/gscspace.h src/gxistate.h src/gsnamecl.h src/gsdparam.c src/gsncdemo.c src/int.mak src/gxdevice.h src/gscsepr.c src/gsnamecl.c src/gscdevn.c src/gxdevcli.h]
2006-02-28T21:52:39.567783Z Ralph Giles
Project the WIN32 assembly from compilation on WIN64.[jasper/src/libjasper/jpc/jpc_qmfb.c]
2006-02-28T21:21:30.311038Z Ralph Giles
Fix a problem with the jasper assembly code. Bug 688545.[jasper/src/libjasper/jpc/jpc_qmfb.c]
2006-02-28T20:51:29.732995Z Ralph Giles
Rough support for a JBIG2 encoder stream using the Luratech implementation.[src/sjbig2_luratech.h src/sjbig2_luratech.c]
2006-02-28T05:45:20.159028Z Ralph Giles
Report error codes returned by the lwf_jp2 library to allow better bug reports.[src/sjpx_luratech.c]
2006-02-28T01:17:35.281917Z Ray Johnston
Remove deprecated module. No longer used for MS Windows.[src/gp_msio.c]
2006-02-27T21:15:43.124755Z Ralph Giles
Output more debugging information with -Zw instead of switching on the special JBIG2_DEBUG preprocessor symbol.[src/sjbig2.c src/sjbig2_luratech.c]
2006-02-24T21:07:18.367421Z leonardo
Fix : A slow rendering of a colored halftone (2nd attempt). DETAILS : Bug 688537 "A very slow rendering to spotcmyk". The first attempt caused a regression with pkmraw and has been undone. This patch accounts pkmraw effects, which are explained below as "Auxiliary changes". This patch creates a special branch in gx_default_fill_path for filling a path with a colored halftone. It installs a clipper device and then renders a rectangle through it, using the halftone color painting method immediately. Auxiliary changes : The new branch in gx_default_fill_path calls gx_cpath_intersect for intersecting the filling path with the clipping path. The latter calls gx_default_fill_path again for converting a path into a rectangular clip list. Now we pass the fill adjastment parameters of the main gx_default_fill_path invocation to the inner invocation. Doing so because we need the intersection to be closer to what the regular algorithm fills. The new function gx_cpath_intersect_with_params works for that. Particularly it causes dropout prevention to work for clipping, when a character is filled with a halftone. The clip list accumulator device now sets gx_device::memory to a real memory manager. Before now it was NULL. The new code uses it to allocate working data for the dropout prevention code. Besides that, gx_cpath_intersect_with_params now applies fill adjustment in the special branch for a rectangular path intersection. The flag OLD_CODE_COMPATIBILITY minimizes raster differences for easier testing. It should be removed later, because we believe that the old code is not perfect : it doesn't pass fill adjustment through gx_cpath_intersect while filling with a shading color. EXPECTED DIFFERENCES : None.[src/lib.mak src/gxcpath.c src/gxacpath.c src/gxpath.h src/gxfill.c src/gzacpath.h]
2006-02-24T16:14:12.132166Z leonardo
Type 1 hinter : More improvements (continued 2). DETAILS : An indeterministic bug in the last patch. EXPECTED DIFFERENCES : normal 72 dpi : "Bug687845.ps" "japan.ps" normal 300 dpi : Bug687889.pdf pdfwrite 72 dpi : "Bug687603.ps" "Bug687845.ps" "Bug687889.pdf" "japan.ps" "NECPNTD.pdf" pdfwrite 300 dpi : "Bug687698.ps" "Bug687889.pdf" "japan.ps"[src/gxhintn.c]
2006-02-23T17:27:22.487919Z Ray Johnston
FIx output format handling for -sOutputFile string. Thanks to Gh Savulescu for the detailed analysis and patch. Bug 687621 for customers 670 and 770. --This line, and th se below, will be ignored-- M src/gsdevice.c M src/gdevupd.c M doc/Use.htm[src/gdevupd.c doc/Use.htm src/gsdevice.c]
2006-02-23T07:18:29.475220Z Dan Coby
Fix for 688551 Need to process transparency in annot appearance streams. DETAILS: The fix involves 2 pieces. 1. Add logic to pageusestransparency to detect if transparency is used inside of an annotation. As part of this effort, the logic for detecting the use of transparency inside of an ExtGState dict was separated into a separate procedure. 2. Move the drawing of annotations was moved into showpagecontents. This was done since there so that the draw annotation logic is inside of the push/pop pdf 1.4 transparency device logic.[lib/pdf_main.ps]
2006-02-23T01:02:15.987199Z Ray Johnston
Remove module that is no longer used by newer COMPILE_INITS method.[lib/gs_stres.ps]
2006-02-22T23:47:17.158224Z leonardo
Fix (gxfill) : Unwinding the revision 5699 change due to regressions. DETAILS : The patch http://ghostscript.com/pipermail/gs-cvs/2006-February/006361.html caused regressions with pkmraw -r72 154-01.ps in http://ghostscript.com/pipermail/gs-regression/2006-February/001856.html This reopens the bug Bug 688537 "A very slow rendering to spotcmyk". Note that another change was applied to gxfill.c between 5699 and now. EXPECTED DIFFERENCES : Should fix 2006-02-22 regressions.[src/gxfill.c]
2006-02-22T21:28:01.105887Z Ralph Giles
Document in the generated gsromfs.c which target endianness the file was built from, to make it easier to track down the source of non- portability.[src/mkromfs.c src/int.mak]
2006-02-22T19:28:07.197474Z Ray Johnston
Fix mkromfs to generate 32-bit big_endian values in memory, not native byte ordering. Corresponding change in gsiorom.c to always read big_endian 32-bit values.[src/mkromfs.c src/gsiorom.c]
2006-02-22T18:01:07.387840Z leonardo
Fix (gxfill) : The scanline algorithm could miss a spot boundary. DETAILS : Bug 688558 "Incorrect filled path rendering with .2 setflat". 1. merge_ranges wrongly computed the curve end point when the curve is scanned in the backward direction in gxfill.c (the real bug). 2. Propagates error code from step_al in gxfillsl.h (a minor fix). 3. Fixes a typoe in a comment in gxpflat.c . EXPECTED DIFFERENCES : None.[src/gxfill.c src/gxpflat.c src/gxfillsl.h]
2006-02-22T12:59:54.243717Z leonardo
Fix : An MSVC warning and C style in a recent patch. EXPECTED DIFFERENCES : None.[src/imain.c]
2006-02-22T12:10:10.472356Z leonardo
Type 1 hinter : More improvements (continued 2). DETAILS : Define PRESERVE_STEM_SLANT for easier experimenting with the "preserve stem slant" feature. See comment in code. This change is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxhintn.c]
2006-02-22T07:28:25.271395Z Ray Johnston
Remove CWD_PREFIX from makefiles -- mkromfs file list is reordered. Add the %rom% device to the LIBPATH list in imain.c so that .libfile works. Also export print_resource_usage for use in non-debug builds. Thanks to Ralph Giles for the suggestions.[src/openvms.mak src/macosx.mak src/int.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/bcwin32.mak src/imain.c src/ugcclib.mak src/Makefile.in src/unix-gcc.mak src/msvc32.mak src/iccinit1.c src/macos-mcp.mak src/watclib.mak]
2006-02-22T04:53:42.526904Z Ralph Giles
Document the pexit_code and user_errors arguments to gsapi_run_string*() and provide an example for how to parse a PDF file from inside the interpreter. Bug 688549.[doc/API.htm]
2006-02-22T01:41:23.102136Z Ralph Giles
Remove the redundant Fixed type from the internal freetype code and replace uses of it with the TT_Fixed type. The un-namespaced version conflicts with system headers on MacOS.[src/ttfsfnt.h src/tttypes.h src/ttfmain.c]
2006-02-22T01:38:35.156952Z Ralph Giles
Use the uint32_t stdint type for the compiled initialization data representation. The previous code used 'unsigned long' but assumed this type was 32 bits, which isn't true on all platforms.[src/mkromfs.c src/gsiorom.c src/gsiorom.h]
2006-02-21T22:24:25.799346Z Ray Johnston
Fix missing declaration on Windows platforms.[src/mkromfs.c]
2006-02-21T22:01:15.379976Z Ray Johnston
Add a missing file from the commits for rev 6600. This was a new file that was not 'added' before that commit.[src/gsiorom.h]
2006-02-21T21:29:07.026481Z Ray Johnston
Implement %rom% IODevice and use it for the COMPILE_INITS=1 builds. Data is compressed and can include fonts as well as lib init files, Resource directories and other. The (%rom%) path is inserted as the first path on the LIBPATH list when COMPILE_INITS=1. The default GenricResourceDir is set to %rom%Resource/ unless the command line sets -sGenericReourceDir. Bug 687485. DETAILS: See gsiorom.* and mkromfs.c for details of the %rom% structure. The inital implementation creates a string buffer for the entire file (block by block) decompression is not yet implemented (a new stream type). The %rom% IODevice is not PostScript specific so it could be used by non PS interpreters (GhostPCL) but the creation of gsromfs.c by mkromfs needs to be performed elsewhere (hint in src/lib.mak). NOTES: Tested on unix and Windows. Mac, OS/2 and VMS will need attention as will non-MSVC tool chains. Since this replaces the old COMPILE_INIT method don't use COMPILE_INTIS=1 on those platforms unless you are working on fixing problems or just feel lucky. The insertion of the %rom% device as the first path in the LIBPATH list will make changing initfiles during debug more cumbersome, but using COMPILE_INITS=1 is really not intended for debugging or development anyway. EXPECTED DIFFERENCES: None. (we don't build with COMPILE_INITS).[src/openvms.mak src/mkromfs.c src/gsiorom.c src/macosx.mak src/int.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/lib.mak src/bcwin32.mak lib/winmaps.ps src/ugcclib.mak src/gs.mak src/Makefile.in src/iccinit1.c src/msvc32.mak src/unix-gcc.mak src/unix-aux.mak src/macos-mcp.mak src/unixinst.mak src/msvctail.mak src/watclib.mak lib/gs_init.ps]
2006-02-21T13:43:42.400991Z leonardo
Fix : A slow rendering of a colored halftone. DETAILS : Bug 688537 "A very slow rendering to spotcmyk". This patch creates a special branch for filling a path with a colored halftone. It installs a clipper device and then renders a rectangle through it, using the halftone color painting method immediately. We're not sure, which color types should go through this branch. Passing it to our color specialist for review. Also we're not sure how to get test cases for this branch. EXPECTED DIFFERENCES : None.[src/gxfill.c]
2006-02-21T13:31:27.980844Z leonardo
Fix (shadings) : Save C stack space with removing rudimentary data. DETAILS : As a rudiment of the old shading algorithm, mesh_fill_state_common defined a big data field, which was placed on C stack and vever accessed. EXPECTED DIFFERENCES : None.[src/gxshade4.h]
2006-02-21T12:54:34.181498Z Alex Cherepanov
Repair incorrect ToUnicode CMap streams that have no CMapName key. Bug 688517 DETAILS: Ghostscript has been writing incorrect ToUnicode CMap without CMapName into the PDF since version 8.10 (rev. 3611) . This bug is fixed in version 8.54 (rev. 6201). DIFFERENCES: None[lib/pdf_font.ps doc/Ps2pdf.htm]
2006-02-21T12:42:26.666806Z leonardo
Type 1 hinter : More improvements (continued). DETAILS : 1. Adjusts t1_hint_range::end_pole if it refers an offcurve pole. 2. Regularizes the hint range adjustment logics (an algorithmically equivalent change). 3. The new function t1_hinter_fix_missed_flex works when a glyph doesn't define flex hints. Particularly it works for True Type fonts. It recognizes low curvity boundaries of a flex-like shape and size, and replaces them with a straight segment. See comments in code. Bug 688552 "A poor grid fitting when a flex hint is missing.". 4. When t1_hinter_fix_missed_flex works, we adjust those stem hint coordinates, which point to poles of a flex being unbended. For more information see comment in t1_hinter__adjust_stem_hints_by_missed_flex. 4. Improves the logic for obtaining a vdtrace device context in gzspotan.c . 5. t1_hinter__align_stem_poles summarizes alignment from all hint ranges. The old code does not do by a mistake. 6. t1_hinter__align_stem_poles now prefers hints, which have both sides applied. 7. The alignment at the stem middle is now applied only to stems, which are strongly vertical or horizontal in the design space. See comment in t1_hinter__find_stem_middle. EXPECTED DIFFERENCES : Massive : 97 of 484 comparefiles.[src/gxhintn.c src/gxhintn.h src/gzspotan.c]
2006-02-20T07:30:32.227346Z Dan Coby
Addition to the fix for 688177 Eliminate the 64 bit pixel size limit. DETAILS: A one line change was missed in the previous commit for this fix. Without this change, the maximum numbers of is 16.[src/gxcindex.h]
2006-02-18T18:37:24.764551Z Ray Johnston
Implement yet another hack for an invalid PDF file that Adobe handles. If a parameter is missing from the Page tree, check the Root Catalog. This case had MediaBox in the Root dict, but not anywhere in the Pages tree. Bug 688562 for customer 670. DETAILS: MicroPatent probably misinterprets the spec where it mentions "For example, a document might specify the same media box for all of its pages by including a MediaBox entry in the root node of the page tree." thinking that the Root Catalog is the Root of the Page tree, rather than the /Pages object from the Root. As is usual, I issue a pdfformaterror Warning when this is detected. EXPECTED DIFFERENCES: None.[lib/pdf_main.ps]
2006-02-17T20:23:52.826051Z Ralph Giles
Update the eventone screening url. artofcode.com has been taking by spammners.[src/rinkj/evenbetter-rll.c]
2006-02-17T07:12:46.743338Z Dan Coby
Fix for 688560 DeviceN with InDesign gradient causes segmentation fault. DETAILS: I am unable to reproduce the reported seg fault. This patch fixes the /rangecheck in --.sethalftone5-- The file was specifying a Gray halftone and also specifying the SeparationORder parameter to select only a Cyan colorant. This was creating confusion in the halftone install logic. The rangecheck was being generated when the Gray halftone was being confused as a second Default halftone. The fix consists of adding a check for the situation in which the device indicates that a color is supported by the device but not being used because of the SeparationOrder parameter. Note: There was already one check in the procedure for this situation but a second check is needed to handle the 'treat gray like black' etc. cases.[src/gsht.c]
2006-02-17T04:10:07.505527Z Alex Cherepanov
Fix recognition of executable names "if" and "ifelse" as valid operations in the calculator function. Bug 688547. DIFFERENCED: None[src/zfunc4.c]
2006-02-16T19:53:28.400151Z leonardo
Fix (pdfwrite) : Propagate error code from s_DCTE_put_params (continued). DETAILS : Remove an obsolete comment. EXPECTED DIFFERENCES : None.[src/gdevpsdu.c]
2006-02-15T07:33:41.943841Z Ralph Giles
Enable $Id keyword substitution on the new luratech integration source files.[src/sjbig2_luratech.h src/sjpx_luratech.h src/sjbig2_luratech.c src/ldf_jb2.mak src/lwf_jp2.mak src/sjpx_luratech.c]
2006-02-15T07:30:40.721233Z Ralph Giles
Update the "RCS" keyword check script to recognize SVN style as well as CVS style Id keyword lines. Bug 688554.[toolbin/tests/check_source.py]
2006-02-15T07:26:26.954211Z Ralph Giles
Turn on keyword substitution. This is confusing, since the script also outputs a $Id: $ line for the makefile it generates, but doesn't cause problems in practice.[toolbin/gen_ldf_jb2.py]
2006-02-13T20:28:55.328420Z leonardo
Type 1 hinter : Remove dead development branches. DETAILS : This change is syntactically equivalent. EXPECTED DIFFERENCES : None.[src/gxhintn.c src/gxhintn.h]
2006-02-13T00:05:28.577164Z leonardo
Type 1 hinter : More improvements. DETAILS : 1. Account StemShapH, StemShapW according to Adobe Technical Note #5049. The new array stem_snap_vote works for that. 2. Pixel size was wrongly computed with anisitropic CTM. 3. pixel_ox, pixel_oy were mixed with a transposed glyph. Fully reconsider OPPOSITE_STEM_COORD_BUG_FIX and remove it. 4. t1_hinter__align_stem_commands sometimes started pole enumeration with an off-curve pole. 5. Hint range was wrongly computed for some glyphs. 6. Dotsection didn't work at all. 7. Implements an opposite stem boundary length calculation, and accounts it for resolving alignment conflicts. new fields boundary_length* work for that. 8. Removed t1_hint_range::contour_index because it worked wrongly. Use t1_pole::contour_index instead. 9. A bug in the initialization of max_stem_snap_count : the initial value was too small, causing an extra memory allocated. Bug 687654 "t1_hinter__find_best_standard_width() always returns 0". Bug 688553 "A poor grid fitting when stems conflict". EXPECTED DIFFERENCES : Massive : 343 of 484 comparefiles.[src/gxhintn.c src/gxhintn.h]
2006-02-12T17:08:11.734787Z Ralph Giles
Correct the accidentally changed hardwired install prefix.[toolbin/tests/run_nightly]
2006-02-11T23:45:18.286490Z Ralph Giles
Have the update_ghostscript function return the new SVN revision number and include it at the head of the report for clarity. Also, when the complete report is trimmed from length, indicate so. Bug 688541.[toolbin/tests/run_nightly]
2006-02-11T23:42:25.162459Z Ralph Giles
Also add the regression log file required by run_nightly to the example config file.[toolbin/tests/testing.cfg.example]
2006-02-11T23:15:56.623144Z Ralph Giles
Correct a cut-and-paste error. The get_baselines script was listed under the diff_script key in the example config file.[toolbin/tests/testing.cfg.example]
2006-02-10T14:46:51.888781Z leonardo
Fix (pdfwrite) : Updating the list of standard CMap names. EXPECTED DIFFERENCES : None.[src/gdevpdtc.c]
2006-02-09T23:00:19.858380Z leonardo
Fix (PDF interpreter) : When emulating the text rendering mode 3, don't render the text to the target device. DETAILS : Bug 688534 "Text doubled in produced PDF". The old code executed 'charpath' with the target device just to move current point. It caused too heavy effect to the target device. Replacing with a lighter implementation. Strongly speaking, this patch is not necessary for the bug 688534, because the last patch fixed the undesirable effect for pdfwrite. But we prefer to fix the PDF interpreter to exclude the unpleasant effect for other high level devices in general. EXPECTED DIFFERENCES : None.[lib/pdf_ops.ps]
2006-02-09T23:00:06.441182Z leonardo
Fix (pdfwrite) : Handle charpath with default implementation. DETAILS : Bug 688534 "Text doubled in produced PDF". The old code handled 'charpath' as a high level operation, so that the effect to Postscript interpretation erroneusely appears empty, and the text was erroneusely written to the PDF output. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c]
2006-02-09T18:03:38.118376Z leonardo
Fix (pdfwrite) : Propagate error code from s_DCTE_put_params. DETAILS : Bug 688544 "Error: /ioerror in --image--". The old code erroneusely applied DCT compression to DeviceN colors, causing an ioerror when the number of colorants is greater than 4. EXPECTED DIFFERENCES : None.[src/gdevpsdu.c]
2006-02-09T16:28:53.914553Z leonardo
Fix : Unwinding the change from rev 6573 to 6574 due to a pdfwrite problem. DETAILS : That change caused glyphs to dissapper when rendering a file conferted with pdfwrite. The effect may be indeterministc. As we could figure out, the change causes a wrong length of OS/2 table to be written into embedded True Type fonts. The problem happens when re-distilling 01_001.pdf, 159.pdf. We didn't test all files. Will reopen the bug 688536. EXPECTED DIFFERENCE : If a regression appeares with pdfwrite, it should recover.[src/gxttf.h src/gdevpsft.c]
2006-02-09T15:18:52.242524Z leonardo
pdfwrite : A simplified implementation for ColorConversionStrategy, continued. DETAILS : Bug 687628 "ProcessColorModel /DeviceCMYK does not work". This is a preliminary implementation of ColorConversionStrategy, the values UseDeviceIndependentColor and UseDeviceIndependentColorForImages. It also defines a new Ghostscript-specific value Gray. We don't care about performance due to low demand to this feature. Due to same reason a systematical testing was not done except regression testing with the default value LeaveColorUnchanged. We would appreciate users' help in testing new features. The value UseDeviceIndependentColorForImages actually works as UseDeviceIndependentColor. The old Ghostscript-specific value UseDeviceDependentColor is now depricated. It causes a warning is printed to stderr, and the valuse automaticly substitutes with sRGB, CMYK or Gray depending on ProcessColorModel. See also the documentation change included in the patch. EXPECTED DIFFERENCES : None.[src/gdevpdfp.c doc/Ps2pdf.htm src/gdevpdfc.c src/gdevpdfg.c src/gdevpsdf.h]
2006-02-09T13:16:28.615804Z Alex Cherepanov
Upgrade ttf_OS_2_t structure to support v.2 (96-byte) OS/2 table. Bug 688536. DETAILS: We don't use new fields in the 96-byte structure and continue to create 86-byte structures. The extra space is used as a buffer when we copy the structure intact. DIFFERENCES: None[src/gxttf.h src/gdevpsft.c]
2006-02-09T06:03:12.845053Z Ray Johnston
Clamp bbox rectangle to avoid q<p case that the rect_intersect macro allows to avoid allocating transparency buffer that has an incorrect (way too large) size. Bug 688546. DETAILS: WHile it might be more elegant to skip a lot of the transparency logic, it works to simply end up with a zero width or height of the rectangle. Since this is an anomalous case, optimization is not that important. EXPECTED DIFFERENCES: None. This case did not exist previously in the regression suite.[src/gdevp14.c]
2006-02-08T22:41:30.031403Z Ralph Giles
Remove two source files which in the normal build preprocess to nothing from our makefile. This means we can't buid with JB2_TEST, but the empty modules cause an error on the MSVC build.[src/ldf_jb2.mak]
2006-02-08T22:24:31.339253Z Ralph Giles
Add conditionals to the MSVC makefile to simplify switching between the Luratech and normal builds. With this patch it is sufficient to specify JPX_LIB=luratech and JBIG2_LIB=luratech on the nmake command line.[src/msvc32.mak]
2006-02-08T20:30:10.070290Z Alex Cherepanov
Calculate the last byte of the character code modulo 256 to prevent the final value exceed 256 and cause an rangecheck error. Bug 688535. DETAILS: The overflow and the proposed adjustment can happen only when the last element is 0xFF. The last value of the string is not used but discarded at the end of the loop. So the adjustment has no effect other than suppressing the error with the minimal changes in the existing code. EXPECTED DIFFERENCES: None[lib/pdf_font.ps]
2006-02-08T19:57:10.364799Z leonardo
pdfwrite : A simplified implementation for ColorConversionStrategy values CMYK and sRGB . DETAILS : Bug 687628 "ProcessColorModel /DeviceCMYK does not work". This is a preliminary implementation of ColorConversionStrategy, the values CMYK and sRGB . We don't care about performance due to low demand to this feature. Therefore some objects, which use an incompatible color space, are converted to low level objects. The new parameter values were not systematically tested due to low demand. We would appreciate users' help in testing them. For now the parameter values UseDeviceIndependentColor and UseDeviceIndependentColorForImages work as LeaveColorUnchanged, but the effect of UseDeviceIndependentColor may be obtained with specifying -dUseCIEColor . When specifying CMYK or sRGB, the value of ProcessColorModel must be DeviceCMYK or DeviceRGB cvorrespondingly. The color conversion to sRGB is performed with the default color conversion, which Ghostscript uses to convert to DeviceRGB color model. Therefore color transfer may be imperfect. Conversion to CMYK uses the default conversion also. EXPECTED DIFFERENCES : None.[src/gsptype2.c src/gdevpdfp.c src/gdevpdfc.c src/gsptype2.h src/gdevpdfg.c src/gdevpsdf.h src/gdevpdfg.h]
2006-02-08T16:17:13.078988Z Alex Cherepanov
Removes hexadecimal conversion from the code and pass the encrypted part of the type 1 font to eexec operator intact in all cases. Bug 688385 from customer 1110. DETAILS : The PDF specification states that Type 1 fonts always use binary form of the encrypted part, but some PDF producers embed fonts with hexadecimal encoding unchanged. The standard eexec operator recognizes and decodes them transparently. The only case that is not handled is a binary-encoded file that looks like a hexadecimal encoding to eexec. This case has not been observed in the wild. EXPECTED DIFFERENCES : None[lib/pdf_font.ps]
2006-02-08T13:52:40.832268Z Alex Cherepanov
Consume EOD character in the Hex stream when the stream length is > 0. Bug 688512 from customer 232. DETAILS : This makes our StartData procedure to be compatible with Distiller and CPSI. It is not clear from the TN #5014 whether an empty Hex stream should have an EOD character but Adobe doesn't accept it. For non-empty streams they appear to use an /ASCIIHexDecide filter. Our previous implementation used readhexstring operator, which didn't consume the trailing EOD characters by itself and required special code to move the current file past the EOD. EXPECTED DIFFERENCES : None[lib/gs_cidfn.ps]
2006-02-08T06:26:06.073966Z Ralph Giles
Copy the jasper-1.701.0-gs5 release tag into the Ghostscript trunk.[jasper]
2006-02-08T06:25:15.908588Z Ralph Giles
Remove the current jasper code to make way for the 1.701.0-gs5 release.[jasper]
2006-02-07T12:19:02.250776Z leonardo
Fix (pdfwrite) : 'shfill' doesn't write a shading's Background. DETAILS : Bug 687676 "pdfwrite : shading background can erroneusly appear". 1. pdf_put_shading_common now depends on gs_pattern2_instance_t::shfill. 2. gx_dc_pattern2_save_dc now stores gs_pattern2_instance_t::shfill to allow pdf_reset_color to account it with gx_hld_saved_color_equal. EXPECTED DIFFERENCES : A progression in pdfwrite with hsadings : 464-01-fixed.ps 483-01.ps 483-05-fixed.ps[src/gsptype2.c src/gsdcolor.h src/gdevpdfv.c]
2006-02-06T11:04:12.919537Z leonardo
Fix (pdfwrite) : Allow instandard glyph names when synthesising an Encoding for 'glyphshow'. DETAILS : Bug 688017 "ps2pdf problem with CFF fontset resources". The old code emited 'rangecheck' when glyphshow uses a glyph name, which doesn't appear in Postscript font Encoding. It hapens so due to the old code forces standard glyph names, because other old procedures were restricted with them. As result, such glyphs converted to rasters. The modern code is not restricted with standard glyph names, so we simply pass instandard ones when can't find a standard one. EXPECTED DIFFERENCES : Bug688154.ps[src/gdevpdtt.c]
2006-02-05T14:25:24.143977Z leonardo
Fix : Removing 'assert' from gxccman.c (continued). DETAILS : Add missing braces in the error code propagation introduced in rev. 6555. EXPECTED DIFFERENCES : None.[src/zfont.c]
2006-02-04T03:56:37.709032Z Alex Cherepanov
Following FreeType 2 implementation, ignore incorrect SHC command. Bug 688501 EXPECTED DIFFERENCES : None[src/ttinterp.c]
2006-02-04T00:23:59.520737Z Dan Coby
Fix for 688177 Eliminate the 64 bit pixel size limit. DETAILS: This change implements a scheme for compressing colorant values into a gx_color_index. For details of the compression scheme, see comments before the devn_encode_compressed_color in src/gdevdevn.c. With this change, a maximum of 64 colorants are supported.[src/gdevpsd.c src/gdevdflt.c src/gsccolor.h src/gdevtsep.c src/gdevdevn.c src/gsovrc.c doc/Devices.htm src/devs.mak src/gdevdevn.h]
2006-02-03T23:42:57.853736Z Ralph Giles
Correct a typo in the previous commit. jas_dump_image must be protected by #ifdef DEBUG to prevent unused variable warnings.[src/sjpx.c]
2006-02-03T23:30:24.204851Z Ralph Giles
Code cleanup. Remove unused headers and report decoded image parameters through -Zw instead of with general or -Zs debug prints.[src/sjpx.c src/sjbig2_luratech.c src/sjpx_luratech.c]
2006-02-03T15:45:13.779132Z leonardo
Fix : Removing 'assert' from gxccman.c . DETAILS : Doing so by Stefan's and Raph's requests. Changes to other modules propagate error codes. EXPECTED DIFFERENCES : None.[src/isave.h src/gxfcache.h src/imain.c src/zvmem.c src/gsfont.c src/gxccman.c src/zfont.c src/gsfont.h src/gxccache.c src/isave.c]
2006-02-03T15:40:42.652558Z leonardo
Fix : Removing 'assert' from gzspotan.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gzspotan.c]
2006-02-03T15:39:14.475213Z leonardo
Fix : Removing 'assert' from siscale.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/siscale.c]
2006-02-03T15:37:47.547536Z leonardo
Fix : Removing 'assert' from gxcht.c, gxdhtserial.c DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gxcht.c src/siinterp.c src/zcfont.c]
2006-02-03T15:35:25.138745Z leonardo
Fix : Removing 'assert' from gxdhtserial.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gxdhtserial.c]
2006-02-03T15:34:27.957959Z leonardo
Fix : Removing 'assert' from gsfunc0.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gsfunc0.c]
2006-02-03T15:33:21.731016Z leonardo
Fix : Removing 'assert' from gsfcmap.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gsfcmap.c]
2006-02-03T15:32:12.047666Z leonardo
Fix : Removing 'assert' from gdevpsft.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gdevpsft.c src/gdevpxut.c]
2006-02-03T13:13:55.222042Z leonardo
Fix : Removing 'assert' from the FreeType FAPI bridge. DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/write_t1.c src/write_t2.c src/fapi_ft.c]
2006-02-03T12:52:24.873880Z leonardo
Fix : Removing 'assert' from gdevpsf1.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gdevpsf1.c src/gdevpdfc.c src/gdevddrw.c]
2006-02-03T12:40:42.456435Z leonardo
Fix : Removing 'assert' from gxpflat.c . DETAILS : Doing so by Stefan's and Raph's requests. Changes to other modules propagate errors form gxpflat.c . EXPECTED DIFFERENCES : None.[src/lib.mak src/gxfilltr.h src/gzpath.h src/gxfill.c src/gxpflat.c src/gxfillsl.h]
2006-02-03T12:39:01.222510Z leonardo
Fix : Removing 'assert' from gdewddrw.c, gxdtfill.h . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gxdtfill.h src/gdevddrw.c]
2006-02-03T12:35:10.242248Z leonardo
Fix : Removing 'assert' from gxshade1.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gxfdrop.c]
2006-02-03T12:34:09.374887Z leonardo
Fix : Removing 'assert' from gxshade1.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gxshade1.c]
2006-02-03T09:55:00.285432Z leonardo
Fix (font machinery) : Remove the dependency of the graphics library code on the PS interpreter code. DETAILS : This change is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfcopy.c src/gxfont42.h src/gstype42.c src/zfont42.c]
2006-02-02T22:22:38.927751Z leonardo
Fix (pdfwrite) : Devcice parameters placed in a wrong memory space. DETAILS : Bug 688531 "Segmentation fault running pdfwrite from 219-01.ps". 1. See comment in code. 2. Inserted gs_device_pdf::pdf_memory initialization into gdev_pdf_put_params, The old code initializad in pdf_open, which is called after gdev_pdf_put_params. We keep the old initialization because the PCL intrepreter may use it. EXPECTED DIFFERENCES : None.[src/gdevpdfp.c]
2006-02-02T22:21:42.095676Z leonardo
Unwinding the last patch due to wrong log message.[src/gdevpdfp.c]
2006-02-02T22:12:18.484170Z leonardo
Fix : Removing 'assert' from gxshade6.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gdevpdfp.c]
2006-02-02T20:00:35.433481Z Ray Johnston
Use the TT font 'Full Name' (name id #4) if the PS name (id #6) is not present. Related to Bug 688523 for customer 580.[lib/gs_ttf.ps]
2006-02-02T12:14:33.590232Z leonardo
Fix : A wrong CTM in clist after a create compositor command. DETAILS : When a create compositor command is written to clist, the imager state copy was not updated in the clist writer device, causing a further CTM desyncronization. It caused a wrong clist playback for the bands affected by the compositor. Debugged with GS_Stroke_error.pdf, bugsample.pdf, Bug687724.pdf with the patch for 688518 applied. Have no tests for observibg this bug without the patch for 688518. EXPECTED DIFFERENCES : None,[src/gxclimag.c]
2006-02-02T00:46:28.135273Z Ralph Giles
Update the makefiles for the lwf_jp2 source v1.03 and ldf_jb2 source v2.04.[src/ldf_jb2.mak src/lwf_jp2.mak]
2006-02-01T22:27:32.766702Z Ralph Giles
Include for reference a script to generate ldf_jb2.mak from the source directories, since the file list fluctuates somewhat from version to version.[toolbin/gen_ldf_jb2.py]
2006-02-01T21:13:48.761011Z leonardo
Fix : Removing 'assert' from gxshade6.c . DETAILS : Doing so by Stefan's and Raph's requests. EXPECTED DIFFERENCES : None.[src/gxshade6.c]
2006-02-01T20:56:40.633246Z Ray Johnston
Make the initial summary line say "ERROR" instead of "DIFFER" if we get a non-zero exit code during pdfwrite checking.[toolbin/tests/gstestutils.py]
2006-02-01T18:47:36.861536Z Ralph Giles
Raise the limit of the size of the complete regression beyond which it is not included to 300 KB.[toolbin/tests/run_nightly]
2006-02-01T18:19:21.935317Z Ralph Giles
Remove an unnecessary terminal '\' in the definition of JAS_EXCF_ which causes problems with make in SGI Irix. Closes bug 688529.[src/jasper.mak]
2006-02-01T10:09:25.288062Z leonardo
Fix (font machinery) : Dereferenced NULL in gx_add_char_bits. DETAILS : Bug 688527 "A crash (a null pointer deref) in gx_add_char_bits". Type 3 fonts are not included into the dir->orig_fonts list. So the list may be empty. EXPECTED DIFFERENCES : None.[src/gxccman.c]
2006-01-30T21:41:02.804104Z Ralph Giles
Rename HAVE_LDF_JB2 and friend to USE_LDF_JB2 since this is a directive more than just an availability test.[src/zfjbig2.c src/zfjpx.c]
2006-01-30T10:49:52.354325Z Ralph Giles
Move the definition of the 3rd party library include paths for the jbig2 and jpeg2k implementations back into gs.mak. DETAILS: Although it makes more sense to define these in the makefile for each library, they are also needed for building the calling code in the graphics library and interpreter. This causes a circular dependency with tools such as nmake which perform variable resolution in a single-pass.[src/gs.mak src/jbig2.mak src/ldf_jb2.mak src/lwf_jp2.mak src/jasper.mak]
2006-01-30T10:30:53.447513Z Ralph Giles
Split the JPXDecode filter build at the interpreter level so the correct include path is used.[src/int.mak]
2006-01-30T09:20:34.569051Z Ralph Giles
Correct build path errors in the Luratech makefiles.[src/ldf_jb2.mak src/lwf_jp2.mak]
2006-01-30T08:51:04.157759Z Ralph Giles
Add the new Luratech makefiles to the MSVC and MacOS CodeWarrior builds.[src/macos-mcp.mak src/winlib.mak]
2006-01-30T08:47:30.163980Z Ralph Giles
Rename jbig2_luratech.mak to ldf_jb2.mak to make upstream conventions.[src/Makefile.in src/ldf_jb2.mak src/jbig2_luratech.mak]
2006-01-30T07:55:21.176824Z Ralph Giles
Initial check in of a makefile for building the Luratech LWF JPEG 2000 CSDK source as part of Ghostscript, and add it to the autoconf build. Also associated cleanup.[src/lib.mak src/Makefile.in src/lwf_jp2.mak src/jbig2_luratech.mak]
2006-01-30T06:41:14.593860Z Ralph Giles
Add hooks for passing license keys to the Luratech jpeg2k and jbig2 implementations, for those linking against CSDK builds that require this.[src/sjbig2_luratech.c src/sjpx_luratech.c]
2006-01-30T06:39:50.565912Z Ralph Giles
Include jbig2_luratech.mak in the autoconf build.[src/Makefile.in]
2006-01-30T06:39:02.652740Z Ralph Giles
Switch the choice of JBIG2Decode and JPXDecode stream implementations based on a preprocessor define.[src/zfjbig2.c src/zfjpx.c]
2006-01-30T06:37:31.179455Z Ralph Giles
Minor build variable rearrangement and clean up related to the Luratech JBIG2 decoder integration.[src/lib.mak src/gs.mak src/int.mak src/jbig2.mak src/jasper.mak]
2006-01-30T05:34:32.468930Z Ralph Giles
Initial check in of a makefile for building the Luratech LDF JBIG2 CSDK source as part of Ghostscript.[src/jbig2_luratech.mak]
2006-01-29T23:54:46.647329Z Ralph Giles
Fix a missing dependency in the new sjbig2 build rules.[src/lib.mak]
2006-01-29T23:36:18.372226Z Ralph Giles
Update the autotools makefile for the jbig2/jpeg2k indirection changes.[src/Makefile.in]
2006-01-29T23:31:07.833789Z Ralph Giles
Introduce a level of indirection so the builds for the two different jbig2 and jpeg2k implementations can coexist. Also, add jasper to the OS/2 and OpenVMS builds, and update the OpenVMS makefiles now that the third-party libraries are included with the source release.[src/openvms.mak src/watcw32.mak src/macosx.mak src/dvx-gcc.mak src/jbig2.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/openvms.mmk src/lib.mak src/ugcclib.mak src/gs.mak src/unix-gcc.mak src/msvc32.mak src/macos-mcp.mak src/wccommon.mak src/watclib.mak]
2006-01-29T21:58:57.475609Z Ralph Giles
Rename the jasper-oriented top-level makefile elements to the more generic JPX.[src/lib.mak src/gs.mak src/int.mak src/Makefile.in src/msvc32.mak src/macos-mcp.mak src/jasper.mak src/winlib.mak]
2006-01-29T21:04:26.485513Z leonardo
Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 6. DETAILS : This finally completes the fix for the bug 688513 "pdfwrite: redundant CharProcs elements.". It repairs minor defects of last patches. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c src/gdevpdtf.c src/gdevpdti.c src/devs.mak src/gdevpdti.h]
2006-01-29T19:35:26.757129Z Ralph Giles
Improve the documentation for the CAPOPT unix makefile variable.[src/macosx.mak src/Makefile.in src/unix-gcc.mak]
2006-01-29T18:06:11.349450Z leonardo
Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 5. DETAILS : This completes the fix for the bug 688513 "pdfwrite: redundant CharProcs elements.". 1. Moving char_name from the charproc structure to pdf_char_proc_ownership_t, because charprocs with different glyph names may have same command stream. 2. pdf_is_charproc_compatible is changed to a weaker condition to allow to merge char procs with different names. However we prefer fonts with a compatible encoding, which are attached to same PS font, in order to prevent mixing glyphs from various fonts. 3. charproc_compatibility_data_t is defined to reduce the gx_device_pdf::find_resource_param bogus. 4. pdf_char_widths_from_charprocs is a new function for reconstructing real_width when a PDF Type 3 font is attached to another PS font. Due to historical reason, real_width is a property of the attachment, rather in novadays it should be a property of PDF font. It happens because a PDF font may migrate to another PS font due to charproc merging, especially in case of glyph variations. 5. The condition for involving pdf_find_same_charproc has been changed in pdf_end_charproc_accum to a weaker one, to allow to merge with charprocs from other fonts. With the old condition a charproc didn't merge when appears in a font at the first time, so it never merged with ones from other fonts. 6. Added a marking of glyph names in pdf_char_proc_ownership_t for the garbager. 7. Now we mark glyph names for garbager for all simple fonts, except synthesised bitmap fonts (which use char codes instead glyph names). The old code did for non-bitmap Type 3 only, and theretore it can have an indeterminizm with other simple font types. 8. Minor change to gsstruct.c : Added gs_*_st_strings1_ptrs4 and moved gs_*_st_strings1_ptrs1 for a better code grouping. This change causes a minor dirrefernce in raster with Bug687660a.ps with pdfwrite at 72 dpi. It happens because the space glyph appears same for two fonts, which form a single text, so that the font change appears some earier. However it causes the representation of a glyph position to change from an absolute coordinate (in user points) to the Tj offset operand (in the 1000-unit scale). It causes a 1 pixel noize (the glyph shift) due to a different rounding. EXPECTED DIFFERENCES : pdfwrite at 72 dpi : Bug687660a.ps[src/gdevpdfx.h src/gdevpdtt.c src/gdevpdtf.c src/gsstruct.h src/gdevpdtw.c src/gdevpdti.c src/gdevpdtt.h src/devs.mak src/gdevpdti.h]
2006-01-29T17:48:58.910034Z leonardo
Fix (font machinery) : Inaccurate condition in zfont_mark_glyph_name. DETAILS : The old condition passes standard encoding indices as Postscript name indices. It could cause a crash in the garbager. EXPECTED DIFFERENCES : None.[src/int.mak src/zfont.c]
2006-01-29T08:08:11.685892Z Ralph Giles
Initial checkin of /JBIG2Decode filter support based on the proprietary Luratech implementation.[src/sjbig2_luratech.h src/lib.mak src/sjbig2_luratech.c]
2006-01-29T01:12:20.057028Z Ralph Giles
Initial checkin of /JPXDecode filter support based on the proprietary Luratech implementation. This version uses the system malloc and only handles 8-bit- per-component images without channel subsampling.[src/lib.mak src/sjpx_luratech.h src/sjpx_luratech.c]
2006-01-29T01:04:43.551064Z Ralph Giles
Rearrange code for clarity.[src/sjbig2.h]
2006-01-27T21:58:27.997608Z Ralph Giles
Make ps2epsi create a temporary file more securely in an owner-locked directory. Closes bug #687243.[lib/ps2epsi]
2006-01-27T19:52:13.853680Z leonardo
Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 4. DETAILS : This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.". This change moves char_code and the font reference from the charproc structure to pdf_char_proc_ownership_t. The function pdf_is_same_charproc has been reorganized due to the data structure change, and the condition become weaker - not accoutning character codes and Postscript glyph id. With this change pdf_end_charproc_accum performs an untrivial charproc substitution with 238-01.ps due to a weaker condition for charproc equality But we still have an example (t1.ps from the bug 238-01.ps), which needs a further improvement. Adding gx_dfevice_pdf::find_resource_param is bogus. Would like to do without it, but don't want to enlarge the patch. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h src/gdevpdtt.c src/gsstruct.h src/gdevpdfb.h src/gdevpdti.c]
2006-01-27T17:55:49.774445Z Ray Johnston
Handle indirect object reference for CIDSystemInfo element. Bug 688515 for customer 870.[lib/pdf_font.ps]
2006-01-27T09:45:38.491381Z leonardo
Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 3. DETAILS : This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.". This change is algorithmically equivalent. It defines a new type pdf_char_proc_ownership_t for representing a many-to-many correspondence of charprocs to fonts. But this patch still keeps the old many-to-one constraint to simplify the testing. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h src/gdevpdti.c src/gdevpdtf.h]
2006-01-27T08:12:27.899649Z leonardo
Fix (pdfwrite) : Remove pdf_begin_char_proc_generic. DETAILS : This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.". This change is algorithmically equivalent. It inlines pdf_begin_char_proc_generic. pdf_begin_char_proc_generic is an old attempt to factor out a common portion of code for bitmap (synthesised) and non-bitmap fonts, but that attempt appeared unuseful. EXPECTED DIFFERENCES : None.[src/gdevpdti.c]
2006-01-26T13:18:07.717021Z leonardo
Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 2. DETAILS : This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.". This change is algorithmically equivalent. It drops last asserts and simplifies the code with them. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c]
2006-01-26T13:07:55.087988Z leonardo
Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 1. DETAILS : This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.". This change is algorithmically equivalent. It moves the Type 3 character code computation from pdf_text_set_cache to a portion, which works before performing the interpreter callout for executing a Postscript charproc. Doing so to exclude the necessity of storing the character code in pdf_char_proc_t. We inserted additional asserts to define invariants explicitely. We'll remove them after regression testing. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c src/gdevpdtt.h]
2006-01-26T10:29:36.328224Z leonardo
Fix (pdfwrite) : Prevent extra encoding elements (continued). DETAILS : Bug 687669 "pdfwrite : extra encoding elements with a Type 3 font". Cleaning Cygwin/gcc warnings from the last patch. EXPECTED DIFFERENCES : None.[src/gdevpdte.c]
2006-01-26T10:21:40.117753Z leonardo
Fix (pdfwrite) : Prevent extra encoding elements. DETAILS : Bug 687669 "pdfwrite : extra encoding elements with a Type 3 font". The old code created encoding elements for entire text with no regard to font changes. Some fonts got extra encoding elements for glyphs, which were moved to another font. 1. Converting pdf_encode_string into pdf_encode_string_element with dropping the text characters cycle. 2. Call it in process_text_modify_width, process_text_return_width immediately before processing a character. 3. pdf_encode_process_string is renamed into pdf_process_string_aux (because now it is an auxiliary function for pdf_process_string). 4. Few function prototype changes done to pass necessary data to pdf_encode_string_element. After this reorganization a part of scan_cmap_text appars to duplicate a part of pdf_encode_string_element. Delaying a further reorganization for better times. EXPECTED DIFFERENCES : None.[src/gdevpdtc.c src/gdevpdte.c src/gdevpdtt.h]
2006-01-26T08:20:39.942266Z leonardo
Fix (pdfwrite) : Optimize cos_dict_put_copy. DETAILS : The old implementation produced a lot of garbage due to redundant adding same key-value pair to a cos_dict_t instance. It happens because cos_dict_put_copy first creates a copy of the value in the heap. EXPECTED DIFFERENCES : None.[src/gdevpdfo.c]
2006-01-25T23:06:08.925944Z Ralph Giles
Correct a syntax error.[toolbin/tests/run_nightly]
2006-01-25T22:14:19.978978Z leonardo
pdfwrite : Implementing composite fonts with Type 3 descendents (continued). DETAILS : Fixing a heap damage bug in the last patch, which appeared due to inaccurate commitment of a wrong file state. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c]
2006-01-25T21:51:22.137980Z leonardo
pdfwrite : Implementing composite fonts with Type 3 descendents. DETAILS : Bug 687875 "pdfwrite : Type 0 FMapType 9 font with a Type 3 descendent converts to bitmaps". Bug 687298 "(pdfwrite) composite font with Type 3 descendent". The old code converted such fonts into bitmap fonst. The new code converts them into multiple Type 3 fonts ; A. If a composite font uses a CMap mapping, the Type 3 font descendent may use any CID from the CMap. Therefore such single Type 3 font is being converted into multiple Type 3 fonts, each of which is restricted with 256 characters by the PDF specification. B. If a composite font has multiple Type 3 descendents, each descendent form a separate Type 3 font in the PDF output (or multiple fonts if it falls into both cases (A) and (B)). This is a case-driven implementation, which is done with adding special branches into scan_cmap_text and process_text_modify_width for handling the failed cases. Other new cases (which we have no samples for) may may need further improvements. EXPECTED DIFFERENCES : pdfwrite : 020-01.ps Bug687845.ps[src/gdevpdfx.h src/gdevpdtc.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdti.c src/gdevpdtt.h]
2006-01-25T21:29:44.622210Z leonardo
Fix (pdfwrite) : Incorrect computation of a FMapType 9 text size. DETAILS : The old code didn't update pte->current_font before calling pdf_update_text_state, and the matrix computation in scan_cmap_text was bug-to-bug compatible. This is a preparation for fixing the bug 687875 "pdfwrite : Type 0 FMapType 9 font with a Type 3 descendent converts to bitmaps". EXPECTED DIFFERENCES : None.[src/gdevpdtc.c]
2006-01-25T19:42:55.998332Z leonardo
Fix : A minor modularity improvement. DETAILS : This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/zchar.c]
2006-01-25T19:22:19.285423Z Ralph Giles
Remove the errpage.ps utility. It is not being used by developers and is no longer functional. Bug #688511.[lib/errpage.ps]
2006-01-25T18:18:31.504275Z Ralph Giles
Include the complete list of regressions in the report if it is less than 40 KB.[toolbin/tests/run_nightly]
2006-01-25T18:04:36.499424Z Ralph Giles
Improve error reporting.[toolbin/tests/run_nightly]
2006-01-25T18:01:09.701817Z Ralph Giles
Add usage messages.[toolbin/tests/make_two_versions toolbin/tests/make_two_pdfversions]
2006-01-25T04:50:25.532213Z Ray Johnston
Add required 'quit' execution to avoid prompt thus requiring a double 'quit'. Bug 688497. DETAILS: This was inadvertently removed when I thought it was not needed and was a result of a cut-and-paste mistake. This commit will now serve to document that the extra line _is_ needed. EXPECTED DIFFERENCES: None.[src/imain.c]
2006-01-23T20:25:12.430841Z Ralph Giles
Repeat the reference to autogen.sh in the Unix-specific build instructions. Bug #688504.[doc/Make.htm]
2006-01-23T18:08:18.107243Z Ralph Giles
Use the local MAX() macro instead of the MSVC implicit max() in fuzzy.c for portability. Also, add parentheses to silence a GCC warning.[toolbin/tests/fuzzy.c]
2006-01-23T17:39:54.710146Z Ralph Giles
Infix .pdf. in the output of make_two_pdfversions.[toolbin/tests/make_two_pdfversions]
2006-01-23T13:29:30.215782Z leonardo
Fix (ps2write) : Incorrect xref offsets. DETAILS : Bug 688502 "Incorrect xref table in the PDF stream generated by ps2write". The old code calculated offsets from the beginning of the PS file. We generate xref to allow a verification with PDF viewers. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfu.c src/gdevpdfb.h]
2006-01-22T03:02:40.596096Z Alex Cherepanov
Add backward-compatible glyph names for new TTF glyphs. For instance, /mu1 (micro symbol) is aliased to /mu (greek letter). Bug 688265 EXPECTED DIFFERENCES : None[lib/gs_ttf.ps]
2006-01-21T17:32:17.337421Z Alex Cherepanov
Increase the halftone cache size to improve the performance of large halftone cells. Bug 687525 EXPECTED DIFFERENCES : None[src/gzht.h]
2006-01-20T08:20:17.716374Z leonardo
Fix : Unwinding the 6449 change (Fix detection of hexadecimal encoding in eexec portion of Type 1 fonts). DETAILS : The fix for the Bug 688385 caused a regression with fonttest.pdf. Unwinding it now. EXPECTED DIFFERENCES : fonttest.pdf should restore.[lib/pdf_font.ps]
2006-01-20T07:52:45.171824Z leonardo
Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/gxi16bit.c src/gscdevn.h src/gxccman.c src/int.mak src/zfsample.c src/gxicolor.c src/gxclrast.c src/zcolor.c src/gxi12bit.c src/gdevp14.c]
2006-01-20T06:43:12.729752Z leonardo
Fix (pdfwrite, PDF/X) : Implement TrimBox, BleedBox and related Distiller parameters. DETAILS : Bug 688443 "TrimBox values should be customizable for PDF/X document". Patch from Gunnar Ritter with minimal adoptation and a minimal testing. We added sscanf to acquire TrimBox from Postscript. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm lib/gs_pdfwr.ps]
2006-01-20T06:38:30.009975Z leonardo
Fix (pdfwrite, PDF/X) : Implement TrimBox, BleedBox and related Distiller parameters, continued. DETAILS : Bug 688443 "TrimBox values should be customizable for PDF/X document". Patch from Gunnar Ritter. Adobe PDF Creation Settings, 7/27/05, p. 111: [beg quote] PDFXTrimBoxtoMediaBoxOffset Supported by: Distiller Type: array UI name: Set TrimBox to MediaBox with offsets (units) Default value: [0.00000 0.00000 0.00000 0.00000] If both the TrimBox and ArtBox entries are not specified in the page object, TrimBox is set to MediaBox with offsets. Offsets are specified as [left right top bottom]. All numbers must be greater than or equal to 0.0. TrimBox offsets place TrimBox entirely inside MediaBox. NOTE:This setting is ignored if PDFXNoTrimBoxError is true. [end quote] <http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/PDFCreationSettings.pdf> EXPECTED DIFFERENCES : None.[src/gdevpdf.c]
2006-01-19T18:51:22.949228Z Ray Johnston
Previous patch had matrix1 matrix2 operands exchanged so scaling by cmmatrix was wrong. This now works for resolutions other than 72. Bug 688485 for customer 850.[lib/pdf_draw.ps]
2006-01-19T12:08:23.013531Z leonardo
Fix (pdfwrite) : Don't embed unused fonts. DETAILS : Bug 688106 "Unused fonts embedded in PDF". Bug 688380 "pdfwrite: Type 3 fonts with empty CharStrings". 1. Delay font object id assignation until it is used with synch_text_state. 2. Same for font descriptors. 3. Writing a stream resource list, skip ones with no id. 4. Writing font descriptors, skip ones with no id. 5. Same for font objects. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h src/gdevpdts.c src/gdevpdtd.c src/gdevpdte.c src/gdevpdtf.c src/gdevpdfu.c src/gdevpdtw.c src/gdevpdtd.h src/gdevpdtf.h]
2006-01-19T00:21:28.720381Z Ralph Giles
Correct a typo in the usage.[toolbin/tests/update_specific]
2006-01-19T00:18:05.626817Z Ralph Giles
Accept '-r <revision number>' as well as a date spec to the update_specific script. Bug 688498.[toolbin/tests/update_specific]
2006-01-18T21:01:50.698782Z Alex Cherepanov
Print error messages, don't leave them on the stack. Bug 688491[lib/gs_ttf.ps]
2006-01-18T13:08:41.803688Z leonardo
Fix (pdfwrite, PDF/X) : Implement TrimBox, BleedBox and related Distiller parameters. DETAILS : Bug 688443 "TrimBox values should be customizable for PDF/X document". Patch from Gunnar Ritter with minimal adoptation and a minimal testing. We added sscanf to acquire TrimBox from Postscript. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfp.c src/gdevpdfb.h]
2006-01-18T05:10:22.427953Z Ralph Giles
Apply assert patch for CMYK JPEG 2000 images from bug 688142.[jasper/src/libjasper/jpc/jpc_dec.c]
2006-01-17T17:56:36.138363Z Ray Johnston
Apply a SubFileDecode filter to streams if the Length is valid. This prevents reading past the end of data for filters that are not terminated, expecting the PDF Length or 'endstream' to terminate the data. Bug 687435 for customers 780 and 870. Thanks to Alex Cherepanov for this patch. DETAILS: Since the Length on some broken PDF's is wrong (a warning will be issued), this patch will not fix the case where the Length is wrong and the stream is not terminated. EXPECTED DIFFERENCES: None. (according to Alex).[lib/pdf_base.ps]
2006-01-17T13:43:24.915413Z leonardo
Fix (pdfwrite) : Loss of graphics with GraphicsAlphaBits > 1. DETAILS : Bug 688417 "Setting -dGraphicsAlphaBits when using -sDEVICE=pdfwrite causes loss of graphics". 1. Propagate error codes from psdf_get_bits through alpha buffer device methods. 2. Print error message in psdf_get_bits if GraphicsAlphaBits > 1. EXPECTED DIFFERENCES : None.[src/gdevpsdu.c src/gdevabuf.c src/gspaint.c]
2006-01-17T08:37:48.515251Z leonardo
Fix (type 1 interpreter) : c1_hsbw of the main subglyph was replaced with one from the glyph. DETAILS : Bug 688453 "gs8.53 renders certain fonts incorrectly". EXPECTED DIFFERENCES : normal : Bug687489.ps[src/gstype1.c src/gxtype1.h]
2006-01-17T05:13:50.629958Z leonardo
Fix (type 1 interpreter) : Improve the mlodularity about seac data. DETAILS : This change is algorithmically equivalent. It is a praparation for bug 688453. 1. seac_flag is moved from Type 1 hinter (gxhintn.h) to Type 1 interpreter (gstype1.h). 2. Type 2 interpreter (gstype2.c) appears not depending on seac_flag. EXPECTED DIFFERENCES : None.[src/gstype1.c src/gstype2.c src/gxhintn.c src/gxtype1.c src/gxhintn.h src/gxtype1.h]
2006-01-17T00:26:20.734768Z Ralph Giles
Use an explicit target for ps2write.dev, depending on pdfwrite.dev. DETAILS: Previously, the pdfwrite.dev target just created a dummy ps2write.dev file without all the dependencies, since ps2write is just an extension of pdfwrite and depends on much of the same source. However, this caused problems with parallel builds, and failed badly if a user requested ps2write without pdfwrite in the top-level makefile.[src/devs.mak]
2006-01-16T23:30:44.016752Z Ray Johnston
A better approach to avoid having uninstallpagedevice free a device that needs closing. Bug 688494. Thanks to leo for the suggestion. DETAILS: Increment the rc_assign prior to the .uninstallpagedevice to insure that the device is still around afterwards so we can call gs_closedevice on it. Many devices don't need the closedevice, but some might.[src/imain.c]
2006-01-16T19:08:58.896938Z Ralph Giles
Remove gsmalloc.h from source files that no longer use gs_malloc() or gs_memory_default.[src/lib.mak src/zfdctd.c src/zfdcte.c src/int.mak src/sdctc.c src/sdctd.c src/sdcte.c src/szlibc.c src/szlibd.c src/szlibe.c]
2006-01-16T17:25:29.114707Z Ray Johnston
Make sure that the final gs_closedevice isn't called on a device that has been freed during the final .uninstallpagedevice. Bug 688494. DETAILS: The overprint device or other compositors can (under some circumstances) have a reference count of 1 when the gs_lib_finit is called, which means that the 'nulldevice' operator executed by the .uninstallpagedevice will free the compositor when the rc_assign to the graphics state is performed. To avoid an operation on a pointer to freed memory, don't attempt to close the device if the ref_count prior to the unistallpagedevice was 1. EXPECTED DIFFERENCES: None.[src/imain.c]
2006-01-16T14:06:57.132584Z leonardo
Fix (pdfx) : Registered printing conditions don't need an ICC profile. DETAILS : Bug 688476 "PDF/X-3 without ICC profile". We could got more knowledge from http://www.color.org/IPA_2003-11_PDFX.pdf . The main one is the RegistryName key, which we didn't see before. Rather PDFX_def.ps becomes complicated, currently we don't try to simplify the user interface because we've got insufficient information about user requirements to it. EXPECTED DIFFERENCES : None.[lib/PDFX_def.ps doc/Ps2pdf.htm]
2006-01-16T11:48:41.730324Z leonardo
Fix (type 1 interpreter) : ce1_setcurrentpoint was wrong in a subglyph. DETAILS : Bug 688481 "wrong rendering of Type 1 font". 1. ce1_setcurrentpoint didn't account the position of a subglyph in the glyph. The bug was contributed with attaching the new Type 1 hinter (gstype1.c rev. 1.23, 1.13). 2. (minor change) A wrong condition for opening a visual trace in gxhintn.c . EXPECTED DIFFERENCES : None.[src/gstype1.c src/gxhintn.c]
2006-01-16T05:44:16.806614Z Ray Johnston
Update the PDF text matrix basis (TextSaveMatrix) when a 'cm' occurs within a BT/ET section. Bug 688485 for customer #850. DETAILS: Apparently this is rare -- none of the previous regression tests had this case (a 'cm' inside a BT/ET section). The 'missing' Arabic text was actually outside the clipping path, so nothing was painted. EXPECTED DIFFERENCES: None. I ran the PDF subset of the regression suite and none of the files had this.[lib/pdf_draw.ps]
2006-01-16T05:22:18.914647Z leonardo
pdfwrite : Implementing DeviceN attributes, part 1. DETAILS : Bug 688406 "pdfwrite : wrong overprint color from Altona_Visual_1v2a_x3.pdf". This is a partial implementation for DeviceN attributes in pdfwrite. It is restricted with information, which the graphics library currently provides. For a complete implementation need a complete fix for Bug 688413. 1. Added a writing of attributes Colorants in gdevpdfc.c . 2. Don't write a resource list for resourceOther, because they are not real PDF resources. EXPECTED DIFFERENCES : pdfwrite Bug687660a.ps[src/gdevpdfc.c src/gdevpdfu.c src/devs.mak]
2006-01-15T13:42:29.836501Z leonardo
Use a floating point representation for a huge Type 3 text width. DETAILS : Bug 687822 "/limitcheck in --setcharwidth--". We guess the test document uses huge characters for metric computations rather than for a real rendering. When a text has a big width (and therefore it is not cached), we use a new field gs_show_enum::wxy_float instead wxy, because the latter overflows. We implement it for Type 3 only due to no other test cases. EXPECTED DIFFERENCES : None.[src/gxchar.c src/gxchar.h]
2006-01-13T22:09:55.060982Z stefan
dprintf format string repair.[src/zfcid0.c]
2006-01-13T21:59:13.702725Z stefan
Added printf format string argument checking under gcc to std.h Corrected or commented existing errors. NB: gx_color_index maybe 4 or 8 giving interesting results to printf that choose to do: "color is %lx", color[src/gdevxcmp.c src/gxi16bit.c src/std.h src/zfcid0.c src/gdevpsf2.c src/gsfcmap1.c src/gsmemory.c src/gxpflat.c src/gxicolor.c src/gxi12bit.c src/gdevp14.c src/stream.c]
2006-01-13T20:56:57.627440Z leonardo
Fix (pdfwrite) : Type 3 font indeterminizm. DETAILS : Bug 688379 pdfwrite: "an indeterministic behavior with Bug687660a.ps" from Comment #21. During a garbage collection Type 3 font glyph names were not marked. Therefore they could be collected and later get different name indices. Several fonts could be gererated from a single Type 3 font. EXPECTED DIFFERENCES : pdfwrite Bug687660a.ps[src/gdevpdtt.c src/gdevpdtf.c src/gdevpdtf.h]
2006-01-13T19:19:26.202800Z Ray Johnston
Minor cleanup to remove a line that was left in from a cut-and-paste when this call was added. Discovered during bug 688487.[src/imain.c]
2006-01-13T08:29:47.649971Z Dan Coby
Fix for 688487 A crash from garbage collector pointer validation. This is an addition to 688413 DeviceN under implements 'attributes' DETAILS: The GC validation problem was caused by the DeviceN attribute list elements not being freed. These list elements contained Separation color spaces. The color spaces contained a 'map' element which was being freed. The GC validation logic was detecting the that the color spaces were pointing to a freed item. The fix consists of adding a reference count to the gs_device_n_attributes structure plus the appropriate logic for incrementing/decrementing. The name of the DeviceN attributes list was changed to colorants per Igor's request.[src/gscspace.h src/gxcdevn.h src/gscdevn.c]
2006-01-12T12:02:56.192425Z Alex Cherepanov
Fix an out of range subscript in Gimp (XCF) export device and a few minor issues identified by Intel C++ . Bug 687292[src/imain.c src/gxfcopy.c src/gdevxcf.c src/zcolor.c]
2006-01-12T11:43:04.185594Z Alex Cherepanov
Fix detection of hexadecimal encoding in eexec portion of Type 1 fonts. Bug 688385 DETAILS: The old code that detected hexadecimal encoding appeared to do the reverse. It worked because PDF is defined to use binary encoding only in the eexec portion of the font and conversion to hex won't spoil the binary stream. However, conversion to hex breaks hexadecimal streams. The proposed patch adds more precise checking for the hexadecimal encoding similar to the checking algorithm in the eexec operator.[lib/pdf_font.ps]
2006-01-12T07:10:34.762843Z Ralph Giles
Virtualize the global ctx pointer so it can be replaced by different implementations at the stream level.[src/zfjbig2.c src/sjbig2.c src/sjbig2.h]
2006-01-12T07:09:08.418655Z Ralph Giles
Remove an unused funtion. This was used but the now removed ARCH_CACHE_* logic.[src/genarch.c]
2006-01-12T00:42:19.645669Z Dan Coby
Fix for 688488 Since Jan 7 2006, many regression files get 'typecheck in --execfunction--' DETAILS: The commit for 688413 introduced a new problem. If the attributes dictionary contains a reference to a separation color space which had already been resolved, then a conflict occured with the processing of the alternate tint transform function. This patch eliminates the conflict by creating a new copy of the DeviceN color space array and the attributes array when the color space is resolved.[lib/pdf_draw.ps]
2006-01-11T13:20:01.631161Z Alex Cherepanov
Move back-up CharString construction procedures (RD, ND, ...) to a special dictionary and put it below userdict to avoid warnings when the font defines them in userdict. Bug 688464 DETAILS: Some broken fonts forget to define CharString construction procedures because non-PostScript font rasterizers don't detect this error. Ghostscript has a back-up definitions of the procedures that do their job and issue a warning. Other correct but old-fashioned fonts define CharString construction procedures in userdict. We had the back-up procedures defined above userdict, where they preempted the userdict definitions and issued a bogus warning. This patch moves the definitions below userdict.[lib/pdf_font.ps]
2006-01-06T23:27:45.066243Z Ralph Giles
Update the regression code to use the new SVN repository. This also includes some other minor fixes. The new version of update_specific hasn't been tested.[toolbin/tests/run_nightly toolbin/tests/testing.cfg.example toolbin/tests/update_specific toolbin/tests/gstestgs.py]
2006-01-06T19:10:31.983184Z Dan Coby
Remove "#if 1" that crept into the last commit.[src/gscdevn.c]
2006-01-06T19:08:06.688571Z Ralph Giles
Remove the lowercase versions of some of the less common arch.h #defines in favor of uppercase versions as per C-style.[src/gxobj.h src/gxcmap.c src/gxbitmap.h src/gxfarith.h src/siscale.c src/imainarg.c src/gdevdbit.c src/iref.h src/gxclutil.c src/std.h src/gsmalloc.c src/zusparam.c src/gxfixed.h src/gxbitops.h src/ipacked.h src/gxbcache.h src/ibnum.c]
2006-01-06T19:01:15.497779Z Ralph Giles
Remove the check for files not listed in CVS. DETAILS: This no longer works since we've switched to subversion for version control. The check could of course be ported, but the object was the detect files that had either accidentally been left out of a commit, or files that might slip into a release unintentionally. The 'svn status' command is an effective and more commonly used check for the former, and our policy of building releases from a clean export of the tag eliminates the other.[toolbin/tests/check_dirs.py]
2006-01-06T18:56:33.954639Z Dan Coby
Partial fix for 688413 DeviceN under implements 'attributes' DETAILS: This patch implements the passing of DeviceN attribute color spaces into the graphics library. The patch consists of the following pieces: 1. In lib/gs_devn.ps: Attribute color spaces are processed like another color space and then .attachattributecolorspace is called to associate the attribute color space with a DeviceN color space. 2. In lib/pdf_draw.ps: Logic wa added to resolve references to attribute color spaces in PDF DeviceN color spaces. 3. In src/zcsdevn.c and src/gscdevn.c: The implementation of the .attachattributecolorspace is done. 4. Header files were modified to add the attribute color space structures and fields. 5. GC enumeration and relocation logic was added.[src/zcsdevn.c src/gscspace.h src/gxcdevn.h lib/gs_devn.ps lib/pdf_draw.ps src/gscdevn.c]
2006-01-06T18:54:32.653218Z Ralph Giles
Add the PDFA_def prefix file to the file documentation.[doc/Psfiles.htm]
2006-01-06T12:27:00.677606Z Alex Cherepanov
Implementation of the remaining TN 5044 operators, Bug 688268[lib/gs_lev2.ps]
2006-01-04T22:01:24.416332Z Ralph Giles
Remove the unused ARCH_CACHE defines and the code in genarch.c that creates them. Bug 688469. DETAILS: The cache detection was both slow and unreliable, especially given the spread of cpu and memory speeds now available. Furthermore, no use was being made of these attempted cache size measurements. We have therefore removed them as a simplification. Choosing the blocksize of large inner loops can indeed be a good technique, but this is a case of premature optimization. Moreover, it's usually better to test at run time with the actual algorithm in question than try to work from a general number.[src/std.h doc/Make.htm src/genarch.c]
2005-12-30T20:35:22.773764Z Ralph Giles
Ignore generated files in the jasper subtree.[jasper jasper/src/libjasper/pgx jasper/src/libjasper jasper/src/libjasper/include/jasper /trunk/gs jasper/src/libjasper/base jasper/src/libjasper/mif jasper/src/libjasper/jpc jasper/src/libjasper/bmp jasper/src/libjasper/jpg jasper/src/appl jasper/src/libjasper/include jasper/src jasper/src/libjasper/ras jasper/src/libjasper/pnm jasper/src/libjasper/jp2 jasper/src/msvc]
2005-12-29T01:11:43.615008Z Alex Cherepanov
Clean-up temporary parameter files created by batch files. Bug 688471[lib/ps2ps2.bat lib/ps2ps.bat]
2005-12-28T20:48:32.669903Z Ralph Giles
Apply Raph's patch to handle broken channel specifications.[jpeg/jdmarker.c]
2005-12-28T20:46:39.574800Z Ralph Giles
Copy the IJG jpeg-6b source from /tags/.[jpeg]
2005-12-28T20:45:24.158383Z Ralph Giles
Remove our local jpeg in favor of one copied from tags.[jpeg]
2005-12-28T20:39:05.309532Z Ralph Giles
Copy in tagged zlib and libpng source.[libpng zlib]
2005-12-28T20:37:11.865745Z Ralph Giles
Remove local copies of zlib and libpng in favor of ones copied from /tags/[libpng zlib]
2005-12-28T20:11:05.093674Z Ralph Giles
Convert .cvsignore settings.[src/.cvsignore ijs src .cvsignore contrib/pscolor/.cvsignore /trunk/gs contrib/pscolor ijs/.cvsignore]
2005-12-28T19:56:24.767413Z Ralph Giles
Enable Id keyword substitution on appropriate files.[src/iplugin.h src/gdevm48.c src/gsgdata.h lib/pfbtopfa.ps src/configure.ac src/gdevmsxf.c src/gsropt.h src/gdevmem.c man/ps2epsi.1 src/gdevmem.h src/zvmem.c src/write_t1.c jasper/src/libjasper/base/jas_seq.c src/rm.cmd src/gstrap.c src/icstate.h src/gxxfont.h src/write_t1.h lib/gs_epsf.ps src/gstrap.h src/gzacpath.h src/gscssub.c src/gdevcgmx.h src/gp_msdos.c src/gdevlbp8.c src/gdevpdfx.h src/gdevdm24.c src/zcsdevn.c src/dwsetup.rc src/gxdhtserial.c src/icie.h src/zcontext.c src/gscssub.h zlib/contrib/ada/buffer_demo.adb jasper/src/libjasper/include/jasper/jas_malloc.h src/gdevpdts.c src/ccfont.h src/gxdither.h src/gxdhtserial.h src/cp.cmd lib/gslp.ps src/gdevpdts.h src/macsystypes.h src/gxclutil.c lib/font2c.cmd src/gxcomp.h lib/level1.ps src/echogs.c lib/lpgs.bat src/oper.h doc/History7.htm src/zchar42.c toolbin/tests/cmpi.py lib/gs_lev2.ps src/gscscie.c src/gsfont0.c src/zchar42.h src/icfontab.c src/zht1.c toolbin/gssubst src/zpcolor.c src/zdevcal.c src/gdevpdfi.c src/zcssepr.c doc/Install.htm src/ifont42.h src/sdcparam.c lib/markhint.ps zlib/uncompr.c src/bcwin32.mak doc/Issues.htm src/sdcparam.h jasper/src/libjasper/jpc/jpc_math.c src/gdevpdtd.c src/gdevokii.c src/zcfont.c src/gdevprna.c src/gdevpdtd.h toolbin/makefonts.tcl jasper/src/libjasper/include/jasper/jas_cm.h src/zcolor.c src/gxhtbit.c src/oparc.h jasper/src/libjasper/jp2/jp2_cod.c src/sfxfd.c src/gdevprna.h lib/caption.ps jasper/src/libjasper/jp2/jp2_cod.h src/gp_mspol.c src/dwuninst.h src/gpmisc.c src/ttconfig.h src/ireclaim.c toolbin/pdfinflt.ps src/gxstdio.h src/gsmemraw.h src/gpmisc.h lib/gs_cidcm.ps toolbin/split_changelog.py doc/Lib.htm src/gxline.h lib/bdftops.cmd lib/FAPIconfig doc/Ps-style.htm man/gslp.1 toolbin/tests/check_docrefs.py jbig2dec/Makefile.am lib/traceimg.ps src/ijs.mak src/gserver.c src/gp_psync.c toolbin/tests/update_baseline man/de/pdfopt.1 src/gp_os2pr.c src/gsiomacres.c src/gdevpsd.c src/gxclfile.c man/de/wftopfa.1 src/gxfilltr.h man/de/ps2ps.1 src/gdebug.h lib/viewpcx.ps toolbin/tests/gsconf.py src/zfile.c jasper/src/libjasper/jpc/jpc_bs.c src/gdev4693.c src/gxchar.c lib/gs_indxd.ps jasper/src/libjasper/jpc/jpc_bs.h src/gxchar.h src/gsfcid2.c src/gsline.c src/gsalloc.c doc/Helpers.htm lib/dumphint src/gsline.h src/gsalloc.h src/gsiparm2.h src/gxfont0.h lib/gs_ksb_e.ps lib/ps2pdf.cmd src/gdevmeds.c src/gs16spl.c src/gdev4081.c src/gdevmeds.h src/srdline.h src/dpmain.c src/wctail.mak src/winlib.mak jasper/src/libjasper/jp2/jp2_enc.c doc/History8.htm src/szlibx.h src/zmath.c jbig2dec/jbig2_image_png.c toolbin/tests/make_two_pdfversions src/gdevpdfk.c lib/jispaper.ps src/gxfont0c.h src/iimage.h jasper/src/libjasper/jp2/jp2_dec.c src/gxpcolor.h src/gdevpdtf.c doc/Xfonts.htm src/gp_unifn.c src/gdevddrw.c src/gschar.c src/gdevpdtf.h src/gdevddrw.h src/gdevpsfm.c src/sarc4.c lib/traceop.ps src/gschar.h src/gdevpsu.c src/gsptype2.c src/zfcid1.c src/sarc4.h src/gstrans.c src/gdevpsu.h src/gsptype2.h src/catmake zlib/crc32.c src/gstrans.h src/iestack.h src/gxbitfmt.h src/gxclio.h lib/pdf_rbld.ps src/gstype2.c src/itoken.h lib/pdf2ps.bat lib/gs_dscp.ps src/inameidx.h src/gxhldevc.c lib/gs_devn.ps zlib/contrib/iostream2/zstream.h src/gxhldevc.h lib/pdfopt.ps src/sfxboth.c src/gp_macio.c src/wrfont.c src/sbhc.c lib/viewps2a.ps src/gsdps.c src/zfont1.c src/wrfont.h src/sbhc.h doc/Maintain.htm jbig2dec/jbig2_priv.h man/de/gsnd.1 lib/gs_dbt_e.ps src/gsdps.h src/spngp.c src/ghost.h jbig2dec/jbig2dec.c toolbin/tests/check_all.py doc/gs.css toolbin/tests/gsutil.py src/gxalloc.h src/gsmatrix.c src/gxsamplp.h lib/cidfmap src/istruct.h src/gdevpsf.h src/gsmatrix.h src/zdouble.c src/dwreg.c jasper/src/libjasper/include/jasper/jas_getopt.h src/spdiff.c src/gxfcmap1.h lib/pf2afm.cmd jasper/src/libjasper/base/jas_string.c src/dwreg.h src/scommon.h src/gdevpdtw.c src/gdevpdtw.h src/unixhead.mak src/gsiparm4.h lib/ps2ascii.ps src/gxiscale.c lib/gs_ce_e.ps src/gxbcache.c src/dwinst.cpp src/gxbcache.h src/ibnum.c lib/gs_type1.ps lib/gsnup.ps src/gdevxcmp.c src/ibnum.h src/estack.h src/scfe.c ijs/configure.ac lib/eps2eps.cmd src/gscompt.h src/gsdcolor.h src/gxdtfill.h src/gdevxcmp.h lib/stocht.ps src/gdevlj56.c src/gdevhl7x.c src/gdevos2p.c src/gsparam.c src/gsbitops.c src/gdevmr8n.c lib/gs_pdfwr.ps src/gxftype.h src/gp_unix_cache.c src/gdevpdfm.c src/imain.c src/gsparam.h src/gsbitops.h src/zfilter2.c src/imain.h src/ifilter.h lib/gs_ccfnt.ps jasper/src/libjasper/base/jas_cm.c src/zfont42.c lib/Fontmap.ATB doc/Language.htm jasper/src/libjasper/pnm/pnm_cod.c src/smd5.c src/spdiffx.h jasper/src/libjasper/pnm/pnm_cod.h src/smd5.h src/gs16spl.rc src/gxhttype.h lib/Fontmap.ATM src/gspenum.h src/sjpx.c lib/unix-lpr.sh lib/ps2epsi.bat lib/decrypt.ps src/gxipixel.c src/sjpx.h src/sfilter2.c src/gdevsnfb.c src/gdevifno.c src/gscrd.c src/gxmclip.c src/mv.cmd src/gxcie.h src/gsio.h lib/gs_cspace.ps src/gscrd.h src/gxmclip.h toolbin/suite.tcl lib/pftogsf.bat lib/uninfo.ps src/unix-end.mak jbig2dec/Makefile.in src/inobtokn.c toolbin/afmutil.py src/gp_mslib.c lib/Fontmap.Sol zlib/minigzip.c src/gsiodev.c src/gdevescp.c src/igc.c src/msvc32.mak src/gdevmacxf.c src/gsfunc0.c jbig2dec/jbig2_arith.c src/igc.h src/jerror_.h src/zdosio.c toolbin/tests/testdiff src/gsfunc0.h jbig2dec/jbig2_arith.h toolbin/jpxtopdf.c src/gdevpsf1.c src/gdevpsds.c src/siscale.c src/gdevpsds.h lib/gs_img.ps src/gsdsrc.c src/gxfill.c src/ilevel.h src/siscale.h src/gxclread.c src/gsdsrc.h src/gxfill.h toolbin/tests/gstestgs.py lib/pdf2ps src/iostack.h lib/gs_kanji.ps lib/stcolor.ps src/gsdll.c src/gdevmr1.c lib/Fontmap.Ult src/gspath1.c jasper/src/libjasper/pnm/pnm_enc.c doc/Details.htm src/gsdll.h src/sjpegc.c src/zfdcte.c lib/ps2ascii.bat src/zfcmap.c doc/Readme.htm src/gdevfax.c src/gdevbit.c toolbin/tests/check_source.py src/gsequivc.c src/gsdevice.c src/gp_wsync.c src/gdevfax.h src/gsequivc.h src/gsdll32.rc src/gxclmem.c src/gshtx.c src/gscparam.c src/gsdevice.h src/gdevsj48.c src/gdevpdfo.c jasper/src/libjasper/pnm/pnm_dec.c src/gsbittab.c src/gxclmem.h src/macos_carbon_pre.h src/sdctd.c src/gsmemory.c src/gshtx.h src/gdevpdfo.h src/gsbittab.h src/ifwpred.h src/gdevcdj.c doc/Devices.htm src/gsmemory.h man/de/ps2ascii.1 src/files.h src/gxband.h src/scfdgen.c src/ttinterp.c src/ttcalc.c src/gsbitmap.h src/gdevtknk.c toolbin/genfontmap.ps src/idsdata.h src/ttinterp.h src/ttcalc.h src/gxfont42.h src/scf.h src/gsroptab.c lib/gs_fntem.ps src/gxidata.c src/inames.h src/gsistate.c src/gdevm1.c src/os2.mak src/gscolor2.c lib/gs_cidfm.ps src/gzline.h src/gscolor2.h lib/bdftops src/gsmalloc.c src/ttfmain.c lib/errpage.ps src/ivmem2.h src/gsmalloc.h src/gscindex.h src/gxiodev.h toolbin/makewin.tcl src/gp_macpoll.c src/dwmain.c src/gdevpcfb.c jasper/src/libjasper/bmp/bmp_cod.c src/gdevvec.c src/dwmain.h src/gdevpcfb.h jasper/src/libjasper/bmp/bmp_cod.h lib/gs_statd.ps src/gdevvec.h src/ostack.h src/gsrect.h jasper/src/libjasper/jpc/jpc_qmfb.c src/sdeparam.c src/idosave.h src/gdevvglb.c src/gdevimgn.c src/ifrpred.h jasper/src/libjasper/jpc/jpc_qmfb.h lib/impath.ps src/gsmdebug.h zlib/contrib/ada/zlib-thin.adb src/gsovrc.c src/gxshade1.c lib/ps2ps src/gdevm32.c jbig2dec/jbig2_symbol_dict.c src/gsovrc.h src/scfx.h src/all-arch.mak lib/gs_init.ps jbig2dec/jbig2_symbol_dict.h src/gsparams.c src/bfont.h src/idparam.c src/gdevbjcl.c src/gdevpsdu.c src/dvx-gcc.mak src/gsparams.h src/idparam.h src/gp_mswin.c src/gdevdsp2.h src/gxblend.c zlib/contrib/ada/zlib-thin.ads src/gdevbjcl.h src/gp_mswin.h src/gxblend.h src/gp_os2.c src/zcolor1.c zlib/trees.c lib/ps2ps2.bat src/math_.h src/gp_os2.h lib/gs_resmp.ps src/gdevstc.c lib/printafm.ps src/gxfunc.h jbig2dec/jbig2_segment.c src/macos-fw.mak src/ialloc.c src/gdevstc.h src/ialloc.h jasper/src/libjasper/jpc/jpc_mqcod.c src/gserrors.h src/sjpege.c jasper/src/libjasper/jpc/jpc_mqcod.h man/de/pdf2dsc.1 zlib/ChangeLog src/gxsample.c src/gxfarith.h src/dxmainc.c src/gdevbmp.c src/gxsample.h src/gserror.h src/gdevbmp.h src/gdevsppr.c src/igcstr.c src/gdevn533.c lib/pfbtopfa src/idebug.c src/igcstr.h src/rm.bat src/idebug.h toolbin/tests/run_regression src/gsht.c lib/gs_lgx_e.ps src/ifont2.h src/gdevpsdf.h src/gdevm16.c src/gsht.h src/scantab.c src/gxfapi.c src/zfilter.c jasper/src/libjasper/bmp/bmp_enc.c src/gstype42.c src/gxfapi.h src/iutilasm.asm src/gsfunc.c src/cp.bat src/sbcp.c jasper/src/libjasper/base/jas_image.c src/iref.h jbig2dec/jbig2_mmr.c src/gsfunc.h toolbin/encs2c.ps src/sbcp.h zlib/zconf.h lib/font2c.bat jbig2dec/jbig2_mmr.h src/gdevtrac.c src/gp_ntfs.c src/libpng.mak zlib/contrib/ada/zlib.adb src/gdevatx.c lib/docie.ps src/zfproc.c src/gs_dll_call.h src/dmmain.c lib/acctest.ps jasper/src/libjasper/bmp/bmp_dec.c src/istream.h doc/Ps2epsi.htm src/gs.c src/zdevice2.c jasper/src/libjasper/include/jasper/jas_types.h src/iscannum.c src/sjbig2.c src/gdevpdfb.c src/iscannum.h src/gscrdp.c src/gspmdrv.c zlib/contrib/ada/zlib.ads src/dmmain.r src/sjbig2.h toolbin/tests/gscheck_all.py src/gdevpdfb.h src/gsfemu.c src/inamestr.h src/gxclrast.c src/gdevxres.c src/gscrdp.h src/gspmdrv.h src/zfile1.c src/zimage3.c src/istkparm.h src/gdevo182.c src/zcspixel.c src/zarith.c src/gximage1.c lib/xlatmap src/msvctail.mak src/gsfunc4.c src/isdata.h src/gxclpath.c jasper/src/libjasper/jpc/jpc_mqenc.c jasper/src/libjasper/base/jas_malloc.c src/gsfunc4.h src/gxcmap.c src/gxclpath.h jasper/src/libjasper/jpc/jpc_mqenc.h src/icsmap.h src/gxcmap.h src/gpgetenv.h src/zpath.c src/ttload.c src/gsnorop.c src/gdevmrop.h src/gxfillsl.h src/zcolor3.c src/ttload.h zlib/contrib/ada/mtest.adb src/tttype.h src/gxcpath.c jasper/src/libjasper/jpc/jpc_mqdec.c doc/Unix-lpr.htm src/gxcpath.h lib/bdftops.bat jasper/src/libjasper/jpc/jpc_mqdec.h src/gxp1impl.h src/gdevlxm.c man/ps2ps.1 lib/Fontmap.GS src/rinkj/rinkj-epson870.c jbig2dec/jbig2_generic.c lib/eps2eps src/rinkj/rinkj-epson870.h jbig2dec/jbig2_generic.h jasper/src/libjasper/jpc/jpc_cod.h jbig2dec/jbig2_image.c lib/gs_ciecs3.ps src/gxgetbit.h src/gdevabuf.c doc/Source.htm src/md5.c jbig2dec/jbig2_image.h src/gp_mac.c src/gdevsgi.c jasper/src/libjasper/jpg/jpg_cod.h src/zcie.c src/md5.h src/gdevsco.c src/stream.c src/gp_mac.h lib/pdf_main.ps src/gdevsgi.h src/gdevdflt.c src/stream.h src/gsdpnext.h src/gdev8510.c lib/pdfwrite.ps src/gxstroke.c src/gdevpxut.c src/zmisc2.c src/zfunc3.c src/ttmisc.h src/iparam.c toolbin/tests/dump_testdb src/zrelbit.c src/gdevpxut.h src/gxclist.c src/gdevxini.c src/iparam.h lib/printafm Resource/ColorSpace/DefaultCMYK src/gxclist.h src/jbig2.mak src/gdevpsfu.c src/gdevlp8k.c jbig2dec/jbig2_arith_iaid.c man/font2c.1 doc/Htmstyle.htm src/gdevpdt.c lib/gsnd.bat src/ttfmemd.c lib/ps2pdf.bat jbig2dec/jbig2_arith_iaid.h src/gdevpdt.h src/gp_dosfs.c src/ttfmemd.h lib/dumphint.ps src/gpcheck.h src/jasper.mak src/ztype.c src/dwuninst.cpp lib/ps2ascii src/gdevxxf.c src/shc.c src/zshade.c man/ps2ascii.1 Resource/ColorSpace/DefaultGray doc/Use.htm src/opcheck.h src/shc.h lib/gsndt.bat src/gdevpdfd.c toolbin/tests/gssum.py src/gdevcfax.c src/zicc.c src/vdtrace.c src/gxdda.h src/vdtrace.h src/iscan.c src/iscan.h src/gsnotify.c toolbin/precheck.tcl toolbin/errlist.tcl src/gximage3.c lib/wftopfa lib/pfbtopfa.bat src/srle.c lib/gs_icc.ps src/zfilterx.c Resource/ColorSpace/TrivialCMYK src/gsnotify.h src/gximage3.h src/gsdll2.rc man/gs.1 src/memory_.h src/iparray.h jasper/src/libjasper/jpc/jpc_enc.c lib/gs_wl1_e.ps src/gsuid.h jasper/src/libjasper/jpc/jpc_enc.h Resource/Decoding/Unicode src/gdevstc2.c src/ziodev2.c man/eps2eps.1 src/gsiodevs.c lib/gs_sym_e.ps src/zmisc.c src/gsargs.c src/devs.mak src/gp_win32.c lib/ppath.ps doc/gsdoc.el src/gsargs.h src/gsinit.c src/gxttfb.c src/wmin.mak jasper/src/libjasper/jpc/jpc_flt.h jasper/src/libjasper/jpc/jpc_dec.c src/gxttfb.h src/winplat.mak src/dscparse.c src/gdev3852.c jasper/src/libjasper/jpc/jpc_dec.h src/dscparse.h src/gp_getnv.c lib/gs_dps1.ps zlib/contrib/ada/test.adb jasper/src/libjasper/jpc/jpc_t1cod.c src/gp_wgetv.c src/gdevpxen.h jasper/src/libjasper/jpc/jpc_t1cod.h src/gdevadmp.c src/gdevpxat.h src/zchar2.c src/errno_.h lib/wrfont.ps src/slzwc.c src/gdevpdfu.c src/ttcommon.h src/gdevp14.c src/sfilter.h src/dwinst.h doc/Ps2ps2.htm lib/pf2afm.bat lib/gs_trap.ps src/gdevp14.h src/ifcid.h src/sisparam.h src/ifont.h src/zfmd5.c src/unixlink.mak doc/Psfiles.htm src/zrop.c lib/pdfopt.bat src/zfjpx.c src/gdevegaa.asm toolbin/tests/gscheck_pdfwrite.py src/gspaint.c doc/index.html src/gspaint.h src/sa85x.h src/gsalpha.c src/int.mak lib/eps2eps.bat src/gsalpha.h src/icremap.h src/imainarg.c src/gp_dvx.c src/imainarg.h jbig2dec/os_types.h src/spprint.c src/gxcldev.h src/zbfont.c lib/FAPIfontmap src/unix-gcc.mak src/spprint.h src/igstate.h lib/ps2ps.cmd jasper/src/libjasper/base/jas_getopt.c src/unistd_.h src/version.mak src/dwtext.c src/sbwbs.c lib/bdftops.ps src/gxdevmem.h jasper/src/libjasper/jpc/jpc_t1enc.c src/icharout.h lib/gsbj src/gdevstc4.c src/dwtext.h src/sbwbs.h jasper/src/libjasper/jpc/jpc_t1enc.h src/szlibd.c src/gdevdbit.c src/gdevdfax.c src/gdevpccm.c lib/ps2pdf src/gdevpccm.h src/strimpl.h src/mv.bat src/gsutil.c jasper/src/libjasper/jpc/jpc_t1dec.c jasper/src/appl/imginfo.c src/opextern.h src/zimage.c src/gsutil.h jasper/src/libjasper/jpc/jpc_t1dec.h src/gdevcgm.c jbig2dec/jbig2_metadata.c lib/gs_wl2_e.ps src/gdevtsep.c src/gsfont0c.c doc/Deprecated.htm jbig2dec/jbig2_metadata.h man/de/font2c.1 src/gsht1.c src/gspcolor.c src/gxi12bit.c src/iddstack.h src/gsht1.h src/zfjbig2.c src/rinkj/rinkj-config.c src/gspcolor.h src/std.h src/rinkj/rinkj-config.h lib/type1ops.ps src/gdevs3ga.c src/slzwe.c lib/ps2epsi.ps src/scfdtab.c src/gscolor.c src/stdint_.h src/ztoken.c src/gxpaint.c src/zchar32.c src/seexec.c zlib/deflate.c src/icid.h src/gdevm56.c src/gscolor.h src/spsdf.c src/gxpaint.h zlib/zutil.c src/gsfname.c zlib/deflate.h toolbin/tests/make_testdb lib/gssetgs.bat jasper/src/libjasper/jpc/jpc_t2cod.c src/spsdf.h zlib/zutil.h lib/gsdj src/gsfname.h jasper/src/libjasper/jpc/jpc_t2cod.h src/gxalpha.h src/md5main.c jbig2dec/jbig2_refinement.c src/srlx.h src/gxclipsr.h src/gdevmac.c src/idisp.c src/jpeg.mak src/gdevmac.h src/idisp.h src/idstack.c src/gdevrinkj.c toolbin/makehist.tcl src/idstack.h src/gxoprect.c src/gdevwdib.c doc/Copying.htm src/gdevsunr.c src/gxoprect.h src/gdevpdtc.c src/gsfcmap1.c Resource/Decoding/StandardEncoding src/gswts.c lib/gs_diskf.ps lib/font2c.ps src/gsstate.c src/ichar1.h src/gswts.h src/gxiparam.h src/gsstate.h src/gdevcljc.c lib/pdf_base.ps doc/Ps2pdf.htm src/iscanbin.c src/gdevmiff.c lib/pphs.ps src/iscanbin.h src/gp_mshdl.c src/zfcid.c src/zfont.c jasper/src/libjasper/include/jasper/jas_math.h src/unixinst.mak src/zarray.c src/iminst.h src/gxdevcli.h src/fcntl_.h src/gdevpe.c doc/Humor.htm jasper/src/libjasper/jpc/jpc_t2enc.c src/zdfilter.c lib/Fontmap.SGI lib/gs_pdf_e.ps lib/prfont.ps jasper/src/libjasper/jpc/jpc_t2enc.h jasper/src/libjasper/include/jasper/jas_image.h src/write_t2.c src/zdps1.c src/write_t2.h doc/Commprod.htm lib/gs_css_e.ps src/zhsb.c toolbin/makemaster.tcl jasper/src/libjasper/jpc/jpc_t2dec.c toolbin/tests/revert_baseline src/zupath.c src/gxsync.c jasper/src/libjasper/jpc/jpc_t2dec.h src/dstack.h src/gxsync.h src/gsccolor.h src/gdevpdtt.c lib/ps2write.bat src/gdevpbm.c src/gdevpdtt.h src/gdevmrun.c src/gsdllwin.h lib/gs_typ32.ps src/gconf.c src/gdevmrun.h src/gconf.h src/sdct.h src/zfbcp.c src/gzcpath.h src/gsipar3x.h src/scfetab.c jbig2dec/jbig2.c src/gxstate.h jbig2dec/jbig2.h src/gdevpcl.c src/gdevcmap.c src/zht2.c src/gxfmap.h src/zfarc4.c src/gdevpcl.h src/gdevpdfj.c src/ichar.h lib/viewmiff.ps src/gdevcmap.h src/zht2.h src/gdevwprn.c src/gxpdash.c lib/gs_dps.ps src/ztrap.c src/gxlum.h toolbin/3way.tcl doc/Drivers.htm src/gdevdevn.c src/gdevpdte.c src/gsgcache.c src/gdevdevn.h src/gsgcache.h src/gsptype1.c src/zfcid0.c src/gxclbits.c src/zgstate.c src/macos_classic_d_pre.h src/gsptype1.h src/zfontenum.c lib/gs_setpd.ps src/ctype_.h lib/font2c src/inouparm.c src/rinkj/rinkj-screen-eb.c src/slzwx.h src/gstype1.c src/gxdhtres.h lib/gs_lgo_e.ps jasper/src/libjasper/include/jasper/jas_version.h src/gdevmpla.c src/rinkj/rinkj-screen-eb.h man/pdf2ps.1 src/gstype1.h src/dwmain.rc lib/ps2pdf12.cmd doc/Testing.htm lib/gs_fonts.ps src/gxcspace.h lib/gslj.bat lib/Fontmap.OS2 src/gdevmpla.h src/rinkj/evenbetter-rll.c man/wftopfa.1 src/watclib.mak src/rinkj/evenbetter-rll.h src/gxfcache.h src/istack.c src/gxclzlib.c src/zfont0.c lib/gs_l2img.ps src/istack.h src/gstparam.h lib/stcinfo.ps src/gdevevga.c src/gdevhit.c src/gxclimag.c src/gsdfilt.c lib/packfile.ps toolbin/many2pdf.tcl src/gxfillts.h src/gsdfilt.h toolbin/tests/run_nightly toolbin/tests/get_baselines toolbin/gsindent src/gxht.c src/gxdcconv.c src/gdevpsdp.c src/openvms.mak src/gxcht.c src/gdevclj.c src/gdevxalt.c src/gxht.h src/gxdcconv.h src/zvmem2.c src/gdevpdtv.c src/contrib.mak src/rinkj/rinkj-device.c src/gdevpdtv.h src/gsiparm3.h lib/gs_typ42.ps src/gxclpage.c lib/dumphint.bat src/gxfont1.h src/rinkj/rinkj-device.h lib/gslj src/icontext.c src/gsdllos2.h src/gxclpage.h src/zstring.c src/icontext.h lib/gslp src/unix-aux.mak src/gzspotan.c src/zfont32.c src/ttfoutl.h src/gxclip2.c src/szlibxx.h src/gdevdrop.c src/gzspotan.h jasper/src/libjasper/jpc/jpc_cs.c src/gxclip2.h man/dvipdf.1 src/scfd.c jasper/src/libjasper/jpc/jpc_cs.h src/cfonts.mak src/gxiclass.h lib/pdf2dsc lib/ht_ccsto.ps src/gdevcgml.c src/gdevpx.c src/gdevcgml.h src/gdevl256.c jasper/src/libjasper/ras/ras_cod.c src/windows_.h doc/DLL.htm src/igcref.c src/zcharx.c src/gxtype1.c jasper/src/libjasper/ras/ras_cod.h src/gxtype1.h src/gdevcp50.c lib/gs_ciddc.ps src/idictdef.h src/gsmemret.c toolbin/bughunt.sh src/gxclip.c src/gsmemret.h lib/gsnd src/iname.c src/sfilter1.c lib/pdfopt src/gxclip.h src/sddparam.c src/zmedia2.c src/iname.h src/gs.mak src/gxpcmap.c doc/News.htm src/gp_msdll.c lib/gs_wan_e.ps lib/ps2pdf13.cmd jasper/src/libjasper/include/jasper/jas_stream.h src/gxcid.h src/gdevnfwd.c src/macos-mcp.mak src/ttobjs.c doc/History1.htm src/ttobjs.h src/zcontrol.c src/icclib.mak src/gsfcmap.c src/iimage2.h src/zfont2.c src/gsfcmap.h src/gxrplane.h src/gxp1fill.c src/imemory.h src/gsciemap.c src/dos_.h src/zdscpars.c src/gscdef.c lib/winmaps.ps src/gdevwpr2.c lib/landscap.ps src/gxtmap.h lib/gs_frsd.ps src/gsbitcom.c src/zchar.c lib/gs_devpxl.ps src/gdevsun.c lib/fixmswrd.pl src/gscrypt1.c doc/Fonts.htm toolbin/tests/gscheck_raster.py lib/gsdj500.bat src/gscrypt1.h jasper/src/libjasper/include/jasper/jas_tvp.h src/ztrans.c src/dwmainc.c src/gxdht.h src/dvx-head.mak lib/ps2ps2 src/zcsindex.c src/gdevrops.c src/zcidtest.c src/gdevpdtx.h src/gdevijs.c doc/gs-vms.hlp src/icolor.h src/gp_msio.c src/stdpn.h jasper/src/libjasper/ras/ras_enc.c src/store.h src/gstypes.h src/gxfixed.h src/gsserial.c src/string_.h src/gsserial.h src/gsjmorec.h src/gdevcslw.c src/zfdctd.c src/zdps.c jasper/src/libjasper/ras/ras_dec.c src/gxpcache.h src/scanchar.h man/de/pdf2ps.1 src/gdevdsp.c src/lib.mak src/zmatrix.c src/sdctc.c src/gdevdsp.h src/gdevpipe.c src/gspmdrv.rc zlib/compress.c src/gdevsvga.c src/gdevpdti.c lib/pf2afm src/gdevsvga.h src/gdevpdti.h src/gdevepsn.c src/gsparam2.c src/gp_mktmp.c src/stat_.h src/zfsample.c src/gsstruct.h jbig2dec/jbig2_huffman.c lib/gs_wl5_e.ps src/zfdecode.c src/gximag3x.c src/gsgc.h jbig2dec/jbig2_huffman.h src/gscolor1.c src/dwtrace.c src/gdevmswn.c src/gxfcmap.h src/ierrors.h src/gdevjpeg.c src/gximag3x.h src/siinterp.c src/gscolor1.h src/dwtrace.h src/gdevmswn.h src/gdevbbox.c src/opdef.h src/siinterp.h lib/opdfread.ps lib/ps2pdf14.cmd src/gdevbbox.h lib/gs_mex_e.ps src/iddict.h lib/gs_std_e.ps src/gp_stdin.c doc/History2.htm src/gsexit.h src/gendev.c src/gdevtfax.c src/gdevpjet.c src/gdevphex.c src/gslparam.h src/gp.h src/ivmspace.h src/gshtscr.c src/gdevtfax.h jbig2dec/jbig2_image_pbm.c src/bench.c src/gsnogc.c src/gsnogc.h src/gdevbmpa.c src/stdio_.h src/tttables.h src/gdevemap.c src/gp_sysv.c jasper/src/libjasper/include/jasper/jas_debug.h src/gsrefct.h src/iastruct.h toolbin/tests/revert_pdfbaseline man/de/dvipdf.1 src/gdevbjc.h lib/gs_mro_e.ps lib/ps2ps.bat src/gdevpsf2.c jbig2dec/jbig2_arith_int.c src/gzht.h doc/Develop.htm src/gxcvalue.h jbig2dec/jbig2_arith_int.h lib/mkcidfm.ps src/sstring.c lib/cid2code.ps src/gxpath.c src/scfparam.c src/gdevupd.c src/iconf.c src/sstring.h src/gxpath.h src/interp.c src/zcrd.c src/dwnodll.c src/iconf.h doc/C-style.htm src/gdevm40.c lib/gs_cff.ps lib/zeroline.ps src/dwdll.c src/interp.h man/ps2pdfwr.1 src/dwdll.h src/gsiodisk.c src/sjpegd.c src/gspath2.h lib/rollconv.ps src/gdevpsim.c src/dvx-tail.mak lib/lp386.bat src/errors.h src/gp_msprn.c lib/lprsetup.sh src/gxino12b.c src/gdevmgr.c src/gdevpdfp.c src/gxacpath.c src/gslib.c src/gdevmgr.h src/ziodev.c src/iccinit0.c src/sdcte.c doc/Release.htm src/gslib.h lib/gs_dpnxt.ps lib/pdf_draw.ps src/gxccache.c src/ifont1.h src/zfunc0.c src/gxmatrix.h src/gxfdrop.c src/ifunc.h src/gp_unifs.c zlib/contrib/ada/read.adb src/gxfdrop.h src/gxobj.h toolbin/tests/update_pdfbaseline src/gsiorom.c src/gxhintn.c src/isstate.h jbig2dec/jbig2_text.c jbig2dec/jbig2_hufftab.h src/gdevm2.c src/gxhintn.h src/ifilter2.h src/gspath.c src/gdevwddb.c src/gxpcopy.c src/gspath.h src/gscolor3.c src/gdevdjet.c man/gsnd.1 lib/ps2pdf12 src/gscolor3.h lib/ps2pdf13 lib/ps2pdf14 lib/pdf2dsc.ps lib/gs_pfile.ps src/rinkj/rinkj-dither.c src/zpath1.c src/gdevm24.c doc/History3.htm src/gp_unix.c src/rinkj/rinkj-dither.h src/inamedef.h jbig2dec/config_win32.h lib/gs_rdlin.ps src/ilocate.c src/gxdcolor.c src/gdevpm.c src/gscdefs.h src/vmsmath.h src/gscencs.c src/gxdcolor.h src/gzstate.h src/gschar0.c src/gdevpm.h src/gdevbmpc.c Resource/ColorSpace/DefaultRGB src/iht.h src/zdevice.c src/gscie.c src/gscencs.h lib/gs_cidfn.ps doc/Changes.htm lib/addxchar.ps src/gxi16bit.c src/ifapi.h src/zimage2.c src/gscie.h src/iastate.h src/pipe_.h src/gxbitops.h src/ipacked.h lib/font2pcl.ps lib/PDFA_def.ps src/gsfunc3.c src/gpsync.h src/gdevperm.c src/gswin.rc src/gsccode.h src/gsfunc3.h src/gxpath2.c src/gp_strdl.c src/genconf.c src/gxdevbuf.h lib/gs_ciecs2.ps toolbin/tests/gsparamsets.py lib/lpr2.bat lib/lp386r2.bat src/sa85d.c src/gscsel.h man/pdf2dsc.1 toolbin/tests/update_specific lib/gsbj.bat src/openvms.mmk src/sa85d.h src/gp_stdia.c src/zcolor2.c doc/Hershey.htm src/gdev3b1.c lib/wmakebat.bat lib/gst.bat src/gxttf.h src/ttconf.h src/genht.c src/zgeneric.c lib/type1enc.ps lib/dvipdf man/de/printafm.1 src/gxarith.h src/gxclrect.c src/gsshade.c lib/pdf_sec.ps src/gsshade.h src/msvclib.mak src/gsicc.c src/zcid.c src/dwsetup.cpp src/gdevp2up.c lib/pv.sh src/gsicc.h src/dwuninst.rc lib/PDFX_def.ps lib/viewjpeg.ps lib/image-qa.ps src/gdevpdfr.c src/gdevppla.c autogen.sh jasper/src/appl/jasper.c toolbin/gsmake src/zmisc1.c src/gsdevmem.c src/gdevppla.h src/wccommon.mak jasper/src/libjasper/include/jasper/jas_string.h src/gxfcopy.c src/gdevpsft.c lib/ps2epsi src/gxfcopy.h src/gsmisc.c src/gdevtfnx.c lib/wftopfa.ps src/gdevm4.c src/gxicolor.c src/gxpageq.c lib/ps2ai.ps src/gsdparam.c lib/pdf2ps.cmd src/winint.mak jasper/src/libjasper/include/jasper/jas_seq.h man/ps2pdf.1 doc/Make.htm doc/Details8.htm src/gxpageq.h src/gsstype.h src/gxdevrop.h src/gdevprn.c src/gdevcif.c lib/gs_resst.ps src/gxdevndi.c doc/History4.htm toolbin/tests/check_comments.py src/gdevprn.h src/gxdevndi.h jasper/src/libjasper/base/jas_tvp.c src/iesdata.h src/dxmain.c lib/gs_sepr.ps src/gdevpdfc.c src/iapi.c lib/gstt.bat src/spngpx.h src/gdevpdfc.h src/gdevherc.c src/btoken.h src/iapi.h src/zcharout.c toolbin/tests/gscheck_fuzzypdf.py src/gdevepsc.c toolbin/drawafm.ps lib/gs_il1_e.ps src/gxdevice.h src/gximage2.c src/srld.c src/zht.c src/gxshade4.c lib/gs_stres.ps src/gxshade4.h src/iinit.c src/gdevstc1.c src/gxbitmap.h src/gxccman.c src/watcw32.mak lib/ps2pdfxx.bat src/iinit.h src/gsalphac.c src/gxshade.c toolbin/pre src/sbtx.h src/zfunc.c src/gsclipsr.c src/gsalphac.h src/gxshade.h src/gsrop.c src/gsclipsr.h src/idict.c src/gxistate.h src/gsrop.h src/gscoord.c jbig2dec/memcmp.c src/idict.h doc/Public.htm lib/ps2pdf12.bat src/gxcolor2.h src/macos_carbon_d_pre.h zlib/example.c src/gscoord.h jasper/src/libjasper/jpc/jpc_tsfb.c toolbin/pre.tcl src/genarch.c jasper/src/libjasper/jpc/jpc_tsfb.h src/gscedata.c doc/Projects.htm lib/viewcmyk.ps src/gscpm.h src/gxcindex.h src/gscedata.h src/gp_nsync.c src/gdevmr2n.c src/gdevdgbr.c src/gdevdsha.c src/gdevxcf.c src/zlib.mak lib/gs_fapi.ps src/gxtext.h src/zchar1.c src/gscdevn.c lib/pf2afm.ps src/gscdevn.h jasper/src/libjasper/jpc/jpc_fix.h src/gdevpdft.c src/gdevpsdi.c zlib/adler32.c src/shcgen.c src/gsiparam.h lib/pphs src/zmisc3.c src/zfapi.c src/zfunc4.c lib/gsdj500 src/malloc_.h src/shcgen.h src/gscpixel.c lib/pdf_font.ps lib/viewgif.ps lib/gs_diskn.ps src/gscpixel.h lib/gs_btokn.ps lib/ps2epsi.cmd toolbin/tests/check_dirs.py toolbin/gsmake.tcl src/gdevplnx.c lib/lines.ps src/dirent_.h src/gdevplnx.h jasper/src/appl/imgcmp.c src/zfzlib.c lib/FAPIcidfmap src/Makefile.in src/gscsepr.c src/iutil2.c doc/History5.htm src/gscsepr.h src/gsimage.c src/gxwts.c src/ipcolor.h src/iutil2.h src/sjpeg.h src/gstext.c src/gsimage.h lib/gs_fform.ps src/gxwts.h src/msvccmd.mak src/gstext.h src/gsflip.c src/gdevpdfe.c src/rinkj/rinkj-byte-stream.c src/gsflip.h src/rinkj/rinkj-byte-stream.h jasper/src/libjasper/jpc/jpc_mct.c src/gdevdljm.c src/zdpnext.c src/geninit.c jasper/src/libjasper/jpc/jpc_mct.h src/gdevdljm.h lib/gs_ll3.ps src/zusparam.c man/pfbtopfa.1 src/gxchrout.c src/gximage4.c src/gxchrout.h src/gxshade6.c src/gxcoord.h jbig2dec/jbig2_page.c src/gdevpdf.c src/macosx.mak src/tttypes.h src/zpacked.c toolbin/tests/gstestutils.py src/gsparamx.c src/gdevstc3.c src/gp_dosfe.c src/iutil.c src/szlibc.c toolbin/maketars.tcl src/gsparamx.h lib/gs_cmdl.ps lib/gs_cmap.ps src/gdevpng.c src/iutil.h jasper/src/libjasper/include/jasper/jas_fix.h jbig2dec/test_jbig2dec.py lib/gs_il2_e.ps src/gzpath.h zlib/zconf.in.h src/gxcdevn.h src/sfxstdio.c lib/ps2pdf13.bat lib/ps2pdfwr src/gxropc.h toolbin/makeset.tcl src/gxfcid.h src/gxfont.h lib/gs_agl.ps src/gdevccr.c lib/ps2ascii.cmd src/mkromfs.c zlib/contrib/ada/zlib-streams.adb src/gslibctx.c zlib/gzio.c src/gdevdcrd.c src/unix-dll.mak src/gslibctx.h src/zbseq.c src/ziodevsc.c src/gdevdcrd.h src/instcopy src/gdevl31s.c man/de/ps2pdf.1 src/zfrsd.c src/iosdata.h src/gdevmacpictop.h src/gdevdjtc.c lib/showchar.ps src/gxino16b.c toolbin/tests/rasterdb.py zlib/contrib/ada/zlib-streams.ads src/gdevpcx.c src/gdevpxop.h src/zfileio.c jasper/src/libjasper/jpc/jpc_tagtree.c src/slzwd.c src/gdevpdfv.c lib/pcharstr.ps src/gxifast.c src/gxpflat.c jasper/src/libjasper/jpc/jpc_tagtree.h src/dwimg.c src/fapi_ft.c lib/pdf_ops.ps src/zsysvm.c src/gsimpath.c src/dwimg.h src/gdevx.c src/gsmemlok.c src/gsos2.rc lib/gs_cidtt.ps lib/gs_dps2.ps src/gximage.c src/gdevx.h man/printafm.1 src/gsmemlok.h src/ziodevs.c src/unixansi.mak jasper/src/libjasper/pgx/pgx_cod.h src/gdevpsfx.c ijs/Makefile.am src/gximage.h src/gscspace.c src/gdevmacttf.h src/gdevm8.c lib/gsdj.bat src/gdevpnga.c lib/gs_mgl_e.ps examples/waterfal.ps src/gsropc.c src/gscspace.h src/gsxfont.h src/ttfsfnt.h src/gsjconf.h man/pdfopt.1 toolbin/tests/make_two_versions src/gsfcid.c src/zstack.c src/gsfont.c jasper/src/libjasper/base/jas_stream.c src/gsropc.h src/gsfont.h lib/gs_ttf.ps lib/unprot.ps src/isave.c lib/gslp.bat lib/align.ps doc/History6.htm src/gdevm64.c src/isave.h src/zdict.c toolbin/leaks.tcl src/gxfrac.h toolbin/tmake.tcl src/gx.h jasper/src/libjasper/jpc/jpc_util.c src/iccfont.c src/gdevpdfg.c lib/markpath.ps src/gdevps.c lib/pdf2dsc.bat src/png_.h src/gxcllzw.c src/gdevpdfg.h lib/gs_patrn.ps doc/API.htm src/gxhttile.h toolbin/smoke.ps src/gdevpdtb.c src/gsdps1.c lib/gs_res.ps src/time_.h src/gdevpdtb.h src/ttfinp.c src/gshsb.c src/pcwin.mak src/vms_x_fix.h src/ziodevst.c src/smtf.c src/ttfinp.h src/gshsb.h src/gdevtifs.c src/x_.h lib/gs_devcs.ps man/pf2afm.1 src/smtf.h src/gdevtifs.h src/gximono.c src/fapiufst.c Resource/Decoding/Latin1 lib/viewpbm.ps src/szlibe.c lib/ps2ps2.cmd src/gxctable.c src/main.h toolbin/headers.tcl src/gp_vms.c src/gp_iwatc.c src/gxctable.h src/ugcclib.mak src/gdev8bcm.c src/gp_os9.c src/dwsetup.h src/gdevbj10.c src/gxclipm.c src/gdev8bcm.h src/zpaint.c lib/ps2pdf14.bat src/stdpre.h src/iplugin.c src/gxclipm.h src/gsgdata.c]
2005-12-26T22:36:16.000000Z Ray Johnston
Enable use of "Bold" in BaseFont name when doing font substitution from PDF files that don't embed all fonts. Bug 688432 for customer 670. DETAILS: There is not really a 'Bold' flag in the FontDescriptor Flags (the ForceBold infers a Bold font, but is not present for all Bold fonts since it has a different meaning). The pdf_font.ps logic had logic for "Narrow" in the font name, but not "Bold". Enabling recognition of "Bold" works for this file and probably most others. EXPECTED DIFFERENCES. unknown, but if so progressions will be updated.[lib/pdf_font.ps]
2005-12-26T14:38:15.000000Z Alex Cherepanov
Latest CMap files from ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe Bug 688412[Resource/CMap/78-H Resource/CMap/Hojo-H Resource/CMap/GB-RKSJ-H Resource/CMap/CNS06-RKSJ-H Resource/CMap/UniHojo-UCS2-V Resource/CMap/CNS2-H Resource/CMap/RKSJ-H Resource/CMap/78-V Resource/CMap/Hojo-V Resource/CMap/TCVN-RKSJ-H Resource/CMap/CNS2-V Resource/CMap/Hiragana Resource/CMap/RKSJ-V Resource/CMap/Roman Resource/CMap/UniKS-UTF32-H Resource/CMap/KSCpc-EUC-V Resource/CMap/CNS05-RKSJ-H Resource/CMap/UniHojo-UTF8-H Resource/CMap/CNS15-RKSJ-H Resource/CMap/Adobe-Korea1-0 Resource/CMap/Adobe-Korea1-1 Resource/CMap/Adobe-Korea1-2 Resource/CMap/78-RKSJ-H Resource/CMap/HKdlb-B5-V Resource/CMap/UniKS-UTF32-V Resource/CMap/KSC2-RKSJ-H Resource/CMap/UniHojo-UTF32-H Resource/CMap/UniHojo-UTF8-V Resource/CMap/HKscs-B5-H Resource/CMap/78-RKSJ-V Resource/CMap/GBT-RKSJ-H Resource/CMap/HKgccs-B5-V Resource/CMap/Add-H Resource/CMap/Adobe-GB1-0 Resource/CMap/UniHojo-UTF32-V Resource/CMap/EUC-V Resource/CMap/Adobe-GB1-1 Resource/CMap/Adobe-GB1-2 Resource/CMap/UniGB-UCS2-V Resource/CMap/Adobe-GB1-3 Resource/CMap/HKm471-B5-V Resource/CMap/Adobe-GB1-4 Resource/CMap/HKscs-B5-V Resource/CMap/CNS04-RKSJ-H Resource/CMap/Adobe-GB1-5 Resource/CMap/UniCNS-UTF32-H Resource/CMap/Add-V Resource/CMap/Hojo-EUC-H Resource/CMap/UniJISPro-UCS2-V Resource/CMap/GBT-H Resource/CMap/UniKS-UTF8-H Resource/CMap/UniCNS-UTF32-V Resource/CMap/Ext-RKSJ-V Resource/CMap/Hojo-EUC-V Resource/CMap/UniGB-UTF8-H Resource/CMap/GBT-V Resource/CMap/Adobe-Japan1-0 Resource/CMap/GBK-EUC-V Resource/CMap/Adobe-Japan1-1 Resource/CMap/UniKS-UTF8-V Resource/CMap/Adobe-Japan1-2 Resource/CMap/UniKS-UTF16-H Resource/CMap/CNS03-RKSJ-H Resource/CMap/Adobe-Japan1-3 Resource/CMap/Adobe-Japan1-4 Resource/CMap/Adobe-Japan1-5 Resource/CMap/Adobe-Japan1-6 Resource/CMap/UniJIS-UTF32-H Resource/CMap/B5-H Resource/CMap/UniGB-UTF8-V Resource/CMap/UniKS-UTF16-V Resource/CMap/UniJIS-UCS2-H Resource/CMap/UniHojo-UTF16-H Resource/CMap/V Resource/CMap/KSC-H Resource/CMap/UniJIS-UTF32-V Resource/CMap/B5-V Resource/CMap/UniJISPro-UTF8-V Resource/CMap/Katakana Resource/CMap/CNS02-RKSJ-H Resource/CMap/UniHojo-UTF16-V 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/GBKp-EUC-V Resource/CMap/GBK2K-V Resource/CMap/UniCNS-UTF16-V Resource/CMap/UniGB-UTF32-V Resource/CMap/Adobe-CNS1-0 Resource/CMap/Adobe-CNS1-1 Resource/CMap/UniJIS-UTF8-H Resource/CMap/Adobe-CNS1-2 Resource/CMap/UniCNS-UCS2-V Resource/CMap/Adobe-CNS1-3 Resource/CMap/Adobe-CNS1-4 Resource/CMap/GB-H Resource/CMap/Adobe-CNS1-5 Resource/CMap/Adobe-Japan2-0 Resource/CMap/CNS01-RKSJ-H Resource/CMap/UniJISX0213-UTF32-H Resource/CMap/UniJIS-UTF8-V Resource/CMap/UniJIS-UTF16-H Resource/CMap/GB-V Resource/CMap/UniJISX0213-UTF32-V Resource/CMap/UniJIS-UTF16-V Resource/CMap/UniCNS-UTF8-H Resource/CMap/UniJIS-UCS2-HW-H Resource/CMap/HKm314-B5-V Resource/CMap/Hankaku Resource/CMap/UniCNS-UTF8-V Resource/CMap/WP-Symbol Resource/CMap/NWP-H Resource/CMap/CNS1-H Resource/CMap/Hojo-RKSJ-H Resource/CMap/UniGB-UTF16-H Resource/CMap/78-EUC-H Resource/CMap/NWP-V Resource/CMap/CNS1-V Resource/CMap/UniGB-UTF16-V Resource/CMap/78-EUC-V Resource/CMap/KSC-RKSJ-H Resource/CMap/ETHK-B5-H Resource/CMap/Ext-H Resource/CMap/KSC-Johab-H Resource/CMap/CNS07-RKSJ-H Resource/CMap/78ms-RKSJ-H Resource/CMap/HK-RKSJ-H Resource/CMap/GBTpc-EUC-H Resource/CMap/ETHK-B5-V Resource/CMap/Ext-V Resource/CMap/KSC-Johab-V Resource/CMap/78ms-RKSJ-V Resource/CMap/UniJISPro-UCS2-HW-V Resource/CMap/GBTpc-EUC-V]
2005-12-23T20:26:00.000000Z leonardo
Fix handling of broken TrueType fonts that have a loca table that is not in order (continued 2). DETAILS : Bug 688461 "TrueType-Problem with Core-Dump (Solaris)". This is a further improvement of the patch for Bug 687889 "/rangecheck in --string--". The last patch erroneusely computed loca_size, causing a string length problem when running pdfwrite with the test file of the bug 688461. EXPECTED DIFFERENCES : None.[src/gstype42.c]
2005-12-23T15:39:07.000000Z leonardo
Fix handling of broken TrueType fonts that have a loca table that is not in order (continued). DETAILS : Bug 688461 "TrueType-Problem with Core-Dump (Solaris)". This is a further improvement of the patch for Bug 687889 "/rangecheck in --string--". 1. Inserted a code for ignoring excessive data at end of 'loca' - see comment in code. 2. When (1) works, a warning is printed to stderr (in debug build only). 3. Fixed C coding style in gstype42.c revision 1.49. We're not sure that this patch is good for any incorrect TrueType font, because the old code keeps some artifacts without enough explanation. We inserted a debug printing to study related cases better. EXPECTED DIFFERENCES : None.[src/gstype42.c]
2005-12-22T18:46:45.000000Z leonardo
Fix (pdfwrite) : CID fonts got incorrect FontBBox. DETAILS : Bug 688467 "pdfwrite device creates incorrect PDF from EPS with CIDFont". This fixes the 1st part of the bug 688467. See the bug about the 2nd part. EXPECTED DIFFERENCES : None.[src/gdevpdtd.c]
2005-12-22T06:47:17.000000Z Alex Cherepanov
Recursively enumerate filter parameters and resolve indirect objects. Bug 688415 from customer 670.[lib/pdf_base.ps]
2005-12-22T06:40:13.000000Z Alex Cherepanov
Correct a few typos in 16-bit pixel differencing filter. Bug 687986 DETAILS : This is a partial fix for a dead code. The patch fixes simple typos in 16-bit code, which are difficult to spot because of the nested macroses. Assignment ss->prev[0] = s0 is needed because the code for handling leftover bytes uses ss->prev[0]. The filter still falls into an infinite loop sometimes, but this fix doesn't address this problem.[src/spdiff.c]
2005-12-22T06:10:31.000000Z Alex Cherepanov
Move ReadString and related procedures from systemdict to local environment to avoid a name conflict in a file that defines ReadString in userdict. Bug 687848 from customer 1120[lib/gs_cidfn.ps]
2005-12-21T03:57:16.000000Z Alex Cherepanov
Add missing ps2write device to Makefile.in Bug 688420[src/Makefile.in]
2005-12-21T03:36:12.000000Z Alex Cherepanov
Fix serious warnings generated by GCC 3.2 on Cygwin. Bug 687622[src/gdevxini.c src/gdevpdtb.c src/gdevpdfe.c]
2005-12-20T22:57:52.000000Z Ralph Giles
Commit Raph's patch to ignore invalid channel mappings. This gives better behaviour on a common file breakage with CMYK jpeg images in PDF.[jpeg/jdmarker.c]
2005-12-20T14:36:30.000000Z leonardo
Fix (pdfwrite) : A tolerance to a long 'head' table of a TrueType font. DETAILS : Bug 688409 "regression cvs 11/14/2005 ps2pdf fails with "Error: /invalidfont in --xshow--"". Ignore and skip data beond the end of 'head' table. EXPECTED DIFFERENCES : None.[src/gdevpsft.c]
2005-12-19T15:22:47.000000Z leonardo
Fix (pdfwrite) : Can't skip identity ToUnicode CMap for a composite font. DETAILS : Bug 688447 "ps->pdf korean english mixed text fails to text extract english correctly.". Not sure why old code skips identity ToUnicode CMap - likely it was taken from scratch and now appears incorrect. With Type 0 fonts the PDF specification allows to skip ToUnicode only when a font has a predefined CMap name as a value Encoding entry. However we don't recognize standard CMap because our PS interpreter doesn't provide a neccessary data - see bug 688459. EXPECTED DIFFERENCES : None.[src/gdevpdtw.c]
2005-12-18T18:11:25.000000Z Ralph Giles
Correct an incorrect return value. Thanks to Leonardo for pointing this out.[jbig2dec/jbig2_text.c]
2005-12-17T09:11:10.000000Z Ralph Giles
Pass the CFLAGS makefile variable when building auxiliary programs on MSVC. This is necessary to that genarch sees the GX_COLOR_INDEX_TYPE define to calculate the corresponding sizeof define. This is already the case in the autoconf/unix build. Bug 687523.[src/msvccmd.mak]
2005-12-17T02:08:58.000000Z Ralph Giles
Document the change synchronization issue with the two GX_COLOR_INDEX_TYPE fallbacks. Bug 687523.[src/gxcindex.h src/genarch.c]
2005-12-17T02:04:33.000000Z Ralph Giles
Have genarch define ARCH_SIZEOF_GX_COLOR_INDEX in arch.h. Bug 687523. DETAILS: One can't use the sizeof operator in preprocessor directives, so there's been no way to do compile-time codepath choice based on the chosen size of the color index type, which is quite important for performance. Therefore we add a test to genarch.h to make this runtime test available throughout the code when Ghostscript is built. Note that this is a little fragile since the GX_COLOR_INDEX_TYPE define is set by the toplevel makefiles. If nothing is set, the code in gxcindex.h falls back to 'unsigned long int'. genarch.c now has the same fallback, but obviously those should be kept in sync.[src/genarch.c]
2005-12-17T01:56:04.000000Z Ralph Giles
Merge latest jbig2dec trunk into cvs. This is not released code.[jbig2dec/config_win32.h jbig2dec/jbig2_metadata.c jbig2dec/jbig2_image_pbm.c jbig2dec/jbig2.c jbig2dec/jbig2_generic.h jbig2dec/jbig2_image.c jbig2dec/jbig2.h jbig2dec/jbig2_metadata.h jbig2dec/jbig2_priv.h jbig2dec/jbig2_image_png.c jbig2dec/jbig2_image.h jbig2dec/jbig2dec.c jbig2dec/os_types.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_text.c jbig2dec/jbig2_hufftab.h jbig2dec/jbig2_huffman.c jbig2dec/jbig2_arith_int.h jbig2dec/jbig2_huffman.h jbig2dec/jbig2_mmr.c jbig2dec/jbig2_refinement.c jbig2dec/jbig2_arith_iaid.c jbig2dec/jbig2_mmr.h jbig2dec/test_jbig2dec.py jbig2dec/memcmp.c jbig2dec/jbig2_segment.c jbig2dec/jbig2_arith_iaid.h jbig2dec/Makefile.am jbig2dec/jbig2_generic.c]
2005-12-16T22:16:02.000000Z Ralph Giles
Remove references to little-used mailing lists.[doc/Release.htm]
2005-12-16T22:12:59.000000Z Ralph Giles
Remove references to the bug-gs mailing list in the manpages, and add references to bugs.ghostscript.com to gs and ps2pdf. Also list Artifex as an author before artofcode.[man/pf2afm.1 man/dvipdf.1 man/ps2ascii.1 man/printafm.1 man/eps2eps.1 man/de/font2c.1 man/de/gsnd.1 man/de/pdfopt.1 man/de/pdf2ps.1 man/de/ps2pdf.1 man/gsnd.1 man/font2c.1 man/pdfopt.1 man/ps2pdf.1 man/pdf2ps.1 man/de/wftopfa.1 man/de/ps2ps.1 man/pfbtopfa.1 man/de/dvipdf.1 man/de/ps2ascii.1 man/gslp.1 man/wftopfa.1 man/ps2pdfwr.1 man/ps2ps.1 man/de/printafm.1 man/gs.1]
2005-12-16T21:52:51.000000Z Ralph Giles
Remove the bug report instructions from the documentation. Clearly no one is using this, and just pointing people at the tracker is simplest.[doc/Readme.htm doc/Bug-form.htm doc/Bug-info.htm]
2005-12-15T21:21:50.000000Z leonardo
Fix (TT interpreter) : Uninitialized data access while interpreting a high subglyph tree (continued). DETAILS : Bug 688421 "Ghostscript deadloop when processing PDF". The last latch missed a return code in one branch. EXPECTED DIFFERENCES : None.[src/gxfill.c]
2005-12-15T19:55:41.000000Z Alex Cherepanov
Skip '+' character in real numbers during CFF font generation. Ignore the reserved nibble 0xd in encoded real numbers in CFF fonts. Bug 688449[src/gdevpsf2.c lib/gs_cff.ps]
2005-12-15T12:21:17.000000Z leonardo
Fix : Iproving the coding style. DETAILS : An indentation was confusing in gs_pdfwr.ps . EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps]
2005-12-15T07:54:30.000000Z Ray Johnston
Continuation of previous patch for another branch to handle the /URI key in a pdfmark, moving it into the /A (Action) dict with /S key value /URI. Bug 688414 for customer 515.[src/gdevpdfm.c]
2005-12-14T21:33:39.000000Z Alex Cherepanov
Normalize the BBox value in the shading dictionary. Bug 688433[lib/pdf_draw.ps]
2005-12-14T18:44:45.000000Z Ralph Giles
Provide more specific fonts for the headers since CJK Windows, uses a bitmap font for just 'sans-serif'. Closes bug 688442.[doc/gs.css]
2005-12-14T18:12:59.000000Z Ralph Giles
Improve the wording of two error messages. Related to bug 688451.[src/gxttfb.c]
2005-12-14T15:44:51.000000Z leonardo
Fix (TT interpreter) : Uninitialized data access while interpreting a high subglyph tree. DETAILS : Bug 688421 "Ghostscript deadloop when processing PDF". Actually the behavior was indeterministic due to BuildGlyphOutlineAux wrongly computed a points array offset while concatinating point lists of subglyphs. The error happened only with subglyphs, which include subglyphs (i.e. when a subglyph tree height is greater than 2). The test document embeds a font with such glyph. 1. The core of the change is in ttfmain.c : it fixes the incorrect offset computation. 2. An assertion added into gxpflat.c for an earlier detection of an incorrect behavior. Without this assertion another assertion fails in same module few moments later, and the analyzis appears some complicated. 3. Check and propagate a return code from gx_flattened_iterator__init in gxfill.c . EXPECTED DIFFERENCES : None, because our test base doesn't contain such cases. Will add one after this fix is committed.[src/ttfmain.c src/gxpflat.c src/gxfill.c]
2005-12-14T15:07:49.000000Z Alex Cherepanov
Fix a spelling error in an error message, s/fhe/the/ . Bug 688451[src/gxttfb.c]
2005-12-13T13:38:12.000000Z leonardo
Fix (pdfwrite) : Upgrade the PDF/X version identifier. DETAILS : Adobe Acrobat 7 Preflight Tool doesn't accept PDF/X-3:2001. EXPECTED DIFFERENCES : None.[lib/PDFX_def.ps]
2005-12-12T14:40:29.000000Z leonardo
Fix (font machinery) : Improve the font-matrix cache management. DETAILS : Bug 688422 "Assertion failed! in gxccman.c". This patch restricts the probability of failure with a reasonable limit - 200 faces per BuildChar. Ratrher it doesn't fix the bug completely, the failure won't happen in practical cases. This patch maintains a list of font-matrix pairs in the order of accessing them. When cache overflows, it drops the pair, which was not accessed a long time ago. See comments in code for more details. If one needs to drop the constraint for the number of font-matrix pairs per charproc, entire cache algorithm to be revised. First, it needs to lock font-matrix pairs while they are referred by a text enumerator, which executes a charproc. Second, need a workaround for the case of 200 "nested" charprocs, which exceed entire cache with locked pairs. This patch adds new 'assert' statements into code. We cannot replace them with return codes, because a container function is being called by the garbager as a part of a finalization routine of font objects, with no way to propagate an error code. EXPECTED DIFFERENCES : None.[src/gxfcache.h src/gxccman.c src/gxccache.c]
2005-12-12T09:48:09.000000Z leonardo
Fix (font machinery) : Provide an additional debug data about text enumeration. DETAILS : This relates to Bug 688422 "Assertion failed! in gxccman.c". It doesn't fix the bug, simplifies its analyzis. We decided to make this change permanent because in the past we spent many efforts for anayzis of such kind. Rather text_enum_id is not used with release build, it is still defined to keep same structure size. EXPECTED DIFFERENCES : None.[src/gxfcache.h src/gstext.c src/gsfont.c src/gxtext.h src/gxfont.h]
2005-12-10T11:08:05.000000Z leonardo
Fix : Remove 'assert' from gxccman.c . DETAILS : Bug 688422 "Assertion failed! in gxccman.c". It doesn't fix the bug, but avoids harmful effects, which 'assert' implementation causes on some embedded systems. The assertion in gsccman.c failed too frequently during last 2 years. EXPECTED DIFFERENCES : None.[src/gxchar.c src/gxccman.c src/gxchar.h src/gxccache.c]
2005-12-09T18:39:09.000000Z Alex Cherepanov
Work around a compile error on Solaris 9 (Sun C 5.5). Bug 688411 DETAILS : Solaris 9 (Sun C 5.5) compiler cannot initialize a 'const' array unless it is 'static const'.[src/gxshade6.c]
2005-12-08T21:13:22.000000Z Alex Cherepanov
Work around a bug in PDF files produced by SPIRIT 12.30. Create the missing root of the page tree when /Pages entry in the document root points directly to the 1st page instead of the /Pages node. Fix bug 688419 from customer 850.[lib/pdf_main.ps]
2005-12-07T19:55:35.000000Z leonardo
Fix (pdfwrite) : Imprecise clipping. DETAILS : Bug 688407 "pdfrwrite : A shading displaced converting Altona_Visual_1v2a_x3.pdf". When a clipping path is a single rectangle, rounded coordinates were written into PDF, because the internal representation rounds them to device pixels. This doesn't comply with complex cases, in which clipping path is written as a high level object with unrounded coordinates. After scaling the generated PDF visual defects appeared. EXPECTED DIFFERENCES : pdfwrite 300dpi : "Altona-Testsuite_p2_S_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "Bug688308.ps" "test.pdf"[src/gdevpdfd.c]
2005-12-07T12:53:30.000000Z leonardo
Fix (pdfwrite) : A coding style improvement. DETAILS : This change is syntacticly equivalent. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c]
2005-12-05T19:14:22.000000Z Ray Johnston
Change handling of /URI key/value pair in pdfmark parameters to move it from the upper level Annot dict down into the /A (Action) dict with a /A (Subtype)i value of /URI so that Adobe Reader will recognize it as a hyperlink to a web site. Bug 688414 for customer 515. DETAILS: The URI key/value pair from the pdfmark list would ordinarily go into the upper level Annot dict. Instead this is deferred and processed with the /Action (/A) into the /A dict. A /S key with value /URI is also added into the /A dict. This is done prior to processing keys that may have been present in the /Action key, so that any /S (or /Subtype) and any /URI from the pdfmark /A list will replace the one we move from the Annot dict. This may not be exactly what Distiller does in the event of such a conflict. EXPECTED DIFFERENCES: None. (doesn't change the appearance, just the action when viewed with Adobe Reader).[src/gdevpdfm.c]
2005-11-30T16:56:01.000000Z leonardo
Fix (pdfwrite) : ToUnicode CMap was written with incorrect Postscript. DETAILS : CMapName was undefined in the ToUnicode CMap stream. EXPECTED DIFFERENCES : None.[src/gdevpdtw.c src/gdevpsfm.c]
2005-11-29T12:32:57.000000Z leonardo
Fix : Dangling pointers after a font cache overlow. DETAILS : Bug 688392 "Crash after font enumeration." When a scaled font is being removed from the font cache, the old code released its UID. However other fm pairs in the cache could store copies of same UID. Those copies got dangling pointers to UID data. We're not sure why the old copy resets UID of a font when a font is being excluded from cache. Likely it is an incorrect hack. This patch disables the hack and documents our understanding of the old code. See comments in code. EXPECTED DIFFERENCES : None.[src/gsfont.c]
2005-11-26T04:26:31.000000Z Ray Johnston
Handle yet enother possibly invalid PDF where the /Subtype of a FOnt is / (and empty name). BUg 688398 for customer 850. DETAILS: This was checked for in one path, but not both.[lib/pdf_font.ps]
2005-11-25T20:22:19.000000Z leonardo
Fix : Prevent a crash with an invalid FontInfo. DETAILS : Bug 688355 "Segmentation fault occurs in rendering Japanese text". The test document defines a Type 3 font, in which FontInfo has a string value. That isn't a correct Postscript, but we prefer to make it not crashing. EXPECTED DIFFERENCES : None.[src/zbfont.c]
2005-11-25T15:01:52.000000Z Alex Cherepanov
Fix a SEGV in ps2pdf conversion of imagemask when -dConvertCMYKImagesToRGB=true Fix bug 688390[src/gdevpdfi.c]
2005-11-23T18:09:40.000000Z Raph Levien
Fix: Remove attempt to cleanup GS state at gs_abort(), because the attempt to cleanup often triggers a recursive abort. Fixes bug #603934.[src/imain.c]
2005-11-23T17:44:37.000000Z Ray Johnston
Regularize the use of signalerror (a private Ghostscript operator used to report errors from within PS procedures) so that standard PS operators use the systemdict version (which is usually defined with 'odef') so that the error message is not misleading. Fix one instance of a missing operator name below the error name on the stack. Bug 687806. DETAILS: There is still some possibly confusing usage of signalerror where the operator operand is of the form /pseudo_operator cvx /errorname signalerror. I did not change these.[lib/gs_devcs.ps lib/gs_dps.ps lib/gs_diskn.ps lib/gs_res.ps lib/gs_l2img.ps lib/gs_ll3.ps lib/gs_btokn.ps lib/gs_fapi.ps lib/gs_pfile.ps lib/gs_setpd.ps lib/gs_cmap.ps lib/gs_devpxl.ps lib/gs_init.ps]
2005-11-23T14:09:22.000000Z leonardo
pdfwrite : Provide a PDF/A document conformity. DETAILS : This patch is a part of the PDF/A project. Provide object conversion when PDF/A doean't allow a specific object type : - Check device parameters compatibility (gdevpdfp.c). - Skip transfer functions (gdevpdfg.c). - Skip image interpolation (gdevpdfj.c). - Convert transparency into bitmaps (gdevpdft.c). - Execute /PS pdfmark streams (gs_pdfwr.ps), and fix a bug (stack balance) in there. - Add a sample PDF/A definition file. - Update the user manual with PDF/A generation. Minor change : - Fix a comment in PDFX_def.ps . EXPECTED DIFFERENCES : None.[lib/PDFX_def.ps src/gdevpdfp.c doc/Ps2pdf.htm src/gdevpdft.c src/gdevpdfg.c lib/PDFA_def.ps src/gdevpdfj.c lib/gs_pdfwr.ps]
2005-11-23T06:51:22.000000Z Dan Coby
Fix for 688348 transparency image smask bug. The test file used PDF 1.4 transparency and had an SMask which was a type 1 image with 16 bits per component. The SMask logic assumed a maximum of 8 bits. There was a second problem with the image enumerator structure not being initialized with the imager state.[src/ztrans.c src/gximag3x.c]
2005-11-21T19:50:07.000000Z leonardo
pdfwrite : Extract FontInfo information from TrueType font data. DETAILS : This patch provides font metadata for the PDF/A project for True Type fonts, which have insufficient FontInfo data. The new function gs_type42_font_info is a special method for True Type font subclasses. It extracts data from the 'name' table of a True Type font data. pdfwrite calls it when creating a stable copy of a Type 11 or a Type 42 font. Later the data is being accounted by pdf_write_font_metadata. Note that PDF True Type fonts are not necessarily include a 'name' table. Therefore re-distilling a PDF may give insufficient Metadata for the PDF/A format. Minor change : fix Cygwin/gcc warnings in gdevpdfe, gdevpdtb; some dependencies were missed in devs.mak . EXPECTED DIFFERENCES : None.[src/gdevpdtb.c src/gxfont42.h src/gstype42.c src/gdevpdfe.c src/zfont42.c src/devs.mak]
2005-11-21T19:46:11.000000Z Raph Levien
Fix: Disable run-length grouping of identical pixels when image is rotated or skewed, as numerical problems at T-joins of rectangles can cause dropouts. Fixes bug #688362 and #688179.[src/gxicolor.c]
2005-11-21T19:00:45.000000Z Ray Johnston
Clarify the Ps2pdf usage, particularly the use of array and dictionary distiller options when using the script/batch 'helper' files and the limitations imposed by the simple script. Bug 687373. Thanks to Richard Yeh, Alex Cherepanov and Ralph Giles for suggestions.[doc/Ps2pdf.htm]
2005-11-20T20:21:18.000000Z Alex Cherepanov
Fix an error in Unicode to ASCII conversion when the font name is empty string. Fix bug 687938 DETAILS : This problem is caused by a TrueType font that has no PostScript font name, for instance urdunast.ttf. GS 8.10 added Unicode to ASCII conversion for the font name but the code assumed that the name length > 0 . This patch skips Unicode to ASCII conversion for empty names.[lib/gs_fonts.ps]
2005-11-18T02:16:00.000000Z Ray Johnston
Add capability to display text Value strings in Widget Annotations. Multi line support is not yet implemented, but basic Tx types are supported with /DA appearance string (used to select font and color, etc.) as well as /Q (quadding == justinfication) properly supported. Bug 688368 for customer #670. DETAILS: This is an initial implementation sufficient for the customer's immediate requirement. NYI includes handling Flag (/F and /Ff) bits, one of which is supposed to make the rendering "invisible". Note that if the /AP keyword is present, that appearance will be used to render the Annotation rather than the /V value based rendering. This was needed to properly render the 01_001.pdf where both keys are present. Presumably, the /AP appearance was 'baked in' by the form filling application. Also note that the /DA string in the sample file used "/FontName scale Tf" which required making the /Tf implementation handle both a font dictionary (usual case) as well as a font name (pdf_ops.ps change).[lib/pdf_draw.ps lib/pdf_ops.ps]
2005-11-17T02:09:09.000000Z Alex Cherepanov
Use .bind operator (instead of bind) in the image interpolation logic because it is nor affected by -dDELAYBIND or -dNOBIND flags. The redefinition logic assumes that all operators, including .interpolate are bound, i.e. requires a working bind operator. Fix bug 688231[lib/gs_init.ps]
2005-11-16T22:17:29.000000Z Alex Cherepanov
Pacify Valgrind warnings, initialize the image buffer overshot area. Partial fix for bug 688379[src/scfe.c]
2005-11-16T21:18:37.000000Z Alex Cherepanov
Insert a space character before "%%" or "%!" in ASCII85Encode filter to avoid confusion with DSC comments. Fix bug 688079 DETAILS : ASCII85Encode filter has a special treatment of some output lines that looks like DSC line, (ie. lines that begins with %% or %! are broken after first percent). This didn't work when the last line of encoded stream begins with %% and input stream was ended not on full 4-tuple. EXPECTED DIFFERENCES : None[src/sfilter2.c]
2005-11-16T20:33:57.000000Z Alex Cherepanov
Work around a bug in PDF files produced by Enfocus PitStop 3.1. Handle annotation border object depending on the actual type of the object, not the key name. Fix bug 688013 DETAILS : Enfocus PitStop 3.1 generates bad PDF files, which have annotation border dictionary on /Border key (instead of /BS). PitStop is a well-known application and GS can easily work around this bug. EXPECTED DIFFERENCES : None[lib/pdf_draw.ps]
2005-11-16T20:00:06.000000Z Alex Cherepanov
Improve error reporting in the jpeg driver. Initialize report_error member of jpeg encoding stream and propagate stream exceptions to the interpreter level. Fix bug 688005[src/gdevjpeg.c]
2005-11-16T16:34:51.000000Z leonardo
pdfwrite : Generate a font Metadata. DETAILS : This patch provides font metadata for the PDF/A project. True Type fonts need a further improvement - need to get Coipyright, Owner from the TT data. 1. Define a new device parameter PDFA. It is not yet documented because PDF/A project isn't complete. 2. gx_device_pdf::uuid_time keeps an unique time for all UUIDs to minimize an indeterminizm. 3. Made pdf_base_font_s be public : moved to gdevpdtf.h . 4. pdf_write_embedded_font computes an MD5 sum of the font for generating an instance id for the font. 5. The new function pdf_font_metadata perform the main work. Foe now pdf_write_font_metadata uses some inaccurate coding with copy&replace. Doing so because we don't know the final structure yet. Will factor out common subfunctions later. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfp.c src/gdevpdtb.c src/gdevpdfe.c src/gdevpdfb.h src/devs.mak src/gdevpdtf.h src/gdevpdfg.h]
2005-11-15T22:48:46.000000Z leonardo
pdfwrite : Generate document Metadata (continued 1). DETAILS : It fixes an indeterminizm in the recent code. EXPECTED DIFFERENCES : None.[src/gdevpdfe.c]
2005-11-15T13:27:17.000000Z leonardo
Fix : An unitialized data access. DETAILS : We detected sevral problems with running comparefiles with pdfwrite with enabling floating point interrupts (patch IM866). This patch fixes an unitialized data access, or inaccurate type casts. These problems may relate to Bug 688379 "pdfwrite: an indeterministic behavior with Bug687660a.ps", rather we could not get a proof for that due to instability of the effect in the old code. EXPECTED DIFFERENCES : None.[src/gxfcopy.c src/ztrans.c src/gdevpsft.c src/gxhldevc.c src/gdevpdfg.c src/gdevpdti.c src/zchar1.c]
2005-11-14T20:22:47.000000Z leonardo
Fix (pdfwrite) : /BP pdfmark could create dead PDF objects (continiued). DETAILS : Bug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef". Changes to gdevpdfm.c : 1. The new function pdfmark_bind_named_object provides a correct association of an object with an object name, accounting forward references and duplicate objects. Now it is used in pdfmark_SP and pdfmark_EP. as an uniforem method for such association. 2. pdfmark_PS objects are now written when created. The old code missed them. 3. Add a comment about an important constraint in pdfmark_BP, which is a consequence of basic assumptions. 4. Issue rangecheck if an object is attempted to modify after it is written. Chanes to gdevpdfu.c : pdf_find_same_resource now works for named resources. Changes to gdevpdfo.c : Since pdf_substitute_resource in pdfmark_EP can associate one object with multiple names, the freeing logic is improved to avoid crashes due to dual freeing of objects. General consequences : 1. The new code writes an object whenever it is defined, with no regard whether it is referred or not. If one needs an optimization with skipping unreferenced objects, the named object handling logics to be changed dramaticly with distinguishing a storage for all objects and a storage for currently named objects. An object must get special mark whenever it is referred (it would be a big distrubuted change through the code). Writing all objects to be delayed until the document end, and a garbage collection to be implemented for that storage. 2. We do not reproduce a part of Adobe Distiller behavior, which allows to modify objects when they are being created between pdfmark_BP and pdfmark_EP. Particularly this prohibits self-referenced objects. This is a strong consequence of (1). (Note that the bug 687560 examples miss a big class of cases when the creating object is referenced with /PUT pdfmark during its creation. Those examples show only cases when it is being modified.). 3. Users should not define "pdfmark libraries" with multiple object definitions, which are not really used. We realize that such libraries may be useful for a better modularity of document creation algorithms. However we do not have enough engineering resources to develop this area, and we have no real customer demand on it. Instead that object definitions to be included into source PS code only if they are really used in the document. Thanks to SaGS for supplied test cases. EXPECTED DIFFERENCES : None.[src/gdevpdfm.c src/gdevpdfo.c src/gdevpdfu.c]
2005-11-14T11:40:53.000000Z leonardo
Fix (pdfwrite) : Generate ToUnicode CMap data from 'uniXXXX' character names. DETAILS : Bug 688373 "Text does not extract with correct codes". We guess it's another undocumented feature of Adobe Distiller. Some Type 1 fonts appear to contain Korean glyphs with glyph names in the format uniXXXX, where X is a hexadecimal character. Adobe Distiller 6 looks to recognize them when generating ToUnicode. Now we do same. We're not sure on what condition the recognition may happen. For now we do whenever a simple font (Type 1,2,42) has no GlyphNames2Unicode entry for the given glyph. EXPECTED DIFFERENCES : None.[src/gdevpdtc.c src/gdevpdte.c src/gdevpdtt.h src/gdevpdti.c]
2005-11-13T17:44:21.000000Z leonardo
Fix (TT font parser) : An incorrect Encoding entry type appeared. DETAILS : When a glyph index past end of 'post' table, the old code produced Encoding entries of integer type. Bug 688370 "pdfwrite segfault with TT font cmap warnings post is incomplete". EXPECTED DIFFERENCES : None.[lib/gs_ttf.ps]
2005-11-13T17:42:07.000000Z leonardo
Fix (pdfwrite) : Prevent a crash due to an incorrect Encoding of a Type 42 font. DETAILS : When a Typoe 42 font has Encoding entries of the integer type, the old code crashed with GPF. 1. Check Encoding entry type and return invalidfont on error (gxfcopy.c, hunk 1). 2. Propagate return codes (gdevpdtb.c, gdevpdtt.c). 3. When creating a complete copy of a Type 42 font, ignore pending Encoding entries since 033-52-5873.pdf and 159.pdf include some (gxfcopy.c). (This supposes that the document doesn't refer them. If it does, another error will happen when creating the font subset.) This is a partial fix for the bug 688370 "pdfwrite segfault with TT font cmap warnings post is incomplete". EXPECTED DIFFERENCES : None.[src/gxfcopy.c src/gdevpdtb.c src/gdevpdtt.c]
2005-11-13T14:59:01.000000Z leonardo
Fix (pdfwrite) : The DestOutputProfile stream dictionary requires the N entry (improved). DETAILS : This improves the last patch : a lesser input data required, because N computes from ProcessColorModel. EXPECTED DIFFERENCES : None.[lib/PDFX_def.ps]
2005-11-13T09:18:37.000000Z leonardo
Fix (pdfwrite) : The DestOutputProfile stream dictionary requires the N entry. DETAILS : Adobe Reader 7 could not open files generated with PDFX option. The PDF specification defines the N entry as a required one. EXPECTED DIFFERENCES : None.[lib/PDFX_def.ps]
2005-11-11T16:32:47.000000Z Ray Johnston
Nightly regression cannot tolerate '_' instead of '-' in GS_PRODUCT string. Revert to '-' so that change_gsproduct works.[src/gscdef.c]
2005-11-11T12:35:37.000000Z leonardo
pdfwrite : Generate document Metadata. THIS IS INCOMPATIBLE CHANGE. Adobe Distiller 5 generates metadata according to Adobe XMP speification iff the distiller parameter ParseDSCCommentsForDocInfo or PreserveEPSInfo is true. Old versions of Ghostscript does not do that. New versions of Ghostscript do when CompatibilityLevel >= 1.4 (default). Generated PDF documents become longer in about 1.5 kilobytes. See the documentation change about new command line options and distiller parameters. DETAILS : It's a part of the PDF/A project. This is an initial commit for the subject. It generates Document metadata as Adobe Distiller 6 does for a simple file (Genoa test 001-01.ps). EXPECTED DIFFERENCES : None.[src/gdevpdfx.h src/smd5.h src/gdevpdfp.c src/gdevpdf.c doc/Ps2pdf.htm src/gdevpdfe.c src/gdevpdfb.h src/devs.mak src/smd5.c src/gdevpdfg.h]
2005-11-09T18:37:29.000000Z Ray Johnston
Bump version to 8.54 CVS PRE-RELEASE after the 8.53 release.[doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]
2005-11-09T17:27:24.000000Z Ray Johnston
Improve documentation of -d and -c switches (slightly). Thanks to Chapman Flack for his suggestions. Bug 688321.[doc/Use.htm]
2005-11-09T12:55:45.000000Z leonardo
Fix (pdfwrite) : Provide Resources dictionary for Type 3 fonts. DETAILS : Bug 688357 - epstopdf does not include /Resources in Type3 fonts The PDF specification defines Resources dictionary of a Type 3 font to be "optional but strongly recommended". Linux Acrobat Reader Version 7.0.1 07/27/2005 appears not handling the "optional" case. Now we provide explicit Resources sinse that reader version is widely distributed. The Resources dictionary of a Type 3 font is a PDF 1.2 feature. To provide a compatibility to PDF 1.1, the old code implemented a special mechanizm for transmitting resources of a Type 3 font to pages, which use the font. This patch disables that mechanizm when CompatibilityLevel >= 1.2 in gdevpdte.c . Instead that it creates Resources of a Type 3 font as a cos_dict_t instance in gdevpdtf.h, gdevpdtt.c, and writes it out when the font is being written in gdevpdtw.c . gdevpdti.c now installs Resources dictionary of a Type 3 font to accumulate resources of its charproc streams. Note that the name substream_Resources does not longer reflects its semantics perfectly : for a charproc stream it is Resources of the font, rather than Resources of the charproc stream (the pdf spec doesn't define the latter). Keeping the old name to simplify the patch. In the old mechanizm we replace used_resources and relatives with Resources, because those two things are similar. The goal is to simplify data structures and logics. For doing so we implement new functions cos_dict_forall, process_resources1, process_resources2. This appears some less effective due to searches in process_resources1, process_resources2, but we consider the performance low important because PDF 1.1 isn't highly useful in the modern world. Also removed the related accessor pdf_register_charproc_resource. EXPECTED DIFFERENCES : None.[src/gdevpdfo.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdfo.h src/gdevpdtf.c src/gdevpdtw.c src/gdevpdti.c src/devs.mak src/gdevpdtf.h src/gdevpdfj.c]
2005-11-06T19:21:07.000000Z Ray Johnston
Make sure procedure target of an Encode filter gets called with the end of data condition, i.e., 'false' condition. Bug 688326. DETAILS: When a procedure is a data target, it is signalled that it has been closed by one final callback with a possibly empty string containing any final buffered data, and the boolean false. When 'last' was true if the count was 0, the previous code would not return CALLC status which is needed to call the procedure with the 'false' status. If ss->eof is already true, then the call has already been done. This condition is not checked in any of the Genoa test suites. EXPECTED DIFFERENCES: none.[src/zfproc.c]
2005-11-02T13:17:58.000000Z leonardo
Fix (pdfwrite) : Safely close the output file when the device initialization fails. DETAILS : Bug 688345 "Keeping output PDF file open when quitting". EXPECTED DIFFERENCES : None.[src/gdevpdf.c src/gdevvec.c]
2005-10-25T09:17:45.000000Z Russell Lang
Add the jpeg, libpng and zlib libraries to the list of files needed for building a Windows release.[doc/Release.htm]
2005-10-24T17:52:21.000000Z Ray Johnston
Fix for regression introduced with patch for 688182 (rev 1.46). The /Length entry is required in stream dicts to prevent undefined in --get-- errors. If the Length is invalid, set it to 0 to prevent using the incorrect value. Fixes bug 688347 for customer 770. EXPECTED DIFFERENCES: None.[lib/pdf_base.ps]
2005-10-20T23:41:48.000000Z Dan Coby
Fix for 688344 Error: /invalidaccess in --setfileposition-- after finding bad XREF. DETAILS: The test file contains xref table entries that have locations beyond the end of the file. When the xref table entries were being verified, this would cause an attempt to seek beyond the end of the file. This closed the file. The attempt to rebuild the xref table then crashed. The fix consists of adding a check for xref entry locations being within the file.[lib/pdf_main.ps]
2005-10-20T20:14:37.000000Z Ray Johnston
Final updates to Change logs and History prior to 8.53 release.[doc/Changes.htm doc/History8.htm doc/Details8.htm doc/Details.htm]
This is the fourth stable release in the 8.5x series of Ghostscript. It contains a few bug fixes and improvements since 8.52, particularly in the fix for a build problem on AMD64/Windows64 and vastly improved transparency rendering speed for some PDF's.
The following bugs were open at the time of this release:
465936, 578865, 592160, 610478, 626295, 686747, 686842, 686853, 687011, 687039, 687063, 687108, 687125, 687146, 687196, 687219, 687231, 687243, 687257, 687271, 687280, 687292, 687295, 687298, 687314, 687316, 687327, 687342, 687345, 687346, 687373, 687397, 687399, 687435, 687480, 687484, 687514, 687520, 687525, 687529, 687531, 687545, 687559, 687560, 687583, 687608, 687621, 687622, 687628, 687633, 687642, 687643, 687644, 687650, 687654, 687657, 687663, 687669, 687674, 687676, 687677, 687679, 687682, 687694, 687695, 687697, 687702, 687721, 687728, 687729, 687796, 687805, 687806, 687808, 687814, 687822, 687825, 687844, 687848, 687850, 687863, 687866, 687868, 687870, 687875, 687895, 687903, 687904, 687907, 687914, 687919, 687931, 687938, 687957, 687960, 687970, 687974, 687975, 687986, 687988, 687992, 687994, 687996, 688005, 688006, 688007, 688009, 688013, 688017, 688020, 688022, 688026, 688032, 688035, 688036, 688039, 688042, 688047, 688054, 688058, 688060, 688061, 688064, 688066, 688068, 688075, 688079, 688081, 688091, 688095, 688101, 688106, 688108, 688124, 688129, 688130, 688132, 688134, 688149, 688151, 688152, 688159, 688166, 688176, 688179, 688181, 688184, 688187, 688200, 688203, 688207, 688215, 688225, 688227, 688231, 688239, 688243, 688249, 688260, 688265, 688269, 688274, 688278, 688280, 688282, 688285, 688288, 688290, 688291, 688295, 688300, 688302, 688309, 688311, 688317, 688318, 688319, 688320, 688321, 688323, 688326, 688329, 688332, 688333, 688334, 688335, 688336, 688337, 688338, 688339, 688342, 688344
There are no known incompatible changes at this point.
Update doc files and version files for 8.53 release.[doc/API.htm 1.53, doc/Bug-form.htm 1.49, doc/Bug-info.htm 1.49, doc/C-style.htm 1.55, doc/Commprod.htm 1.41, doc/Copying.htm 1.39, doc/DLL.htm 1.43, doc/Deprecated.htm 1.20, doc/Details8.htm 1.24, doc/Develop.htm 1.159, doc/Devices.htm 1.90, doc/Drivers.htm 1.58, doc/Fonts.htm 1.51, doc/Helpers.htm 1.44, doc/History1.htm 1.39, doc/History2.htm 1.39, doc/History3.htm 1.39, doc/History4.htm 1.39, doc/History5.htm 1.41, doc/History6.htm 1.56, doc/History7.htm 1.44, doc/History8.htm 1.29, doc/Htmstyle.htm 1.44, doc/Install.htm 1.56, doc/Issues.htm 1.52, doc/Language.htm 1.98, doc/Lib.htm 1.43, doc/Maintain.htm 1.50, doc/Make.htm 1.90, doc/News.htm 1.168, doc/Projects.htm 1.67, doc/Ps-style.htm 1.37, doc/Ps2epsi.htm 1.42, doc/Ps2pdf.htm 1.88, doc/Ps2ps2.htm 1.7, doc/Psfiles.htm 1.68, doc/Readme.htm 1.71, doc/Release.htm 1.95, doc/Source.htm 1.39, doc/Testing.htm 1.37, doc/Unix-lpr.htm 1.39, doc/Use.htm 1.136, doc/Xfonts.htm 1.39, doc/gs-vms.hlp 1.37, man/dvipdf.1 1.37, man/font2c.1 1.37, man/gs.1 1.38, man/gslp.1 1.37, man/gsnd.1 1.37, man/pdf2dsc.1 1.36, man/pdf2ps.1 1.38, man/pdfopt.1 1.36, man/pf2afm.1 1.37, man/pfbtopfa.1 1.38, man/printafm.1 1.37, man/ps2ascii.1 1.37, man/ps2epsi.1 1.35, man/ps2pdf.1 1.42, man/ps2pdfwr.1 1.41, man/ps2ps.1 1.44, man/wftopfa.1 1.37, src/gscdef.c 1.58, src/version.mak 1.87]
Remove trailing ^M (<cr>) characters.[src/gdevbmp.c 1.12, src/slzwd.c 1.7]
Fixes broken compile on amd64 platforms (see bug #688047 for details). This patch should be safe on all platforms with 32-bit longs, and is my best guess as to the right thing to do on Tru64 (where long is 64 bits).[src/tttypes.h 1.3]
2005-10-20 13:04 Igor Melichev
Fix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued 2). DETAILS : Bug 688167 "change of real number fomat from fixed to exponential format". The last patch doesn't correctly handle numbers between 1e-7 and 1e-2. EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.52]
2005-10-18 20:31 Igor Melichev
Fix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued). DETAILS : Bug 688167 "change of real number fomat from fixed to exponential format". This improves the patch http://ghostscript.com/pipermail/gs-cvs/2005-September/005717.html with writing small reals in a fixed point number format. We did it after Raph's request in Comment #5 of the bug 688167. But we don't see a visible difference against the old implementation with any viewer. Therefore we believe that we shouldn't have done it (as we did before the implementation). Storing it now mainly for archiving purpose. If this change causes a problem, the author has no objection for unwinding it. EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.51]
2005-10-18 09:05 Igor Melichev
Fix (pdfwrite) : Indexed colors were distorsed with encryption. DETAILS : Bug 688313 "pdfwrite : image colors depend on encryption". The old code applied encryption with a wrong (zero) object id to the palette of the indexed color space. After a viewer decrypts the palette with a right object id, colors appear wrong. 1. Use the PS string encoding instead the hexadecimal string encoding while converting the palette to PDF format (gdevpdfc.c). It provides a correct work of the part 3 below. See also part 4 below. 2. Don't apply encryption when adding the palette to cos object (gdevpdfc.c, devs.mak). The old code was hacky, and new one is based on a general convention. 3. Apply encryption with a right object id to the string which represents the palette when writing the cos object to the output PDF file. This is an implicit consequence of using the PS string encoding in the part 1 due to a general convention about applying encryption when writing cos objects to the output file. 4. Disable writing hexadecimal strings because their encryption is not yet implemented (gdevpdfu.c). The generated PDF may become longer in 1-2 kilobytes per palette due to PS encoding is less effective for palettes. This could be optimized with implelenting an encryption method for hexadecimal encoded strings in pdf_put_encoded_hex_string, and undo the part 1. The method should apply 3 filters : hexadecimal string decode, arc4 encode, hexadecimal string encode, because cos object stores strings in the outer format. Delaying this optimization for better times. EXPECTED DIFFERENCES : None.[src/devs.mak 1.140, src/gdevpdfc.c 1.54, src/gdevpdfo.c 1.35, src/gdevpdfu.c 1.89]
2005-10-18 07:58 Igor Melichev
Fix (pdfwrite) : Propagate error codes from pdf_write_value. DETAILS : This is a preparation for fixing the bug 688313 "pdfwrite : image colors depend on encryption". In cases when no error happens, this code is algorithmocally equivalent. EXPECTED DIFFERENCES : None.[src/gdevpdfo.c 1.34, src/gdevpdfu.c 1.88, src/gdevpdfx.h 1.138]
2005-10-17 19:23 Igor Melichev
Fix (pdfwrite) : /BP pdfmark could create dead PDF objects (continiued). DETAILS : Bug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef". 1. Prevent a potential crash while dereferencing NULL. 2. Don't put unnamed objects into local_named_objects. Thanks to SaGS for pointing these problems out. EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.50]
2005-10-12 17:59 Igor Melichev
Fix : Don't instantiate pattern when rendering to null device. DETAILS : Bug 688308 "Error: undefined; OffendingCommand: .type1execchar". The test case executes cshow or kshow with intrevene changing the current color space, causing a color load callout from fill_with_rule _after_ the callout completes. After that the check ctile->depth == dev->color_info.depth in gx_pattern_cache_lookup fails (not sure why - probably due to gsave-grestore in the pattern procedure). This patch skips entire character drawing when the device is null, so that those cumbersome stuff isn't envolved. EXPECTED DIFFERENCES : None.[src/gsdevice.c 1.25, src/gspaint.c 1.10, src/gxdevcli.h 1.41]
2005-10-12 11:05 Igor Melichev
Implementing a pointer stability validation in the garbager, continued. DETAILS : This patch is currently disabled, so the change is syntactically equivalent. Bug 688226 "The garbager must check a pointer stability.". This fixes a minor bug in the last patch. EXPECTED DIFFERENCES : None.[src/ilocate.c 1.14]
2005-10-12 10:45 Igor Melichev
Implementing a pointer stability validation in the garbager. DETAILS : This patch is currently disabled, so the change is syntacticly equivalent. Bug 688226 "The garbager must check a pointer stability.". This patch extends the object header with a space order number field, and compares the origin and the destination order numbers for each pointer while validating the heap. The enhanced object header is still within 16 bytes with the 32-bits architecture. See ialloc_validate_pointer_stability about the order number definition. This patch detected so many problems while running any document, as we can't enable it now. It is disabled with IGC_PTR_STABILITY_CHECK macro defined in gxobj.h . EXPECTED DIFFERENCES : None.[src/gsalloc.c 1.24, src/gxalloc.h 1.12, src/gxobj.h 1.7, src/ialloc.c 1.8, src/ilocate.c 1.13]
2005-10-12 08:16 Igor Melichev
Fix (pdfwrite) : Skip a clip path, which is set by setcachedevice (continued after July 28 205). DETAILS : Bug 687678 "pdfwrite : A Type 3 character cut-off". Bug 688327 "incorrect masking fill in pdfwrite". The old patch for this problem appears to define a too weak condition for recognizing a clipping set by setcachedevice, sectachedevice2. Now we think that a special stuff for this condition isn't needed because the condition may be united with the contition for "setcharwidth" : both things need to skip the clipping path, which was set exactly by setcachedevice, sectachedevice2 or setcharwidth. Checking the rectangle coordinates is not relevant. Therefore the change consists of 2 parts : 1. Unwinding the patch http://ghostscript.com/pipermail/gs-cvs/2005-July/005625.html (IM1358) (see also http://ghostscript.com/pipermail/gs-cvs/2005-July/005626.html). 2. Remowing the (control == TEXT_SET_CHAR_WIDTH) check from pdf_text_set_cache, so that the "caching" clipping path will be skipped in any case. Will add Bug688327.ps to comparefiles. EXPECTED DIFFERENCES : None.[src/gdevpdfb.h 1.14, src/gdevpdfd.c 1.71, src/gdevpdfx.h 1.137, src/gdevpdti.c 1.53, src/gdevpdtt.c 1.104]
2005-10-11 10:04 Igor Melichev
Fix (PS interpreter) : Allocate gs_screen_enum in same space as its components. DETAILS : Bug 688330 "A dangling pointer in gx_screen_enum.". The old code allocates gs_screen_enum in current memory space and frees to the memory space of its components, which is obtained from the 'setscreen' operand (the spot function). In the test case the first memory space is local, and the second one is global. We guess the last statement became true after a recent change to the PDF interpreter. This patch allocates gs_screen_enum in same space as its components. The pritotype of zscreen_enum_init has been changed due to no method for obtaining a space attribute value for iref from a gs_memory_t instance (well, generally it is impossible, but one could solve if the memory allocator is a PS interpreter's allocator except stable ones). We noticed that components of gs_screen_enum have pointers to memory allocator structures, but don't list them in the related memory descriptors. We're not sure whether a memory allocator structure may relocate or not - our investigation through code didn't give an unique answer. For now we leave component descriptors as they were before the patch. EXPECTED DIFFERENCES : None.[src/iht.h 1.6, src/zht.c 1.8, src/zht1.c 1.7, src/zht2.c 1.14]
2005-10-10 19:09 Igor Melichev
Fix: Cygwin/gcc warninhs. EXPECTED DIFFERENCES : None.[src/devs.mak 1.139, src/gdevpdfb.c 1.34]
2005-10-10 18:58 Igor Melichev
Optimizing the transparency compositor. DETAILS : Bug 688255 "ai7 pdf fails on 7.03, runs for ten + minutes on 8.51". The old code always allocates a transparency buffers for entire band. The new code accounts group bbox to minimize buffers. Due to that buffers appear empty for many of bands. The time consumption for the test case of the bug 688255 is dropped in about 100 times (from 8000 seconds to 71 seconds on a 3.07GHz machine, measured with debug build). 1. The transparency bbox computes in pdf14_begin_transparency_group from the group bbox and the CTM (gdevp14.c). 2. Handle an empty buffer pdf14_buf_new, pdf14_pop_transparency_group (gdevp14.c). 3. Fixed a bug in the rectangle clipping in pdf14_mark_fill_rectangle, pdf14_mark_fill_rectangle_ko_simple. The old code didn't sense it because bbox always covered entire band (gdevp14.c). 4. Write the bbox to clist in c_pdf14trans_write and read it in c_pdf14trans_read. 5. The pdf14 compositor needs CTM to transform the group bbox to the device space. Forced the writing of CTM to clist before writing the compositor in clist_create_compositor. (Sorry, it appears some ugly due to pcte->type->procs.write creates a body of a command, but we need to create a set of two commands; Another minor optimization - a narrowing the set of bands - is delayed, see comments in code in clist_create_compositor) (gxclimag.c). 6. New functions cmd_write_ctm_return_length, cmd_write_ctm are factored out for (5) (gxclpath.c, gxclpath.h). This part of the change is algorithmically eqiuivalent. 7. Minor change : fixed coding style of "} else {" in gdevp14.c . EXPECTED DIFFERENCES : None.[src/gdevp14.c 1.35, src/gxclimag.c 1.13, src/gxclpath.c 1.21, src/gxclpath.h 1.13]
Add missing space in CVS PRE-RELEASE string.[src/gscdef.c 1.57]
Bump version after the 8.52 release (to 8.53 CVS PRE-RELEASE).[doc/News.htm 1.167, lib/gs_init.ps 1.120, src/gscdef.c 1.56, src/version.mak 1.86]
This is the third stable release in the 8.5x series of Ghostscript. It contains numerous bug fixes and improvements, particularly in the area DeviceN (spot color) handling and the PDF interpreter.
The pdfwrite device can now create PDF/X-3 compliant documents using the lib/PDFX_def.ps prefix approach. See Ps2pdf documentation.
Also new is a Beta version level 2 Postscript output device, ps2write, which generates high-level PostScript including text and images and graphics. We encourage its use instead of the older pswrite when Level 2 PostScript is desired. Please send any comments or problem reports to bug-gs@ghostscript.com or submit it to http://bugs.ghostscript.com.
The following bugs were open at the time of this release:
465936, 578865, 592160, 610478, 626295, 686747, 686842, 686853, 687011, 687039, 687063, 687108, 687125, 687146, 687196, 687219, 687231, 687243, 687257, 687271, 687280, 687292, 687295, 687298, 687314, 687316, 687327, 687342, 687345, 687346, 687373, 687397, 687399, 687435, 687480, 687484, 687514, 687520, 687525, 687529, 687531, 687545, 687559, 687583, 687608, 687621, 687622, 687628, 687633, 687642, 687643, 687644, 687650, 687654, 687657, 687663, 687669, 687674, 687676, 687677, 687679, 687682, 687694, 687695, 687697, 687702, 687721, 687728, 687729, 687796, 687805, 687806, 687808, 687814, 687822, 687825, 687844, 687848, 687850, 687863, 687866, 687868, 687870, 687875, 687895, 687903, 687904, 687907, 687914, 687919, 687931, 687938, 687957, 687960, 687970, 687974, 687975, 687986, 687988, 687992, 687994, 687996, 688005, 688006, 688007, 688009, 688013, 688017, 688020, 688022, 688026, 688032, 688035, 688036, 688039, 688042, 688054, 688058, 688060, 688061, 688064, 688066, 688068, 688075, 688079, 688081, 688091, 688095, 688101, 688106, 688108, 688117, 688124, 688129, 688130, 688132, 688134, 688149, 688151, 688152, 688159, 688166, 688176, 688179, 688181, 688184, 688187, 688200, 688203, 688207, 688213, 688215, 688225, 688226, 688227, 688231, 688239, 688243, 688249, 688255, 688260, 688265, 688269, 688274, 688278, 688280, 688282, 688285, 688288, 688290, 688291, 688295, 688300, 688302, 688308, 688309, 688311, 688313, 688315, 688317, 688318, 688319, 688320, 688321.
There are no known incompatible changes at this point.
Update to final release date for 8.52[doc/API.htm 1.52, doc/Bug-form.htm 1.48, doc/Bug-info.htm 1.48, doc/C-style.htm 1.54, doc/Commprod.htm 1.40, doc/Copying.htm 1.38, doc/DLL.htm 1.42, doc/Deprecated.htm 1.19, doc/Details8.htm 1.22, doc/Develop.htm 1.158, doc/Devices.htm 1.89, doc/Drivers.htm 1.57, doc/Fonts.htm 1.50, doc/Helpers.htm 1.43, doc/History1.htm 1.38, doc/History2.htm 1.38, doc/History3.htm 1.38, doc/History4.htm 1.38, doc/History5.htm 1.40, doc/History6.htm 1.55, doc/History7.htm 1.43, doc/History8.htm 1.27, doc/Htmstyle.htm 1.43, doc/Install.htm 1.55, doc/Issues.htm 1.51, doc/Language.htm 1.97, doc/Lib.htm 1.42, doc/Maintain.htm 1.49, doc/Make.htm 1.89, doc/News.htm 1.166, doc/Projects.htm 1.66, doc/Ps-style.htm 1.36, doc/Ps2epsi.htm 1.41, doc/Ps2pdf.htm 1.87, doc/Ps2ps2.htm 1.6, doc/Psfiles.htm 1.67, doc/Readme.htm 1.70, doc/Release.htm 1.94, doc/Source.htm 1.38, doc/Testing.htm 1.36, doc/Unix-lpr.htm 1.38, doc/Use.htm 1.135, doc/Xfonts.htm 1.38, doc/gs-vms.hlp 1.36, man/dvipdf.1 1.36, man/font2c.1 1.36, man/gs.1 1.37, man/gslp.1 1.36, man/gsnd.1 1.36, man/pdf2dsc.1 1.35, man/pdf2ps.1 1.37, man/pdfopt.1 1.35, man/pf2afm.1 1.36, man/pfbtopfa.1 1.37, man/printafm.1 1.36, man/ps2ascii.1 1.36, man/ps2epsi.1 1.34, man/ps2pdf.1 1.41, man/ps2pdfwr.1 1.40, man/ps2ps.1 1.43, man/wftopfa.1 1.36, src/version.mak 1.85]
Remove this script that is no longer used in the release process. We now use cvs2cl.pl third party script.[toolbin/cvs2hist.py 1.13]
Fix serious bit rot for building History# and Details# from Changes and Details created by split_changelog.py. Allows the instructions in Release.htm to actually work. This file invoked by toolbin/makehist.tcl. DETAILS: This script really hasn't worked since we changed to the new format Changes that is created by cvs2cl.pl (instead of the now deprecated cvs2hist.py) For all releases after the aforementioned change, the History#.htm and Details#.htm were being hand edited. Hopefully the format created by this script will appear consistent with that created manually.[toolbin/makeset.tcl 1.15]
Two changes needed to fix a single bug. First, the GC 'limit' logic was collecting too frequently. Second, the PDF ICCBased colorspace logic was repeatedly creating a ReusableStreamDecode filter for the DataSource element. Fixes bug #687117 for customer #850.` DETAILS: The 'limit' value used to trigger a GC process was sometimes set to a number smaller than the 'inheritied' value. This resulted in a GC scan on every interpreter loop past the gc_signal check. Even with this fixed, the file ran slower than the -dNOGC case because the PDF interpreter 'csset' logic would set the ICCBased colorspace that would create a new ReusableStreamDecode filter from the DataSource on every 'Do' of the many images used to paint the logo (line by line). The reusablestreamdecode logic would allocate a 64000 byte string (only 3144 bytes of which were actually retained) so after about 8 images the allocations would exceed the limit and another GC would run (freeing up the space used by those 8 large strings and 7 of the small ones along with miscellaneous stuff). The fix for the second issue was to check if the ICCBased colorspace had already been 'resolved' (was a dicttype instead of a procedure that was an indirect reference). Since the initial processing of the ICCBased colorspace created a ReusableStreamDecode filter for the DataSource we are able to skip all of this preparation logic. EXPECTED DIFFERENCES. None (except a speed increase). The regression I ran reduced from 9000 sec to 8700 sec.[lib/pdf_draw.ps 1.98, src/gsalloc.c 1.23]
Update change logs for 8.52 release.[doc/Changes.htm 1.59, doc/Details.htm 1.18]
Tolerate 'null' as a single argument form of setcustomcolor. This is not documented in TN5044, but older Adobe ProcSets apparently use this mode. Fixes 'misc/cnurse.ps' of the smoke test used prior to release.[lib/gs_lev2.ps 1.38]
Fix (some of) the gcc compiler warnings (at least the really easy ones).[src/genht.c 1.5, src/gsiorom.c 1.2, src/zdevice2.c 1.10, src/zdps1.c 1.8, src/zfcmap.c 1.17, src/ztrans.c 1.28]
Commit updates for 8.52 release -- documentation dates and GS_PRODUCT[doc/API.htm 1.51, doc/Bug-form.htm 1.47, doc/Bug-info.htm 1.47, doc/C-style.htm 1.53, doc/Commprod.htm 1.39, doc/Copying.htm 1.37, doc/DLL.htm 1.41, doc/Deprecated.htm 1.18, doc/Details8.htm 1.21, doc/Develop.htm 1.157, doc/Devices.htm 1.88, doc/Drivers.htm 1.56, doc/Fonts.htm 1.49, doc/Helpers.htm 1.42, doc/History1.htm 1.37, doc/History2.htm 1.37, doc/History3.htm 1.37, doc/History4.htm 1.37, doc/History5.htm 1.39, doc/History6.htm 1.54, doc/History7.htm 1.42, doc/History8.htm 1.26, doc/Htmstyle.htm 1.42, doc/Install.htm 1.54, doc/Issues.htm 1.50, doc/Language.htm 1.96, doc/Lib.htm 1.41, doc/Maintain.htm 1.48, doc/Make.htm 1.88, doc/News.htm 1.165, doc/Projects.htm 1.65, doc/Ps-style.htm 1.35, doc/Ps2epsi.htm 1.40, doc/Ps2pdf.htm 1.86, doc/Ps2ps2.htm 1.5, doc/Psfiles.htm 1.66, doc/Readme.htm 1.69, doc/Release.htm 1.93, doc/Source.htm 1.37, doc/Testing.htm 1.35, doc/Unix-lpr.htm 1.37, doc/Use.htm 1.134, doc/Xfonts.htm 1.37, doc/gs-vms.hlp 1.35, man/dvipdf.1 1.35, man/font2c.1 1.35, man/gs.1 1.36, man/gslp.1 1.35, man/gsnd.1 1.35, man/pdf2dsc.1 1.34, man/pdf2ps.1 1.36, man/pdfopt.1 1.34, man/pf2afm.1 1.35, man/pfbtopfa.1 1.36, man/printafm.1 1.35, man/ps2ascii.1 1.35, man/ps2epsi.1 1.33, man/ps2pdf.1 1.40, man/ps2pdfwr.1 1.39, man/ps2ps.1 1.42, man/wftopfa.1 1.35, src/gscdef.c 1.55, src/version.mak 1.84]
Fix for 688316 SeparationOrder device parameter causes "/undefined in --get--". DETAILS: The fix for 688192 created a problem with the handling of the SeparationOrder device parameter. That fix changed when device parameter values were updated into the device structure. This caused a problem when checking the colorant names for the SeparationOrder parameter.[src/gdevdevn.c 1.28, src/gdevdevn.h 1.12]
Add missing documentation for lib/PDFX_def.ps.[doc/Psfiles.htm 1.65]
2005-09-29 18:35 Igor Melichev
Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters (continued 3). DETAILS : The first patch for the subject used an incompatible type for representation of HSamples, VSamples in the intermediate parameter list. It caused another compiler dependent effect when choosing DCT parameters. Also changed the dominatrion factor to pass color spaces of Altona-Testsuite_p2_S_x3.pdf as RGB-like ones. EXPECTED DIFFERENCES : None with Windows/MSVC2005. On Linux may fix more 2005-09-23 regressions, which left on 2005-09-29.[src/gdevpsdi.c 1.45]
2005-09-29 15:24 Igor Melichev
PDF interpreter now processes ToUnicode CMaps when the target device is pdfwrite (continued). DETAILS : This minor fix removes an unintended debug printing. EXPECTED DIFFERENCES : None.[lib/pdf_font.ps 1.80]
2005-09-29 08:36 Igor Melichev
Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters (continued 2). DETAILS : The first patch for the subject defined an incorrect condition for matrix diagonal domination. In same time, the regression test tool detected differences on Linux, which are not appeared while testing on Windows. We found out that Windows and Linux builds apply different DCT encode parameters. We guess that the reason is that the patched code accesses the [2][3]th element of a [4][3] array. Such element doesn't exist theoretically, so the effect may be compiler dependent (rather we're wonder what exactly does it access on Linux, because [2][3] is still inside the array memory area). So now we fix the incorrect condition and then will check regressions again. EXPECTED DIFFERENCES : None with Windows/MSVC2005. May fix the 2005-09-23 regressions on Linux.[src/gdevpsdi.c 1.44]
Fix for 688310 pdf open error in op_show_continue. DETAILS: This is another example of a file with a singular CTM while processing text. There already was some logic in pdf_ops.ps for handling this sort of situation. However it did not properly handle this case. The fix consists of extending the logic for handling singular CTMs.[lib/pdf_ops.ps 1.41]
2005-09-26 08:20 Igor Melichev
Fix (pdfwrite) : High level pattern handling was incomplete. DETAILS : Bug 688307 (the bug title is misleading). gdev_pdf_fill_mas must not call gx_default_fill_mask with a pattern color, which is dummy due to high level pattern handling. Actually it's a missed code branch since high level pattern were implemented. EXPECTED DIFFERENCES : None.[src/devs.mak 1.138, src/gdevpdfb.c 1.33]
Change reporting of some noisy (irritating) Warnings generated from many PDF files that don't strictly follow the spec. Bug 688229. DETAILS: The "fonts with Subtype = /TrueType" and "Embedded font uses undefined proc" messages could occur MANY times in PDF files. I'm sure users will get the point as well with this approach that only gives the warnings once at the end of processing, with the list of offensive printed once. Particularly for the TrueType font issue it might make it easier to figure out which fonts are missing (and thus substituted) since each font is only listed once and the list is sorted (which will collect font families together). EXPTECTED DIFFERENCES. None (execpt the gs-stderr log will now be shorter).[lib/pdf_font.ps 1.79, lib/pdf_main.ps 1.100]
Fix handling of TrueType fonts with zero length name tables. Bug 688305 for customer 870. DETAILS: This worked with a very old gs_ttf.ps, but since we didn't have any such files in our regression suite, whatever caused the regression is unknown. Detecting zero length name tables and returning false is straightforward. EXPECTED DIFFERENCES. None (ran existing regression suite).[lib/gs_ttf.ps 1.48]
MSVC 6 cannot convert from int64 to double (not yet implemented error). Truncate to int prior to conversion to float.[src/gdevpsdi.c 1.43]
Fix handling of EOD sequences when decoding CCITT data with EndOfBlock false. Bug 688306 for customer 780. DETAILS: Although the PLRM implies that the CCITT EOD sequence(s) will not be present when EndOfBlock is false (the default is 'true'), Adobe Acrobat will create PostScript with EOD sequences after the CCITT even when EndOfBlock is false. There was a comment in the CCITT decoder about this, but once 'rows_left' went to zero, any EOD sequence was not consumed by the CCITTFaxDecode filter. The fix checks for and consumes any trailing EOD sequence even when the EndOfBlock parameter is false. IMHO, this is a really sloppy behaviour by Adobe Acrobat since they seem to just copy the CCITT data from the input PDF, but explicitly put EndOfBlock false even though the PDF did not have the parameter to the filter (defaulting to EndOfBlock true). EXPECTED DIFFERENCES: None. Regression test OK.[src/scfd.c 1.9]
2005-09-20 11:35 Igor Melichev
Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters. DETAILS : Bug 687174 "(pdfwrite) DCT compression quality problem". It implements Raph's suggestion about choosing DCT parameters for 3-component images depending on the image color space. If color space looks like RGB, set ColorTransform to 1. If color space looks like Lab, set ColorTransform to 0. Otherwise set /HSamples [1 1 1 1] /VSamples [1 1 1 1]. See a motivation in the bug 687174. See comments in code about details of the hewristic. Minor change : pdf_setup_masked_image_converter called a memory allocator with a wrong client name. EXPECTED DIFFERENCES : test.pdf[src/devs.mak 1.137, src/gdevpdfd.c 1.70, src/gdevpsdi.c 1.42]
2005-09-19 14:12 Igor Melichev
Fix: /SP pdfmark must synchronize the clipping path (continued). DETAILS : Bug 688167 "change of real number fomat from fixed to exponential format". This improves the clipping path synchronization as SaGS suggested (see the bug 688167 Comment #4). EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.50]
Fix for double 'endstream' in a Content stream. Now endstream terminates the object the same way 'endobj' would. Bug 688303 for customer 670. EXPECTED DIFFERENCES: None (case did not exist in regression suite).[lib/pdf_base.ps 1.48]
Fix handling of paths so that 'cm' will affect pending path operations (fill stroke or clip). Verified that with this patch we do as Acrobat Reader from 4 through 7 does. Bug 688299 for customer 870. DETAILS: The basics of using 'upath', then 'uappend' to capture, then replay the path after the 'concat' done by 'cm' is straightforward, but since the path may not be used, there may be coordinates that are WAY out-of-range after an arbitrary 'cm' so we execute the 'uappend' inside a 'stopped' context. EXPECTED DIFFERENCES: None. I did a check of all PDF's in the regression suite -- none had any differences.[lib/pdf_draw.ps 1.97]
Correct edit problem with previous commit (copy/paste didn't get totally changed for src/gsiorom.c).[doc/Develop.htm 1.156]
Add missing documentation in Develop.htm and remove dead code commented out with C++ style comments to eliminate regression test squawks.[doc/Develop.htm 1.155, src/mkromfs.c 1.2]
Add a common case to an optimization check in the memflip function.[src/gsutil.c 1.11]
Prevent accessing past end of estack block which could occur if screen enum was not in the current estack block. EXPECTED DIFFERENCES. None. (this was only encountered in rare circumstances).[src/zht.c 1.7]
2005-09-12 11:52 Igor Melichev
ps2write : Implementing a generation of PDF/X-3 (continued). DETAILS : This change improves the documentation. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm 1.85]
2005-09-12 11:34 Igor Melichev
ps2write : Implementing a generation of PDF/X-3. DETAILS : This implements the new feature, which is being coontrolled with a new command line option PDFX, and a new pdfwrite device paramewter with same name. 1. A documentation change, which explains the new feature. 2. A Postscript code change : the DeviceRGB color space substitution, a special handling of /PS pdfmark. 3. A new sample file gs/lib/PDFX_def.ps with default PDF/X-3 definitions. 4. A C code change : force CompatibilityLevel 1.3, force embedding all fonts, skip halftone phases and transfer functions, write TrimBox. EXPECTED DIFFERENCES : None.[doc/Develop.htm 1.154, doc/Ps2pdf.htm 1.84, lib/PDFX_def.ps 1.1, lib/gs_devcs.ps 1.7, lib/gs_pdfwr.ps 1.49, src/gdevpdf.c 1.124, src/gdevpdfb.h 1.13, src/gdevpdfg.c 1.68, src/gdevpdfp.c 1.53, src/gdevpdfx.h 1.136, src/gdevpdtf.c 1.46]
2005-09-08 17:32 Igor Melichev
Fix (ps2write) : Suppress floating point number format in pdfmark operands. DETAILS : Bug 688167 "change of real number fomat from fixed to exponential format". An unobvious point in this bug was to find that the coversion happens in Postscript code of the pdfmark handler rather than in C code of the PDF writer. EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.48]
2005-09-07 20:43 Igor Melichev
Fix (ps2write) : Adjust the graphic state before executing a Form XObject. DETAILS : Bug 688293 "opdfread: Wrong graphics state when painting a Form XObject". Patch from SaGS (see Bug 688293). EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.84]
Change to accept PDF with names that mis-use the '#" escape character when characters following the # are not hex (AR 7 does this). Bug 688297. EXPECTED DIFFERENCES: none.[lib/pdf_base.ps 1.47]
2005-09-06 22:21 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 12 (fix 2). DETAILS : The old code wrote a scratch data for the key /G of a soft mask dictionary, because the referent was freed earlier. Debugged with -Z?$@ SoftMaskDict.pdf . EXPECTED DIFFERENCES : None.[src/gdevpdft.c 1.52]
2005-09-06 20:04 Igor Melichev
Fix (ps2write) : The vector device virtual function dorect was not clipped by page. DETAILS : Bug 688279 "ps2write : maybe an incorrect sbstack bottom condition.". This change fixes a minor problem, which appears in ps2write only. Doing it almost for a clarity of the code. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.69]
2005-09-06 17:18 Igor Melichev
Fix (pdfwrite) : /BP pdfmark could create dead PDF objects. DETAILS : Bug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef". This change relates to pdfmark BP, EP, SP and PS. 1. Delay the object ID assignation untill the stream accumulation is completed. 2. Drop redundant equal objects, substituting references to an old one (Equal BP...EP objects appear when BP...EP portion is executed with _same_ graphic state). 3. Delay the storing in the named resource dictionary untill the stream accumulation is completed and redundant object is substituted. 4. gx_device_pdf::objname stores the last name for (3). It is being saved and restored in the substream stack. 5. The memory descriptor of gx_devoce_pdf is enhanced with objname, which is a pointer to string. 6. gsstruct.h adds another memory descriptor macro for (4). 7. Forward references mentioned in the bug 687560 are not supported and cause "undefined". EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.123, src/gdevpdfb.h 1.12, src/gdevpdfm.c 1.49, src/gdevpdfx.h 1.135, src/gdevpdti.c 1.52, src/gsstruct.h 1.22]
2005-09-06 16:22 Igor Melichev
Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device (continued). DETAILS : The last patch for the subject appears incomplete. This one adds macros for parameter strings for pointer enumeration. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.122, src/gdevpdfx.h 1.134, src/gsstruct.h 1.21]
2005-09-06 13:47 Igor Melichev
Fix (ps2write) : pdf_substitute_resource was misspelled. DETAILS : This a cosmetic syntaxical change. EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.67, src/gdevpdfj.c 1.49, src/gdevpdft.c 1.51, src/gdevpdfu.c 1.87, src/gdevpdfx.h 1.133]
2005-09-05 14:18 Igor Melichev
Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device. DETAILS : We occasionally detected that gdev_pdf_put_params wrongly handled the OPDFReadProcsetPath parameter : the old code modifies the next field after gx_device_pdf::OPDFReadProcsetPath. It happens because c_param_write assumes the parameter type is gs_param_string (and doesn't check it neither at the compile time, nor at runtime), but the actual field type is gs_string, which is smaller in 4 bytes. When we fix the type of gx_device_pdf::OPDFReadProcsetPath, a problem appears in the garbager descriptor : a warning about a type cast appears. Analyzing it so far we found that in this case the garbager may relocate "persistent" parameter string, which is not allocated in the heap. For fixing the latter we define a new garbager method igc_reloc_param_string and few accessors to it, and use them in the gx_device_pdf memory descriptor. We choose this way because we know that other devices need same method for separation names. This patch consists of 2 parts : 1. The enhancement for the garbager, which also moves the definition of gs_param_string to the scope visible the garbager. This part modifies the files igc.c, igcstr.c, gsparam.h, gsstruct.h, gstypes.h, igcstr.h 2. The improvement for the pdfwrite device, which modifies other files : gdevpdfb.h, gdevpdfx.h, gdevpdf.c, gdevpdfu.c . Other devices may need a revision. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.83]
2005-09-05 14:18 Igor Melichev
ps2write : Compact the output file. DETAILS : 1. Strip whitespaces and comments when writing procsets to the output file. 2. A new device parameter CompressEntireFile allows to apply LZWEncode either to the procset or to entire file. 3. When HaveTrueTypes is false, the related part of the procset is being skipped EXPECTED DIFFERENCES : None.[doc/Ps2ps2.htm 1.4, src/gdevpdf.c 1.121, src/gdevpdfb.h 1.11, src/gdevpdfp.c 1.52, src/gdevpdfu.c 1.86, src/gdevpdfx.h 1.132]
2005-09-05 13:58 Igor Melichev
Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device. DETAILS : We occasionally detected that gdev_pdf_put_params wrongly handled the OPDFReadProcsetPath parameter : the old code modifies the next field after gx_device_pdf::OPDFReadProcsetPath. It happens because c_param_write assumes the parameter type is gs_param_string (and doesn't check it neither at the compile time, nor at runtime), but the actual field type is gs_string, which is smaller in 4 bytes. When we fix the type of gx_device_pdf::OPDFReadProcsetPath, a problem appears in the garbager descriptor : a warning about a type cast appears. Analyzing it so far we found that in this case the garbager may relocate "persistent" parameter string, which is not allocated in the heap. For fixing the latter we define a new garbager method igc_reloc_param_string and few accessors to it, and use them in the gx_device_pdf memory descriptor. We choose this way because we know that other devices need same method for separation names. This patch consists of 2 parts : 1. The enhancement for the garbager, which also moves the definition of gs_param_string to the scope visible the garbager. This part modifies the files igc.c, igcstr.c, gsparam.h, gsstruct.h, gstypes.h, igcstr.h 2. The improvement for the pdfwrite device, which modifies other files : gdevpdfb.h, gdevpdfx.h, gdevpdf.c, gdevpdfu.c . Other devices may need a revision. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.120, src/gdevpdfb.h 1.10, src/gdevpdfu.c 1.85, src/gdevpdfx.h 1.131, src/gsparam.h 1.13, src/gsstruct.h 1.20, src/gstypes.h 1.7, src/igc.c 1.15, src/igcstr.c 1.7, src/igcstr.h 1.6]
2005-09-04 20:42 Igor Melichev
Type 1 hinter : Improve the criterion for stem recognition. DETAILS : Bug 687727 "Type 1 hinter : A horizontal line condition maybe too strong". Patch from Igor Melichev. 1. Many fonts, including URW TimesRoman, needs to apply alignemnt zones to upper or lower corners of a glyph. An example is '1' in TimesRoman. This patch detect upper and lower corners as local extremes by Y, and pass them to t1_hinter__find_zone. 2. After the change (1) we detected, that the document comparefiles/LD.pdf renders much worse. Analyzing it so far, we detected that the top of the left vertical arm of 'm' applies same hint as horizontal arc stems. To avoid this, this patch computes a "stem boundary quality", which is the tangent of the stem boundary, and use it as a priority for choosing a pole for stem alignment (the lower tangent, the higher priority). After the change (2) we detected that most Genoa test render differently. The reason appears that the old code erroneusely aligned a diagonal pole of the character 'm', which is placed between the right vertical arm and the nearest upper arc stem. This patch fixes that due to other (right) poles get a better priority, but to our apologies this progression causes numerous differences in rasters. EXPECTED DIFFERENCES : Almost ALL FILES with a text RENDER DIFFERENTLY. "normal" : N "000040cf.000_60.pdf" N "001-01.ps" N "001-13.ps" N "001-25.ps" N "002-09.ps" N "002-21.ps" N "002-33.ps" N "012-01.ps" N "012-05.ps" N "012-09.ps" N "012-13.ps" N "013-01.ps" N "013-05.ps" N "013-09.ps" N "013-13.ps" N "014-01.ps" N "014-05.ps" N "014-09.ps" N "014-13.ps" N "015-01.ps" N "015-05.ps" N "015-09.ps" N "016-01.ps" N "017-01.ps" N "018-01.ps" N "01_001.pdf" N "020-01.ps" N "023-01.ps" N "027-01.ps" N "027-05.ps" N "027-09.ps" N "028-01.ps" N "031-01.ps" N "031-05.ps" N "032-01.ps" N "032-07.ps" N "033-01.ps" N "033-52-5873.pdf" N "034-01.ps" N "034-10.ps" N "035-01.ps" N "035-07.ps" N "036-01.ps" N "038-01.ps" N "039-01.ps" N "040-01.ps" N "045-01.ps" N "055-01.ps" N "083-01.ps" N "083-05.ps" N "083-09.ps" N "083-13.ps" N "084-01.ps" N "091-01.ps" N "093-01.ps" N "094-01.ps" N "096-01.ps" N "102-01.ps" N "103-01.ps" N "104-01.ps" N "109-01.ps" N "110-01.ps" N "113-01.ps" N "118-01.ps" N "119-01.ps" N "119-10.ps" N "119-16.ps" N "119-23.ps" N "119-35.ps" N "119-41.ps" N "119-47.ps" N "120-01.ps" N "123-01.ps" N "123-05.ps" N "123-09.ps" N "124-01.ps" N "129-01.ps" N "136-01.ps" N "141-01.ps" N "148-01.ps" N "148-05.ps" N "148-11.ps" N "148-16.ps" N "149-01.ps" N "149-05.ps" N "150-01.ps" N "154-01.ps" N "158-01.ps" N "159.pdf" N "162-01.ps" N "165-01.ps" N "166-01.ps" N "169-01.ps" N "169-05.ps" N "169-09.ps" N "169-13.ps" N "170-01.ps" N "175-01.ps" N "176-01.ps" N "181-01.ps" N "184-01.ps" N "192-01.ps" N "194-01.ps" N "200-01.ps" N "205-01.ps" N "205-05.ps" N "205-09.ps" N "205-13.ps" N "206-01.ps" N "212-01.ps" N "213-01.ps" N "214-01.ps" N "215-01.ps" N "219-01.ps" N "220-01.ps" N "220-07.ps" N "222-01.ps" N "222-05.ps" N "222-09.ps" N "222-13.ps" N "223-01.ps" N "226-01.ps" N "227-01.ps" N "231-01.ps" N "233-01.ps" N "237-01.ps" N "238-01.ps" N "244-01.ps" N "245-01.ps" N "245-07.ps" N "245-13.ps" N "245-17.ps" N "246-01.ps" N "250-01.ps" N "251-01.ps" N "255-01.ps" N "257-01.ps" N "258-01.ps" N "260-01.ps" N "263-01.ps" N "264-01.ps" N "268-03.ps" N "268-04.ps" N "268-05.ps" N "268-06.ps" N "269-01.ps" N "270-01.ps" N "272-01.ps" N "276-01.ps" N "281-01.ps" N "282-01.ps" N "289-01.ps" N "296-01.ps" N "297-01.ps" N "298-01.ps" N "298-05.ps" N "298-09.ps" N "299-01.ps" N "303-01.ps" N "304-01.ps" N "307-01.ps" N "307-07.ps" N "307-13.ps" N "308-04.ps" N "310-04.ps" N "311-03.ps" N "313-01.ps" N "316-07.ps" N "320-01.ps" N "321-01.ps" N "321-05.ps" N "321-09.ps" N "325-01.ps" N "327-01.ps" N "330-01.ps" N "334-01.ps" N "335-01.ps" N "336-01.ps" N "401-01.ps" N "405-01.ps" N "409-01.ps" N "415-01.ps" N "421-01.ps" N "430-01.ps" N "442-01.ps" N "450-01.ps" N "455690.pdf" N "460-01.ps" N "463-01.ps" N "464-01-fixed.ps" N "468-01-fixed.ps" N "476-01-fixed.ps" N "476-01.ps" N "478-01.ps" N "483-05-fixed.ps" N "541.pdf" N "541_623.pdf" N "687572.pdf" N "86554321.pdf" N "acrobat.pdf" N "adesso1.pdf" N "adesso3.pdf" N "adesso7.pdf" N "ADOBE1-4.pdf" N "AdobeLic.pdf" N "alphabet.ps" N "Altona-Testsuite_p2_S_x3.pdf" N "Altona.Page_3.2002-09-27.pdf" N "Altona_Measure_1v1.pdf" N "Altona_Technical_1v1_x3.pdf" N "Altona_Visual_bb_1v1_x3.pdf" N "Altona_Visual_sb_1v1_x3.pdf" N "besttest.pdf" N "bla.ps" N "brochurep1.pdf" N "bug-gstest.pdf" N "Bug687044.ps" N "Bug687111.ps" N "Bug687311.pdf" N "Bug687546.ps" N "Bug687603.ps" N "Bug687672.pdf" N "Bug687698.ps" N "Bug687724.pdf" N "Bug687828.pdf" N "Bug687840.pdf" N "Bug687845.ps" N "bulletin.pdf" N "chartab.pdf" N "chess.ps" N "Dave_Barry.pdf" N "Fixed_Original.pdf" N "fonts.pdf" N "fonttest.pdf" N "H00216q.pdf" N "HeiseiMinStd.pdf" N "japan.ps" N "js.pdf" N "kazmir.pdf" N "keyboard.pdf" N "KozukaB-ILEmbed.pdf" N "laballade.pdf" N "LD.pdf" N "MagicEye.pdf" N "ngnews.pdf" N "ngnews1.pdf" N "NIL_0003.pdf" N "Openhuis_pdf_zw.pdf" N "Original.pdf" N "pdfopt_bug.pdf" N "pdftops.pdf" N "PixelisAd.pdf" N "prfmm.pdf" N "prob.pdf" N "pstopdf.pdf" N "pstopdfO3.pdf" N "PT.ps" N "QA_Inv.pdf" N "RealCities.pdf" N "RodinCIDEmbed.pdf" N "S2_Digitalproof-Forum_x3k.pdf" N "smdf.90441.102.pdf" N "Svd.pdf" N "test-hyperref.pdf" N "test.pdf" N "TextRize.pdf" N "time1.pdf" N "tpc2.ps" N "Type3stringwidth.ps" N "type42_glyph_index.ps" N "waterfal.ps" N "womanface.pdf" N "xgfddg.pdf" pdfwrite : P "0.pdf" P "000040cf.000_60.pdf" P "01_001.pdf" P "001-01.ps" P "001-13.ps" P "001-25.ps" P "002-09.ps" P "002-21.ps" P "002-33.ps" P "012-01.ps" P "012-05.ps" P "012-09.ps" P "012-13.ps" P "013-01.ps" P "013-05.ps" P "013-09.ps" P "013-13.ps" P "014-01.ps" P "014-05.ps" P "014-09.ps" P "014-13.ps" P "015-01.ps" P "015-05.ps" P "015-09.ps" P "016-01.ps" P "017-01.ps" P "018-01.ps" P "01_001.pdf" P "020-01.ps" P "023-01.ps" P "027-01.ps" P "027-05.ps" P "027-09.ps" P "028-01.ps" P "031-01.ps" P "031-05.ps" P "032-01.ps" P "032-07.ps" P "033-01.ps" P "033-52-5873.pdf" P "034-01.ps" P "034-10.ps" P "035-01.ps" P "035-07.ps" P "036-01.ps" P "038-01.ps" P "039-01.ps" P "040-01.ps" P "045-01.ps" P "055-01.ps" P "083-01.ps" P "083-05.ps" P "083-09.ps" P "083-13.ps" P "084-01.ps" P "091-01.ps" P "093-01.ps" P "094-01.ps" P "096-01.ps" P "102-01.ps" P "103-01.ps" P "104-01.ps" P "109-01.ps" P "110-01.ps" P "113-01.ps" P "118-01.ps" P "119-01.ps" P "119-10.ps" P "119-16.ps" P "119-23.ps" P "119-35.ps" P "119-41.ps" P "119-47.ps" P "120-01.ps" P "123-01.ps" P "123-05.ps" P "123-09.ps" P "124-01.ps" P "129-01.ps" P "136-01.ps" P "141-01.ps" P "148-01.ps" P "148-05.ps" P "148-11.ps" P "148-16.ps" P "149-01.ps" P "149-05.ps" P "150-01.ps" P "154-01.ps" P "158-01.ps" P "159.pdf" P "162-01.ps" P "165-01.ps" P "166-01.ps" P "169-01.ps" P "169-05.ps" P "169-09.ps" P "169-13.ps" P "170-01.ps" P "175-01.ps" P "176-01.ps" P "181-01.ps" P "184-01.ps" P "192-01.ps" P "194-01.ps" P "200-01.ps" P "205-01.ps" P "205-05.ps" P "205-09.ps" P "205-13.ps" P "206-01.ps" P "212-01.ps" P "213-01.ps" P "214-01.ps" P "215-01.ps" P "219-01.ps" P "220-01.ps" P "220-07.ps" P "222-01.ps" P "222-05.ps" P "222-09.ps" P "222-13.ps" P "223-01.ps" P "226-01.ps" P "227-01.ps" P "231-01.ps" P "233-01.ps" P "237-01.ps" P "238-01.ps" P "244-01.ps" P "245-01.ps" P "245-07.ps" P "245-13.ps" P "245-17.ps" P "246-01.ps" P "250-01.ps" P "251-01.ps" P "255-01.ps" P "257-01.ps" P "258-01.ps" P "260-01.ps" P "263-01.ps" P "264-01.ps" P "268-03.ps" P "268-04.ps" P "268-05.ps" P "268-06.ps" P "269-01.ps" P "270-01.ps" P "272-01.ps" P "276-01.ps" P "281-01.ps" P "282-01.ps" P "289-01.ps" P "296-01.ps" P "297-01.ps" P "298-01.ps" P "298-05.ps" P "298-09.ps" P "299-01.ps" P "303-01.ps" P "304-01.ps" P "307-01.ps" P "307-07.ps" P "307-13.ps" P "308-04.ps" P "310-04.ps" P "311-03.ps" P "313-01.ps" P "316-07.ps" P "320-01.ps" P "321-01.ps" P "321-05.ps" P "321-09.ps" P "325-01.ps" P "327-01.ps" P "330-01.ps" P "334-01.ps" P "335-01.ps" P "336-01.ps" P "401-01.ps" P "405-01.ps" P "409-01.ps" P "415-01.ps" P "421-01.ps" P "430-01.ps" P "442-01.ps" P "450-01.ps" P "455690.pdf" P "460-01.ps" P "463-01.ps" P "464-01-fixed.ps" P "468-01-fixed.ps" P "476-01-fixed.ps" P "476-01.ps" P "478-01.ps" P "483-05-fixed.ps" P "541.pdf" P "541_623.pdf" P "687572.pdf" P "86554321.pdf" P "acrobat.pdf" P "adesso1.pdf" P "adesso3.pdf" P "adesso7.pdf" P "adesso8.pdf" P "ADOBE1-4.pdf" P "alphabet.ps" P "Altona-Testsuite_p2_S_x3.pdf" P "Altona.Page_3.2002-09-27.pdf" P "Altona_Measure_1v1.pdf" P "Altona_Technical_1v1_x3.pdf" P "Altona_Visual_bb_1v1_x3.pdf" P "Altona_Visual_sb_1v1_x3.pdf" P "annots.pdf" P "besttest.pdf" P "bla.ps" P "brochurep1.pdf" P "bug-gstest.pdf" P "Bug687044.ps" P "Bug687111.ps" P "Bug687311.pdf" P "Bug687546.ps" P "Bug687603.ps" P "Bug687672.pdf" P "Bug687698.ps" P "Bug687724.pdf" P "Bug687828.pdf" P "Bug687840.pdf" P "Bug687845.ps" P "bulletin.pdf" P "chartab.pdf" P "chess.ps" P "Dave_Barry.pdf" P "Fixed_Original.pdf" P "fonts.pdf" P "fonttest.pdf" P "H00216q.pdf" P "HeiseiMinStd.pdf" P "japan.ps" P "js.pdf" P "kazmir.pdf" P "keyboard.pdf" P "KozukaB-ILEmbed.pdf" P "LD.pdf" P "MagicEye.pdf" P "ngnews.pdf" P "ngnews1.pdf" P "NIL_0003.pdf" P "Openhuis_pdf_zw.pdf" P "Original.pdf" P "p2b-100.pdf" P "pdfopt_bug.pdf" P "pdftops.pdf" P "PixelisAd.pdf" P "prfmm.pdf" P "prob.pdf" P "pstopdf.pdf" P "pstopdfO3.pdf" P "QA_Inv.pdf" P "RealCities.pdf" P "RodinCIDEmbed.pdf" P "S2_Digitalproof-Forum_x3k.pdf" P "smdf.90441.102.pdf" P "Svd.pdf" P "t.pdf" P "test-hyperref.pdf" P "test.pdf" P "test_multipage_prob.pdf" P "TextRize.pdf" P "time1.pdf" P "tpc2.ps" P "type42_glyph_index.ps" P "waterfal.ps" P "womanface.pdf" P "xgfddg.pdf"[src/gxhintn.c 1.61, src/gxhintn.h 1.24]
Fix for 688275 Overprint problems in Display driver - Gs 8.50 and Gs 8.51. DETAILS: The cause of the problem was that gx_default_get_bits_rectangle did not properly handle a situation in which GX_RETURN_POINTER was not specified for a get_bits operation. The overprint logic is one of the few situations in which this option is not specified. The display device is one of the few situations that uses the default get_bits logic. This is the second problem that has been found in this combination.[src/gdevdgbr.c 1.14, src/gdevdsp.c 1.35]
2005-09-02 05:54 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 11 (fix 1). DETAILS : The ps2write device was broken with recent patches. Fixing it now. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h 1.130]
2005-09-01 22:04 Stefan Kemper
Formatting cleanup for the printing of the Font samples. Fixes bug 688281 Thanks to: SaGS5495@hotmail.com[lib/prfont.ps 1.7]
2005-09-01 00:05 Alex Cherepanov
Fix incorrect detection of the end of input data during processing of (next_code == lzw_decode_max) branch in s_LZWD_process(). Return the error status only when there's not enough data in the buffer and the buffer cannot be refilled. Fix bug 688287[src/slzwd.c 1.6]
2005-08-31 18:34 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 10, final. DETAILS : This completes the fix for the bug 687168 "(pdfwrite) Transparency as a high level object" It switches on the new code by changing the default value for the HaveTransparency option. EXPECTED DIFFERENCES : pdfwrite : ai2.pdf dina3_watermark.pdf SoftMaskGroup.pdf[src/gdevpdfb.h 1.9]
2005-08-31 18:31 Igor Melichev
pdfwrite : Upgrading the default CompatibilityLevel to 1.4 . THIS IS INCOMPATIBLE CHANGE. We believe that CompatibilityLevel=1.3 is now obsolete, because most viewers can handle PDF 1.4 . If an user needs to create a document for older viewers, he should specify CompatibilityLevel explicitly. Note that PDFSETTINGS parameter lists have been upgraded also. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm 1.83, lib/gs_pdfwr.ps 1.47, lib/ps2pdf 1.4, lib/ps2pdf.bat 1.9, lib/ps2pdf.cmd 1.4, src/gdevpdf.c 1.119]
Update map_cmyk_color function to modern version (was old style). This should complete jpegcmyk for correct behaviour.[src/gdevjpeg.c 1.10]
Add jpegcmyk device (module missed in previous commit).[src/gdevjpeg.c 1.9]
2005-08-31 12:35 Igor Melichev
Documenting the new pdfwrite device paramentr HaveTransparency. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm 1.82]
2005-08-31 11:18 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 9. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" It simplifies the logic of the HaveTransparency flag. EXPECTED DIFFERENCES : None.[src/gdevpdfp.c 1.51, src/gdevpdft.c 1.50]
2005-08-31 11:07 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 8. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" It applies pdf_substitue_resource to transparency-related objects. EXPECTED DIFFERENCES : None.[src/gdevpdft.c 1.49]
2005-08-31 11:02 Igor Melichev
Fix (pdfwrite) : A code restructurisation : factor out pdf_substitue_resource. DETAILS : This change is algorithmicly equivalent. pdf_substitue_resource is a new function, which replaces redundant code fragments. EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.66, src/gdevpdfj.c 1.48, src/gdevpdfu.c 1.84, src/gdevpdfx.h 1.129]
2005-08-31 07:40 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 7. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" 1. Restructurize the code in gdevpdft.c . 2. Provide a delayed obgect ID assignation in gdevpdft.c . 3. gdevpdfb.h, gdevpdfx.h slightly changed for (2). EXPECTED DIFFERENCES : None.[src/gdevpdfb.h 1.8, src/gdevpdft.c 1.48, src/gdevpdfx.h 1.128, src/gdevpdti.c 1.51]
Remove inadvertent commit that included png48 device.[src/msvc32.mak 1.75]
Add jpegcmyk device.[src/bcwin32.mak 1.38, src/devs.mak 1.136, src/macos-mcp.mak 1.35, src/macosx.mak 1.28, src/msvc32.mak 1.74, src/openvms.mak 1.41, src/os2.mak 1.47, src/unix-gcc.mak 1.50, src/unixansi.mak 1.41, src/watcw32.mak 1.35]
Fix for 688252 Signal 11 in set_color_ht_le_4 on AMD64. The fix comes from Alex Cherepanov. Add a cast for force signed math when working with a signed and unsigned value.[src/gxcht.c 1.17]
2005-08-30 23:26 Alex Cherepanov
Encode the indication that the EPS file has been cropped into EPSBoundingBoxState and suppres subsequent messages about cropping the file. The warning is false when BoundingBox preceeds HiResBoundingBox and BoundingBox causes cropping but HiResBoundingBox doesn't. Fix bug 688062[lib/gs_epsf.ps 1.15]
Fix handling of zero length input files so that .peekstring does not give a rangecheck error. Bug 688199. DETAILS: Following Russell Lang's suggestion, the zpeekstring function appeared to have been (at one time) designed so that EOFC returned an empty string, but the check for requested len > bsize had priority, and when the file was closed, the 'bsize' was reset to 0. I removed the "HACK" check to after the check for status == EOFC.[src/zfileio.c 1.18]
Fix for large 'loca' table counts in TrueType fonts causing stackoverflow. Bug 688277 for customer 870. DETAILS: While the MaxOpStack userparam (default value 50000 in gs_init.ps) could work around this problem, a cleaner and more efficient solution is to create the array for the 'loca' values, then fill it.[lib/gs_ttf.ps 1.47]
2005-08-30 17:32 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 6. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" The last patch was commited with errors. This patch fixes that. EXPECTED DIFFERENCES : None.[src/ztrans.c 1.27]
2005-08-30 17:08 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 5. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" The last patch was commited with errors. This patch fixes that. EXPECTED DIFFERENCES : None.[src/gdevp14.c 1.34, src/gstrans.h 1.15]
2005-08-30 16:49 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 4. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" This patch debugs soft mask groups. 1. The pdf14 device appears to use soft mask Background converted into DeviceGray. We believe it is incorrect, but we don't want to fix it now. To provide the correct data for high level devices we added a new field GrayBackground, which keeps the Background color converted into DeviceGray. Background now keeps the original Background, specified in the blend color space. 2. Do not use gsave-grestore when creating a soft mask with .begintransparencygroup, because high level devices need to modify the graphic state with storing the sift mask ID. The new code uses currentcolorspace-setcolorspace instead gsave-grestore. EXPECTED DIFFERENCES : None.[lib/pdf_draw.ps 1.96, src/gdevp14.c 1.33, src/gdevpdft.c 1.47, src/gstparam.h 1.15, src/gstrans.c 1.25, src/int.mak 1.136, src/ztrans.c 1.26]
2005-08-30 13:01 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 3. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" This patch completes the graphic state synchronization. A new field soft_mask_id is added to gs_imager_state. High level devices use it for storing an ID of the current soft mask. Currently it doesn't affect low level devices. EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.65, src/gdevpdft.c 1.46, src/gdevpdfx.h 1.127, src/gstrans.c 1.24, src/gxistate.h 1.23]
2005-08-30 10:49 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects, part 2. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" This patch provides an accumulation of a transparency mask group as a PDF command stream, a creation of SMask dictionaries and a synchronization of the graphic state with them. The graphic state synchronization is incomplete due to insufficient data supplied by the graphics library when executong a grestore. It will be fixed later. pdf_substream_save_s::soft_mask_dict is added to handle nested mask groups. EXPECTED DIFFERENCES : None.[src/gdevpdfb.h 1.7, src/gdevpdft.c 1.45, src/gdevpdfx.h 1.126, src/gdevpdti.c 1.50, src/gsstruct.h 1.19]
2005-08-30 09:06 Igor Melichev
Fix (device intervace, PDF interpreter) : High level devices need to know whether the mask is an image or a group. DETAILS : This is the fourth preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" A high level device needs to know whether a transparency mask is a group or an image. To provide this data we split the operator .begintransparencymask into .begintransparencymaskgroup and .begintransparencymaskimage, which should be invoked in appropriate cases. The structure gs_pdf14trans_params_s passes a new flag mask_is_image. EXPECTED DIFFERENCES : None.[doc/Language.htm 1.95, lib/pdf_draw.ps 1.95, lib/pdf_ops.ps 1.40, src/gstrans.c 1.23, src/gstrans.h 1.14, src/ztrans.c 1.25]
2005-08-30 06:38 Igor Melichev
Fix : Cygwin/gcc warnings. DETAILS : This fixes some Cygwin/gcc warnings and improves few comments. EXPECTED DIFFERENCES : None.[src/gdevdevn.c 1.27, src/gdevpdf.c 1.118, src/gdevpsd.c 1.23, src/gdevtsep.c 1.9, src/gsistate.c 1.12, src/gxpcopy.c 1.26, src/zmedia2.c 1.19]
Invalid xref was not detected causing some objects to be defined as 'null' which could cause 'typecheck' or other errors. Bug 688285 for customer #870. DETAILS: The xref subsection count was one too small, so there was one xref entry that was being interpreted as a new subsection. Detect the trailing 'n' garbage (any non-whitespace) and signal an error so that the 'rebuild' logic can recover the correct xref. EXPECTED DIFFERENCES. none (tested all pdf files in comparefiles).[lib/pdf_main.ps 1.99]
2005-08-29 18:21 Igor Melichev
Fix (pdfwrite) : Handling transparency as a high level objects. DETAILS : This is an initial commit for the high level handler to pdfwrite. It fixes the bug 687168 "(pdfwrite) Transparency as a high level object" It defines a new distiller parameter HaveTransparency. When it is false (default), the behavior is equivalent to the old one - the transparency is being converted into a plane image. The value true only works with CompatibilityLevel>=1.4 . In this case transparency is being written to output as high level objects. The writtemn objects are not necesserily repear the structure of the input document, because the PDF interpreter performs some simplifications, which can't be recovered by the pdfwrite device. The main conversion happens in gdevpdft.c . See comments in there. Two new resource types are being added - resourceSoftMaskDict, resourceGroup. Doing so to allow a further optimization with merging duplicated objects of such types. EXPECTED DIFFERENCES : None.[doc/Develop.htm 1.153, src/devs.mak 1.135, src/gdevpdf.c 1.117, src/gdevpdfb.h 1.6, src/gdevpdfg.c 1.64, src/gdevpdfg.h 1.42, src/gdevpdfi.c 1.73, src/gdevpdfj.c 1.47, src/gdevpdfp.c 1.50, src/gdevpdft.c 1.44, src/gdevpdfu.c 1.83, src/gdevpdfx.h 1.125]
2005-08-29 18:12 Igor Melichev
Fix (PDF interpreter) : Provide a bbox for .begintransparencygroup (issue 2). DETAILS : This is the second attempt of the second preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" The last patch about the bbox appear incorrect due to the device transparency handler receives the image bbox data when CTM is concatenated with the image matrix. This patch almost restores the old code except image bbox is changed from 0 0 0 0 to 0 0 1 1, which is the right rectangle in the image coordinates. EXPECTED DIFFERENCES : None.[lib/pdf_draw.ps 1.94]
2005-08-29 15:58 Igor Melichev
Fix: Validate the number of transparency Background components. DETAILS : The old code never checked whether a transparency Background has a proper number of components. It could cause an indeterministic behavior with incorrect documents. EXPECTED DIFFERENCES : None.[src/gdevp14.c 1.32, src/gstrans.c 1.22]
2005-08-29 15:25 Igor Melichev
Fix (device interface): Provide an access for the number of transparency Background components for high level devices, part 2. DETAILS : This continues the third preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" The last patch has a minor inaccuracy : the field Background_components defined as bool. It must be int. EXPECTED DIFFERENCES : None.[src/gstparam.h 1.14, src/gstrans.h 1.13]
2005-08-29 15:18 Igor Melichev
Fix (device interface): Provide an access for the number of transparency Background components for high level devices. DETAILS : This is a third preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" This change is algorithmically equivalent. The member has_Background is now replaced with Background_components, which stores the number of Background components. It is visible for devices when the create_compositor method is called with PDF14_BEGIN_TRANS_GROUP. The clist file format has been slightly changed : the field Background_components is now written into a separate byte, and unused Background components are being skipped. EXPECTED DIFFERENCES : None.[src/gdevp14.c 1.31, src/gstparam.h 1.13, src/gstrans.c 1.21, src/gstrans.h 1.12, src/ztrans.c 1.24]
2005-08-29 14:05 Igor Melichev
Fix (PDF interpreter) : provide a bbox for .begintransparencygroup . DETAILS : This is a second preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" The old code calls .begintransparencygroup with zero bbox when processing a Type 3 image with SMask. This patch computes the bbox from the image coordinates in order to provide data for the high level transparency handler. EXPECTED DIFFERENCES : None.[lib/pdf_draw.ps 1.93]
2005-08-29 12:51 Igor Melichev
Fix (pdfwrite) : Use DeviceGray when writing SMask image. DETAILS : This is a preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" The old code tried to use DevicePixel while writing a SMask image. Currently this branch never executes because the current code always converts transparency to a plain image. EXPECTED DIFFERENCES : None.[src/gdevpdfb.h 1.5, src/gdevpdfi.c 1.72, src/gdevpdfx.h 1.124]
Change ResusableStreamDecode filter implementation to avoid using .bigstring so that languagelevel 3 is not required for this filter. Patch thanks to mat. Gheorghe Savulescu. Bug 688150. DETAILS: In general, running at Language Level 2 by using .setlanguagelevel is not supported when using features that are part of LanguageLevel 3, such as filters that are part of LL3, but this patch is simple and low risk so I am adding it and closing the bug.[lib/gs_frsd.ps 1.9]
Partial support for a compressed %rom% iodevice. It is enabled by adding romfs.dev to FEATURE_DEVS in the top-level Makefile. This also includes a C commandline-utility 'mkromfs' that takes a directory and creates a compressed image of it as a file. Currently the %rom% iodevice in gsiorom.c reads this directly. The compressed image is a list of paths with offset pointers, each offset pointing to the beginning of a series of zlib- compressed blocks comprising the file. This gets us pretty good (typically 50% or better) compression of the support files while still allowing relatively fast seek and random access. TODO: 1. Have mkromfs trace through the include directives in lib/ so that only those postscript files required by Ghostscript are included, the same as geninit does now. Resources/ and fonts/ can still be included as-is. 2. Have mkromfs (or a separate tool) general a C file (or sequence of them, so the data can be compiled directly into the Ghostscript executable. And of course modify gsiorom.c to pull its data from there instead of a literal file. 3. Integrate mkromfs into the build system and replace the existing geninit code. Setting COMPILE_INITS=1 in the top-level Makefile should automatically construct and compile in the compressed image and enable the romfs FEATURE_DEV 4. Switch to a b-tree for the block pointer index, so that file access remains fast if someone dumps in a huge number of Resources or fonts. Right now it does a linear search, which is fast enough for the current complement but will cause a problem as some point.[src/Makefile.in 1.41, src/gsiorom.c 1.1, src/lib.mak 1.211, src/mkromfs.c 1.1]
Cleanup of error message "printquit" calls in pf2afm, mostly to add missing newlines. Thanks to Paul Vojta for the patch.[lib/pf2afm.ps 1.8]
2005-08-24 17:03 Igor Melichev
Fix (the device interface) : High level devices need an access to a transparency transfer function object. DETAILS : It adds "gs_function_t *transfer_function" to gs_pdf14trans_params_s and enhances a garbager descriptor st_pdf14trans. We think that such pointer is alvays have a correct stability, because the transparency only comes from the PDF interpreter, which doesn't create graphic states in the global memory. Otherwise the function object must be global as well. Unfortunately we don't have a validation mechanizm right now, but likely it will appear with fixing the bug 688226. EXPECTED DIFFERENCES : None.[src/gdevp14.c 1.30, src/gstparam.h 1.12, src/gstrans.c 1.20, src/gstrans.h 1.11]
2005-08-23 19:26 Igor Melichev
Fix (pdfwrite) : Improve the logic of combining a text rotation with ViewingOrientation. DETAILS : Bug 687800 "%%ViewingOrientation not processed by pdfwrite". We can't say that we perfectly understand what rules Adobe uses to combine them, becaue the explanation in "Technical Note #5151 Version :Acrobat 6.0 Acrobat Distiller Parameters" page 50 is incomplete. But with this change the result looks more compatible to Adobe. EXPECTED DIFFERENCES : "Bug687044.ps" "Bug687603.ps"[src/gdevpdf.c 1.116]
2005-08-23 17:34 Igor Melichev
Fix (Type 1 hinter) : Allow degenerate CTM by a rendering with no hinting. DETAILS : This is a fix for a part of the bug 688065 "incorrect handling of type 1 fonts at 0 0 scale", which relates to "1 0 scale". The case "0 0 scale" was fixed earlier. With degenerate CTM the old code fails with 'rangecheck' due to the hinter logics needs an inverse CTM. However some documents set "1 0 scale" to compute text width. The new code does render a text with degenerate CTM with no hinting. We could implement an optimized algorithm for this with a simple rendering of a line which is a projection of the glyph, but we have no engineering resources for this optimization. We believe that such optimisation isn't much useful. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.60]
2005-08-23 12:58 Igor Melichev
Fix (pdfwrite and other vector devices) : A compatibility to Adobe when stroking with a degenerate CTM. DETAILS : Bug 687901 '"wrong operand type" error'. See comment in code. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.68]
2005-08-23 11:26 Igor Melichev
Fix (pdfwrite and other vector devices) : Indeterministic result when stroking a path with a degenerate CTM. DETAILS : It fixes the indeterministic habavior with the test document of the Bug 687901 '"wrong operand type" error', but doesn't fix the bug. EXPECTED DIFFERENCES : None.[src/gdevvec.c 1.27]
2005-08-22 21:30 Igor Melichev
Fix: /SP pdfmark must synchronize the clipping path. DETAILS : Bug 687558 "Wrong clipping path with /SP pdfmark". This patch consists of 2 parts : 1. A hack for synchronizing the clipping path in 'pdfmark'. We need to use a hack, because the implementation of 'pdfmark' is based on the device method put_params, and there is no regular way to pass the imager state or the clipping path through it. The hack paints something outside the device bbox, so that the painting doesn't appear in the output. 2. An improvement to the pdfwrite device, which skips a stroking, if it appears entirely outside the clipping box. That improvement appears some imperfect due to a compatibility to the hack (1) - see comment in code. The imperfection is the synchronization of a clipping path when a document strokes outside the clipping box. We believe that such cases are rare, so the imperfection isn't important. A progression appears while a charproc accumulation : the old code accumulated strokes outside the bounding box set by 'setcachedevice', but the new one does not. The new one appears compatible to Adobe Distiller 5. EXPECTED DIFFERENCES : pdfwrite 72 dpi : 015-09.ps[lib/gs_pdfwr.ps 1.46, src/gdevpdfd.c 1.67]
2005-08-22 21:29 Igor Melichev
The filling algorithm : optimize paths with many subpaths (continued). DETAILS : The last patch can cause a dangling pointer subpath_current. Rather we don't use it, it may be harmful for the garbager. This patch fixes that. Minor change : removed an unuseful type case and empty line. EXPECTED DIFFERENCES : None.[src/gxpcopy.c 1.25]
2005-08-22 14:29 Igor Melichev
The filling algorithm : optimize paths with many subpaths. DETAILS : Bug 686996 "Orientation has massive effect on render time". It fills a path consisting of 4440 subpaths, each of which is a quasi-rectangle (or a rectangle with a fixed_fraction noise). If a path has over 50 subpaths, we try to merge subpaths by common vertical lines. This works around a poor 3d party software, which generates a path as a huge number of contacting rectangles. An additional complexity happens due to the sample document defines multiple quasi-colinear lines instead colinear ones. An example : {{362254, 42905}, {362253, 204152}} and {{362253, 42881},{362253, 204152}}. We believe that with a huge number of contours the precision of the rendering doesn't need to be so strong as with a small number. Therefore we replace quasi-colinear lines with colinear ones. Another smart point is which pairs of lines to be checked for colinearity. Obviousely checking all pairs would be too slow. Probably we can assume that the Postscript writer orders rectangles by the trasversal direction, so colinear pairs appear in the path within a small window, which roughly is the number of spot holes multiplied by 4. (Well, one can construct a worse path, but unlikely it is practical). This patch hardcodes few arbitrary constants, which may need further improvements. See commnmets in code for more details. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.122, src/gxpath.h 1.16, src/gxpcopy.c 1.24]
2005-08-18 08:07 Igor Melichev
ps2write : Improve the documentation about Policies.PageSize . EXPECTED DIFFERENCES : None.[doc/Ps2ps2.htm 1.3]
2005-08-17 21:54 Igor Melichev
PDF interpreter now processes ToUnicode CMaps when the target device is pdfwrite. DETAILS : Bug 685335 "PDF interpreter doesn't process ToUnicode". The PDF interpreter now converts ToUnicode CMaps into FontInfo.GlyphNames2Unicode, which PS interpreter passes to high level devices, and the pdfwrite device converts it again into ToUnicode. Therefore re-distilling a PDF file with GS|pdfwrite preserves the searchability. Before now it was lost. Currently this stuff works only when the output device is pdfwrite. Doing so to save the processor time with raster devices. In future the condition in .processToUnicode may need an enhancement. We found that some documents define ToUnicode incorrectly. For now we skip cases, in which ToUnicode is defined to a name, because the PDF specification requires it to be a stream. EXPECTED DIFFERENCES : None.[lib/gs_cmap.ps 1.19, lib/pdf_font.ps 1.78]
Previous change for ignoring 0 area clip path was not sufficient and made other files misbehave. Fixes bugs 688121 and 688259, reopen 687136. DETAILS: Thanks to Dan for identifying the change that caused 688259 to fail. I had coincidentally been looking in the same area for 688121. 687136 will require more analysis and a different patch, and the patch will need to be tested against the files for 688121 and 688259 along with the full regression suite. `[lib/pdf_ops.ps 1.39]
2005-08-17 14:40 Igor Melichev
Fix : Unconforming line join. DETAILS : Ghostscript Bug 688126 "Wrong line join". 1. The old code applied a bewel join while flattening a curve. Such behavior appears incompatible to Adobe CPSI 3010.105. Language.htm said that it was done with .setcurvejoin for a compatibility to Adobe implementations. We believe that modern Adobe implementations are not such, and therefore we change the default value of .setcurvejoin to -1, which actually disables a curve join by default. The documentation is being updated accordingly. 2. Since round join always paints a full circle (see comment in add_round_cap), and since such circle doesn't appear when CPSI paints a flattened curve, we conclude that round join isn't applied to flattened curves. Therefore we change the condition in gxstroke.c to replace round join with bevel join for flattened curves. Note that PDF 1.5 requires to paint a "pieslice-shaped figure", rather than PDF 1.4 and PLRM3 does a round. Thus, GS code appears some obsolete, and we'll open a separate bug 688269 about that. EXPECTED DIFFERENCES : Visible differences at 300dpi with 034-01.ps, 123-05.ps. Numerous single pixel differences stroking curves. normal, 72 dpi : "012-05.ps" "012-13.ps" "013-05.ps" "013-13.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-05.ps" "015-09.ps" "027-09.ps" "034-01.ps" "034-10.ps" "083-05.ps" "083-13.ps" "123-05.ps" "176-01.ps" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "289-01.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-09.ps" "ai2.pdf" "Bug687812.ps" "bugsample.pdf" "messenger16.pdf" "Openhuis_pdf_zw.pdf" "tiger.eps" normal,300dpi : "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-05.ps" "015-09.ps" "027-01.ps" "027-05.ps" "027-09.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "045-01.ps" "083-05.ps" "083-09.ps" "083-13.ps" "123-01.ps" "123-05.ps" "123-09.ps" "136-01.ps" "148-16.ps" "149-05.ps" "150-01.ps" "154-01.ps" "158-01.ps" "176-01.ps" "192-01.ps" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "220-01.ps" "220-07.ps" "237-01.ps" "245-13.ps" "251-01.ps" "255-01.ps" "258-01.ps" "269-01.ps" "281-01.ps" "289-01.ps" "297-01.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-09.ps" "86554321.pdf" "adesso8.pdf" "ai2.pdf" "besttest.pdf" "Bug687044.ps" "Bug687489.ps" "Bug687724.pdf" "Bug687812.ps" "Bug687840.pdf" "bugsample.pdf" "ca.pdf" "chartab.pdf" "Clarke Tate Manns Chinese.ai" "escher.ps" "golfer.eps" "messenger.pdf" "messenger16.pdf" "Openhuis_pdf_zw.pdf" "p2b-100.pdf" "si_tg_brochure.pdf" "Svd.pdf" "t.pdf" "tiger.eps" pdfwrite, 72dpi : "012-05.ps" "012-13.ps" "013-05.ps" "013-13.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-05.ps" "015-09.ps" "027-01.ps" "027-09.ps" "034-01.ps" "034-10.ps" "083-05.ps" "083-13.ps" "176-01.ps" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "220-07.ps" "237-01.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-09.ps" "adesso8.pdf" "ai2.pdf" "annots.pdf" "Bug687812.ps" "chartab.pdf" "messenger.pdf" "messenger16.pdf" "Openhuis_pdf_zw.pdf" "tiger.eps" pdfwrite, 300dpi : "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-05.ps" "015-09.ps" "017-01.ps" "020-01.ps" "027-01.ps" "027-05.ps" "027-09.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "039-01.ps" "045-01.ps" "083-05.ps" "083-09.ps" "083-13.ps" "104-01.ps" "123-09.ps" "136-01.ps" "148-16.ps" "154-01.ps" "158-01.ps" "165-01.ps" "176-01.ps" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "212-01.ps" "213-01.ps" "214-01.ps" "220-01.ps" "237-01.ps" "244-01.ps" "245-07.ps" "255-01.ps" "269-01.ps" "281-01.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-09.ps" "86554321.pdf" "ai2.pdf" "besttest.pdf" "Bug687044.ps" "Bug687489.ps" "Bug687724.pdf" "Bug687812.ps" "Bug687840.pdf" "bugsample.pdf" "ca.pdf" "chartab.pdf" "escher.ps" "golfer.eps" "messenger.pdf" "messenger16.pdf" "Openhuis_pdf_zw.pdf" "p2b-100.pdf" "si_tg_brochure.pdf" "t.pdf" "tiger.eps"[src/gxline.h 1.7, src/gxstroke.c 1.18, doc/Language.htm 1.94]
2005-08-11 17:10 Igor Melichev
Fix (pdfwrite) : Exit a text context before resetting a clip. DETAILS : Bug 688094 "error converting PostScript document". The test document caused a wrong balance of pdf_save_viewer_state / pdf_restore_viewer_state due to a clipping was reset in a text context of a form XObject created with /BP pdfmark. The patch changes pdf_unclip so that it exits a text context when a clipping needs to reset with 'Q'. EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.82]
2005-08-11 15:38 Igor Melichev
Fix : Clipping was missed while stroking a path with a pattern color. DETAILS : Bug 688211 "Gradient not rendered". EXPECTED DIFFERENCES : None.[src/gxstroke.c 1.17]
2005-08-10 19:36 Igor Melichev
Fix : Divide long lines while flattening a path. DETAILS : Bug 688228 "ps2pdf appears to infinite loop processing a document". The old code didn't check for fixed overflow while computing a segment span while flattening a path for the filling algorithm. Due to that it got a wrong coordinate of a line intersection point, and fallen into an infinite cycle. The new code subdivides a line segment if the segment span is greater than max_fixed. See comment in code. EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.45]
2005-08-10 19:31 Igor Melichev
Fix : Develop.htm must reference all relevant files (continued).[doc/Develop.htm 1.151, doc/Develop.htm 1.152]
Fix for 688250 Another overprint problem with the tiffsep and psdcmyk devices. The fix ensures that the various bit mask and shift fields in the device's color_info structure is set for the tiffsep, psdcmyk, and spotcmyk devices.[src/gdevdevn.c 1.26, src/gdevpsd.c 1.22, src/gdevtsep.c 1.8]
Port the 4-bit EGA device to the new DeviceN color mapping. After a patch from William Bader. Fixes bug #687795.[src/gdevpcfb.c 1.7]
Remove a generated file that was causing build portability problems.[jasper/src/libjasper/include/jasper/jas_config_ac.h 1.2]
2005-08-04 17:38 Alex Cherepanov
Fix calculation of the row width on 64-bit platforms. Remove bitmap_raster() macro because Windows bitmap is not affected by the source platform alignment constrains. Initialize padding bytes to 0. Fix bug 688247[src/gdevbmp.c 1.11, src/gdevbmpc.c 1.8]
2005-08-04 09:32 Igor Melichev
Fix (TT font reader) : Allow 'post' over 65536 bytes. DETAILS : Bug 688154 "TTF file fails to load". It applies .readbigtable to 'post' and then use new accessors get_from_stringarray, getinterval_from_stringarray, string_array_size to decode it. The change should be algorithmically eqiovalent except for the 'post' size limitation. A further optimizatrion of calls to first_post_string may be useful. EXPECTED DIFFERENCES : None.[lib/gs_ttf.ps 1.46]
2005-08-03 16:36 Igor Melichev
Fix (ps2write) : A workaround for an HP LaserJet 1320 bug in 'resourcestatus'. DETAILS : See comments in code. The problem happened with the following files : 017-01.ps 020-01.ps 045-01.ps 327-01.ps 336-01.ps Bug687603.ps EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.82]
2005-08-02 11:12 Igor Melichev
Fix (TT interpreter) : Optimize the debug support. DETAILS : Bug 688253 "TT interpreter : too heavy debug support". In the debug build the old code of TT interpreter allocates a copy of points arrays and checks for any point change after TT instruction. The new code checks whether the DebugPrint method is available, and skips all the debug support otherwise. The method is set only if -ZY option is specified. In the release build the debug support compiles to empty. We do not bring if_debug macros to the TT interpreter because we want to keep it close to the original FreeType code. EXPECTED DIFFERENCES : None.[src/gxttfb.c 1.37, src/ttfmain.c 1.34, src/ttfoutl.h 1.16, src/ttinterp.c 1.18, src/ttload.c 1.7]
2005-08-01 20:58 Igor Melichev
Fix (TT interpreter) : Skip TT instructions if the font program or the cvt program fails. DETAILS : Bug 688236 "/invalidfont in -show-". This patch maps any TT bytecode interpreter error to "fBadInstruction", if the error happens during the font instantiation or during the face instantiation. As usual, fBadInstruction disables TT instructions for the font and prints a warning to stderr. EXPECTED DIFFERENCES : None.[src/ttfmain.c 1.33]
2005-08-01 19:40 Igor Melichev
Fix : Develop.htm must reference all relevant files.[doc/Develop.htm 1.150]
2005-07-30 02:39 Alex Cherepanov
Replace memcpy() with overlapping intervals to memmove() in Type 2 font generator. The old code violated the C spec and failed on HP aC++ compiler with +Olibcalls option. Thanks to Hin-Tak Leung for the patch. Fix bug 687360[src/gdevpsfx.c 1.25]
2005-07-29 02:49 Alex Cherepanov
Remove the check for 0 CTM in the type 1 font hinter to support PDF files with 0-size fonts or 0 CTM. Fix bug 688237[src/gxhintn.c 1.59]
2005-07-28 15:24 Alex Cherepanov
Pacify Valgrind: don't copy memory on itself. Partial fix for bug 688225.[src/gsiodev.c 1.8, src/zcie.c 1.13]
2005-07-27 22:34 Igor Melichev
Fix : Maybe line breaks are broken by the last patch. Commit it again with right line breaks for sure.[src/gdevpdfb.h 1.4, src/gdevpdfd.c 1.66, src/gdevpdfx.h 1.123, src/gdevpdti.c 1.49, src/gxcpath.c 1.16, src/gxpath.h 1.15]
2005-07-27 22:09 Igor Melichev
Fix (pdfwrite) : Skip a clip path, which is set by setcachedevice. DETAILS : Bug 687678 "pdfwrite : A Type 3 character cut-off". The setcachedevice clipping must not be written to a charproc. The old code wrote it, causing a character cut-off with several viewers, including Adobe Reader 6. The patch saves a 'setcachedevice' bbox in the pdfwrite device structure and checks it whenever a clip path needs to be written out. See gdevpdfx.h about the new data definition. The box is being saved and restored while entering and exiting a substream. EXPECTED DIFFERENCES : pdfwrite : "012-09.ps" "013-09.ps" "014-09.ps" "015-09.ps" "017-01.ps" "020-01.ps" "045-01.ps" "083-09.ps" "093-01.ps" "123-09.ps" "136-01.ps" "165-01.ps" "205-09.ps" "212-01.ps" "213-01.ps" "214-01.ps" "226-01.ps" "238-01.ps" "260-01.ps" "264-01.ps" "281-01.ps" "298-09.ps" "321-09.ps"[src/gdevpdfb.h 1.3, src/gdevpdfd.c 1.65, src/gdevpdfx.h 1.122, src/gdevpdti.c 1.48, src/gxcpath.c 1.15, src/gxpath.h 1.14]
2005-07-27 11:24 Igor Melichev
Fix : Ignore XUID if Metrics[2] has been changed. DETAILS : Bug 674418 "093-01.ps : Wrong text". When a fong is being cached, the metric data for a glyph is being taken from the cache. If a font have a valid XUID, the XUID is used as the cache key. Consequently, if Metrics[2] has been changed after a font is cached, the font renders with the wrong (unchanged) metric. This patch checks whether another registered font has same XUID and another Metrics[2] dictionary. If so, the XUID is dropped, and it not used as a cache key. EXPECTED DIFFERENCES : Normal : 093-01.ps.[src/gsfont.c 1.37, src/gsfont.h 1.12, src/zbfont.c 1.30]
Improve wording of the new p2ps2 script documentation.[doc/Ps2ps2.htm 1.2]
2005-07-26 20:50 Igor Melichev
Fix (pdfwrite) : Delay the assignation of object id to a color space until its creation is completed. DETAILS : Bug 687712 "ps2pdf silently generates bad PDF in 1.2 mode". The old code reserved an objewct id for a color space when starting its creation. If the creation fails (for example, with CompatibilityLevel <= 1.2), the related graphics is being converted into low level objects. In that case the reserved object id doesn't appear in the output PDF, causing an incorrect xerf. EXPECTED DIFFERENCES : None.[src/gdevpdfc.c 1.53]
Fix for 688052 Segv with test file for 687980 and the psdcmyk device. DETAILS: The 'put_param' routines for the routines which implement the handling of the SeparationOrder, SeparationColorNames, and the MaxSeparation device parameterswere always resetting the number of device components (num_components in the color_info structure) when they were called. This can cause problems with the PDF 1.4 transparency since the transparency processing can have its own process color model. The fix involves only changing the number of device components when one of the three device parameters changes value. This should only occur at the start of a page. The PDF 1.4 process color model is only active during the processing of a page.[src/gdevdevn.c 1.25, src/gdevpsd.c 1.21]
2005-07-21 19:50 Alex Cherepanov
Use memmove() instead of memcpy() in Ins_MINDEX() because of the overlapping memory blocks. Fix bug 688224.[src/ttinterp.c 1.17]
2005-07-21 19:32 Alex Cherepanov
Fix off-by-one error in Decode array testing. Fix bug 688223.[src/gxipixel.c 1.12]
Fix for 688218 gdevpng.c(148) : A harmful warning from MSVC8. The warning message was due to a math overflow for the dither_grays and dither_colors fields in the device color_info structure. This occured due to the addition of the png48 device which has 16 bit components. The fix is to increase the field size to a uint (typically 32 bits).[src/gxdevcli.h 1.40]
2005-07-21 18:13 Igor Melichev
Fix (pdfwrite, ps2write) : Merge equal function resources. DETAILS : Bug 688195 "pdfwrite,ps2write : Redundant function objects". This patch applies the usual merging method for function objects : a delayed assignation of object id, search for equal object, replace redundant one with an old equal one. EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.81]
2005-07-21 16:04 Igor Melichev
Fix (ps2write) : Some of Widths elements could be missed. DETAILS : This is the fourth partial fix for the bug 688169 "ps2write : text dissappears". It relates to Comment #6 of the bug 688169. Some elements of Widths array could be missing if the encoding defines several codes for samne character, and only the first code is used. The old code scanned Encoding and put a Metrics dictionary element for each element of Encoding. However Encoding could contain dummy elements witrh the value 0, and the value 0 replaced an useful value defined earlier. This fix assumes that ps2write renames glyphs if they have several occurances in Encoding, and more than one occurance is used. Under this assumption, if only one occurance is used, other accurances will get the value 0 (using exactly 0 in this case is another ps2write feature being assumed here). So is Metrics already has a non-zero value, it shouldn't be replaced with zero, and the logic is pretty simple : don't replace non-zero values. This patch causes ps2write progressions : 687572.pdf 86554321.pdf Jahr2000.pdf rf1025.pdf EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.81]
2005-07-21 09:53 Igor Melichev
Fix : Move character raster buffers into the memory space of gx_show_enum. DETAILS : Bug 688222 "Another crash in igc_reloc_struct_ptr". This is a partial change for the problem. It fixes exactly the case that happened in the bug report. However there is another harmful case, which we want to fix separately due to it requires a big change. The case is running 'show' in the global allocation mode while the current font is local. We open a separate bug 688227 for it. EXPECTED DIFFERENCES : None.[src/gxchar.c 1.47]
2005-07-20 18:14 Igor Melichev
Fix (pdfwrite, ps2write) : Synthesized bitmap fonts had zero character width in charprocs. DETAILS : 1. The Wx operand of d1 always got the zero value when a font is being converted into a bitmap font. 2. The Width array was wrongly computed when a font is being converted into a bitmap font. 3. Computing Metrics, Widths values to be scaled with the FontMatrix, to account an unusuial FontMatrix of Type 1 fonts, which were created by 3d parties from TrueTypes. 4. Metrics was not set to a font due to a bad stack balance. Bug 688172 "ps2write : CID text displacement". This patch gives a numerous progressions when ps2write runs with a small resolution -r72. In same time with this patch few files regress when ps2write runs with a small resolution -r72 : 687572.pdf 86554321.pdf Jahr2000.pdf EXPECTED DIFFERENCES : pdfwrite 72dpi : "020-01.ps" "093-01.ps" "Bug687845.ps" pdfwrite 300dpi : "020-01.ps" "093-01.ps" "405-01.ps" "450-01.ps" "Bug687845.ps"[lib/opdfread.ps 1.80, src/gdevpdfb.c 1.32, src/gdevpdtt.c 1.103]
Fix undefined in -get- caused by previous (1.38) patch that ignored zero length tables in TT font. Previous fix for 687457. Bug 688220 for customer 580. DETAILS: Some tables, such as 'glyf' are required by the ttf code even if they are zero length. The 687457 bug omitted these tables since their position is arbitrary, but they could cause false 'overlap' conditions, potentially truncating a non-zero length table to zero length. The simplest solution is to place all zero length tables at offset 0 (the offset is arbitrary for zero length tables). EXPECTED DIFFERENCES: Regression testing showed no problems. The file for 687457 is now added to the regression suite as will a test file with a zero length 'glyf'.[lib/gs_ttf.ps 1.45]
2005-07-20 08:20 Igor Melichev
Fix (ps2write) : Initial commit of the ps2ps2 documentation. EXPECTED DIFFERENCES : None.[doc/Ps2ps2.htm 1.1, doc/Readme.htm 1.68]
2005-07-20 07:22 Igor Melichev
Fix (ps2write) : The default value for MaxInlineImageSize was incorrect. DETAILS : It was too small for real images. May improve the printer prerformance. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.115, src/gdevpdfb.h 1.2]
2005-07-20 06:17 Igor Melichev
Fix (ps2write) : Bring the script to the traditional form (continued). DETAILS : Rename the distiller settings PSPrinter with a more meanful name PSL2Printer. EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.45]
2005-07-20 06:10 Igor Melichev
Fix (ps2write) : Bring the script to the traditional form. DETAILS : Bug 688190 "ps2write : improve the ps2ps2 script". Since ps2write actually is a clone of pdfwrite, we define special distiller settings named PSPrinter. After this device parameters are gone from the script, and the ps2ps2 script looks similarly to ps2ps . EXPECTED DIFFERENCES : None.[doc/Develop.htm 1.149, doc/Psfiles.htm 1.64, doc/Use.htm 1.133]
2005-07-20 06:00 Igor Melichev
Fix (ps2write) : Bring the script to the traditional form. DETAILS : Bug 688190 "ps2write : improve the ps2ps2 script". Since ps2write actually is a clone of pdfwrite, we define special distiller settings named PSPrinter. After this device parameters are gone from the script, and the ps2ps2 script looks similarly to ps2ps . EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.44, lib/ps2ps2 1.1, lib/ps2ps2.bat 1.2, lib/ps2ps2.cmd 1.1]
2005-07-19 19:31 Igor Melichev
Fix (pdfwrite, ps2write) : Tj must account the Widths rounding when converting to a bitmap font. DETAILS : Bug 688170 "ps2write : text displacement". An imprecise text width happened when distillation uses a low resolution to convert a font into a bitmap font. Important for CompatibilityLevel <= 1.2 . EXPECTED DIFFERENCES : None.[src/gdevpdti.c 1.47]
Skip CFF tables at 0 or negative offset because some CFF fonts put empty tables at offset 0. Bug 688160. Thanks to Alex Cherepanov for this patch.[lib/gs_cff.ps 1.19]
Fix handling of Some Type1C (CFF) font subsets where the tables may not be completely contiguous. Seen with PDFs created by pdflib. Bug 688216 and 688040 for customer 562. DETAILS: The example subset CFF had the "Private" data about 30,000 bytes after the end of the previous (CharStrings) data. While we try to process the CFF file sequentially, there is no reason we cannot skip bytes. If we encounter a CFF where positioning (backwards) is required, we will have to further change the code to set us a "ResuableStreamDecode" file so we can replace the "pos sub nextstring pop" with "f fileposition" which will work forwards or backwards. A CFF that requires this will get an error when loading the font from the -string- operator (rangecheck). Since we have not seen one yet, we will wait until this surfaces.[lib/gs_cff.ps 1.18]
Remove the arbitrary limit of 256 max_colors from the dci_ macros. This is related to bug 688204 and allows shadings (gradients) to have more than 256 steps for high precision color devices. DETAILS: Note that the default smoothness is set to 0.02 in lib/gs_ll3.ps and unless this is set smaller with the setsmoothness operator (or the PDF 'SM' op), the max_error used in src/gxshade.c may still be too large to see REALLY smooth gradients. The next part of the changes is to modify the setting of max_error when the device has > 256 levels.[src/gxdevcli.h 1.39]
Add a 48 bit RGB PNG raster device for testing deep color output code paths. The new device is called 'png48'. Note that this is a different naming scheme from the the other PNG devices, which use number of colors instead of the log of the number of colors to distinguish between the different output formats. Related to bug 688204.[src/configure.ac 1.51, src/devs.mak 1.134, src/gdevpng.c 1.12]
Fix for 688209 Incorrect equiv color for 'Dark Blue' in test file. DETAILS: The problem was caused by an error in evaluting a sampled function with 32 bits per component. The maximum value for a sample was calculated as being (1 << bps) - 1. This calculation has a problem on x86 CPUs when bps is 32. No shifting is done and the result ends up being 0 instead of 0xffffffff. The fix involves checking for bps being equal to (or greater than) the size of an uint. If so then the max_uint value is used instead.[src/gsfunc0.c 1.27]
2005-07-14 19:56 Alex Cherepanov
Don't use Length value in the stream dictionary when it's incorrect. All filtered streams are self-terminated. Unfiltered streams are most often occur as contents streams. Their processing is terminated by execution of endstream operator. Unfiltered image streams will only read the data required by the image. Fix bug 688182.[lib/pdf_base.ps 1.46]
2005-07-14 16:10 Igor Melichev
Fix (ps2write) : Don't replace Encoding for standard fonts. DETAILS : This is the third partial fix for the bug 688169 "ps2write : text dissappears". 1. Regarding 093-01.ps : Before a font is loaded from a font file object, need to check whether there exists a standard font with same name and save it for possible use in future from other font resource objects. 2. Regarding 336-01.ps : The implementation of the operator ' was incomplete. This patch causes ps2write progressions: "093-01.ps" "336-01.ps" "adesso7.pdf" "ADOBE1-4.pdf" "brochurep1.pdf" "ca.pdf" "ccc.pdf" "Jahr2000.pdf" "js.pdf" "prfmm.pdf" "rf1025.pdf" EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.79]
2005-07-14 15:14 Alex Cherepanov
Increade the limit on the .libfile operand length from 200 to the full gp_file_name_sizeof . The OS also limits the length of the file name, for instance, on WinNT, NTFS to 252 characters. Fix bug 688198.[src/zfile.c 1.42]
2005-07-14 13:20 Igor Melichev
Fix (ps2write) : Don't replace Encoding for standard fonts. DETAILS : This is the second partial fix for the bug 688169 "ps2write : text dissappears", related to the file aaon97_p7.pdf . When a standard font is being loaded, the old code replaced Encoding with StandardEncoding. However the Dingbats font has a different Encoding. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.78]
2005-07-14 10:27 Igor Melichev
Fix (ps2write) : Embed standard fonts, which use extention glyphs due to encoding conflicts. DETAILS : This is a partial fix for the bug 688169 "ps2write : text dissappears", which is related to the problem with ADOBE1-4.pdf . When Widths array defines several widths for same glyph, the PDF interpreter duplicates glyphs inserting extended glyph names. However if the font name is standard, the font was not embedded and the extended glyph names were missed. This patch forces embedding the fonts what have extended glyph names. This problem doesn't happen with pdfwrite, because it collapses extended glyph names back to original ones. Note that there exists a case, in which a font has extended glyphs but they are not used in the document. In this case the font embedding is not necesary, but ps2write does embed it. This happens because the current architecture does not allow to detect such case, because the decision about a font embedding is being made before a text is processed. Dalaying it until the end of the text would need to delay object ID assignation for the font descriptor and for the font file. This change would be too deep, so we don't do it now. If an user strongly needs to minimise the output when a standard font uses extended glyph name, we recommend to perform a 2-pass distillation : the first pass computes exact font subsets, and the second pass won't receive unused glyphs. We believe that such need is pretty rare. EXPECTED DIFFERENCES : None.[src/devs.mak 1.133, src/gdevpdtf.c 1.45]
Fix for 688206 rangecheck in --setcolorspace--. Actually there is a problem with the PDF test files. The 'fix' is to make Ghostscript more tolerant of errors. DETAILS: The problem is an error in the file. The file contains an Indexed color space: [ /Indexed /DeviceGray 255 (\000%Mr\r2[\300\320\303\000\b\f\021\026\034"\)UMB9 \201%Ns\r2[\016\035,:\036-<KYh=L[ix\207\\kz\210\227\246{\212\231\247\266\305 \267\306\325\005\024"1@O$3AP_mCQ`o~\214bp\177\216\234\253\200\217\236\255\273 \312\256\275\314\332\351\n\031\(6ET\)8GUdsHWft\203gv\204\223\242\261\206\225 \262\301\317\245\263\321\340_Ul[<K\020=-iYM\\Lz\210x{\212\231\247\266\213\232 \243\267\306\325\252\271\251\326\345\364\025\0363AP/CQ`o~Sbk\177\216\227r\200 \217\236\255\273\221\237\256\275\314\332\257\276\310\334\352\371$8G4...) ] The lookup table for this color space should contain 256 bytes. Instead it contains 768 bytes (3 times the needed number of bytes). The PDF 1.6 specification on page 233 (section 4.55) says: The color table data must be m x (hival + 1) bytes long, where m is the number of color components in the base color space. Thus having 768 bytes is an actual error for this case. Apparently Acrobat 6.0 ignores this error since it does not complain about the file. Since Acrobat accepts these files, I have modified the length test to accept any look up table which has the needed number of data bytes. The files were produced by Amyuni PDF Converter (Version 2.08b Pro).[src/zcsindex.c 1.8]
Font scanning would miss OpenType fonts (OTTO header).[lib/gs_ttf.ps 1.44]
2005-07-13 17:21 Igor Melichev
Fix (TT grid fitting) : A missed glyph needs cached_fm_pair_s. DETAILS : Bug 688164 "segfault after warning for missing required cmap in embedded TT font; pdf". The embedded TT font missed a glyph, so that a "notdef" (glyph_index = 0) to be used instead. However when performing a grid fitting, an cached_fm_pair_s is used to pass an access to the font. The problem happens due to "notdef" forced no glyph caching and therefore cached_fm_pair_s was not created. The fix moves the check for "notdef" for the point after creating an cached_fm_pair_s. EXPECTED DIFFERENCES : None.[src/gxchar.c 1.46]
2005-07-13 10:37 Igor Melichev
Fix (ps2write) : EOT marker was missed. DETAILS : Bug 688186 "ps2write: EOT is missing". The old code writes it after the file is closed. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.114]
Cast color components to type gx_color_index before shifting when composing a chunked index color in gx_default_rgb_map_rgb_color(). Partial fix for bug 688204. DETAILS: Without the explicit casts, color components were only promoted to the default int type before the shifts were applied. On 32 bit machines this means that 16 bpc output generated nonsense, shifting the high channel entirely out of the word, and only promoting to a 64 bit type on assignment. With the explicit casts, the promotion to a 64 bit type (assuming a 64 bit gx_color_index) happens first so that the shift logic is correct for deep devices. With this change the "24 bit RGB" default mapping works for 48 bit color as well as for other spaces in-between. 24 bits remains special cased; rough benchmarking showed no significant advantage to special casing 48 bits as well.[src/gxcmap.c 1.26]
2005-07-12 17:54 Igor Melichev
Fix : MSVC8 Beta 2 doesn't handle the compiler option Gi. DETAILS : The new distribution of the MSVC compiler claims the option Gi is depricated. Since the nmake file uses a single value 8 of the variable MSVC_VERSION for both Beta 1 and Beta 2, we cannot distinguish these releases, so now we drip the option Gi fore both releases. Beta 1 is now obsolete, so users must either upgrade for Beta 2 or live with no incremental compilation. The latter only increases the build time. EXPECTED DIFFERENCES : None.[src/msvccmd.mak 1.27]
2005-07-11 22:08 Stefan Kemper
Fix MSVC compile error DETAILS: MSVC prevents dynamic structure initialization gcc is more liberal. Final code is simpler using a function call.[src/gdevpxut.c 1.8]
The gdevdsp.c file was missed in the previous commit for the fix for 688192.[src/gdevdsp.c 1.34]
Fix for 688192 Resolution dependant problems with tiffsep. Note: The actual problem is related to garbage collection. DETAILS: The names of the separations are being lost when the garbage collection logic is attempting to relocate the names. The fix consists of storing the names in a byte array instead of using a gs_param_string.[src/devs.mak 1.132, src/gdevdevn.c 1.24, src/gdevdevn.h 1.11, src/gdevpsd.c 1.20, src/gdevtsep.c 1.7, src/gsequivc.c 1.6]
2005-07-07 16:44 Stefan Kemper
Add support for manual feed and media source or tray selection to pxl output devices. This allows postscript input to use InputAttributes dictionary selection mechanisms to choose a tray. The pxl tray numbers in the PXL file are the PS MediaSource numbers to "map" correctly an input attributes dictionary needs to be present and needs to match the tray contents/numbering of the pxl printer. postscript manual feed /ManualFeed is directly mapped to PXL this will override any tray selection.[src/gdevlj56.c 1.7, src/gdevpx.c 1.16, src/gdevpxut.c 1.7, src/gdevpxut.h 1.6]
2005-07-06 20:54 Stefan Kemper
Bug fix for 688196. CCITTFAX decode filter had number of rows limited to 32000. Test file with 40000 found, limit is now 1,000,000[src/scfparam.c 1.5]
2005-07-05 17:56 Igor Melichev
Fix (ps2write) : Allow .HWMargins in the printer's userdict. DETAILS : Testing with HP LazerJet 1320 we found that it defines a PageSize bigger than the real page. Allowing a method for an user to compensate that. The method is to define .HWMargins to the printer's userdict. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.77]
2005-07-04 09:03 Igor Melichev
Fix (ps2write) : CIEBased* images must use DecodeABC as Decode (continued). DETAILS : The last patch appears incomplete. Bug 688174 ps2write: black page CompleteImage was underimplemented. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.76]
Fix for 688144 Overprint problem wtih emitting a single separation from tiffsep. The overprint logic assumed that overprinting was never applied if there is only one component in the output device. This is true for a DeviceGray process color model. However it is possible for there to only be a single output component in other process color models (like CMYK) if the SeparationOrder device parameter is used to select a subset of the device's colorants. This fix removes the undesired optimization.[src/gsovrc.c 1.10]
2005-06-29 20:46 Igor Melichev
Fix (ps2write) : CIEBased* images must use DecodeABC as Decode. DETAILS : Bug 688174 ps2write: black page CompleteImage was underimplemented. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.75]
2005-06-29 18:21 Igor Melichev
Fix (ps2write) : Imagemask incorrectly synchronized color in the !HaveStrokeColor mode. DETAILS : Bug 688171 "ps2write : wrong frame color". The !HaveStrokeColor mode was underimplemented. EXPECTED DIFFERENCES : None.[src/gdevpdfb.c 1.31]
Remove a duplicate file in the installation target list.[src/unixinst.mak 1.41]
2005-06-29 14:12 Igor Melichev
Fix : A dangling pointer from pdf_image_enum. DETAILS : Bug 688156 "Reference to free object : pdfwrite -r72 -Z?$@ 035-07.ps". After pdf_make_alt_stream pdf_image_enum::writer.binary[1].target left a pointer to a cos_object_t instance, which is later freed by pdf_choose_comprtession. Thus it caused a dangling pointer. It was not harmful unless running with -Z? . EXPECTED DIFFERENCES : pdfwrite crashed with -Z?$@ : 035-07.ps. FIG3.eps[src/gdevpdfj.c 1.46]
Fix some additional typos in the documentation install rules. Closes bug 688158.[src/unixinst.mak 1.40]
2005-06-28 23:00 Igor Melichev
Fix (pdfwrite, ps2write) : A recognition of Type 3 glyph variations was inaccurate. DETAILS : Bug 688168 pdfwrite, ps2write : incorrect barcode Bug687472.ps Bug 687472 barcode wrongly converted to type3 font 1. The condition in pdf_find_same_charproc was not a strong equality. When searching in same font, the comparizon of object streams was missed (debugged with Bug687472.ps). 2. When creating an alternative font due to glyph wariations, the fonmt matrix was equal to one from the scaled font instead the original font, causing an imprecise coordinates. Replaced with the original font matrix. (debugged with Bug687472.ps). 3. pcp->font was not adjusted when desided to start a new font due to a new glyph variation obtained. Due to that some glyphs were replaced with wrong glyph variations (debugged with Bug687660a.ps, page 4, the text "et al. [11] Y. Nakamura et al.", the 3d occurance of 'a' was wrong (search for "( al)" in the old generated PDF file)). 4. Exiting from a substream, flattness was not restored (debugged with muur.eps). EXPECTED DIFFERENCES : pdfwrite : "Bug687472.ps" "Bug687660a.ps" "Bug687832.pdf" "STEUER-RollingMesh 3(Final).ai"[src/gdevpdfg.c 1.63, src/gdevpdfx.h 1.121, src/gdevpdti.c 1.46]
Add two new multiply-included templating files to the exclusion list for the multiple-inclusion regression check.[toolbin/tests/check_source.py 1.12]
Fix for 687989 PDF to any format raises /invalidfont in /R21. The test file was created by an imposition program. DETAILS: The given file (the one with the four pages imposed together) has: 1. A Page dict with form Xobjects and the /R21 font is not in the Resources/Font dict. 2. The Pg3 form XObject has the /R21 font in the Resources/Font dict. 3. /R19 is a Type3 font. There is not a Resources entry in the dict. This font uses both the /R13 ExtGState and the /R21 font. To find the /R13 and the /R21 resources, Ghostscript is first looking in the /R19 font. Since it is not present (no Resources in /R19), Ghostscript then searches the Page dict. Once again the resources are not found and then the InvalidFont error is generated. (Ghostcript is silent about the missing ExtGState /R13.) From page 391 of the PDF REference, version 1.6 on the entries in the dict for a Type3 font: "Resources dictionary (Optional but strongly recommended; PDF 1.2) A list of the named resources, such as fonts and images, required by the glyph descriptions in this font (see Section 3.7.2, "Resource Dictionaries"). If any glyph descriptions refer to named resources but this dictionary is absent, the names are looked up in the resource dictionary of the page on which the font is used. (See implementation note 64 in Appendix H.)" This implies that Ghostscript is following the correct path for finding the resources /R13 and /R21. (However one can make a case for a 'liberal' interpretation of the spec. that implies that the form XObject resources should also be checked.) This fix checks the current resources when the Resources dictionary is not present in a type 3 font. I do not know why Acrobat 6.0 Pro does not find /R13 but does find /R21. If Acrobat is not checking the Resources for the Pg3 form XObject then it should find neither. If it is checking Pg3 Resources then both should be found.[lib/pdf_font.ps 1.77]
2005-06-23 07:35 Igor Melichev
Fix : A global restore was applied at save level 1. DETAILS : Bug 688157 "'invalidrestore' in pkmraw -r72 -Z?$@ tpc2.ps". Bug 688161 "A dangling pointer with pkmraw -r72 -Z?$@ -c false 0 startjob pop -f - <113-01.ps". The last patch appears incorrect. This one fixes that. Bug 688157 happened because tpc2.ps failed with 'invalidrestore' because the global restore was applied at the level 1. This happened because the last but one patch appears incomplete - after that change the check for 'global' in alloc_is_since_save become incorrect. It assumed that mem->saved == save && mem->saved->save_level == 1 implies save->state.save_level == 0. But with the last but one patch not it doesn't. Bug 688161 happened due to same check, because alloc_is_since_save is also used in restore_fix_stack to fix string and file objects, which exist on stack and which would become invalidated due to the restore. 'zrestore' do not check such objects on estack (restore_check_stack is called with 'false'). Such objects appear when 'startjob' is called from a command argument (and establishes a save level 0), and later another command line argument is executed with '.runstdin', which executes .subfiledecode at save level 1 and keeps the filter object on estack while .runexec works (keeping the file for .runexec2). So running the file 113-01.ps invoked 'exitserver', which executes a 'restore', which unwinded the file object, and caused a heap inconsistency (because restore_check_stack is called with 'false') due to estack keeps the unwinded file object. This change replaces it with (as we believe) the correct and simple check : save->state.save_level == 0 /* Restoring to save level 0 */ which restores the consistency of restore_fix_stack to restore_check_stack. EXPECTED DIFFERENCES : Fixes a crash with 113-01.ps .[src/isave.c 1.14]
2005-06-22 20:15 Igor Melichev
Fix : A global restore was applied at save level 1. DETAILS : Bug 688157 "'invalidrestore' in pkmraw -r72 -Z?$@ tpc2.ps". With the last patch memory problems gone avay, but tpc2.ps failed with 'invalidrestore'. We found that the global restore was applied at the level 1 - a guess as a rudiment of code before NOOUTERSAVE is code. When tpc2.ps issued a restore, with neither startjob nor NOOUTERSAVE it appears at level 1 (due to gs_init.ps executes 'save') but at that moment dstack contains some dictionaries, created by the document. Those dictionaries cause 'invalidrestore', because they are created after the 'save' issued by gs_init.ps . At first time we wonderewd why this problem doesn't happen with other documents. The answer is : they don't keep dicts on dstack when execute the outermost 'restore'. EXPECTED DIFFERENCES : Fixes 'invalidrestore' in tpc2.ps . 113-01.ps crashes due to another problem, which we'll open another bug for.[src/isave.c 1.13]
2005-06-22 15:36 Igor Melichev
Fix : Dangling pointers due to 'restore' left an internal save level. DETAILS : Bug 688153 "Reference to free object : ppmraw -r72 -Z?$@ Bug687489.ps" Running : gs sOutputFile=t.ppm sDEVICE=ppmraw -r72 -Z?$@ Bug687489.ps" got : Reference to free object 0xaf9e40(100), in chunk 0x3eca48! The reason is that a gs_show_enum instance was created in some 'save' level, and when it is released the 'save' level appears a higher one and the memory manager left it unreleased until a further 'restore' does that. However that instance pointed to a gx_path instance with a bigger 'save' level. So when the garbager was invoked, the gs_show_enum instance had a 'path' field pointed to a structure, which was already released by a 'restore'. Analyzing it so far, we found that 'save' and 'restore' may leave an extra level on the 'save' stack. More precisely, alloc_save_state sometimes creates an "invisible" 'save' level, which appears on the 'save' stack, but it has no save id and it doesn't add to the 'save' level counter. The problem happened when 'restore' finds its 'save' stack element. In that case alloc_find_save returns the second additional 'save' stack element, rather than the first one created by 'save'. Therefore a consecutive execution of 'save restore' could add one element on the 'save' stack (without increasing the save_level counter) and cause dangling pointers as explained above. We believe that the bug lived in alloc_save_state. Really, a comment in alloc_save_state reads : /* Do a second, invisible save. */ and in same time the code makes the first 'save' to be invisible, and moves the id from the first 'save'. Thus the code does not comply to the comment. We believe that the comment is correct, and the code is buggy. Therefore we change the code so that the second (internal) 'save' to be really invisible. EXPECTED DIFFERENCES : Fixes memory problems (June 16 regressions) with the following files : "257-01.ps" "Bug687396.ps" "Bug687489.ps" "Bug687603.ps" "Bug687698.ps"[src/isave.c 1.12]
Fix typos in the the jasper makefile. Closes bug 688148.[src/jasper.mak 1.2]
2005-06-22 14:11 Stefan Kemper
Added documentation note that gc doesn't collect around a reference to a sub interval in an array. Rather it gc's arrays as objects.[doc/Language.htm 1.93]
2005-06-21 19:58 Igor Melichev
Fix : Reference count for gx_clip_path::path_list was incorrect. DETAILS : Bug 688147 "Wrong reference count with ppmraw -Z?$@ -r72 257-01.ps". gx_cpath_assign_preserve didn't adjust the reference count. EXPECTED DIFFERENCES : May fix some of pkmraw, pgmraw regressions appeared on June 16.[src/gxcpath.c 1.14]
2005-06-21 16:50 Igor Melichev
Fix : Always place the image enumerator into local memory (continued 2). DETAILS : The previous patch inserted a 'const' by a mistake. Removing it. EXPECTED DIFFERENCES : None.[src/gsimage.c 1.15, src/gsimage.h 1.9]
2005-06-21 16:25 Igor Melichev
Fix : A wrong allocator was used to release the glyph cache. DETAILS : Bug 688146 "heap corruption with ppmraw -r72 -Z?$@ 055-01.ps". A structure was allocated in a non-stable memory and released to a stable memory. EXPECTED DIFFERENCES : May fix some of pkmraw, pgmraw regressions appeared on June 16.[src/gsgcache.c 1.4]
2005-06-21 13:12 Igor Melichev
Fix : Always place the image enumerator into local memory (continued). DETAILS : Bug 688140 "A heap corruption in imagemask". Bug 688145 "Segmentation fault : normal 244-01.ps (pkmraw/300/noband)" The patch http://ghostscript.com/pipermail/gs-cvs/2005-June/005567.html appears incomplete. This ine fixes that. 1. gs_image_common_init must not change penum->memory since it is set by gs_image_enum_alloc for a compatibility with gs_image_cleanup_and_free_enum. 2. gs_image_enum_init is removed from the graphics library interface because after the change (1) it becomes potentially harmful. We noticed that the PCL interpreter never calls it directly, so making it be local against a potantial harm. 3. The memory argument of gs_image_common_init has been removed because it became unuseful. 4. We notice that gs_image_common_init initializes an instance of gs_image_enum, and gs_image_begin_typed initializes gx_image_enum_common_t. We wonder with the assymmetry of using the word "common" in these identifiers. It appears much confusible. For now leave them as they are, rather we'd like to clean them up. EXPECTED DIFFERENCES : Should fix pkmraw, pgmraw regressions appeared on June 16.[src/gsimage.c 1.14, src/gsimage.h 1.8]
Partial fix for 688132 WTS crash with pdf input. Ghostscript does not serialize a WTS halftone. (This is required for clist processing.) As a result, an error code is being returned. The error code was not being properly returned. We then seg faulted due to a pointer not being set in the error case. This fix corrects the problem with returning the error code. The problem with WTS serializaton remains.[src/gdevp14.c 1.29]
2005-06-20 08:59 Igor Melichev
Fix : Factor out any dependence on sizeof(gx_color_index) . DETAILS : This change is algorithmically equivalent. We factor out this dependence because we intend to change the gx_color_index definition to an array of components. In that case sizeof(gx_color_index) would give the size of a pointer rather we need the size of the array. Minor change : Fixed an unitialized debug-purpose variable prev_count in 3 device drivers gdevm40.c, gdevm48.c, gdevm64.c . EXPECTED DIFFERENCES : None.[src/gdevdsp.c 1.33, src/gdevm40.c 1.3, src/gdevm48.c 1.3, src/gdevm64.c 1.4, src/gdevpdfb.c 1.30, src/gdevpdfv.c 1.39, src/gdevpsd.c 1.19, src/gdevtsep.c 1.6, src/gdevxcf.c 1.10, src/gsdparam.c 1.18, src/gxcindex.h 1.7, src/gxdcolor.c 1.13, src/gxdevcli.h 1.38, src/gxiscale.c 1.9, src/gxoprect.c 1.6]
2005-06-19 21:10 Igor Melichev
Fix : zchar.c needs a prototype of z1_set_cache. DETAILS : It fixes a cygwin/gcc warning. EXPECTED DIFFERENCES : None.[src/int.mak 1.135, src/zchar.c 1.17]
2005-06-19 21:03 Igor Melichev
Fix (pdfwrite, ps2write) : Type 42 fonts got wrong Width (continued). DETAILS : Need a prototype for z1_glyph_info_generic since we call it in zfont42.c . EXPECTED DIFFERENCES : None.[src/ichar1.h 1.13, src/int.mak 1.134, src/zfont42.c 1.23]
2005-06-19 20:45 Igor Melichev
Fix : Remove an unreasonably big array type definition related to color index. DETAILS : This change is algorithmically equivalent. An array type in gxcht.c was defined with 65536 elements but actually used the first 32 elements only. We believe it was an inaccurate coding. EXPECTED DIFFERENCES : None.[src/gxcht.c 1.16]
2005-06-16 06:53 Igor Melichev
Fix (Ps2pdf.htm) : ConvertCMYKImagesToRGB was wrongly documented. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm 1.81]
2005-06-15 18:40 Igor Melichev
Fix : Always place the image enumerator into local memory. DETAILS : Bug 688140 "A heap corruption in imagemask". The core of the change is in zimage.c : ! /* Always place the image enumerator into local memory, ! because pie may have local objects inherited from igs, ! which may be local when the current allocation mode is global. */ Other changes provide a correct allocator while freing the enumerator. Note : In gxccache.c the old code did not apply gx_image_cleanup when exiting on error. The new code does. The new code is more smooth, but we don't expect a significant difference in behavior. EXPECTED DIFFERENCES : None.[src/gsimage.c 1.13, src/gsptype1.c 1.23, src/gxccache.c 1.34, src/gsimage.h 1.7, src/zimage.c 1.15]
2005-06-15 00:31 Igor Melichev
Fix (ps2write) : A bug while computing an n-argument m-result function type 0. DETAILS : FunctionToProc_x0n synthesized a function which applies an extra 'roll' at the end of computation. Minor change : Improved a debug printing. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.74]
Link to the relevent section of Use.htm for details about the GS_LIB env variable. Fixes bug 688051.[doc/Install.htm 1.53]
Add some newer documentation files to the unix install target. Fixes bug 688049.[src/unixinst.mak 1.39]
Fix a documentation typo: NeverEnbed vs NeverEmbed.[doc/Ps2pdf.htm 1.80]
2005-06-14 11:19 Igor Melichev
Fix (pdfwrite, ps2write) : Type 42 fonts got wrong Width. DETAILS : Bug 688128 "pdfwrite: imprecise Width". pdfwrite did not account Metrics, Metrics2 of Type 42 fonts. EXPECTED DIFFERENCES : pdfwrite 72dpi : "01_001.pdf" "adesso2.pdf" "adesso7.pdf" "adesso8.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" "annots.pdf" "budget2_ai87.pdf" "Bug687660a.ps" "Bug687724.pdf" "bugsample.pdf" "Faktura.pdf" "fonts.pdf" "MagicEye.pdf" "S2_Digitalproof-Forum_x3k.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf" pdfwrite 300 dpi : "01_001.pdf" "159.pdf" "adesso2.pdf" "adesso7.pdf" "adesso8.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" "budget2.pdf" "budget2_ai87.pdf" "Bug687724.pdf" "bugsample.pdf" "Faktura.pdf" "fonts.pdf" "MagicEye.pdf" "S2_Digitalproof-Forum_x3k.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"[src/zfont42.c 1.22]
2005-06-13 18:43 Igor Melichev
Fix : Interleaved images could miss Decode, step 4. DETAILS : Adding the new file gxsamplp.h to Develop.htm . EXPECTED DIFFERENCES : None.[doc/Develop.htm 1.148]
Add ManualFeed to the set of keys evaluated for media source matching. Needed to allow forcing a ManualFeed tray selection even when another media of the right type exists in another tray.[lib/gs_setpd.ps 1.27]
2005-06-09 07:29 Igor Melichev
ps2write : Implementinmg the ps2write device (continued 3). DETAILS : Removed a rudimentary code from gs_pdfwr.ps . EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.43]
Throw an error when JBIG2 decoding fails in the library instead of segfaulting. Bug 688053.[src/sjbig2.h 1.6]
Throw an error when JBIG2 decoding fails in the library instead of segfaulting. Bug 688053.[src/sjbig2.c 1.7]
2005-06-09 05:26 Igor Melichev
ps2write : Implementinmg the ps2write device (continued 2). DETAILS : Fixing a name in gs_pdfwr.ps . EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.42]
2005-06-08 14:38 Igor Melichev
Fix : Interleaved images could miss Decode, step 3. DETAILS : Fixes the bug 688127 "CMYK image ignores Decode". 1. The sample unpacking function templates are generalized for a case of interleaved samples with different decode maps (gxsamplp.h). 2. Generated functions for the interleaved samples using the templates (gxsample.c). 3. Used those function in appropriate cases (gxipixel.c). 4. repack_bit_planes was called with a wrong map (0-th instead i-th) (gxidata.c). EXPECTED DIFFERENCES : Some images are rendered with a different (correct) color. The change appears to have no effect to the 'normal' rendering, because our testbase doesn't include images with "/MultipleDataSources false" and a non-trivial Decode. But such ones do appear after converting few files with pdfwrite. pdfwrite : "148-01.ps" "148-05.ps"[src/gxidata.c 1.9, src/gxipixel.c 1.11, src/gxsample.c 1.7, src/gxsample.h 1.7, src/gxsamplp.h 1.2, src/lib.mak 1.210]
2005-06-08 14:16 Igor Melichev
Fix : Interleaved images could miss Decode, step 2. DETAILS : This change is algorithmically equivalent. This is a second preparation for fixing the bug 688127 "CMYK image ignores Decode". It moves bodies of sample unpacking functions to a new file gxsamplp.h and converts them into templates. It is just a code restructurization. We apply it separately in order to simplify the next step. EXPECTED DIFFERENCES : None.[src/gxsample.c 1.6, src/gxsamplp.h 1.1, src/lib.mak 1.209]
2005-06-08 14:00 Igor Melichev
Fix : Interleaved images could miss Decode, step 1. DETAILS : This change is algorithmically equivalent. This is a preparation for fixing the bug 688127 "CMYK image ignores Decode". It changes the SAMPLE_UNPACK_PROC function prototype to provide an access to a vector of maps in sample decoding functions. The new argument num_components_per_plane passes the length of the vector. The argument "const sample_lookup_t * ptab" is replaced with "const sample_map *smap" to pass the vector. With this patch only the 0th component of the passed vector is being used in order to provide the equivalense to the old code. Dropping this feature will be a next step. EXPECTED DIFFERENCES : None.[src/gxi12bit.c 1.7, src/gxi16bit.c 1.2, src/gxidata.c 1.8, src/gximage.h 1.8, src/gxsample.c 1.5, src/gxsample.h 1.6, src/lib.mak 1.208]
2005-06-08 06:56 Igor Melichev
ps2write : Implementinmg the ps2write device (continued). DETAILS : 1. Do not copy procsets when pdfwrite is invoked in the ForOPDFRead mode with no OPDFReadProcsetPath specified (gdevpdfu.c). This is done to simplify debugging with checking the PDF generated in the ForOPDFRead mode with a reference PDF viewer. 2. Fixed a Cygwin/gcc warning in gdevpdfu.c . 3. Provided a customization of the procset to be written with ps2write using -sOPDFReadProcsetPath=string . EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.41, src/gdevpdfu.c 1.80]
Fix for 688116 DeviceN spot colours are corrupt in display device. DETAILS: The overprint device is one of the few devices that uses the GB_RETURN_COPY option to the get_bits procedures without also using the GB_RETURN_POINTER option. Thus the overprint device is bringing up problems in this option combination. The fix for 687935 "rangecheck in stroke while overprinting on the display device" brought this problem to the surface. The problem was that an incorrect buffer pointer was being used for the source for the data to be copied.[src/gdevdgbr.c 1.13]
Fix for the BeginPage and EndPage procedures used for N-up processing. DETAILS: The BeginPage called the previous BeginPage (stored in .BP) at the wrong time, so that rotation/translation of individual pages would not work correctly. The EndPage incremented the .Pn value even on 'device deactivation' calls (mode == 2) so the page count was off if the input PS did 'setpagedevice'. This probably is not widely used since it was broken. It's a little better now, but still needs improvement (IMHO) such as setting a 'clip' before the indivual pages. Try running two examples/tiger.eps to see why.[lib/gsnup.ps 1.5]
2005-06-07 18:33 Igor Melichev
ps2write : Implementinmg the ps2write device. DETAILS : 1. The ps2write device is a clone of the pdfwrite device. We define a new file gdevpdfb.h and move the device static data to there as a device template (gdevpdf.c, gdevpdfb.h). 2. pdf_open_document now writes out the copy opdfread.ps and few encodings (gdevpdfu.c). 3. Propagated a return code from pdf_open_document. 4. A new device parameter OPDFReadProcsetPath handles a list of files to be copied in the step (2) (gdevpdfx.h, gdevpdf.c, gdevpdfu.c, gdevpdfp.c). 5. pdf_close writes out the 0x04 character when working in the ForOPDFRead mode and OPDFReadProcsetPath is set. 6. A number of makefiles are changed to include the ps2write device. 7. In lib\gs_pdfwr.ps added the handling of distiller parameters with ps2write device. 8. In lib\gs_pdfwr.ps added an automatic setting of the OPDFReadProcsetPath device parameter for ps2write. 9. Added a new script ps2ps2.bat, which invokes Ghostscript with the ps2write devices. The old script ps2write.bat still invokes the Ghostscript with the pdfwrite device in the ForOPDFREad mode. It helps to debug ps2write with generating a PDF file in the ForOPDFRead mode. 10. In the documentation added references to the new files lib/ps2ps2.bat, src/gdevpdfb.h . (Develop.htm, Psfiles.htm). EXPECTED DIFFERENCES : None.[lib/gs_pdfwr.ps 1.40, lib/ps2ps2.bat 1.1, src/bcwin32.mak 1.37, src/devs.mak 1.131, src/gdevpdf.c 1.113, src/gdevpdfb.h 1.1, src/gdevpdfp.c 1.49, src/gdevpdfu.c 1.79, src/gdevpdfx.h 1.120, doc/Develop.htm 1.147, doc/Psfiles.htm 1.63, src/macos-mcp.mak 1.34, src/macosx.mak 1.27, src/msvc32.mak 1.73, src/openvms.mak 1.40, src/os2.mak 1.46, src/unix-gcc.mak 1.49, src/unixansi.mak 1.40, src/watcw32.mak 1.34]
2005-06-07 16:41 Igor Melichev
Fix (pdfwrite) : The memory descriptor of gx_device_pdf missed some strings. DETAILS : The bug was introduced when implementing the PDF encryption. Minor change : the string data change the type from gs_const_string to gs_string to comply with memory management macros. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.112, src/gdevpdfx.h 1.119]
2005-06-06 19:06 Igor Melichev
ps2write : Handle TT cmap 00030000. DETAILS : Not sure why Ghostscript writes it since old wersions. A comment in lib/ttf_cmap reads : % Try another cmap format 3,0 -- Adobe doesn't mention it, but does % use it apparently (empirically determined). For now we do same in opdfread. Debugged with comparefiles\type42_glyph_index.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.73]
2005-06-06 15:32 Igor Melichev
ps2write : A named resource maintenance. DETAILS : Since named resources (such as psdfmarkBP) may be used on any page, they conflich with the viewer resource management discipline, which drops resources per page. This patch implements an exception for that discipline. 1. (opdfread.ps) At page end don't drop resources marked with /.Global . 2. (opdfread.ps) Handlinging Form XObject. 3. Provide the /.Global mark for those resources, which are used in a named resource. (dgevpdfj.c, gdevpdfm.c, gdevpdtw.c). 4. The flag pdf_resource_t::global marks resources, which are used while accumulating a named resource object stream, to provide (3) (gdevpdti.c, gdevpdfx.h). 5. gx_device_pdf::accumulating_a_global_object is added to designate the state for (4). It is saved and restored while enterin or exiting a substream (gdevpdfx.h, gdevpdfm.c, gdevpdti.c). 6. Removed 'const' from some function pritotypes to allow pdf_add_resource to set pdf_resource_t::global (gdevpdfi.c, gdevpdfo.c, gdevpdfx.h). 7. Minor change : improved a condition for writing the /.CleanResources flag (gdevpdf.c). 8. Removed a confusing comment in pdfmark_PS (gdevpdfm.c). Debugged with pdfmarkPS.ps, Bug687350.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.72, src/gdevpdf.c 1.111, src/gdevpdfi.c 1.71, src/gdevpdfj.c 1.45, src/gdevpdfm.c 1.48, src/gdevpdfo.c 1.33, src/gdevpdfu.c 1.78, src/gdevpdfx.h 1.118, src/gdevpdti.c 1.45, src/gdevpdtw.c 1.44]
Removed extra && and space from last commit (fix for 687973).[src/scfd.c 1.8]
Fix to allow CCITT data without EOFB when EndOfBlock is true (the default) to return normal end-of-file (EOFC) status instead of ioerror (ERRC) as long as the row count given by Rows is satisfied. Bug 687973. DETAILS: This bug was reported by a potential customer. The fix is minimal and returns EOFC instead of ERRC if the count given by Rows has been read. This seems to be the closest to what is implied by the Adobe description about EndOfBlock in that the filter WILL continue to process data past the Rows value if EndOfBlock is true (the default) as long as no error is seen. This means that PostScript programs that depend on this action to consume extra data will still operate correctly. Expected Differences: None (I ran all of the comparefiles).[src/scfd.c 1.7, src/scfx.h 1.6]
2005-05-31 20:42 Igor Melichev
ps2write : Fixed problems with Separation color spaces. DETAILS : Allocation mode was incorrect at several points. Debugged with comparefiles\Altona_Technical_1v1_x3.pdf . Minor change : Improved a bebug printing. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.71]
2005-05-31 19:25 Stefan Kemper
Update a few of the paper sizes used in reading/writing PXL. Fixes bug 688118.[src/gdevpxen.h 1.7]
2005-05-31 13:05 Igor Melichev
Fix : TT interpreter had problems on 64 bit platforms. DETAILS : It compiled with wrong integer data sizes. Patch from Hin-Tak Leung . EXPECTED DIFFERENCES : None.[src/ttfoutl.h 1.15, src/tttype.h 1.3, src/tttypes.h 1.2]
2005-05-31 11:04 Igor Melichev
ps2write : Implementing the SetPageSize mode (continued). DETAILS : With the recent patch opdfread sets a graphic state, which was saved before setting a page size. As a consequence the page was erased when the initial graphic state is set. This patch recreates PDFR_InitialGS when setpagedevice is invoked to change a page size. Debugged with comparefiles\012-09.ps . Minor change : Improved a bebug printing. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.70]
2005-05-31 10:56 Igor Melichev
Fix : A failed pattern color could cause a crash in vector devices. DETAILS : When a pattern color was set and was not used, it was not remapped and causaed a crash in gx_dc_pattern_save_dc. Detected occasionally when running an incorrect PS file. EXPECTED DIFFERENCES : None.[src/gsptype1.c 1.22, src/gxhldevc.c 1.4]
2005-05-30 21:00 Igor Melichev
ps2write : Implementing the SetPageSize mode. DETAILS : 1. SetPageSize mode enables changing a page size in the target printer. This mode is implemented mainly to simplify testing with Ghostscript|ppmraw. We need same page size of 'normal' and 'ps2write' rasters to simplify the automated comparizon. 2. (A minor change) Apply immediate binding to FitPages, RotatePages. 3. Allow more parameterization in ps2write.bat . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.69, lib/ps2write.bat 1.16]
2005-05-30 16:41 Igor Melichev
ps2write : Implementing the font type MMType1. DETAILS : 1. MMType1 to be handled as Type 1 due to the PDF format specifics. 2. Minor change : A comment for 'TrueType' was not good. 3. An implementation for 'sh' is saved for future use, rather it was coded in ps2write by an error (never usewd with ps2write, will be with ps3write). EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.68]
2005-05-29 19:29 Igor Melichev
Fix (pdfwrite, ps2write) : Skip empty images when converting a shading into a bitmap. DETAILS : When converting a shading to a bitmap, a zero size image could be written due to a typoe in gdev_pdf_fill_path. Debugged with -r720 "Clarke Tate Manns Chinese-.ai" . EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.64]
Fix for 688113 null ptr crash in gdevp14.c. With the -rXXXxYYY switch specified and high resolution PDF 1.4 transparency files, GS would crash. DETAILS: The logic for deteriming band sizes was being bypassed if the -rXXXxYYY switch was specified on the command line. Specifying resolution on the command line was forcing the calculation of band size. This occured before the determination that PDF 1.4 transparency was being made. The band size was not being recalculated when the determination was being done. The fix consists of including the 'page_uses_transparency' as part of the logic for determining when the band size is recalculated.[src/gdevijs.c 1.12, src/gdevprn.c 1.20, src/gdevprn.h 1.15]
2005-05-26 17:22 Igor Melichev
Fix : 'strokepath' could generate wrongly oriented contours (continued 2) DETAILS : Bug 688114 "Worse frame rasterizing a distilled Bug687546.ps". The main change is gxstroke.c ln 853 : the line width rounding depended on the line direction. Rather the problem is old, before the patch http://ghostscript.com/pipermail/gs-cvs/2005-May/005519.html it was not so important because vertical and horizontal lines always had a positive direction. After the mentioned patch, that it not so. Thus this patch completes the mentioned patch. Other (minor) changes inprove visual trace instructions for round caps. EXPECTED DIFFERENCES : Normal 72 dpi : "110-01.ps" "169-05.ps" "169-09.ps" "222-05.ps" "260-01.ps" "289-01.ps" "297-01.ps" "298-01.ps" "298-05.ps" "298-09.ps" "321-01.ps" "321-05.ps" "adesso8.pdf" normal 300dpi : pdfwrite 72dpi : "012-13.ps" "013-13.ps" "014-05.ps" "014-13.ps" "015-05.ps" "169-05.ps" "169-09.ps" "222-05.ps" "260-01.ps" "297-01.ps" "316-07.ps" "adesso8.pdf" fail ppmraw/hdr "Bug687846.ps" "Bug687846.ps" fail ppmraw/cur "Bug687894.ps" fail pdfwrite/hdr "Bug687894.ps" fail ppmraw/hdr "Bug687894.ps" "Bug687894.ps" "file.pdf" pdfwrite 300dpi : "012-13.ps" "013-13.ps" "015-05.ps" "027-09.ps" "169-05.ps" "222-05.ps" "298-05.ps" "307-01.ps" "320-01.ps" "ai2.pdf"[src/gxpath.c 1.11, src/gxstroke.c 1.16, src/lib.mak 1.207]
2005-05-26 07:35 Igor Melichev
Fix : 'strokepath' could generate wrongly oriented contours (continued) DETAILS : The patch http://ghostscript.com/pipermail/gs-cvs/2005-May/005519.html brake a debug check. Bug 688115 "Many new error/warning messages from gxstroke.c". EXPECTED DIFFERENCES : None.[src/gxstroke.c 1.15]
Fix VM space for userparams. Problem and patch courtesy of Paul Vojta. Bug 688107. DETAILS: Also thanks to Alex Cherepanov for a reporducible test case. The original problem file 'epstest.eps' did not actually show a problem. I tested this against the comparefiles to validate that there were no unexpected changes, but generally it was an obvious problem that an array might be created in a VM space that was not the same local/gloabl as the strings it contained.[lib/gs_lev2.ps 1.37]
2005-05-25 15:57 Igor Melichev
Fix (pdfwrite, ps2write) : Wrong shading coordinates when converting to PDF 1.2 . DETAILS : 1. Do not write "W n" when cvd->has_background == true, because we do not write a clipping path in this case. 2. When a shading is being converted into a bitmap with a downsampling, coordinate formulas in gdev_pdf_fill_path were wrong. The new logic is : sx,sy := the bitmap offset; Scale down the color and the CTM; Scale down the path to be filled; The pdf_lcvd_t instance performs a shift of the shading coverage path with path_offset := {sx,sy}; A sacale up and shift back matrix is written into PDF as a 'cm' argument. {m.tx,m.ty} is same as the bitmap offset {sx, sy}; 3. gx_dc_pattern2_has_background must account whether the shading is instantiated with a shfill. In this case Background is being ignored. 4. In R_tensor_annulus, the assignation of curve[i].straight was wrong when the patch boundasries applied a cyclic shift with 'inside'. 5. In patch_fill, the computation of the shading contour sign was not correct. Rather it gave a right sign for most cases, we replaced it with a right general formula (assuming a non-self-overlapped patch). EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.63, src/gsptype2.c 1.19, src/gxshade1.c 1.41, src/gxshade6.c 1.100]
Fix for 688010 Errors in overprint with halftoned output. DETAILS: The PDF overprintmode can be used to specify overprinting when the value of an input color is zero. The problem was caused by an error in determining when an input color was zero. The problem was only apparent with a 'binary' halftone. Ie.e one in which on a single component is being halftoned. The earlier logic would overprint all components which were not being halftoned. The example case involved 100% black and 50% cyan. The black component was treated like it was 0%.[src/gxht.c 1.17]
2005-05-23 18:24 Igor Melichev
Fix (pdfwrite, ps2write) : Shading background was missed in PDF1.2 . DETAILS : Bug 688109 "pdfwrite : shading background can erroneusly disappear". 1. A new function gx_dc_pattern2_has_background allows to know whether a pattern color has a background. 2. If it has, when converting a shading to a bitmap, entire bitmap is being filled, so the shading coverage is trivial, and it doesn't need to convert into a masked image or into a clipped image. Implemented with defining a new flag pdf_lcvd_t::has_background . 3. Minor change : defined the identifier pdf_lcvd_s . 4. In gdevpdfb.c, applied lossles filters to an image, if it is not big. The old code did in the ForOPDFRead mode only. So now it works for pdfwrite. It improves the view of patterns (including shadings), rather the compressed iomage size is bigger. The old code caused significant distorsions with applying DCT to shadings (distorsions appear at patch boundaries and/or at the shading coverage boundary). EXPECTED DIFFERENCES : None.[src/gdevpdfb.c 1.29, src/gdevpdfd.c 1.62, src/gdevpdfx.h 1.117, src/gsptype2.c 1.18, src/gsptype2.h 1.13]
2005-05-23 14:59 Igor Melichev
Fix : 'setcachewdevice' must always clip characters. DETAILS : Bug 688096 " setcachedevice must clip characters". 'setcachedevice' establises a clipping box when rendering a glyph to a cache. In same time, when rendering with no caching, the old code did not clip. As a result, some glyphs were clipped, and some others were not, depending on the glyph size. This patch clips Type 3 and Type 10 charactrers when rendering with no cache, and behaves as the old code with other font types. We doing so to optimze the performance using the assumption that "outline" (FontType != 3 && FontType != 10) fonts must not paint outside FontBBox, which to be used for clipping in those cases. Besides that, the patch rounds Type 3 and Type 10 charactrer coordinates when renderingh with no cache, to provide an uniform coordinate assignation with the cached mode. The patch defines a new variant CACHE_DEVICE_NONE_AND_CLIP, which is defined almost for clarity. Actually the code never checks for this specific value. For more details see comments in code. EXPECTED DIFFERENCES : Normal 72dpi : Not detected. Normal 300dpi : "027-13.ps" "032-07.ps" "205-09.ps" "212-01.ps" "213-01.ps" "214-01.ps" "264-01.ps" "289-01.ps" "298-09.ps" "321-09.ps" pdfwrite 72 dpi : None. pdfwrite 300dpi : None.[src/gscpm.h 1.5, src/gxchar.c 1.45]
2005-05-23 10:49 Igor Melichev
Fix : 'strokepath' could generate wrongly oriented contours. DETAILS : Bug 688103 "The dashing direction depends on the initial device CTM determinant". Bug 688097 "A wrong clipping with 298-01.ps" The patch computes initial_matrix_reflected = true iff the initial device CTM has a negative determinant. Then it is accounted to orient stroke outlines to a proper direction : they must form positive contours in the user space. For doing so we properly orient dash caps in gx_stroke_path_only_aux, and then compensate it in line_join_points. Several local function prototype were changed to pass the value of initial_matrix_reflected to line_join_points. Minor change : moved some visual trace instructions to a more general function, which is called from several places. EXPECTED DIFFERENCES : Normal 72dpi : "012-13.ps" "013-13.ps" "014-05.ps" "014-13.ps" "015-05.ps" "027-09.ps" "034-10.ps" "169-05.ps" "169-09.ps" "169-13.ps" "205-13.ps" "222-05.ps" "222-13.ps" "260-01.ps" "289-01.ps" "297-01.ps" "298-01.ps" "298-05.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-01.ps" "321-05.ps" "321-13.ps" "adesso8.pdf" "file.pdf" "golfer.eps" Normal 300dpi : "014-05.ps" "015-05.ps" "027-09.ps" "034-01.ps" "159.pdf" "169-05.ps" "222-05.ps" "231-01.ps" "260-01.ps" "281-01.ps" "289-01.ps" "298-01.ps" "298-05.ps" "307-01.ps" "321-01.ps" "321-05.ps" "86554321.pdf" "adesso7.pdf" "Bug687546.ps" pdfwrite 72 dpi : "012-13.ps" "013-13.ps" "014-05.ps" "014-13.ps" "015-05.ps" "034-10.ps" "169-05.ps" "169-09.ps" "169-13.ps" "222-05.ps" "222-09.ps" "222-13.ps" "260-01.ps" "297-01.ps" "316-07.ps" "adesso8.pdf" "file.pdf" "golfer.eps" pdfwrite 300dpi : "014-05.ps" "015-05.ps" "027-09.ps" "169-05.ps" "222-05.ps" "307-01.ps" "316-07.ps" "320-01.ps"[src/gxstroke.c 1.14]
Fix for yet another broken PDF that Adobe Reader handles without complaint. Circular references in Resources are now detected and handled (with a warning). Bug 687946 for customer 580. Thanks to Alex Cherepanov for this fix DETAILS: A dictionary is used to detect the looping and if found a pdfformaterror is emitted and the checking for transparency halts (returning false). This does mean that a file with this problem may be incorrectly classified and will be processed as if NOTRANSPARENCY was in effect. The performance penalty for the extra checking is negligble (tested with the 1236 page PDF 1.6 Reference Manual.[lib/pdf_main.ps 1.98]
2005-05-18 19:59 Igor Melichev
ps2write : Improving the script with NOOUTERSAVE. EXPECTED DIFFERENCES : None.[lib/ps2write.bat 1.15]
2005-05-18 19:51 Igor Melichev
ps2write : Passing NumCopies to the output. DETAILS : 1. In the ForOPDFRead mode Page objects will have a NumCopies entry iff NumCopies in the input isn't null. With ForOPDFREad=false it is being ignored. 2. opdfread.ps applies copypage to provide the requested number of copies. Zero and negative values are being ignored. Thus, if a PS document multiplies specific pages, they will be printed in the requested number. In same time, entire document can be copied with setting the NumCopies device parameter to the printer. This behavior is some different than pswrite. Debugged with 268-03.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.67, src/gdevpdf.c 1.110, src/gdevpdfx.h 1.116]
2005-05-18 10:21 Igor Melichev
Fix (pdfwrite) : A wrong line join with 'stroke'. DETAILS : This patch affects all vector devices. The old code wrongly recognizes closed rectangular paths, so that unclosed rectangles were converted into closed ones with 'stroke'. EXPECTED DIFFERENCES : pdfwrite : 260-01.ps adesso1.pdf[src/gdevvec.c 1.26]
Update a comment to correctly describe the jasper stream object struct.[src/sjpx.h 1.5]
2005-05-17 20:40 Igor Melichev
Fix (ps2write) : Complete supporting vierws which have no stroke color. DETAILS : Color was not synchronized when painting with a low level color. Debugged with 035-01.ps, 148-01.ps, 148-05.ps, 148-11.ps . EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.61]
2005-05-17 17:40 Igor Melichev
opdfread : Implementing HalftoneType 3,6,10. DETAILS : 1. A bug in ComputeFunction_n0 : s/size/length 2. A bug in ComputeFunction_n0 scaled argument must compare with array size rather than with 1. 3. Creating halftone Thresholds from stream with CreateHalftoneThresholds. 4. Resolve SpotFunction independently on IsObjRef. 5. Resolve TransferFunction for some halftone types. 6. Convert HalftoneType 6 into HalftoneType 3. 7. Ignore HalftoneType > 6 (which are not allowed in Postscript level 2) and print a warning. We would like to convert them, but it's too complex. Debugged with 258-01.ps, 476-01.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.66]
2005-05-17 12:04 Igor Melichev
Fix (opdfread) : Some glyphs were substituted with .notdef . DETAILS : It was broken when implementing a workaround for broken filters in HP LaserJet 1320 : endstream was never called, so that definefont_hook was skipped. 1. Moved the processing from 'endstream' to a new procedure HookFont. 2. Imple,mented an 'endobj' daemon with .endobj_daemon, which is a property of an object. 3. ReadFontProcs procedures create instances of .endobj_daemon, which call HookFont. 4. definefont_hook has been removed forever. 5. 'wendstream' is now an empty procedure, which actually is never called due to the HP filter problem. Debugged with 01_001.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.65]
2005-05-17 08:41 Igor Melichev
ps2write : Improving the script. DETAILS : 1. Restricted the source line width with inserting temporary variables. 2. Provided the 'jobserver' option with an environment variable to simplify running Genoa tests. EXPECTED DIFFERENCES : None.[lib/ps2write.bat 1.14]
2005-05-17 08:19 Igor Melichev
opdfread : Improving the discipline for function resolving. DETAILS : 1. Impolemented a general object reference recognizer in IsObjRef. 2. ResolveFunctionSafe is another helper. 3. Used it in function resolving. 4. Replaced ResolveSpotFunction with a general ResolveFunction. 5. Removed an unintended debug printing. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.64]
2005-05-16 23:25 Igor Melichev
opdfread : Implementing n-arguments linear sampled functions in BG, UCR, TR, BG2, UCR2, TR2, HT. DETAILS : 1. Fixed the stack balanse in ScaleArgN. 2. ComputeFunction_n0 Was not implemented. 3. FunctionToProc_x01 did not properly scale the argument from the Domain. 4. Added the FunctionToProc20 dispatch. 5. Renamed FunctionToProc2 into FunctionToProc12. 6. Renamed FunctionToProc4 into FunctionToProc14. 7. spotfunctions mark copied from pdf_draw.ps 8. ResolveFunction defines an uniform convention for function resolving. 9. Fixed SetTransfer with new convension of function resolving. 10. Implemented BG, UCR, TR, BG2, UCR2, TR2, HT with the new methods for 2-argument functions. Debugged with 246-01.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.63]
2005-05-13 12:28 Alex Cherepanov
Fix a typo in a comment.[src/msvc32.mak 1.72]
2005-05-12 19:26 Igor Melichev
Fix (ps2write) : Did not write halftone, color transfer, and some other graphic state parameters. DETAILS : See comment in code. EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.62]
2005-05-12 02:01 Alex Cherepanov
Increase the artificial limits in the spot analyzer device to accomodate Xterra-Regular font. Fix bug 688077.[src/gzspotan.c 1.14]
2005-05-10 16:19 Igor Melichev
Fix (pdfwrite) : Properly encrypt the document Info values. DETAILS : Bug 688076 "encrypted pdf document properties are garbled". This patch unwinds the part 7 of the patch http://ghostscript.com/pipermail/gs-cvs/2005-April/005485.html . EXPECTED DIFFERENCES : None.[src/gdevpdfo.c 1.32]
Fix overly agressive xref format checking that was tripped up by double <cr> instead of <cr><lf>. Bug 688082 for customer 580. DETAILS: The xref did have 20 character entries, but as mentioned, a double 0x0d resulted in the second line being read as an empty line. Go back to the older method of reading 20 character strings, then add format verification that only allows white space characters after the 'f' or 'n'. There may be an underlying problem in the rebuild logic, or the file may be damaged beyond repair although it does now open. There is a warning issued about stream EOL that may have confused the rebuild logic.[lib/pdf_main.ps 1.97]
Handle non-integer font size and stop after last page processed.[lib/gslp.ps 1.7]
Partial fix for 687814 dithering artifacts. The given test file shows some faint halftone dots in the background when rasterized using the bmp256 device. DETAILS: The problem is caused by a combination of factors that aggravate the situation plus some things in the color look up logic that cause minor errors in the calculations. The aggravating factors: By default, Ghostscript uses a 16x16 halftone cell for low resolutions, i.e. below 150 dpi. (I do not know the reasons why and it seems like a poor choice to me. However for now, I am not changing the halftone.) The bmp256 device utilizes a 6x6x6 RGB color cube. Thus there are 1281 levels ((16 x 16 x 5) + 1) for each halftoned colorant. This gives a step size between each level of 0.00078. Thus even very small errors in the calculations become visible as faint halftone dots. The given test file is using a CalRGB color space. The WhitePoint is [ 0.9505 1 1.089 ] which is the standard D65 white point. However with the given CalRGB parameters and a pure white RGB input (1 1 1). the resulting XYZ is [0.9505 0.99999 1.089] which has a very small error in the Y value. (However the error is small enough that one would not expect it to be visible.) The calculations in Ghostscript's halftoning logic for determining the halftone level truncate values. With an RGB process color model, this means that only a pure white is not halftoned. Thus the small error mentioned in the previous paragraph becomes visible. Note: The truncation effects work the other way in a CMYK process color model, which is why we do not see this problem with shades that are nearly white in CMYK halftoned output. The calculation errors: To save CPU time, the color look up logic did not interpolate table entries which were closer that 0.01. Thus output values could have an error as large as 0.01. The color look up logic clipped table entries to the specified output range. This can cause errors with interpolated values when the interpolation involves one table entry that is clipped and one entry that is not clipped. The changes in this fix: The calculations that determine the halftone levels was modified. Actually it was simplified. Prior to the DeviceN changes (in revision 8.00) there were three separate calculations for halftone levels. There was a separate calculation for Gray, RGB, and CMYK color spaces. Revision 8.00 changed the halftoning to be based upon the device's process color model (instead of the color space) and merged the RGB and CMYK calculations. The two separate calculations were kept to minimize regressions during the DeviceN effort. This change basically keeps the logic that had been used for Gray process color models. This version of the calculation does not have the truncation problems that were present in the RGB/CMYK calculation. Another simplification was removal of some logic that was checking for additive versus subtractive process color model. Once again this logic was present only to minimize regressions compared to pre 8.00 results. The final result is that this calculation is much simpler, faster, and gives a better result. The 'do not interpolate' criteria was reduced to 0.001. Once again this can add to the CPU time. Changes which are not in this fix: The clamping of look up table entries was not changed. Changing this requires that the we would have to clamp the output after the table lookup. The errors are small but they are large enough that problems are still seen with the bmp256 device and a 16x16 halftone cell. There are several different paths through this logic and thus the probability of creating worse errors is relatively high. This change would add slightly to the CPU time but is required to get the correct result. EXPECTED DIFFERENCES: This change produces small changes in the halftone levels. The changes in the 'do not interpolate' value affects many files which use CIE or ICC color spaces. Between these two changes, this fix affects 165 files.[src/gscie.h 1.14, src/gxcmap.c 1.25, src/gxdevndi.c 1.6, src/gxdither.h 1.7]
2005-05-03 10:50 Igor Melichev
Speed up shadings : a minor optimization for the monotonity check of a stitching function. DETAILS : It returned false (wrong, must be true) if entire interval falls to the end of the domain. Speeds up ps2write with "Clarke Tate Manns Chinese.ai". EXPECTED DIFFERENCES : Not observed in a local testing with arbitrary devices. May cause a minor difference with some devices.[src/gsfunc3.c 1.26]
2005-05-03 10:41 Igor Melichev
ps2write : Set device parameters to preserve colors. EXPECTED DIFFERENCES : None.[lib/ps2write.bat 1.13]
2005-05-03 09:10 Igor Melichev
ps2write : Fix problems with shadings. DETAILS : 1. gdev_pdf_fill_rectangle_hl_color did not implement a shading conversion when called with a shading color. 2. The "convert_to_image" branch of gdev_pdf_fill_path had a problem with clipping path when called fron the operator 'fill' (rather than 'shfill'). 3. In the "convert_to_image" branch of gdev_pdf_fill_path improved the balance of Q/q in case of errors. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.60]
Handle CIDCount value of 65536 which might be seen with Identity CMap. Fix for customer 562. DETAILS: while a multiple string approach had been previously implemented to allow CIDCount > 32767, with 65536 a 'rangecheck in --string-- would result when trying to create a string of 65538 bytes (32769 * 2). I chose a arbitrary break point of 22000 CID's so that three strings would be enough for 66000 total.[lib/gs_cidtt.ps 1.9]
2005-04-27 16:40 Igor Melichev
Fix (pdfwrite) : Properly account FontMatrix of a CID font with 'glypshow', 'cshow'. DETAILS : Bug 688000 "PDF writer produces misplaced characters". When a CID font is used with 'glypshow' or with 'show' in a 'cshow' procedure, pdfwrite creates a Type 0 font for wrapping the CID font according to the PDF standard. Doing so, the old code created a single type 0 font for all occurances of the CID font, rather those occurances may have different values of FontMatrix. The new code creates so many type 0 fonts as many various values of FontMatrix is used with the CID font. EXPECTED DIFFERENCES : None.[src/gdevpdtc.c 1.42, src/gsfont.c 1.36, src/gsfont.h 1.11]
Fix for 687883 tiff32nc device and PDF transparency and for 687980 image missing with psdcmyk driver. DETAILS: The absence of the images was caused by an error in the handling of PDF 1.4 transparency soft masks (SMask). The mask data is monochrome. However it is saved (like all PDF 1.4 transparency related colors) in the blending color space. Currently the process color model of the output device is being used for the PDF 1.4 blending space. The fix consists of inverting the image mask data when a subtractive blending color space is being used.[src/gdevp14.c 1.28]
Fix for 688048 ijs driver broken in 8.51 for ProcessColorModel=Gray versus 8.50 DETAILS: There were a few minor problems with the gdevijs.c file. 1. The file has been corrupted with extra ^M's at the end of lines. (These cause problems with the MSVC debugger since MSVC gets confused about which source line is being debugged.. They can also cause problem with the Borland Compiler.) This a reoccurring problem and I am getting tired of seeing it. Unfortunately they are not visible in the diff shown below or in the MSVC debugger. 2. The routine gsijs_read_string_malloc has some problems. The call to gs_free has str as a parameter when it should have been *str. (str is a pointer to a pointer.) This is the major cause of the reported problem. The routine only released the old string when the new one needed to be larger however it always allocated a new string. Since this is non GC memory, this causes a leak.[src/gdevijs.c 1.11]
2005-04-25 12:28 Igor Melichev
Fix (pdfwrite) : Uninitialized variable when encrypting a string from a pdfmark. DETAILS : Bug 687809 "pdfwrite: A wrong encryption of bookmarks". This bug may become another classic example, which demonstrates a bad coding style. The function s_PSSD_init incompletely performed the action, which it is designed for. The reason is that the macro s_PSSD_init_inline was made especially for optimizing scan_token, and its name doesn't reflect its action. When coded s_PSSD_init, its action was forgotten. As a result we've got an indeterministic behavior. This fix renames s_PSSD_init_inline into s_PSSD_partially_init_inline for a better reflection of its action, completes s_PSSD_init, and makes the letter be public for a regular initialization. Particularly using it gdevpdfr.c to fix another indeterministic bug, which persists since the repository was created. EXPECTED DIFFERENCES : None.[src/gdevpdfr.c 1.9, src/iscan.c 1.20, src/sstring.c 1.5, src/sstring.h 1.7]
2005-04-25 02:23 Igor Melichev
Fix (pdfwrite) : font file objects encryption was broken when worked on ps2write. DETAILS : Bug 688045 "gs 8.51 cannot create encrypted pdf file correctly". 1. With CompatibilityLevel == 1.2 did not create an uniquie font name. Removing pdf_begin_fontfile and open the data stream with reserving the object ID before font name is being computed (gdevpdtb.c). Detected occasionally, and it is not related to the bug. Fixed to establish a correct order of processing, setting a proper context for other changes. 2. pdf_write_embedded_font must not set DATA_STREAM_ENCRYPT because the font object is being written into the temporary file pdev->streams. It will be encrypted when copyed from the temporary file to the output file. See comment in pdf_begin_encrypt. The old code actually encrypted it twice, what is equivalent to no encryption. We guess it was broken while working on ps2write, due to writing font descriptor object before font file object. 3. pdf_write_cmap had same problem as pdf_write_embedded_font. 4. pdf_write_contents_cid2 had same problem with CIDToGIDMap. 5. In pdf_encrypt_encoded_string, the PSSD filter did not move the cursor of the underlying stream when closing by EOD. We believe that it worked when it was coded, and we guess it was broken relatively recently. As a workaround, setting close_at_eod = false, because this mode appears to move the underlying stream. We didn't analyze why PSSD moved it a long ago and doesn't longer move now. 6. pdf_write_cid_system_info_to_stream must not encrypt when called from pdf_write_cmap due to (3). 7. Don't encrypt the DocumentInfo dictionary items because Adobe readers don't decrypt them. EXPECTED DIFFERENCES : None.[src/gdevpdfo.c 1.31, src/gdevpdfu.c 1.77, src/gdevpdtb.c 1.36, src/gdevpdti.c 1.44, src/gdevpdtw.c 1.43]
Initial revision[jasper/NEWS 1.1, jasper/LICENSE 1.1, jasper/README 1.1, jasper/aclocal.m4 1.1, jasper/COPYRIGHT 1.1, jasper/INSTALL 1.1, jasper/Makefile.am 1.1, jasper/Makefile.in 1.1, jasper/configure 1.1, jasper/configure.ac 1.1, jasper/jasper.spec 1.1, jasper/jasper.spec.in 1.1, jasper/doc/README 1.1, jasper/doc/jasper.pdf 1.1, jasper/doc/jpeg2000.pdf 1.1, jasper/src/Makefile.am 1.1, jasper/src/Makefile.in 1.1, jasper/src/README 1.1, jasper/src/appl/Makefile.am 1.1, jasper/src/appl/Makefile.in 1.1, jasper/src/appl/dummy.c 1.1, jasper/src/appl/imginfo.c 1.1, jasper/src/appl/jiv.c 1.1, jasper/src/appl/imgcmp.c 1.1, jasper/src/appl/jasper.c 1.1, jasper/src/appl/jasper_sdl.c 1.1, jasper/src/libjasper/Makefile.am 1.1, jasper/src/libjasper/Makefile.in 1.1, jasper/src/libjasper/README 1.1, jasper/src/libjasper/dummy.c 1.1, jasper/src/libjasper/bmp/Makefile.am 1.1, jasper/src/libjasper/bmp/Makefile.in 1.1, jasper/src/libjasper/bmp/bmp_cod.c 1.1, jasper/src/libjasper/bmp/bmp_cod.h 1.1, jasper/src/libjasper/bmp/bmp_dec.c 1.1, jasper/src/libjasper/bmp/bmp_enc.c 1.1, jasper/src/libjasper/bmp/bmp_enc.h 1.1, jasper/src/libjasper/jp2/Makefile.am 1.1, jasper/src/libjasper/jp2/Makefile.in 1.1, jasper/src/libjasper/jp2/jp2_cod.c 1.1, jasper/src/libjasper/jp2/jp2_cod.h 1.1, jasper/src/libjasper/jp2/jp2_dec.c 1.1, jasper/src/libjasper/jp2/jp2_dec.h 1.1, jasper/src/libjasper/jp2/jp2_enc.c 1.1, jasper/src/libjasper/jpc/jpc_cod.h 1.1, jasper/src/libjasper/jpc/jpc_dec.c 1.1, jasper/src/libjasper/jpc/jpc_dec.h 1.1, jasper/src/libjasper/jpc/jpc_enc.c 1.1, jasper/src/libjasper/jpc/jpc_enc.h 1.1, jasper/src/libjasper/jpc/jpc_fix.h 1.1, jasper/src/libjasper/jpc/jpc_flt.h 1.1, jasper/src/libjasper/jpc/jpc_math.c 1.1, jasper/src/libjasper/jpc/jpc_math.h 1.1, jasper/src/libjasper/jpc/jpc_mct.c 1.1, jasper/src/libjasper/jpc/jpc_mct.h 1.1, jasper/src/libjasper/jpc/jpc_mqcod.c 1.1, jasper/src/libjasper/jpc/jpc_mqcod.h 1.1, jasper/src/libjasper/jpc/jpc_mqdec.c 1.1, jasper/src/libjasper/jpc/jpc_mqdec.h 1.1, jasper/src/libjasper/jpc/jpc_mqenc.c 1.1, jasper/src/msvc/Makefile.am 1.1, jasper/src/msvc/Makefile.in 1.1, jasper/src/msvc/README 1.1, jasper/src/msvc/imgcmp.dsp 1.1, jasper/src/msvc/imginfo.dsp 1.1, jasper/src/msvc/jasper.dsp 1.1, jasper/src/msvc/jasper.dsw 1.1, jasper/src/msvc/jiv.dsp 1.1, jasper/src/msvc/libjasper.dsp 1.1, jasper/src/libjasper/jpc/Makefile.am 1.1, jasper/src/libjasper/jpc/Makefile.in 1.1, jasper/src/libjasper/jpc/jpc_bs.c 1.1, jasper/src/libjasper/jpc/jpc_bs.h 1.1, jasper/src/libjasper/jpc/jpc_cs.c 1.1, jasper/src/libjasper/jpc/jpc_cs.h 1.1, jasper/src/libjasper/jpc/jpc_mqenc.h 1.1, jasper/src/libjasper/jpc/jpc_qmfb.c 1.1, jasper/src/libjasper/jpc/jpc_qmfb.h 1.1, jasper/src/libjasper/jpc/jpc_t1cod.c 1.1, jasper/src/libjasper/jpc/jpc_t1cod.h 1.1, jasper/src/libjasper/jpc/jpc_t1dec.c 1.1, jasper/src/libjasper/jpc/jpc_t1dec.h 1.1, jasper/src/libjasper/jpc/jpc_t1enc.c 1.1, jasper/src/libjasper/jpc/jpc_t1enc.h 1.1, jasper/src/libjasper/jpc/jpc_t2cod.c 1.1, jasper/src/libjasper/jpc/jpc_t2cod.h 1.1, jasper/src/libjasper/jpc/jpc_t2dec.c 1.1, jasper/src/libjasper/jpc/jpc_t2dec.h 1.1, jasper/src/libjasper/jpc/jpc_t2enc.c 1.1, jasper/src/libjasper/jpc/jpc_t2enc.h 1.1, jasper/src/libjasper/jpc/jpc_tagtree.c 1.1, jasper/src/libjasper/jpc/jpc_tagtree.h 1.1, jasper/src/libjasper/jpc/jpc_tsfb.c 1.1, jasper/src/libjasper/jpc/jpc_tsfb.h 1.1, jasper/src/libjasper/jpc/jpc_util.c 1.1, jasper/src/libjasper/jpc/jpc_util.h 1.1, jasper/src/libjasper/jpg/Makefile.am 1.1, jasper/src/libjasper/jpg/Makefile.in 1.1, jasper/src/libjasper/jpg/README 1.1, jasper/src/libjasper/jpg/jpg_cod.h 1.1, jasper/src/libjasper/jpg/jpg_dec.c 1.1, jasper/src/libjasper/jpg/jpg_dummy.c 1.1, jasper/src/libjasper/jpg/jpg_enc.c 1.1, jasper/src/libjasper/jpg/jpg_enc.h 1.1, jasper/src/libjasper/jpg/jpg_jpeglib.h 1.1, jasper/src/libjasper/jpg/jpg_val.c 1.1, jasper/src/libjasper/mif/Makefile.am 1.1, jasper/src/libjasper/mif/README 1.1, jasper/src/libjasper/mif/mif_cod.c 1.1, jasper/src/libjasper/mif/mif_cod.h 1.1, jasper/src/libjasper/base/Makefile.am 1.1, jasper/src/libjasper/base/Makefile.in 1.1, jasper/src/libjasper/base/jas_cm.c 1.1, jasper/src/libjasper/base/jas_debug.c 1.1, jasper/src/libjasper/base/jas_getopt.c 1.1, jasper/src/libjasper/base/jas_icc.c 1.1, jasper/src/libjasper/base/jas_iccdata.c 1.1, jasper/src/libjasper/base/jas_image.c 1.1, jasper/src/libjasper/base/jas_init.c 1.1, jasper/src/libjasper/base/jas_malloc.c 1.1, jasper/src/libjasper/base/jas_seq.c 1.1, jasper/src/libjasper/base/jas_stream.c 1.1, jasper/src/libjasper/base/jas_string.c 1.1, jasper/src/libjasper/base/jas_tvp.c 1.1, jasper/src/libjasper/base/jas_version.c 1.1, jasper/src/libjasper/include/Makefile.am 1.1, jasper/src/libjasper/include/Makefile.in 1.1, jasper/src/libjasper/include/jasper/jas_debug.h 1.1, jasper/src/libjasper/include/jasper/jas_fix.h 1.1, jasper/src/libjasper/include/jasper/jas_icc.h 1.1, jasper/src/libjasper/include/jasper/jas_image.h 1.1, jasper/src/libjasper/include/jasper/jas_init.h 1.1, jasper/src/libjasper/include/jasper/jas_malloc.h 1.1, jasper/src/libjasper/include/jasper/jas_math.h 1.1, jasper/src/libjasper/include/jasper/jas_seq.h 1.1, jasper/src/libjasper/include/jasper/jas_version.h 1.1, jasper/src/libjasper/mif/Makefile.in 1.1, jasper/src/libjasper/pgx/Makefile.am 1.1, jasper/src/libjasper/pgx/Makefile.in 1.1, jasper/src/libjasper/pgx/pgx_cod.c 1.1, jasper/src/libjasper/pgx/pgx_cod.h 1.1, jasper/src/libjasper/pgx/pgx_dec.c 1.1, jasper/src/libjasper/pgx/pgx_enc.c 1.1, jasper/src/libjasper/pgx/pgx_enc.h 1.1, jasper/src/libjasper/pnm/Makefile.am 1.1, jasper/src/libjasper/pnm/Makefile.in 1.1, jasper/src/libjasper/pnm/pnm_cod.c 1.1, jasper/src/libjasper/pnm/pnm_cod.h 1.1, jasper/src/libjasper/pnm/pnm_dec.c 1.1, jasper/src/libjasper/pnm/pnm_enc.c 1.1, jasper/src/libjasper/pnm/pnm_enc.h 1.1, jasper/src/libjasper/ras/Makefile.am 1.1, jasper/src/libjasper/ras/Makefile.in 1.1, jasper/src/libjasper/ras/ras_cod.c 1.1, jasper/src/libjasper/ras/ras_cod.h 1.1, jasper/src/libjasper/ras/ras_dec.c 1.1, jasper/src/libjasper/ras/ras_enc.c 1.1, jasper/src/libjasper/ras/ras_enc.h 1.1, jasper/data/Makefile.am 1.1, jasper/data/colorprofiles/README 1.1, jasper/data/colorprofiles/erimm.icm 1.1, jasper/data/colorprofiles/esrgb.icm 1.1, jasper/data/colorprofiles/esrgbgrey.icm 1.1, jasper/data/colorprofiles/grey.icm 1.1, jasper/data/colorprofiles/greyromm.icm 1.1, jasper/data/colorprofiles/romm.icm 1.1, jasper/data/colorprofiles/sgray.icm 1.1, jasper/data/colorprofiles/srgb.icm 1.1, jasper/data/colorprofiles/sycc.icm 1.1, jasper/data/images/README 1.1, jasper/data/images/example.mif 1.1, jasper/data/images/goldenears.bmp 1.1, jasper/data/images/goldenears.jpg 1.1, jasper/data/images/stawamuschief_gray.pnm 1.1, jasper/data/images/test.pnm 1.1, jasper/src/libjasper/include/jasper/Makefile.am 1.1, jasper/src/libjasper/include/jasper/Makefile.in 1.1, jasper/src/libjasper/include/jasper/jas_cm.h 1.1, jasper/src/libjasper/include/jasper/jas_config.h 1.1, jasper/src/libjasper/include/jasper/jas_config_ac.h 1.1, jasper/src/libjasper/include/jasper/jas_config_ac.h.in 1.1, jasper/src/libjasper/include/jasper/jas_config_win32.h 1.1, jasper/src/libjasper/include/jasper/jas_getopt.h 1.1, jasper/src/libjasper/include/jasper/jas_stream.h 1.1, jasper/src/libjasper/include/jasper/jas_string.h 1.1, jasper/src/libjasper/include/jasper/jas_tvp.h 1.1, jasper/src/libjasper/include/jasper/jas_types.h 1.1, jasper/src/libjasper/include/jasper/jasper.h 1.1, jasper/data/images/example.mif0 1.1, jasper/data/images/goldenears.pnm 1.1, jasper/data/images/goldenears.ras 1.1, jasper/acaux/compile 1.1, jasper/acaux/depcomp 1.1, jasper/data/images/feep.pnm 1.1, jasper/data/images/feep2.pnm 1.1, jasper/data/images/goldenears_gray.jpg 1.1, jasper/data/images/goldenears_gray.pnm 1.1, jasper/data/images/goldenears_gray.ras 1.1, jasper/data/images/small_16x1.pgm 1.1, jasper/data/images/small_1x1.pgm 1.1, jasper/data/images/stawamuschief.pnm 1.1, jasper/acaux/config.guess 1.1, jasper/acaux/config.sub 1.1, jasper/acaux/install-sh 1.1, jasper/acaux/ltmain.sh 1.1, jasper/acaux/missing 1.1]
Initial revision[jbig2dec/LICENSE 1.1, jbig2dec/README 1.1, jbig2dec/aclocal.m4 1.1, jbig2dec/compile 1.1, jbig2dec/depcomp 1.1, jbig2dec/jbig2_image.c 1.1, jbig2dec/jbig2_image.h 1.1, jbig2dec/jbig2_mmr.c 1.1, jbig2dec/jbig2_mmr.h 1.1, jbig2dec/jbig2dec.c 1.1, jbig2dec/msvc.mak 1.1, jbig2dec/test_jbig2dec.py 1.1, jbig2dec/COPYING 1.1, jbig2dec/Makefile.am 1.1, jbig2dec/Makefile.in 1.1, jbig2dec/config.h.in 1.1, jbig2dec/config_types.h 1.1, jbig2dec/config_types.h.in 1.1, jbig2dec/config_win32.h 1.1, jbig2dec/configure 1.1, jbig2dec/configure.ac 1.1, jbig2dec/getopt.c 1.1, jbig2dec/getopt.h 1.1, jbig2dec/getopt1.c 1.1, jbig2dec/install-sh 1.1, jbig2dec/jbig2.c 1.1, jbig2dec/jbig2.h 1.1, jbig2dec/jbig2_arith.c 1.1, jbig2dec/jbig2_arith.h 1.1, jbig2dec/jbig2_arith_iaid.c 1.1, jbig2dec/jbig2_arith_iaid.h 1.1, jbig2dec/jbig2_arith_int.c 1.1, jbig2dec/jbig2_arith_int.h 1.1, jbig2dec/jbig2_generic.c 1.1, jbig2dec/jbig2_generic.h 1.1, jbig2dec/jbig2_huffman.c 1.1, jbig2dec/jbig2_huffman.h 1.1, jbig2dec/jbig2_hufftab.h 1.1, jbig2dec/jbig2_image_pbm.c 1.1, jbig2dec/jbig2_image_png.c 1.1, jbig2dec/jbig2_metadata.c 1.1, jbig2dec/jbig2_metadata.h 1.1, jbig2dec/jbig2_page.c 1.1, jbig2dec/jbig2_priv.h 1.1, jbig2dec/jbig2_refinement.c 1.1, jbig2dec/jbig2_segment.c 1.1, jbig2dec/jbig2_symbol_dict.c 1.1, jbig2dec/jbig2_symbol_dict.h 1.1, jbig2dec/jbig2_text.c 1.1, jbig2dec/memcmp.c 1.1, jbig2dec/missing 1.1, jbig2dec/os_types.h 1.1, jbig2dec/sha1.c 1.1, jbig2dec/sha1.h 1.1, jbig2dec/snprintf.c 1.1]
Initial revision[libpng/TODO 1.1, libpng/example.c 1.1, libpng/pngconf.h 1.1, libpng/pnggccrd.c 1.1, libpng/pngget.c 1.1, libpng/LICENSE 1.1, libpng/pngmem.c 1.1, libpng/pngrio.c 1.1, libpng/pngset.c 1.1, libpng/pngwio.c 1.1, libpng/png.5 1.1, libpng/png.c 1.1, libpng/pngtrans.c 1.1, libpng/README 1.1, libpng/configure 1.1, libpng/png.h 1.1, libpng/pngnow.png 1.1, libpng/pngread.c 1.1, libpng/pngtest.c 1.1, libpng/pngbar.jpg 1.1, libpng/pngbar.png 1.1, libpng/pngvcrd.c 1.1, libpng/pngpread.c 1.1, libpng/pngwrite.c 1.1, libpng/libpng.txt 1.1, libpng/libpngpf.3 1.1, libpng/pngwtran.c 1.1, libpng/ANNOUNCE 1.1, libpng/INSTALL 1.1, libpng/KNOWNBUG 1.1, libpng/Y2KINFO 1.1, libpng/pngwutil.c 1.1, libpng/CHANGES 1.1, libpng/libpng.3 1.1, libpng/pngrtran.c 1.1, libpng/pngerror.c 1.1, libpng/pngrutil.c 1.1, libpng/pngtest.png 1.1, libpng/contrib/pngminus/makefile.std 1.1, libpng/contrib/pngminus/makefile.tc3 1.1, libpng/contrib/pngminus/pngminus.sh 1.1, libpng/contrib/pngminus/pnm2png.bat 1.1, libpng/contrib/pngminus/pnm2png.sh 1.1, libpng/contrib/gregbook/LICENSE 1.1, libpng/contrib/gregbook/README 1.1, libpng/contrib/gregbook/makevms.com 1.1, libpng/contrib/gregbook/rpng-win.c 1.1, libpng/contrib/pngminus/README 1.1, libpng/contrib/pngminus/makevms.com 1.1, libpng/contrib/pngminus/png2pnm.bat 1.1, libpng/contrib/pngminus/png2pnm.c 1.1, libpng/contrib/pngminus/png2pnm.sh 1.1, libpng/contrib/pngminus/pngminus.bat 1.1, libpng/contrib/pngminus/pnm2png.c 1.1, libpng/contrib/pngsuite/README 1.1, libpng/contrib/pngsuite/basn0g01.png 1.1, libpng/contrib/pngsuite/basn0g02.png 1.1, libpng/contrib/pngsuite/basn0g04.png 1.1, libpng/contrib/pngsuite/basn0g08.png 1.1, libpng/contrib/pngsuite/basn0g16.png 1.1, libpng/contrib/pngsuite/basn2c08.png 1.1, libpng/contrib/pngsuite/basn2c16.png 1.1, libpng/contrib/pngsuite/basn3p01.png 1.1, libpng/contrib/pngsuite/basn3p02.png 1.1, libpng/contrib/pngsuite/basn3p04.png 1.1, libpng/contrib/pngsuite/basn3p08.png 1.1, libpng/contrib/pngsuite/basn4a08.png 1.1, libpng/contrib/pngsuite/basn4a16.png 1.1, libpng/contrib/pngsuite/basn6a08.png 1.1, libpng/contrib/pngsuite/basn6a16.png 1.1, libpng/contrib/gregbook/rpng2-x.c 1.1, libpng/contrib/gregbook/toucan.png 1.1, libpng/contrib/gregbook/writepng.c 1.1, libpng/contrib/gregbook/writepng.h 1.1, libpng/contrib/gregbook/Makefile.sgi 1.1, libpng/contrib/gregbook/Makefile.unx 1.1, libpng/contrib/gregbook/Makefile.w32 1.1, libpng/contrib/gregbook/readpng2.c 1.1, libpng/contrib/gregbook/readpng2.h 1.1, libpng/contrib/gregbook/rpng-x.c 1.1, libpng/contrib/gregbook/wpng.c 1.1, libpng/contrib/gregbook/readpng.c 1.1, libpng/contrib/gregbook/readpng.h 1.1, libpng/contrib/gregbook/rpng2-win.c 1.1, libpng/contrib/visupng/PngFile.c 1.1, libpng/contrib/visupng/PngFile.h 1.1, libpng/contrib/visupng/VisualPng.c 1.1, libpng/contrib/visupng/VisualPng.dsp 1.1, libpng/contrib/visupng/VisualPng.dsw 1.1, libpng/contrib/visupng/VisualPng.ico 1.1, libpng/contrib/visupng/VisualPng.png 1.1, libpng/contrib/visupng/VisualPng.rc 1.1, libpng/contrib/visupng/resource.h 1.1, libpng/contrib/visupng/README.txt 1.1, libpng/contrib/visupng/cexcept.h 1.1, libpng/scripts/makefile.32sunu 1.1, libpng/scripts/makefile.64sunu 1.1, libpng/scripts/makefile.aix 1.1, libpng/scripts/makefile.bor 1.1, libpng/scripts/makefile.dec 1.1, libpng/scripts/makefile.dj2 1.1, libpng/scripts/makefile.elf 1.1, libpng/scripts/makefile.gcc 1.1, libpng/scripts/makefile.knr 1.1, libpng/scripts/makefile.msc 1.1, libpng/scripts/makefile.os2 1.1, libpng/scripts/makefile.sco 1.1, libpng/scripts/makefile.sgi 1.1, libpng/scripts/makefile.tc3 1.1, libpng/scripts/makefile.watcom 1.1, libpng/scripts/smakefile.ppc 1.1, libpng/scripts/SCOPTIONS.ppc 1.1, libpng/scripts/descrip.mms 1.1, libpng/scripts/libpng-config-body.in 1.1, libpng/scripts/libpng-config-head.in 1.1, libpng/scripts/libpng.icc 1.1, libpng/scripts/libpng.pc.in 1.1, libpng/scripts/makefile.acorn 1.1, libpng/scripts/makefile.amiga 1.1, libpng/scripts/makefile.atari 1.1, libpng/scripts/makefile.darwin 1.1, libpng/scripts/makefile.freebsd 1.1, libpng/scripts/makefile.gcmmx 1.1, libpng/scripts/makefile.hpgcc 1.1, libpng/scripts/makefile.intel 1.1, libpng/scripts/makefile.linux 1.1, libpng/scripts/makefile.ne12bsd 1.1, libpng/scripts/makefile.openbsd 1.1, libpng/scripts/makefile.sggcc 1.1, libpng/scripts/makefile.so9 1.1, libpng/scripts/makefile.solaris 1.1, libpng/scripts/makefile.std 1.1, libpng/scripts/makefile.sunos 1.1, libpng/scripts/makefile.vcawin32 1.1, libpng/scripts/makefile.vcwin32 1.1, libpng/scripts/makevms.com 1.1, libpng/scripts/pngos2.def 1.1, libpng/scripts/pngw32.def 1.1, libpng/scripts/pngw32.rc 1.1, libpng/projects/netware.txt 1.1, libpng/projects/wince.txt 1.1, libpng/projects/beos/x86-shared.proj 1.1, libpng/projects/beos/x86-shared.txt 1.1, libpng/projects/beos/x86-static.proj 1.1, libpng/projects/beos/x86-static.txt 1.1, libpng/scripts/makefile.bc32 1.1, libpng/scripts/makefile.beos 1.1, libpng/scripts/makefile.cygwin 1.1, libpng/scripts/makefile.hp64 1.1, libpng/scripts/makefile.hpux 1.1, libpng/scripts/makefile.ibmc 1.1, libpng/scripts/makefile.mips 1.1, libpng/scripts/makefile.netbsd 1.1, libpng/projects/cbuilder5/libpng.bpf 1.1, libpng/projects/cbuilder5/libpng.bpg 1.1, libpng/projects/cbuilder5/libpng.bpr 1.1, libpng/projects/cbuilder5/libpng.cpp 1.1, libpng/projects/cbuilder5/libpng.readme.txt 1.1, libpng/projects/cbuilder5/libpngstat.bpf 1.1, libpng/projects/cbuilder5/libpngstat.bpr 1.1, libpng/projects/cbuilder5/zlib.readme.txt 1.1, libpng/projects/visualc6/README.txt 1.1, libpng/projects/visualc6/libpng.dsp 1.1, libpng/projects/visualc6/libpng.dsw 1.1, libpng/projects/visualc6/pngtest.dsp 1.1, libpng/projects/visualc71/PRJ0041.mak 1.1, libpng/projects/visualc71/README.txt 1.1, libpng/projects/visualc71/README_zlib.txt 1.1, libpng/projects/visualc71/libpng.sln 1.1, libpng/projects/visualc71/libpng.vcproj 1.1, libpng/projects/visualc71/pngtest.vcproj 1.1, libpng/projects/visualc71/zlib.vcproj 1.1]
Initial revision[zlib/FAQ 1.1, zlib/crc32.c 1.1, zlib/example.c 1.1, zlib/zconf.in.h 1.1, zlib/INDEX 1.1, zlib/Makefile 1.1, zlib/Makefile.in 1.1, zlib/README 1.1, zlib/adler32.c 1.1, zlib/compress.c 1.1, zlib/configure 1.1, zlib/crc32.h 1.1, zlib/uncompr.c 1.1, zlib/zconf.h 1.1, zlib/zutil.c 1.1, zlib/zutil.h 1.1, zlib/gzio.c 1.1, zlib/inffixed.h 1.1, zlib/trees.c 1.1, zlib/trees.h 1.1, zlib/deflate.c 1.1, zlib/deflate.h 1.1, zlib/inftrees.c 1.1, zlib/inftrees.h 1.1, zlib/zlib.3 1.1, zlib/algorithm.txt 1.1, zlib/infback.c 1.1, zlib/inffast.c 1.1, zlib/inffast.h 1.1, zlib/zlib.h 1.1, zlib/ChangeLog 1.1, zlib/inflate.c 1.1, zlib/inflate.h 1.1, zlib/minigzip.c 1.1, zlib/old/Make_vms.com 1.1, zlib/old/Makefile.riscos 1.1, zlib/old/README 1.1, zlib/old/descrip.mms 1.1, zlib/old/visual-basic.txt 1.1, zlib/contrib/README.contrib 1.1, zlib/contrib/ada/buffer_demo.adb 1.1, zlib/contrib/ada/zlib-streams.adb 1.1, zlib/contrib/ada/zlib-streams.ads 1.1, zlib/old/zlib.html 1.1, zlib/old/os2/Makefile.os2 1.1, zlib/old/os2/zlib.def 1.1, zlib/qnx/package.qpg 1.1, zlib/contrib/ada/mtest.adb 1.1, zlib/contrib/ada/read.adb 1.1, zlib/contrib/ada/readme.txt 1.1, zlib/contrib/ada/test.adb 1.1, zlib/contrib/ada/zlib-thin.adb 1.1, zlib/contrib/ada/zlib-thin.ads 1.1, zlib/contrib/ada/zlib.adb 1.1, zlib/contrib/ada/zlib.ads 1.1, zlib/contrib/ada/zlib.gpr 1.1, zlib/contrib/puff/Makefile 1.1, zlib/contrib/puff/README 1.1, zlib/contrib/puff/zeros.raw 1.1, zlib/contrib/blast/Makefile 1.1, zlib/contrib/blast/README 1.1, zlib/contrib/blast/blast.c 1.1, zlib/contrib/blast/blast.h 1.1, zlib/contrib/blast/test.pk 1.1, zlib/contrib/blast/test.txt 1.1, zlib/contrib/dotzlib/DotZLib.build 1.1, zlib/contrib/iostream/test.cpp 1.1, zlib/contrib/iostream/zfstream.cpp 1.1, zlib/contrib/iostream/zfstream.h 1.1, zlib/contrib/puff/puff.c 1.1, zlib/contrib/puff/puff.h 1.1, zlib/contrib/untgz/Makefile 1.1, zlib/contrib/untgz/Makefile.msc 1.1, zlib/contrib/untgz/untgz.c 1.1, zlib/contrib/dotzlib/DotZLib.chm 1.1, zlib/contrib/dotzlib/DotZLib.sln 1.1, zlib/contrib/dotzlib/LICENSE_1_0.txt 1.1, zlib/contrib/dotzlib/readme.txt 1.1, zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs 1.1, zlib/contrib/dotzlib/DotZLib/DotZLib.cs 1.1, zlib/contrib/dotzlib/DotZLib/DotZLib.csproj 1.1, zlib/contrib/dotzlib/DotZLib/GZipStream.cs 1.1, zlib/contrib/dotzlib/DotZLib/UnitTests.cs 1.1, zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs 1.1, zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs 1.1, zlib/contrib/dotzlib/DotZLib/CodecBase.cs 1.1, zlib/contrib/dotzlib/DotZLib/Deflater.cs 1.1, zlib/contrib/dotzlib/DotZLib/Inflater.cs 1.1, zlib/contrib/gzappend/gzappend.c 1.1, zlib/contrib/masm686/match.asm 1.1, zlib/contrib/masmx86/gvmat32c.c 1.1, zlib/contrib/masmx86/inffas32.asm 1.1, zlib/contrib/masmx86/readme.txt 1.1, zlib/contrib/masmx86/gvmat32.asm 1.1, zlib/contrib/masmx86/mkasm.bat 1.1, zlib/contrib/minizip/Makefile 1.1, zlib/contrib/minizip/crypt.h 1.1, zlib/contrib/minizip/miniunz.c 1.1, zlib/contrib/minizip/minizip.c 1.1, zlib/contrib/minizip/zip.c 1.1, zlib/contrib/minizip/zip.h 1.1, zlib/contrib/testzlib/testzlib.c 1.1, zlib/contrib/testzlib/testzlib.sln 1.1, zlib/contrib/testzlib/testzlib.vcproj 1.1, zlib/contrib/minizip/ChangeLogUnzip 1.1, zlib/contrib/minizip/ioapi.c 1.1, zlib/contrib/minizip/ioapi.h 1.1, zlib/contrib/minizip/iowin32.c 1.1, zlib/contrib/minizip/iowin32.h 1.1, zlib/contrib/minizip/mztools.c 1.1, zlib/contrib/minizip/mztools.h 1.1, zlib/contrib/minizip/unzip.c 1.1, zlib/contrib/minizip/unzip.h 1.1, zlib/contrib/asm586/README.586 1.1, zlib/contrib/asm586/match.S 1.1, zlib/contrib/asm686/README.686 1.1, zlib/contrib/asm686/match.S 1.1, zlib/contrib/delphi/ZLib.pas 1.1, zlib/contrib/delphi/ZLibConst.pas 1.1, zlib/contrib/delphi/readme.txt 1.1, zlib/contrib/delphi/zlibd32.mak 1.1, zlib/contrib/iostream2/zstream.h 1.1, zlib/contrib/iostream2/zstream_test.cpp 1.1, zlib/contrib/iostream3/README 1.1, zlib/contrib/iostream3/TODO 1.1, zlib/contrib/iostream3/test.cc 1.1, zlib/contrib/iostream3/zfstream.cc 1.1, zlib/contrib/iostream3/zfstream.h 1.1, zlib/contrib/pascal/zlibd32.mak 1.1, zlib/contrib/infback9/README 1.1, zlib/contrib/infback9/infback9.c 1.1, zlib/contrib/infback9/infback9.h 1.1, zlib/contrib/infback9/inffix9.h 1.1, zlib/contrib/infback9/inflate9.h 1.1, zlib/contrib/infback9/inftree9.c 1.1, zlib/contrib/infback9/inftree9.h 1.1, zlib/contrib/pascal/example.pas 1.1, zlib/contrib/pascal/readme.txt 1.1, zlib/contrib/pascal/zlibpas.pas 1.1, zlib/contrib/vstudio/readme.txt 1.1, zlib/contrib/vstudio/vc7/minizip.vcproj 1.1, zlib/contrib/vstudio/vc7/zlibstat.vcproj 1.1, zlib/contrib/vstudio/vc7/zlibvc.def 1.1, zlib/contrib/vstudio/vc7/zlibvc.sln 1.1, zlib/amiga/Makefile.pup 1.1, zlib/amiga/Makefile.sas 1.1, zlib/as400/compile.clp 1.1, zlib/contrib/inflate86/inffas86.c 1.1, zlib/contrib/inflate86/inffast.S 1.1, zlib/contrib/vstudio/vc7/miniunz.vcproj 1.1, zlib/contrib/vstudio/vc7/zlib.rc 1.1, zlib/contrib/vstudio/vc7/zlibvc.vcproj 1.1, zlib/as400/bndsrc 1.1, zlib/as400/readme.txt 1.1, zlib/as400/zlib.inc 1.1, zlib/msdos/Makefile.bor 1.1, zlib/msdos/Makefile.dj2 1.1, zlib/msdos/Makefile.emx 1.1, zlib/msdos/Makefile.msc 1.1, zlib/msdos/Makefile.tc 1.1, zlib/projects/README.projects 1.1, zlib/projects/visualc6/README.txt 1.1, zlib/projects/visualc6/example.dsp 1.1, zlib/projects/visualc6/minigzip.dsp 1.1, zlib/win32/DLL_FAQ.txt 1.1, zlib/win32/Makefile.bor 1.1, zlib/win32/Makefile.emx 1.1, zlib/win32/Makefile.gcc 1.1, zlib/win32/Makefile.msc 1.1, zlib/win32/VisualC.txt 1.1, zlib/win32/zlib.def 1.1, zlib/win32/zlib1.rc 1.1, zlib/projects/visualc6/zlib.dsp 1.1, zlib/projects/visualc6/zlib.dsw 1.1]
Initial revision[jpeg/jdinput.c 1.1, jpeg/wrppm.c 1.1, jpeg/wrrle.c 1.1, jpeg/testimg.bmp 1.1, jpeg/testimg.jpg 1.1, jpeg/coderules.doc 1.1, jpeg/jccoefct.c 1.1, jpeg/jcmainct.c 1.1, jpeg/rdjpgcom.1 1.1, jpeg/rdjpgcom.c 1.1, jpeg/testimg.ppm 1.1, jpeg/example.c 1.1, jpeg/jcapimin.c 1.1, jpeg/jcapistd.c 1.1, jpeg/jconfig.dj 1.1, jpeg/jconfig.st 1.1, jpeg/jconfig.vc 1.1, jpeg/jctrans.c 1.1, jpeg/makelib.ds 1.1, jpeg/rdbmp.c 1.1, jpeg/rdgif.c 1.1, jpeg/jcdctmgr.c 1.1, jpeg/jdatadst.c 1.1, jpeg/rdppm.c 1.1, jpeg/rdrle.c 1.1, jpeg/rdtarga.c 1.1, jpeg/transupp.c 1.1, jpeg/transupp.h 1.1, jpeg/djpeg.1 1.1, jpeg/djpeg.c 1.1, jpeg/install.doc 1.1, jpeg/jdatasrc.c 1.1, jpeg/ansi2knr.1 1.1, jpeg/ansi2knr.c 1.1, jpeg/jcmarker.c 1.1, jpeg/jdcolor.c 1.1, jpeg/makefile.bcc 1.1, jpeg/makefile.cfg 1.1, jpeg/usage.doc 1.1, jpeg/jcmaster.c 1.1, jpeg/makefile.mc6 1.1, jpeg/makefile.mms 1.1, jpeg/makefile.sas 1.1, jpeg/makefile.vms 1.1, jpeg/makefile.wat 1.1, jpeg/README 1.1, jpeg/makeapps.ds 1.1, jpeg/configure 1.1, jpeg/filelist.doc 1.1, jpeg/jcomapi.c 1.1, jpeg/ltmain.sh 1.1, jpeg/jconfig.manx 1.1, jpeg/jcparam.c 1.1, jpeg/jdsample.c 1.1, jpeg/jerror.c 1.1, jpeg/jerror.h 1.1, jpeg/jmorecfg.h 1.1, jpeg/makcjpeg.st 1.1, jpeg/wrjpgcom.1 1.1, jpeg/wrjpgcom.c 1.1, jpeg/jcprepct.c 1.1, jpeg/libjpeg.doc 1.1, jpeg/config.guess 1.1, jpeg/config.sub 1.1, jpeg/install-sh 1.1, jpeg/jcphuff.c 1.1, jpeg/jinclude.h 1.1, jpeg/testimgp.jpg 1.1, jpeg/wrtarga.c 1.1, jpeg/ltconfig 1.1, jpeg/structure.doc 1.1, jpeg/jdmerge.c 1.1, jpeg/jmemdosa.asm 1.1, jpeg/jquant1.c 1.1, jpeg/jquant2.c 1.1, jpeg/testprog.jpg 1.1, jpeg/cderror.h 1.1, jpeg/jccolor.c 1.1, jpeg/jdct.h 1.1, jpeg/jidctflt.c 1.1, jpeg/jidctfst.c 1.1, jpeg/jidctint.c 1.1, jpeg/jidctred.c 1.1, jpeg/jmemansi.c 1.1, jpeg/maktjpeg.st 1.1, jpeg/makvms.opt 1.1, jpeg/rdswitch.c 1.1, jpeg/jdcoefct.c 1.1, jpeg/jdmainct.c 1.1, jpeg/jpegint.h 1.1, jpeg/makeproj.mac 1.1, jpeg/jdapimin.c 1.1, jpeg/jdapistd.c 1.1, jpeg/jddctmgr.c 1.1, jpeg/jdpostct.c 1.1, jpeg/jdtrans.c 1.1, jpeg/jpeglib.h 1.1, jpeg/jutils.c 1.1, jpeg/makljpeg.st 1.1, jpeg/testorig.jpg 1.1, jpeg/jconfig.bcc 1.1, jpeg/jconfig.cfg 1.1, jpeg/jdmarker.c 1.1, jpeg/jdmaster.c 1.1, jpeg/jmemname.c 1.1, jpeg/jmemnobs.c 1.1, jpeg/jversion.h 1.1, jpeg/wizard.doc 1.1, jpeg/jconfig.doc 1.1, jpeg/jconfig.mac 1.1, jpeg/jconfig.mc6 1.1, jpeg/jconfig.sas 1.1, jpeg/jconfig.vms 1.1, jpeg/jconfig.wat 1.1, jpeg/jcsample.c 1.1, jpeg/jfdctflt.c 1.1, jpeg/jfdctfst.c 1.1, jpeg/jmemdos.c 1.1, jpeg/jpegtran.1 1.1, jpeg/jpegtran.c 1.1, jpeg/rdcolmap.c 1.1, jpeg/change.log 1.1, jpeg/jfdctint.c 1.1, jpeg/jmemmac.c 1.1, jpeg/jmemmgr.c 1.1, jpeg/jmemsys.h 1.1, jpeg/makefile.dj 1.1, jpeg/makefile.vc 1.1, jpeg/cdjpeg.c 1.1, jpeg/cdjpeg.h 1.1, jpeg/jchuff.c 1.1, jpeg/jchuff.h 1.1, jpeg/jcinit.c 1.1, jpeg/makdjpeg.st 1.1, jpeg/makefile.ansi 1.1, jpeg/makefile.manx 1.1, jpeg/makefile.unix 1.1, jpeg/cjpeg.1 1.1, jpeg/cjpeg.c 1.1, jpeg/ckconfig.c 1.1, jpeg/jdphuff.c 1.1, jpeg/wrbmp.c 1.1, jpeg/wrgif.c 1.1, jpeg/jdhuff.c 1.1, jpeg/jdhuff.h 1.1]
Correct typo.[man/ps2ascii.1 1.34]
2005-04-21 10:11 Igor Melichev
Speed up shadings : a minor optimization for the color monotonity check. DETAILS : Bug 687948 "Performance of shading fill much worse than 8.00" (a 8th partial fix). The color monotonity has been cached, but was not taken from the cache. It caused extra calls to is_monotonic. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.99]
2005-04-21 09:28 Igor Melichev
Speed up shadings : fixed a crash with unlinear color devices. DETAILS : Bug 688050 "C stack overflow with 464-01-fixed.ps (pbmraw/72dpi/noband)". Bug 687948 "Performance of shading fill much worse than 8.00" (a 7th partial fix). The C stack overflow happened due to quadrangle_color_change didn"t account the quadrangle size, causing an infinite subdivision in case of a non-contiguous color function. This happened with unlinear color devices only, because otherwise the quadrangle was mapped to a linear color fill device function, which doesn"t perform a subdivision by color. 1. Passed the quadrangle size information to quadrangle_color_change. 2. Used it with unlinear color devices. 3. Trying to use it with a linear color device doesn`t give a speed up. Disabling this branch but saving it for historical purpose. 4. Inserted a check against the C stack overflow to simplify the debugging and the diagnostics. EXPECTED DIFFERENCES : 1. Fixes a crash with pkmraw, pbmraw 446-01-fixed.ps. 2. Minor differences in rasters with pkmraw, pbmraw @ 72 dpi : "446-01-fixed.ps" "464-01-fixed.ps" "483-05-fixed.ps" "BEST8-99-Path.fh7.pdf" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf" 3. Minor differences in rasters with pkmraw, pbmraw @ 300 dpi : "446-01-fixed.ps" "464-01-fixed.ps" "483-05-fixed.ps" "Altona_Visual_sb_1v1_x3.pdf" "BEST8-99-Path.fh7.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai"[src/gxshade6.c 1.98]
Use the OrigFontName from an embedded font's FOntInfo dictionary since this is where Windows PostScript dirver puts the real font name when embedding fonts. Bug 688006 for customer 32.[src/zbfont.c 1.29]
2005-04-20 08:44 Igor Melichev
Speed up shadings with optimizing fn_Sd_is_monotonic. DETAILS : This change is a fifth partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". Implemented a new function fn_Sd_1arg_linear_monotonic, which optimizes fn_Sd_is_monotonic in the case of 1-argument linear sampled function. It doesn't use the pole cache and the tensor-based algorithm, saving significant time from the cache allocation, which otherwise happens once per shfill. We would like to optimise 1-argument cubic sampled function. For now delaying it due to the absence of practical cases which need a high performance. Minor change : Renamed fn_is_monotonic into fn_Sd_is_monotonic_aux. EXPECTED DIFFERENCES : None.[src/gsfunc0.c 1.26]
Prevent out of range ImageType 4 mask array entries from causing an error as Adobe Acrobat Reader does. Bug 687611 for customer 870. DETAILS: When the Mask array values are beyond the max allowed by the BitsPerComponent, a rangecheck error must be generated by PostScript, but Adobe Acrobat Reader ignores the Mask in this case and effectively treats the image as ImageType 1. This patch generates a pdfformaterror Warning when the problem is seen.[lib/pdf_draw.ps 1.92]
2005-04-19 21:22 Stefan Kemper
Added dependancies for gdevpdfj.c[src/devs.mak 1.130]
2005-04-19 14:35 Igor Melichev
Speed up shadings with removing fn_domain_is_monotonic. DETAILS : 1. The function fn_domain_is_monotonic was called when creating any sampled function object, and its result was not used. Actually it is a rudiment from the !NEW_SHADINGS code. This change is a fourth partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". 2. In gxshade1.c removed few rudiments of the !NEW_SHADINGS code. EXPECTED DIFFERENCES : None.[src/gsfunc.c 1.12, src/gsfunc.h 1.13, src/gsfunc0.c 1.25, src/gsfunc3.c 1.25, src/gsfunc4.c 1.18, src/gxfunc.h 1.10, src/gxshade1.c 1.40]
2005-04-19 12:22 Igor Melichev
Removing the !NEW_SHADINGS branch. DETAILS : This change is algorithmically equivalent. 1. Removed the obsolete code NEW_SHADINGS 0 and NEW_RADIAL_SHADINGS 0, which was disabled a long ago. 2. Removed stacks and few other unused fields from Fb_fill_state_s, A_fill_state_s, R_fill_state_s. EXPECTED DIFFERENCES : None.[src/gsshade.c 1.17, src/gxshade1.c 1.39, src/gxshade4.c 1.30, src/gxshade4.h 1.41, src/gxshade6.c 1.97]
2005-04-19 09:48 Igor Melichev
Faster shadings with dividing some quadrangles into 2 triangles. DETAILS : It's a third partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". When a quadrangle color doesn't depend on one axis, subdivide the quadrangle into 2 triangles. The old code did into 4 triangles. 1. Renamed 'triangles' into 'triangles4'. 2. Added 'triangles2'. 3. Added 'color_change_bilinear'. EXPECTED DIFFERENCES : "442-01.ps" "446-01-fixed.ps" "464-01-fixed.ps" "483-01.ps" "483-05-fixed.ps" "Altona-Testsuite_p2_S_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "BEST8-99-Path.fh7.pdf" "Bug687840.pdf" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "S2_Digitalproof-Forum_x3k.pdf" "self-intersect2.ps" "shading_prob_800.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"[src/gxshade6.c 1.96]
2005-04-19 08:36 Igor Melichev
Faster shadings with setting a stronger clipping box. DETAILS : It's another partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". The old code computed a shading clipping box as an transform of the shading BBox to device coordinates. However with a rotation matrix it significantly expanded the box, so that more shading parts appear inside the paint region. The new code sets clipping box equal to the bbox of the clipping path, so that the rasterization covers a smaller part of the shading, and the shading becomes faster. SHADING_FILL_RECTANGLE_PROC changes the prototype. The new prototype adds a clipping rectangle in device coordinates, which provides a stronger clipping of the paint region. Probably we could drop the old argument "prect", but leaving it untill the NEW_SHADINGS cleanup. EXPECTED DIFFERENCES : None.[src/gsshade.c 1.16, src/gsshade.h 1.9, src/gxshade1.c 1.38, src/gxshade4.c 1.29, src/gxshade4.h 1.40, src/gxshade6.c 1.95]
2005-04-19 07:27 Igor Melichev
Faster shadings with a better function monotonity check. DETAILS : It's a partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". If an axial or radial shading use a sampled function with many samples, the shading speeds up in 1.2 - 2.5 times. 1. The old code returned an unknown monotonity when the interval covers several cells of a sampled function. The new code summarizes the monotonity through multiple cells. Rather shadings need 1- and 2-dimensional functions only, we developed an N-dimensional algorithm for a future use with color spaces and color renderings. 1.1. Generalized the function sample cache to linear functions (the old code cached cubic ones only). 1.2. Made the branch POLE_CACHE to be permanent. 1.3. The new function is_lattice_monotonic summarizes the monotonity through multiple cells. 1.4. The virtual function is_monotonic now returns a mask about a monotonity by each coordinate. 2. The shading decomposition is adopted to the new monotonity check. 2.1. When decomposing a patch into stripes, the color monotonity doesn't matter, because further decomposition accounts it. 2.2. When decomposing a quadrangle, the decomposition axis is being chosen according to the function monotonity along each axis. 3. In the shading decomposition, cached the monotonity separately from the linearity with a new flag linear_color. EXPECTED DIFFERENCES : A minor difference in shading color with all devices and resolutions : "442-01.ps" "446-01-fixed.ps" "464-01-fixed.ps" "478-01.ps" "483-01.ps" "483-05-fixed.ps" "Altona-Testsuite_p2_S_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "Bug687840.pdf" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "Openhuis_pdf_zw.pdf" "S2_Digitalproof-Forum_x3k.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai"[src/gsfunc.c 1.11, src/gsfunc.h 1.12, src/gsfunc0.c 1.24, src/gsfunc0.h 1.7, src/gsfunc3.c 1.24, src/gsfunc4.c 1.17, src/gxshade1.c 1.37, src/gxshade4.h 1.39, src/gxshade6.c 1.94]
Bump the version numbers post-release.[doc/News.htm 1.164, lib/gs_init.ps 1.119, src/gscdef.c 1.54, src/version.mak 1.83]
2005-04-19 00:29 Stefan Kemper
Fix for bug 687984. Incomplete data stream gets artifical data for both DCTE and now also for PNGPE streams. Note that it would be nice if all streams either handled missing data or didn't.[src/gdevpdfj.c 1.44]
This is the second stable release in the 8.5x series of Ghostscript. It contains numerous bug fixes and improvements, particularly in the area of PDF 1.6 handling.
Also new in this release is an experimental version of the new level 2 Postscript output device, which may be of interest to developers.
The following bug numbers were open at the time of this release:
405501, 430175, 465936, 493348, 530011, 535932, 578865, 592160, 610478, 614298, 626295, 674418, 685335, 686747, 686842, 686853, 686865, 686919, 686996, 687011, 687039, 687063, 687084, 687095, 687108, 687125, 687146, 687168, 687174, 687193, 687196, 687219, 687221, 687229, 687231, 687243, 687257, 687259, 687271, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687327, 687342, 687345, 687346, 687360, 687373, 687375, 687397, 687399, 687414, 687435, 687445, 687460, 687475, 687480, 687484, 687485, 687492, 687498, 687514, 687518, 687520, 687523, 687525, 687529, 687531, 687535, 687536, 687545, 687558, 687559, 687560, 687561, 687583, 687593, 687595, 687608, 687611, 687621, 687622, 687628, 687630, 687633, 687642, 687643, 687644, 687650, 687654, 687657, 687663, 687666, 687669, 687674, 687676, 687677, 687678, 687679, 687680, 687682, 687686, 687694, 687695, 687697, 687702, 687707, 687712, 687715, 687721, 687727, 687728, 687729, 687731, 687775, 687780, 687782, 687783, 687793, 687794, 687795, 687796, 687800, 687801, 687805, 687806, 687808, 687809, 687814, 687822, 687825, 687826, 687837, 687844, 687848, 687850, 687853, 687863, 687866, 687868, 687870, 687871, 687875, 687881, 687883, 687887, 687895, 687896, 687901, 687903, 687904, 687907, 687914, 687915, 687918, 687919, 687922, 687931, 687938, 687946, 687948, 687950, 687957, 687960, 687970, 687973, 687974, 687975, 687977, 687978, 687980, 687981, 687983, 687984, 687986, 687989, 687992, 687993, 687994, 687995, 687996, 688000, 688003, 688005, 688006, 688007, 688009, 688010, 688013, 688017, 688020, 688022, 688023, 688024, 688026, 688028, 688032, 688035, 688036, 688037, 688038, 688039, 688040.
There are no known incompatible changes at this point.
Update final release date.[doc/API.htm 1.50, doc/Bug-form.htm 1.46, doc/Bug-info.htm 1.46, doc/C-style.htm 1.52, doc/Commprod.htm 1.38, doc/Copying.htm 1.36, doc/DLL.htm 1.40, doc/Deprecated.htm 1.17, doc/Details8.htm 1.19, doc/Develop.htm 1.146, doc/Devices.htm 1.87, doc/Drivers.htm 1.55, doc/Fonts.htm 1.48, doc/Helpers.htm 1.41, doc/History1.htm 1.36, doc/History2.htm 1.36, doc/History3.htm 1.36, doc/History4.htm 1.36, doc/History5.htm 1.38, doc/History6.htm 1.53, doc/History7.htm 1.41, doc/History8.htm 1.24, doc/Htmstyle.htm 1.41, doc/Install.htm 1.52, doc/Issues.htm 1.49, doc/Language.htm 1.92, doc/Lib.htm 1.40, doc/Maintain.htm 1.47, doc/Make.htm 1.87, doc/News.htm 1.163, doc/Projects.htm 1.64, doc/Ps-style.htm 1.34, doc/Ps2epsi.htm 1.39, doc/Ps2pdf.htm 1.79, doc/Psfiles.htm 1.62, doc/Readme.htm 1.67, doc/Release.htm 1.92, doc/Source.htm 1.36, doc/Testing.htm 1.34, doc/Unix-lpr.htm 1.36, doc/Use.htm 1.132, doc/Xfonts.htm 1.36, doc/gs-vms.hlp 1.34, man/dvipdf.1 1.34, man/font2c.1 1.34, man/gs.1 1.35, man/gslp.1 1.34, man/gsnd.1 1.34, man/pdf2dsc.1 1.33, man/pdf2ps.1 1.35, man/pdfopt.1 1.33, man/pf2afm.1 1.34, man/pfbtopfa.1 1.35, man/printafm.1 1.34, man/ps2ascii.1 1.33, man/ps2epsi.1 1.32, man/ps2pdf.1 1.39, man/ps2pdfwr.1 1.38, man/ps2ps.1 1.41, man/wftopfa.1 1.34, src/version.mak 1.82]
2005-04-15 06:13 Igor Melichev
Psfiles.htm : Documanting a recently addad lib file. DETAILS : Fixes a Apr 11 05:15:10 PDT 2005 regression (which actually appeared some time ago). EXPECTED DIFFERENCES : None.[doc/Psfiles.htm 1.61]
Fix: use identity matrix (rather than scaling by font matrix) to prepare parameters for CDevProc procedure in pdfwrite code path. Fixes bug #688033. DETAILS The problem in the 688033 test file was that the CDevProc procedure for the font was getting called with values that were already scaled down by .001, even though the PLRM3 says "all of the numeric values are expressed in the glyph coordinate system of the font." (5.9.2, p. 350) My proposed fix is to pass in the identity matrix, instead of the font matrix, to the gs_default_glyph_info procedure. This patch was tested with both the 688033 test file and the test file from 687681, which was the bug that motivated the changes to pdfwrite CDevProc handling. The patched code also passed a full local regression.[src/zchar1.c 1.44]
Add additional files to the Windows source distribution.[doc/Release.htm 1.91]
Fix a SEGV when ImageType 4 has MaskColor values outside the range. Detected with the PDF file from bug 687611 for customer 870. DETAILS: The rangecheck error was being thrown with the gx_image_enum allocated but with many pointers not initialized so the SEGV happened when the garbage collector tried to enumerate the image_enum. The fix is simple and low-risk -- free the penum before returning the rangecheck error.[src/gximage4.c 1.6]
Update changelogs for the 8.51 release.[doc/Changes.htm 1.57, doc/Details.htm 1.16, doc/Details8.htm 1.18, doc/History8.htm 1.23, doc/News.htm 1.162]
Remove a spurious blockquote.[doc/News.htm 1.161]
Propagate release date changes to the other documentation files.[doc/API.htm 1.49, doc/Bug-form.htm 1.45, doc/Bug-info.htm 1.45, doc/C-style.htm 1.51, doc/Commprod.htm 1.37, doc/Copying.htm 1.35, doc/DLL.htm 1.39, doc/Deprecated.htm 1.16, doc/Details8.htm 1.17, doc/Develop.htm 1.145, doc/Devices.htm 1.86, doc/Drivers.htm 1.54, doc/Fonts.htm 1.47, doc/Helpers.htm 1.40, doc/History1.htm 1.35, doc/History2.htm 1.35, doc/History3.htm 1.35, doc/History4.htm 1.35, doc/History5.htm 1.37, doc/History6.htm 1.52, doc/History7.htm 1.40, doc/History8.htm 1.22, doc/Htmstyle.htm 1.40, doc/Install.htm 1.51, doc/Issues.htm 1.48, doc/Language.htm 1.91, doc/Lib.htm 1.39, doc/Maintain.htm 1.46, doc/Make.htm 1.86, doc/Projects.htm 1.63, doc/Ps-style.htm 1.33, doc/Ps2epsi.htm 1.38, doc/Ps2pdf.htm 1.78, doc/Psfiles.htm 1.60, doc/Readme.htm 1.66, doc/Release.htm 1.90, doc/Source.htm 1.35, doc/Testing.htm 1.33, doc/Unix-lpr.htm 1.35, doc/Use.htm 1.131, doc/Xfonts.htm 1.35, doc/gs-vms.hlp 1.33, man/dvipdf.1 1.33, man/font2c.1 1.33, man/gs.1 1.34, man/gslp.1 1.33, man/gsnd.1 1.33, man/pdf2dsc.1 1.32, man/pdf2ps.1 1.34, man/pdfopt.1 1.32, man/pf2afm.1 1.33, man/pfbtopfa.1 1.34, man/printafm.1 1.33, man/ps2ascii.1 1.32, man/ps2epsi.1 1.31, man/ps2pdf.1 1.38, man/ps2pdfwr.1 1.37, man/ps2ps.1 1.40, man/wftopfa.1 1.33]
Update copyright dates and release notes for 8.15.[doc/News.htm 1.160, src/dwsetup.rc 1.14, src/gscdef.c 1.53, src/version.mak 1.81, src/winint.mak 1.26]
Fix for SEGV when PreserveHalftoneInfo=true is given as a pdfwrite option. Bug 688018. DETAILS: The initial problem was that the num_comp was not being looked at when HalftoneType 5 was written and if num_comp was 3, the 4th element of ht_ids[] was being used (UMR-wise). The solution to this was to only write the three halftones and to use the 'Green' halftone (arbitrarily) for Default. After fixing the SEGV, another problem surfaced because the object dictionary was not being terminated with the ">>". Since I suspected that the threshold_halftone writers were also broken I tested with 258-01.ps and found more problems. This code was also quite broken. Since the Threshold array is the stream data for HalftoneType 6 and 16, I changed this a lot to emit valid PDF. EXPECTED DIFFERENCES: None, since we don't set PreserveHalftoneInfo.[src/gdevpdfg.c 1.61]
Make the OS/2 device list almost match that of Windows, with the only differences being IJS and the Windows or OS/2 specific devices.[src/os2.mak 1.45]
Fix for 688019 /configurationerror in --setpagedevice--. The PDF interpreter was incorrectly determining the size of the page. DETAILS: The test file specifies the following media box: /MediaBox [ 0 1080 1620 0 ] The PDF 1.6 specification says the following about media box rectangles: "3.8.4 Rectangles Rectangles are used to describe locations on a page and bounding boxes for a variety of objects, such as fonts. A rectangle is written as an array of four numbers giving the coordinates of a pair of diagonally opposite corners. Typically, the array takes the form [llx lly urx ury] specifying the lower-left x, lower-left y, upper-right x, and upper-right coordinates of the rectangle, in that order. The other two corners of the rectangle are then assumed to have coordinates (llx, ury) and (urx, lly). Note: Although rectangles are conventionally specified by their lower-left and upperright corners, it is acceptable to specify any two diagonally opposite corners. Applications that process PDF should be prepared to normalize such rectangles in situations where specific corners are required." The PDF interpreter was assuming that the MediaBox and the CropBox were in the 'typical' form. This fix consists of creating a pair of procedures for converting rectangles into the typical form and then using the procedures.[lib/pdf_main.ps 1.96]
Removed some extra cntl-M at the end of lines. These caused problems with the Borland compiler.[src/gdevtfax.c 1.10]
2005-04-07 09:12 Igor Melichev
Fix : An MSVC8 warning. DETAILS : MSVC claims an implicit type case introduced by the last patch. EXPECTED DIFFERENCES : None.[src/gdevdjet.c 1.13]
2005-04-07 08:44 Igor Melichev
Drivers.htm : Improving the documentation about linear color device virtual functions. DETAILS : Bug 688016 "Color(s) that define a gradient fill". EXPECTED DIFFERENCES : None.[doc/Drivers.htm 1.53]
Conveys input tray selection info (/ManualFeed and /MediaPosition) setpagedevice requests to PCL devices. Fixes bug #687899. DETAILS 1. The behavior of MediaPosition is changed significantly. Previously, it was ignored (i.e. omitted altogether from setpd merging). Just adding it to setpd merging would not be good - if set at the PS level, then it would get checked for equality at the C level (by zmatchmedia), and fail horribly if it didn't match. In accordance with the PLRM3 text (it will be honored provided it can satisfy the normal media matching), in the new version a mismatch simply adds a .001 penalty to the matching score. 2. The ljet4 device now contains ManualFeed and MediaPosition fields, with appropriate putparams logic to set them. 3. The MediaPosition and ManualFeed strings now create an ESC & l H init string, according to the following logic. ManualFeed sends ESC & l 2 H; if ManualFeed is false (or not set), then MediaPosition 0 sends ESC & l 5 H, and MediaPosition1 sends ESC & l 1 H. If none of these are set, then no extra init string is generated. Obviously, for this feature to be useful, there needs to be an InputAttributes dictionary in effect, for which the PageSize of positions 0 and 1 match the PageSize of the setpagedevice request. [Actually, if only ManualFeed is desired, then there is no need to fiddle with InputAttributes]. I think these changes bring our media selection more in line with what Adobe intended, and could be useful for embedded PS projects as well. I believe the risk of unwanted changes is small, but considering the delicacy of the setpagedevice logic, review and testing is warranted.[lib/gs_setpd.ps 1.26, src/gdevdjet.c 1.12, src/zmedia2.c 1.18]
Disable non-fatal jbig2 debug messages unless JBIG2_DEBUG is defined in the C preprocessor. Previously, all messages were reported in the general gs debug build, which was distracting. Also, initialize the global context pointer to NULL. This isn't necessary in the standard call order, but is extra insurance against an improper free.[src/sjbig2.c 1.6]
2005-04-05 16:17 Igor Melichev
ps2write : Fix problems with encodings. DETAILS : 1. Since we don't want to include numerous encodings in the output, opdfread.ps needs Differences to be computed against StandardEncoding. gdevpdtw.c is changed to provide a compatibility. 2. Fixed a bug in opdfread.ps when invresing an encoding in which a glyph name appears multiple times. Debugged with comparefiles\01_001.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.62, src/gdevpdtw.c 1.42]
2005-04-05 15:44 Igor Melichev
pdfwrite : Implementing a viewer's resource memory control, part 3. DETAILS : Fixed a memory management problem in pdfwrite : a reference to a freed object happened due to font descriptor components are not explicitely released. Debugged with ps2write comparefiles\01_001.pdf . This patch provides a minimal change against that, rather there are other components, which would be useful to release explicitly. EXPECTED DIFFERENCES : None.[src/devs.mak 1.129, src/gdevpdfu.c 1.76, src/gdevpdtd.c 1.22, src/gdevpdtd.h 1.5, src/gdevpdtw.c 1.41]
2005-04-05 11:29 Igor Melichev
ps2write : Implementing a viewer's resource memory control, part 2. DETAILS : 1. opdfread.ps : Defined the new procedure CleanAllResources and called it after each page, which defines /.ClearResources /All. Currently it cleans all objects and all non-standard fonts. Daemons, if they are stored in the Registry, are not cleaned. (BTW, daemons may contain a reference to an object, but we believe that currently unresolved daemons never appear in Registry when ClearAllResources is being called). 2. ps2write.bat : Updated to involve the resource memory control. See the log message of the previous patch for more information. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.61, lib/ps2write.bat 1.12]
2005-04-05 09:48 Igor Melichev
pdfwrite : Implementing a viewer's resource memory control, part 1. DETAILS : This patch implements a primitive viewer's resource memory control. A new device parameter MaxViewerMemorySize specifies the number of bytes available for storing resources in the viewer's memory. This parameter defined almost for future extensions. Currently we distinguish two cases only : if the parameter is greater than 10000000 bytes, no resource control is being applied, i.e. pdfwrite assumes that the viewer can store all resources of entire document. Othervise pdfwrite assumes that the viewer can store resources of a single page. In the second case pdfwrite cleans internal resource caches after each page, so that any new resource usage will generate another resource instance in the output PDF file. To inform the viewer that the resources may be cleaned, we add a new key to a page contents stream dictionary. This is our extension to the PDF specification in order to control the resource management in the viewer. The new key name is /.CleanResources. Currently we provide only the value /All. It means that resources may be cleaned *after* ending the contents stream. In future on necessity we can split a page contents stream into substreams and provide a finer control by resource types with providing more values for the key /.CleanResources. When the viewer is informed with allowing to clean resources, it is not obliged to do so. Further resource appearences simply replace old ones, if they have same resource name. Actually now this happens only with font and CID font resources. Other resource instances may persist in the viewer's memory until the viewer's garbager frees them when they are not referred from resource tree dictionaries. The resource control is mainly intended for ps2write. An implementation of the viewer's side (in opdfread.ps) will be a separate patch. Note that when a resource control is being applied, the output document size may increase significantly. Currently we don't add MaxViewerMemorySize to user's documentation, because it depends on another undocumenmted parameter ForOPDFRead through the ResourcesBeforeUsage flag. First we need to take a decision whether ps2write will become a new Ghostscript device or it stays a tool represented with a script. The latter gives more flexibility to users about composing the header procsets of the generated Postscript document. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.109, src/gdevpdfp.c 1.48, src/gdevpdfu.c 1.75, src/gdevpdfx.h 1.115, src/gdevpdtf.c 1.44, src/gdevpdtf.h 1.28, src/gdevpdti.c 1.43, src/gdevpdtt.c 1.102, src/gdevpdtw.c 1.40]
2005-04-04 23:00 Igor Melichev
Fix : LZWEncode filtyer template didn't provide a set_defaults method. DETAILS : A problem happens when converting comparefiles\PT.ps with ps2write : an encoded stream could not decode. The reason is that pdf_flate_binary did not set defaults to LZWE template. 1. Provided a set_defaults method (fixes pdf_flate_binary). 2. Used it instead an old hack in gdevpsdi.c (a minor improvement). EXPECTED DIFFERENCES : None.[src/gdevpsdi.c 1.41, src/slzwe.c 1.4]
2005-04-04 20:33 Igor Melichev
pdfwrite : Improve the font handling options. DETAILS : 1. Made the ps2write code be permanent with removing the configuration switch PS2WRITE. 2. Renamed OrderResources into ForOPDFRead for a better reflection of its semantics. 3. Defined new flags for a better code readability : ResourcesBeforeUsage HavePDFWidths HaveStrokeColor HaveCFF They are set when ForOPDFRead is true and used to control particular features. EXPECTED DIFFERENCES : None.[lib/ps2write.bat 1.11]
2005-04-04 20:28 Igor Melichev
pdfwrite : Improve the font handling options. DETAILS : 1. Made the ps2write code be permanent with removing the configuration switch PS2WRITE. 2. Renamed OrderResources into ForOPDFRead for a better reflection of its semantics. 3. Defined new flags for a better code readability : ResourcesBeforeUsage HavePDFWidths HaveStrokeColor HaveCFF They are set when ForOPDFRead is true and used to control particular features. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.108, src/gdevpdfb.c 1.28, src/gdevpdfd.c 1.59, src/gdevpdfg.h 1.41, src/gdevpdfj.c 1.43, src/gdevpdfp.c 1.47, src/gdevpdfu.c 1.74, src/gdevpdfx.h 1.114, src/gdevpdtb.c 1.35, src/gdevpdtt.c 1.101, src/gdevpdtw.c 1.39, src/gdevpsdf.h 1.32, src/gsshade.c 1.15, src/gx.h 1.44, src/gxdevcli.h 1.37, src/gxshade6.c 1.93]
2005-04-04 16:20 Igor Melichev
ps2write : Improve the font handling options. DETAILS : 1. The option HaveCIDSystem is propagated from ps2write to pdfwrite. It is still not implemented. 2. The option HaveTrueTypes is added for controlling the availability of TrueTypes. 3. The option PSVersion is removed due to low usefullness after (2). EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm 1.77, src/gdevpdfp.c 1.46, src/gdevpdtt.c 1.100, src/gdevpsdf.h 1.31]
2005-04-04 14:38 Igor Melichev
pdfwrite : When generating a PDF 1.2, convert PSLL3 images and shadings into PSLL2 images DETAILS : This change propagates recent code from ps2write to pdfwrite. The old code converts PSLL3 images and shadings into lots of rectangles. The new code does into an imagemask with a pattern color (when PatternImagemask == true), or into a clipped image (when PatternImagemask == false, default). Note that the latter misses the mask interpolation. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm 1.76, src/gdevpdfd.c 1.58, src/gdevpdfi.c 1.70, src/gdevpdfj.c 1.42]
2005-04-04 11:53 Igor Melichev
ps2write : Convert shadings into a clipped image (continued 7). DETAILS : 1. Check for empty bbox before pdf_setup_masked_image_converter, because memory devices with empty bbox fail. 2. Create a copy of a path_intersection before scaling it, because it may be shared. 3. Fixed the client name gdev_pdf_fill_path when calling some path functions. Debugged with 478-01.ps . EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.57]
2005-04-04 10:42 Igor Melichev
pdfwrite : Don't use Indexed with a spacial base color space generating a PDF 1.2. DETAILS : 1. Indexed over a special base color space is a PDF 1.3 feature. 2. Improving the last patch comparing CompatibilityLevel with 1.3 for making such checks more uniform through code. EXPECTED DIFFERENCES : None.[src/gdevpdfc.c 1.52, src/gdevpdfu.c 1.73]
2005-04-04 10:14 Igor Melichev
pdfwrite : Don't use FlateDecode generating a PDF 1.2. DETAILS : FlateDecode is a PDF 1.3 feature. The change is important for ps2write. EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.72]
2005-04-04 10:11 Igor Melichev
ps2write : Improving a debug printing. DETAILS : 1. The errorhandler should print -mark- to simplify the analysis. 2. Removing an unintended 'pstack' that caused HP LaserJet 1320 to discontinue the interpretation. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.60]
2005-04-04 09:32 Igor Melichev
ps2write : Convert shadings into a clipped image (continued 6). DETAILS : Fixed a unitialized variable. Debugged with 468-01-fixed.ps . EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.56]
2005-04-04 08:53 Igor Melichev
ps2write : Dropping the code !PDFW_DELAYED_STREAMS. DETAILS : PDFW_DELAYED_STREAMS now becomes a permanent feature. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.107, src/gdevpdfu.c 1.71, src/gdevpdtb.c 1.34, src/gdevpdtd.c 1.21, src/gdevpdtf.c 1.43, src/gdevpdti.c 1.42, src/gdevpdtw.c 1.38, src/gdevpdfx.h 1.113, src/gdevpdtb.h 1.11, src/gdevpdtw.h 1.6]
2005-04-03 18:33 Igor Melichev
ps2write : Convert shadings into a clipped image (continued 5). DETAILS : 1. Fixed the problem with <</PatternImagemask false /MaxClipPathSize 12000 /MaxShadingBitmapSize 100000000>>, which was mentioned in the last log message. The shading and masked image conversion now looks complete. 2. Fixed a minor problem with 'const'. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.55]
Fixed null pointer access in pdfwrite. pdf_put_uncolored_pattern() sets pres to null when it selects a solid color. It's clients must check for this null as it indicates a done writing the pattern state.[src/gdevpdfg.c 1.60]
2005-03-31 20:46 Igor Melichev
ps2write : Convert shadings into a clipped image (continued 4). DETAILS : Implement a downsampling when converting a shading into bitmap. 1. A new device parameter MaxShadingBitmapSize controls the downsampling. Shadings, which give a (uncompressed) bitmap over the specified size, will be scaled down. 2. The scaling algorithm goes to gdevpdfd.c . It appears pretty tricky because we need to setup a device with a smaller resolution than the target device. Due to that we need to scale paths and colors, which are represented in the device space. The function scale_path works for it. 3. The scaling creates a local copy of a device color (which handles the shading) and scales the color. Since we can't access further spatial transformations of the color, we apply some unusual operation : multiply matrices in the reverse order than usual 'concat' does. This makes some useful equations to be soluble due to the offset is being scaled as well. 4. A code portion was copied from gx_default_fill_path (see comment in code). We're unhappy about uncomfortable code structurization. 5. path_scale is implemented with floating point for a debug purpose, but in production we use only integers being a power of 2. 6. There is a problem with <</PatternImagemask false /MaxClipPathSize 12000 /MaxShadingBitmapSize 100000000>> The problem happens when dividing the scaled bitmap in smaller ones due to clip path overflow. This mode to be debugged separately. For now set either smaller bitmap size of bigger clip path size. Default settings work fine for most cases. EXPECTED DIFFERENCES : None.[src/devs.mak 1.128, src/gdevpdf.c 1.106, src/gdevpdfd.c 1.54, src/gdevpdfp.c 1.45, src/gdevpdfx.h 1.112, src/spprint.c 1.7]
Fix for 688011 Segment fault with -r150 and the mswindll device. DETAILS: The routine gx_image_cached_char creates a mono bit memory device with the memory structure pointer set to 0. It then passes this device to win_render_char which seg faults when it tries to allocate memory for a bit map. The fix consists of using the parent device's memory structure for the mono bit memory device.[src/gxccache.c 1.33]
Fix bug where raster lookups failed on new files causing the regression tool to stop. Also, skip processing for files without previous rasters to compare.[toolbin/tests/gscheck_pdfwrite.py 1.25, toolbin/tests/gscheck_raster.py 1.15]
Add a discussion of the libjpeg6b component id issue to Issues.htm, pointing people to a patch. Resolves bug #686980.[doc/Issues.htm 1.47]
2005-03-30 14:06 Igor Melichev
ps2write : Convert type 3,4 image into a clipped image (continued 3). DETAILS : Apply loseless filters for images smaller than 500 Kbytes (Useful for images like 468-01-fixed.ps). We would like to apply the compression chooser. Dalaying it until users request so. EXPECTED DIFFERENCES : None.[src/gdevpdfb.c 1.27]
2005-03-30 13:43 Igor Melichev
ps2write : Convert type 3,4 image into a clipped image (continued 2). DETAILS : 1. Optimisation: Merge equal lines while converting a mask into clip path. 2. Bug : When the mask has a bigger resolution, scale up the data image and the mask to allow the mask to rasterize in the natural resolution (debugged with 468-01-fixed.ps). EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.53, src/gdevpdfi.c 1.69]
2005-03-30 12:48 Igor Melichev
ps2write : Convert type 3,4 image into a clipped image (continued). DETAILS : 1. Improved the prototype of pdf_setup_masked_image_converter. 2. Renamed 'autorelease' into 'write_on_close' for a better reflection of its meaning. 3. Renamed gx_device_pdf::image_mask_matrix into gx_device_pdf::converting_image_matrix. 3. Type 3 images now convert with no scaling to the device space (int pdf_begin_typed_image). The mask image of the typoe 3 image is scaled to the size of the data image. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.52, src/gdevpdfi.c 1.68, src/gdevpdfx.h 1.111]
2005-03-29 21:33 Igor Melichev
ps2write : Convert type 4 image into a clipped image. DETAILS : Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color, now we implement an alternative method for type 4 imege representation. The method creates a clipping path and an image rendered with it. See http://ghostscript.com/pipermail/gs-cvs/2005-March/005356.html for additional details. 1. Fixed a typoe in lcvd_get_clipping_box_from_tadget. The new correct name is lcvd_get_clipping_box_from_target. 2. Fixed choices of allocators in pdf_setup_masked_image_converter. 3. pdf_image_cvd_enum_procs, pdf_image_end_image_cvd work for cleaning up temporary devices after a type 4 image has been processed with pdf_setup_masked_image_converter. 4. Added a branch into pdf_begin_typed_image to work with pdf_setup_masked_image_converter when pdev->OrderResources && !pdev->PatternImagemask. We still use OrderResources as a general switch for the ps2write mode. To be improved later. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.51, src/gdevpdfi.c 1.67]
2005-03-29 17:31 Igor Melichev
ps2write : Convert type 3 image into a clipped image. DETAILS : Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color, now we implement an alternative method for type 3 imege representation. The method creates a clipping path and an image rendered with it. See http://ghostscript.com/pipermail/gs-cvs/2005-March/005356.html for additional details. 1. Moved pdf_lcvd_t to the pdfwrite scope gdevpdfx.h . 2. pdf_lcvd_t::mask is being allocated dymacially for a compatibility to gx_image3_end_image. 3. Made a garbager discriptor for pdf_lcvd_t since it is allocated dynamically for a compatibility with gx_image3_end_image. 4. Applied pdf_put_matrix for writing matrices. 5. Renamed dump_image into pdf_dump_converted_image. 6. Replaced gs_point pdf_lcvd_t::p with gs_matrix pdf_lcvd_t::m. 7. Factored out pdf_setup_masked_image_converter and pdf_remove_masked_image_converter. 8. Added branches to pdf_image3_make_mid and pdf_image3_make_mcde to work with pdf_setup_masked_image_converter. EXPECTED DIFFERENCES : None.[src/devs.mak 1.127, src/gdevpdfd.c 1.50, src/gdevpdfi.c 1.66, src/gdevpdfx.h 1.110]
2005-03-29 14:26 Igor Melichev
Fix : Propagate return codes truoug gx_image3_end_image. DETAILS : The change is important for ps2write. We don't consider it to te a part of the ps2write project, because it is generallly useful. EXPECTED DIFFERENCES : None.[src/gximage3.c 1.15]
2005-03-28 14:03 Igor Melichev
ps2write : Convert shadings into a clipped image. DETAILS : Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color, now we implement an alternative method for shadings representation. The method creates a clipping path and an image rendered with it. The new device parameter PatternImagemask specifies whether imagemask with a pattern color is allowed. Now it defaults to false. When false, a conversion to a clipped image happens. The new device parameter MaxClipPathSize specifies a restriction for clip path segments. When a mask converts into a too big clipping path, the image and the mask are being subdivided into smaller chunks. Minor change : Moved the flag OrderResources to gx_device_pdf_s (it had a too general scope). A conversion of Type 3 images into clipped images will be a separate patch. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.105, src/gdevpdfd.c 1.49, src/gdevpdfp.c 1.44, src/gdevpdfx.h 1.109, src/gdevpsdf.h 1.30]
2005-03-25 21:26 Igor Melichev
ps2write : A misprint in option list. EXPECTED DIFFERENCES : None.[lib/ps2write.bat 1.10]
2005-03-25 20:13 Igor Melichev
ps2write : Don't set a pattern space when it is already set (continued 2). DETAILS : The previous patch caused a problem with 3d party interpreters. This patch provides a compatibility to gs3.70 and HP LaserJet 1320. Since we duplicate color commands for stroking and non-stroking colors, a dup of 'setpattern' caused a problem, because it tried to setup a pattern over a pattern. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.59]
2005-03-25 19:31 Igor Melichev
ps2write : Don't set a pattern space when it is already set (continued). DETAILS : The previous patch caused a problem with some files, which set a non-stroke color first. This patch provides a compatibility to gs3.70 . Since we duplicate color commands for stroking and non-stroking colors, a dup of 'setpattern' caused a problem, because it tried to setup a pattern over a pattern. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.58]
2005-03-25 18:00 Igor Melichev
ps2write : Don't set a pattern space when it is already set. DETAILS : This patch provides a compatibility to gs3.70 . Since we duplicate color commands for stroking and non-stroking colors, a dup of 'setpattern' caused a problem, because it tried to setup a pattern over a pattern. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.57]
2005-03-25 17:38 Igor Melichev
ps2write : Implementing the RotatePages and the FitPages options (continued). DETAILS : .HWMargins caused a problem with 3d party interpreters. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.56]
2005-03-25 13:07 Igor Melichev
ps2write : Create contents streams for empty pages. DETAILS : opdfread can't handle pages with no contents due to object ordering. Minor change : propagated return codes from pdf_open_contents in pdf_close_contents. This minor change also affects pdfwrite. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.104, src/gdevpdfu.c 1.70]
2005-03-25 11:13 Igor Melichev
ps2write : Work around HP LaserJet 1320 bugs (continued). DETAILS : A previous patch fails when no filters applied. This one fixes that. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.55]
2005-03-25 10:11 Igor Melichev
ps2write : Improve the handling of encodings. DETAILS : 1. Fixed a bug in GetMacRomanEncodingInverse. 2. Dropped some unused encodings. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.54, lib/ps2write.bat 1.9]
2005-03-25 08:22 Igor Melichev
ps2write : Implementing the RotatePages and the FitPages options. DETAILS : This is a further improvement of the last patch. When RotatePages is defined in the target device, the opdfread procset rotates pages for a better fitting into the page size. When FitPages is defined in the target device, the opdfread procset scales pages for a better fitting into the page size. Note thet if both options are specified, the procset first rotates and then scales a page. No rotations happen if a page fits with no rotation or if a rotation doesn't improve the fitting. Rather the RotatePages option looks similar to the distiller parameter AutoRotatePages, it affects a PS interpreter in the target printer rather than the distiller in the ps2write host. Thge implementation accounts /.HWMargins, which is Ghostscript specific feature. It is useful when the printer embeds Ghostscript. Since now the options may appear either in systemdict, or in userdict, or in globaldict of the printer. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.53]
2005-03-24 21:37 Igor Melichev
ps2write : Implementing the RotatePages option. DETAILS : When RotatePages is defined in the target device, the opdfread procset rotates pages for a better fitting into the page size. Rather the RotatePages option looks similar to the distiller parameter AutoRotatePages, it affects a PS interpreter in the target printer rather than the distiller in the ps2write host. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.52]
2005-03-24 19:34 Igor Melichev
ps2write : Fixing problems with TrueType fonts. DETAILS : 1. The old code tried to position a non-positionable file reading cmap subtables. The new code read cmap subtables in the order of the file. 2. 'sfnts' array got an exctra element 'true' causing 'invalidfont' with 3d party interpreters. 3. Improved the debug printout of a Type 42 font dictionary. The old code printed too big strings causing a problem with CPSI. Debugged with comparefiles\Bug687597.ps and HP LaserJet 1320. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.51]
Fix for 687434, 687835, and 687982. These reports are /vmerror in --eofill-- or --fill--. They are caused by the pattern accumulation device trying to allocate excessively large buffers. DETAILS: The pattern accumulation device allocates an image buffer for holding patterns. The size of the pattern buffer (prior to this fix) is based upon the bounding box specified with the pattern. For the problem files, the pattern bounding boxes are excessively large. The vmerrors are the result. This fix consists of comparing the pattern bounding boxes to the size of the page to be imaged. (All of the files have bounding boxes which are much larger than the page.) We determine which part of the pattern will actually be used and limit the pattern accumulation to the area which is needed. Most of this fix consists of stepping the pattern to check the intersection between the pattern and the page. The major complication in this process is simply due to the arbitrary transform matrix which can be applied between the coordinate space used to define the pattern and the coordinate frame of the output page. This fix significantly reduces the buffer sizes required for these test files. However it is still possible for a pattern buffer to exceed available memory. It is possible to create a solution using some version of a band list. However my estimate on that task keeps getting larger as I look at the details.[src/gsptype1.c 1.21]
Set PJL RENDERMODE to GRAYSCALE or COLOR depending on whether device is pxlmono or pxlcolor, respectively. Fixes bug #687990. Thanks to Jonathan Kamens for the patch.[src/gdevpxut.c 1.6]
Add the missing ijs-config.1 manpage so our distributed ijs tree builds cleanly as a separate package. Include other sync changes to the 0.35 release. Closes bug 687991.[ijs/Makefile.am 1.2, ijs/README 1.3, ijs/configure.ac 1.2, ijs/ijs-config.1 1.2, ijs/ijs_spec.pdf 1.2]
2005-03-18 19:52 Igor Melichev
Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII (continued 2). DETAILS : Last two patches are incomplete - font streams were not ASCII encoded. This one fixes that (All 3 to be applied). EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.69, src/gdevpdfx.h 1.108, src/gdevpdti.c 1.41]
Clean up a remaining link to the New-user documentation.[doc/Bug-info.htm 1.44]
2005-03-18 17:38 Igor Melichev
Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII (continued). DETAILS : The last patch was buggy. This one fixes that (both to be applied). It's a bug introduced when implementing PDFW_DELAYED_STREAMS. Restoring the old behavior now. EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.68]
Link to Commprod for the difference between GPL and AFPL Ghostscript.[doc/Readme.htm 1.65]
Remove the out-of-date 'new user' documentation. Most of this is covered by the readme and the website.[doc/Fonts.htm 1.46, doc/Helpers.htm 1.39, doc/Install.htm 1.50, doc/New-user.htm 1.56, doc/Readme.htm 1.64, doc/Use.htm 1.130]
Remove the obsolete Tester.htm documentation file.[doc/Readme.htm 1.63, doc/Tester.htm 1.35]
2005-03-18 16:15 Igor Melichev
ps2write : Work around HP LaserJet 1320 bugs. DETAILS : HP LaserJet 1320 appears to have problems with streams - see comments in code. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.50]
2005-03-18 14:48 Igor Melichev
Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII. DETAILS : It's a bug introduced when implementing PDFW_DELAYED_STREAMS. Restoring the old behavior now. EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.67]
2005-03-18 12:15 Igor Melichev
ps2write : Improve the error handler. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.49]
2005-03-18 11:21 Igor Melichev
ps2write : Add EndOfTask character at the end of a task. EXPECTED DIFFERENCES : None.[lib/ps2write.bat 1.8]
2005-03-18 10:36 Igor Melichev
ps2write : Add EndOfTask character at the end of a task. EXPECTED DIFFERENCES : None.[lib/EndOfTask.ps 1.1, lib/ps2write.bat 1.7]
2005-03-17 15:45 Igor Melichev
ps2write : Don't write empty elements of Subrs. DETAILS : gdevpsf1.c created an incorrect Type 1 font file due to 'readstring' causes a rangecheck with empty string. Skipping empty elements of Subrs against that. An empty element of Subr isn't a correct code since it must contain at least a 'ret' instruction. Thus empty element actually means "no element". EXPECTED DIFFERENCES : None, because normally pdfwrite doesan't call this code portion.[src/gdevpsf1.c 1.21]
2005-03-17 13:08 Igor Melichev
Fix : Building GS with MSVC, use a proper CRTL version (debug|nodebug). EXPECTED DIFFERENCES : None.[src/msvc32.mak 1.71]
2005-03-17 13:06 Igor Melichev
ps2write : Write pages in the proper order. DETAILS : Bug 687923 "New ps2write inverts the page order". EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.103, src/gdevpdfu.c 1.66, src/gdevpdfx.h 1.107]
2005-03-17 10:52 Igor Melichev
fuzzy.c : Fixing the error message format.[toolbin/tests/fuzzy.c 1.18]
2005-03-17 10:45 Igor Melichev
ps2write : Fixing an initial matrix bug. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.48]
2005-03-16 23:04 Alex Cherepanov
Keep the operands of knownoget_safe pseudo-operator on the stack to ensure proper restoration of the operands when it fails. Correctly adjust the stack in the caller when knownoget_safe fails. Fix bug 687473 from the customer 780.[lib/pdf_main.ps 1.95]
2005-03-16 14:57 Igor Melichev
Fix : MSVC8 warning. DETAILS : This change is algorythmically equivalent. EXPECTED DIFFERENCES : None.[src/sjpx.c 1.12, src/spdiff.c 1.9]
2005-03-16 12:27 Igor Melichev
Fix : Coding style and MSVC8 warning in gsciemap.c . DETAILS : This change is algorythmically equivalent. The old code applies macros to generate 3 expressions like this : (8 >= ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) ? (((pcrd->caches.EncodeABC[0].fixeds.ints.values) [((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))] + (frac)(((long)((pcrd->caches.EncodeABC[0].fixeds.ints.values) [((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) + 1] - (pcrd->caches.EncodeABC[0].fixeds.ints.values)[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))]) * ((int)(tabc[0]) & ((1 << ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) - 1))) >> (((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))))) << (8 - ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))) : (((pcrd->caches.EncodeABC[0].fixeds.ints.values) [((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))] + (frac)(((long)((pcrd->caches.EncodeABC[0].fixeds.ints.values) [((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) + 1] - (pcrd->caches.EncodeABC[0].fixeds.ints.values) [((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))]) * ((int)(tabc[0]) & ((1 << ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) - 1))) >> -(8 - ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))))) >> (((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))) (the other 2 ones replace "[0]" with "[1]" and "[2]"). We gues that MSVC8 is not enough intelligent to prove that the static (sub)expression ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)) is always within the interval [0, 10] and therefore it claims a possible error. This patch replaces it with a dynamic constant 's', so that the warning doesn't appear. In any case we believe that the huge expression above isn't a good coding style since humans need to read the code sometimes. For ones who wish a further simplification, we're happy to bring some useful definitions : XXX = ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)) YYY = ((int)(tabc[0]) & ((1 << XXX) - 1)) ZZZ = ((tabc[0]) >> XXX) TTT = (pcrd->caches.EncodeABC[0].fixeds.ints.values) Using them the expression reduces to : (8 >= XXX) ? ((TTT[ZZZ] + (frac)(((long)(TTT[ZZZ + 1] - TTT[ZZZ]) * YYY) >> (XXX))) << (8 - XXX)) : ((TTT[ZZZ] + (frac)(((long)(TTT[ZZZ + 1] - TTT[ZZZ]) * YYY) >> (XXX))) >> -(8 - XXX)) EXPECTED DIFFERENCES : None.[src/gsciemap.c 1.16]
2005-03-16 09:47 Igor Melichev
ps2write : Don't drop extension glyphs writing an embedded font. DETAILS : The pdf interpreter creates glyph copies with unique_name to resolve glyph name conflicts while converting Widths to Metrics. Then pdfwrite drops the extended glyph names (made with unique_name), to aviod font expansion in the output PDF. We do not wont to port unique_name and related stuff to opdfread.ps in order to simplify the latter. Therefore the drop_extension_glyphs and related things must not be called when pdfwrite works in the ps2write mode. We still use OrderResources as a general switch for the ps2write mode. This should be improved later. EXPECTED DIFFERENCES : None.[src/gdevpdtb.c 1.33, src/gdevpdtw.c 1.37]
2005-03-16 09:38 Igor Melichev
ps2write : Improving the processing of True Type encodings. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.47]
2005-03-15 14:14 Igor Melichev
ps2write : Fit a page with MediaBox. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.46]
2005-03-15 11:36 Igor Melichev
Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/gdevpdtc.c 1.41, src/gstype42.c 1.51, src/gxhintn.c 1.58, src/gxshade6.c 1.92]
2005-03-15 11:21 Igor Melichev
ps2write : Fixing minor problems with text placing. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.45]
Fix for 687696 PDF 1.4 transparency can use large chunks of memory. Prior to this fix the handling of PDF 1.4 transparency features used one or more full size image buffers. With high resolutions and large images, these buffers can be multiple gigabytes. As a result, we were not able to handle these files. DETAILS: PDF 1.4 transparency is handled by a device which is inserted into the device chain. Prior to this fix, this device was via the 'device filter' logic. With this fix, the PDF 1.4 transparency device is inserted via the compositor device mechanism. This change was made since the device filter logic did not allow other devices to control where the PDF 1.4 transparency device is placed in the device chain. There is a device proc which implements the create compositor action. This allows more control than the device filter logic. The first step in this fix was to convert the PDF 1.4 transparency logic to use the create compositor mechanism. For situations in which the clist logic is not being used, the PDF 1.4 transparency device is created and placed in the same location in the device chain as it was put by the device filter logic. In this situation, there is very little logical difference in the operation of the PDF 1.4 transparency. For situations in which the clist is used, there are two PDF 1.4 compositing devices created. There is one device before the clist when the clist is being written. There is a second device after the clist when the clist data is being read. The device before the clist serves two purposes, it provides a means for implementing the process color model for the PDF 1.4 compositing. (The PDF 1.4 compositing may used a different process color model from the output device.) Thus this device has color_info and encode/decode color procs which match the PDF 1.4 blending color space. This device also ensures that the PDF 1.4 blending parameters (blend mode, shape, opacity, etc.) are passed through the clist to the second PDF 1.4 device. The second PDF 1.4 device (the one when the clist is being read) is the same PDF 1.4 compositing device which is used when the clist is not being used. This is the device which does the blending operations. Since the device is after the clist, the buffers that it needs are the size of a single band instead of the full page. This device is placed prior to the memory device which is used for drawing the raster data. Two changes were made in the 'create compositor' logic. The imager state was being passed as a 'const'. It is no longer const since the PDF 1.4 transparency compositing changes the cmap procs in the imager state to not use transfer functions during color calculations. The transfer functions are applied later (and the cmap procs restored) when blended image data is output from the PDF 1.4 compositing buffers. The second change to the create compositor logic is the addition of two more procedures to the gs_composite_type_t.procs list. These procedures are used by the clist device create compositor routines. The first is used to create the PDF 1.4 clist write device. The second saves and restores the color_info field for the clist device (see below). Default versions of the added gs_composite_t.procs were also added for use by the other compositor devices. The defaults are no-ops. The clist logic has a few changes. Since the PDF 1.4 compositor device may use a different process color model from the output device, the number of colorants and the depth (bits per pixel) can be different for the PDF 1.4 compositor and the output device. Thus changes were needed in parts of the clist logic which assumed that these items were constant during the processing of the clist. An extra field was added to the device halftone to indicate the number of colorants in effect when the device halftone was created. This data is included when the halftone is serialized for the clist. (Fortunately the PDF 1.4 compositing does not use halftones or transfer functions. So the device halftones and transfer functions do not need to be changed when the PDF 1.4 compositor is installed.) As previously mentioned the create compositor procedures for the clist writer and reader now call a couple of compositor specific routines. These allow the compositor to implement actions related to the clist device. (The PDF 1.4 compositor uses these routines to create the 'write clist' PDF 1.4 compositor and to save and restore the clist device color info. The color_info field of the clist device is changed to match the process color model of the PDF 1.4 compositor while the PDF 1.4 compositor is active. A additional device parameter (PageUsesTransparency) was added. This parameter is sent by the PDF interpreter to indicate if PDF 1.4 transparency will be used on the page. The banding/no banding decision and the size of a band includes an estimate of the size of the PDF 1.4 blending buffers if this parameter is true. Note: The estimate of the size of the blending buffers is not exact since this calculation is made before the actual number of buffers, the number of blending colors and alpha channels is known. Fixed values are used for the estimated buffer size. This is still much better than the pervious situation, in which the only the output raster size was being used. The blending buffers can easily be 30 or more times larger than the raster buffer. This fix also involves the removal of the PDF 1.4 'marking' devices. The marking devices were used to actually implement the pixel marking. The marking devices were created at the start of each high level drawing operation and deleted after the completion of the operation. The marking device action has been merged into the primary PDF 1.4 compositing device. This change eliminates some device creation overhead. The overhead would have been worse since most information about high level drawing operations is not passed through the clist. As a result it would have been necessary to create marking devices for each low level operations. The following issues are not included in this fix but need to be considered. 1) The device filter logic is no longer used. It may be desired to remove this logic. 2) We currently have a 'create_compositor' device proc. However there is not a 'delete_compositor' device proc. As a result, compositor devices can stay in the device chain even when they are no longer needed. The current fix turns the PDF 1.4 compositor into a 'forwarding' device. This is the same method used by the overprint compositor device. I do not like leaving these devices since there is some extra overhead and there may be possible side effects. (Testing has been done to try to find side effects and none has been found with the current code.) 3) This change only affects devices which can use the clist logic. This excludes the 'high' level devices. These include the 'display', 'x11', and 'pdfwrite' devices. Thus these device will continue to use a full image buffer. It is possible to extend this fix to use a clist device for the PDF 1.4 device for these devices.[src/gdevbbox.c 1.23, src/gdevdflt.c 1.25, src/gdevmem.c 1.9, src/gdevnfwd.c 1.28, src/gdevp14.c 1.27, src/gdevp14.h 1.4, src/gdevprn.c 1.19, src/gdevprn.h 1.14, src/gdevpsdu.c 1.23, src/gsalphac.c 1.8, src/gsht.c 1.23, src/gsistate.c 1.11, src/gsovrc.c 1.9, src/gsropc.c 1.5, src/gstparam.h 1.11, src/gstrans.c 1.19, src/gstrans.h 1.10, src/gxband.h 1.5, src/gxcldev.h 1.14, src/gxclimag.c 1.12, src/gxclist.c 1.15, src/gxclist.h 1.7, src/gxclrast.c 1.33, src/gxclutil.c 1.12, src/gxcmap.c 1.24, src/gxcomp.h 1.7, src/gxdevcli.h 1.36, src/gxdevice.h 1.21, src/gxdevmem.h 1.7, src/gxdht.h 1.9, src/gxdhtserial.c 1.8, src/gxistate.h 1.22, src/lib.mak 1.206, src/zdpnext.c 1.8, src/ztrans.c 1.23, lib/pdf_draw.ps 1.91, lib/pdf_main.ps 1.94]
2005-03-14 17:46 Igor Melichev
ps2write : Assume same color for stroking and non-stroking operations. DETAILS : An improvement to opdfread.ps with maintaining different colors for stroking and non-stroking operations would too complicated. So we patch pdfwrite against it. We still use OrderResources as a general switch for ps2write mode. It should be improved later. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.48]
2005-03-10 16:34 Igor Melichev
Fix (type 1 hinter) : Inconsistent transform coefficients after the dynamic glyph scaling. DETAILS : Bug 687939 "Fixed precision problems". t1_hinter__adjust_matrix_precision did not adjust rational transform coefficients. Due to that, t1_hinter__align_stem_to_grid caused glyph distortions. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.57]
2005-03-10 14:57 Alex Cherepanov
Initialize ColorSpace parameter in ijs driver to DeviceRGB. This prevents a PostScript error in "currentpagedevice setpagedevice" and similar code when ColorSpace is not explicitly initialized. Fix bug 687013.[src/gdevijs.c 1.10]
2005-03-10 13:01 Alex Cherepanov
Add FillOrder device parameter to TIFF fax devices and document the changes in Devices.htm . Fix bug 687324 DETAILS : This fix changes the default from FillOrder = 2 to FillOrder = 1. According to the TIFF 6.0 specification, Section 8, page 32, support of FillOrder = 2 is not required in a Baseline TIFF compliant reader. Support of FillOrder will be addressed to tiffpack and tifflzw devices as a part of bug 614298 resolution. EXPECTED DIFFERENCES : None. TIFF devices are not tested by the regression test.[doc/Devices.htm 1.85, src/gdevtfax.c 1.9]
2005-03-09 12:21 Igor Melichev
Fix (pdfwrite) : Equal image merging could break the Mask object of a type 3 image. DETAILS : Bug 687926 "ps2pdf13 Segfaults on eps figure". The old code set a reference to a Mask object, which was freed while the equal image merging. Delay adding the "Mask" entry into a type 3 image dictionary until the mask is completed and merged (maybe replaced with an equal one). Minor change : fixed a typoe in "pdf_image_useage_t". EXPECTED DIFFERENCES : None.[src/gdevpdfi.c 1.65]
2005-03-09 09:01 Igor Melichev
Fix (pdfwrite) : Don't create a CMap resource list. DETAILS : Old revisions created an object for CMap resource list. That object is not required by the PDF specification, and it was left unreferenced. EXPECTED DIFFERENCES : None.[src/gdevpdtw.c 1.36]
2005-03-09 08:43 Igor Melichev
Fix : MSVC 8 debug build was broken. DETAILS : Since msvccmd.mak version 1.25 a debug build compiles with no debug info. This patch restores necessary compiler options. Particularly msvccmd.mak version 1.25 reads : # MSVC 8 does not support debug compile and continue /Gi /ZI. Don't know where it comes from. My copy of MSVC 8 does support it and I do use it. EXPECTED DIFFERENCES : None.[src/msvccmd.mak 1.26]
Add uncompr.c which supplies the uncompress() zlib utility routine to our makefile. This routine isn't currently used by ghostscript, but was available prior to the source re-arrangement in the zlib 1.2.x releases.[src/zlib.mak 1.10]
Correct HTML error in documentation.[doc/Use.htm 1.129]
Set the default paper size with DEFAULTPAPERSIZE in gs_init.ps, which only affects devices that default to A4 or letter paper. This avoids inappropriately setting the bbox device to A4 or letter size. DETAILS: Some linux distributions change the default paper size to A4 by uncommenting the following line in gs_init.ps. % Optionally choose a default paper size other than U.S. letter. % (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse Unfortunately this sets the default paper size for all devices, including the bbox device for which this is not appropriate. If the bbox device is set to A4 paper and drawing occurs outside this area, the bbox device will report an incorrect bounding box. There may be custom printer devices which don't support A4 or letter paper. The default paper size is now set with DEFAULTPAPERSIZE, which sets PAPERSIZE only if the paper size is not otherwise set, the device defaulted to A4 or letter.[doc/Use.htm 1.128, lib/gs_init.ps 1.118]
The display device row alignment must be equal to or greater than the pointer size, since this is a requirement of the memory devices. Problem noticed on 64-bit builds.[src/gdevdsp.c 1.32, src/gdevdsp.h 1.12]
Compile Ghostscript for 64-bit Windows with AMD64 processor. Change the default install directory to "c:\program files\gs". DETAILS: Microsoft Visual Studio .NET 2003 with Windows Server 2003 DDK, or Microsoft Visual Studio 8 (.NET 2005 beta) are required to compile for 64-bits. Dialog boxes return type INT_PTR not BOOL. Install to the "Program Files" directory as default, instead of c:\gs. This allows 32-bit and 64-bit versions to be installed in separate locations. For 32-bit GS on 32-bit Windows, "c:\Program Files\gs" For 32-bit GS on 64-bit Windows, "c:\Program Files (x86)\gs" For 64-bit GS on 64-bit Windows, "c:\Program Files\gs" The " (x86)" is added by Windows when a 32-bit program asks for the "Program Files" folder on 64-bit Windows. Other languages will translate "Program Files". The programs still have "32" in their names: gswin32c.exe, gswin32.exe and gsdll32.dll. They are distinguished from the 32-bit versions by their install location. This avoids changes to many batch files. The registry entries written by the installer do not conflict between 32 and 64-bit. For 32 on 32, or 64 on 64, the location is HKLM\Software\AFPL Ghostscript\N.NN For 32 on 64, Windows adds "WoW6432Node\" to make it HKLM\Software\Wow6432Node\AFPL Ghostscript\N.NN If the "Program Files" folder has a " (x86)" suffix, this is used as a suffix on the Start Menu items. This allows 32-bit and 64-bit GS to be installed without conflict. The start menu item for 32-bit GS on 64-bit Windows is "Ghostscript N.NN (x86)". Building 64-bit GS on 32-bit Windows can be done by the usual method - either execute genconf.exe on a 64-bit platform or hand edit arch.h. A separate patch will fix the display device DisplayHandle parameter which is currently truncated to 32-bits. There is a warning from the linker about exports being defined multiple ways. This is not a problem with the 32-bit compile. This is due to the C code specifying export and the module definition file also specifying the export. Removing the function names from the module definition file would make the warning message go away, but may affect 32-bit compiles.[doc/Make.htm 1.85, src/dwsetup.cpp 1.11, src/dwsetup.rc 1.13, src/dwuninst.cpp 1.6, src/gp_mswin.c 1.25, src/gp_mswin.h 1.7, src/gsdll32.def 1.6, src/msvc32.mak 1.70, src/msvccmd.mak 1.25, src/msvctail.mak 1.11, src/winint.mak 1.25]
Change display device parameter DisplayHandle from an integer to a string, to add support for 64-bit platforms. DETAILS: The display device passes a (void *) handle to callback functions. The handle is set before the device is opened, and attempting to change it afterwards is an error. The handle may be used by the caller to identify an instance of the display device, for example it may point to the display instance object in the caller. This handle was set using a PostScript integer which is 32-bits long, typically with -dDisplayHandle. The existing code will not work correctly on 64-bit architectures. The display device is changed to return a string as the DisplayHandle parameter. Previously the handle would be set using -dDisplayHandle=1234. The changed code allows it to be passed as -dDisplayHandle=1234 -sDisplayHandle=1234 -sDisplayHandle=10#1234 -sDisplayHandle=16#04d2 This should be backward compatible, since users of the display device will most likely only set the DisplayHandle, not read its value. The ghostscript example code in dw*.c, dx*.c and dp*.c does not use DisplayHandle, so is unaffected by this change. GSview does use DisplayHandle and will require this change for operation on 64-bit platforms. It is assumed that size_t is an integer with the same size as a pointer. For HEAD, GS_8_1X[src/gdevdsp.c 1.31, src/gdevdsp.h 1.11]
2005-03-04 14:42 Igor Melichev
Unwinding the last patch, which was erroneusely aplied to a wrong branch.[src/gdevpdfj.c 1.41]
2005-03-04 14:38 Igor Melichev
pdfwrite : ASCII encoding was not applied to some images when requested. DETAILS : It fixes a bug, which has been put when implementing the compression chooser. This is a part of ps2write development, which is also important for pdfwrite. EXPECTED DIFFERENCES : None.[src/gdevpdfj.c 1.39, src/gdevpdfj.c 1.40]
Fix bug #687958 gswin32: Assertion fails due to a bug in dwtext.c. Keep argument to isprint() within 0-255.[src/dwtext.c 1.9]
Eliminate a performance problem when a TT font has a large 'loca' table. A fix for 687889 used .sort on the 'loca' table but this takes a long time if the table is large. Only run the .sort if the table is out of order which is rare since the TT font spec requires an in-order table. Bug 687968. DETAILS: Apparently our conversion of the 'japan.ps' file creates a TT font with a loca table that has 20458 entries (even though the original font in japan.ps didn't have that many). This is needed because there are many glyphs that are not present, but we need loca table slots that represent the missing glyphs (same starting offset as next glyph). The time was being spent doing the '{ lt } .sort' of the array :-( I added logic that checked the order as the loca table was converted to an array so that the .sort could be skipped as long as the table is in order (which it *should* be for a valid TT font). After this change, the HEAD time is 1.16 CPU seconds versus 1.08 seconds for gs8.50. (with the .sort, the time was 257 seconds). I suppose that we could optimize the .sort (put it into 'C') but for now I'll just avoid it most of the time. Note that since the .sort has a procedure callout for the ordering test, it might not speed up that much in 'C'. That's the other reason that it is worthwhile to avoid the .sort when possible.[lib/gs_ttf.ps 1.43]
2005-03-03 13:15 Igor Melichev
pdfwrite : Use character codes instead CIDs when creating a ToUnicode CMap. DETAILS : Bug 687954 "copy and pasting asian text problems". The problem depends on what a Postscript printer driver puts into the GlyphNames2Unicode table. GlyphNames2Unicode is an undocumented feature, which PScript5.dll uses to communicate with Adobe Distiller. A long ago from its name we concluded that it maps character names to Unicode, and it was confirmed with multiple documents. Now we got a document (the test case of the bug 687954), which uses character codes instead CIDs, (CIDs are usually interpreted as "glyph names" in the case of CID fonts). In the test document CIDs are not equal to character codes due to the embedded CMap named WinCharSetFFFF-H2. We did not notice this problem before due to most old documents from PScript5.dll use an identity CMap WinCharSetFFFF-H, Now we change Ghostscript with using character codes instead CIDs as keys to GlyphNames2Unicode. We have no technology for a regression test of the related behavior. We will pass this revision to users in order to study consequences of this patch from users' responses. EXPECTED DIFFERENCES : None.[src/gdevpdtc.c 1.40, src/gdevpdte.c 1.70]
2005-03-03 07:50 Igor Melichev
ps2write : Write "/Type/CMap" to a CMap resource dictionary. DETAILS : Bug 687955 "ghostscript generated pdf causes error in adobe reader" EXPECTED DIFFERENCES : None.[src/gdevpdtw.c 1.35]
Fix: Move setting of #copies userdict entry outside restore operation so it doesn't get clobbered. Fixes bug #687964. Thanks to Leon Sha for the patch.[src/gdevpsu.c 1.19]
Fix a problem with .dividesfnts for large Type42 fonts introduced with the previous commit. Also replace macro with C-Style compliant inline function. DETAILS: The previous code constructed a single 'locatable' string of 4 byte entries from the sorted array of loca entries. This would fail if the original was 2 byte (u16) offsets, as seen with 'fonts.pdf' in the regression suite. The new code constructs the "splitarray" list using the sorted array so that the string is never created (it wasn't used afterwards). Also, the related file src/gstype42.c was changed to avoid adding another macro that doesn't follow C-Style. I intentionally left the ACCESS macro since this would need at least two lines to replace each ACCESS line.[lib/gs_ttf.ps 1.42, src/gstype42.c 1.50]
2005-02-28 10:00 Igor Melichev
ps2write : Reset the clipping path before starting a page. DETAILS : Bug 687952 "Clipping path is ignored on pages after first page of PDF output". Patch from SaGS. Actually it resets the clipping path before the first page and after each page. Resetting it after the last page saves few memory for PDF completion. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.102]
Fix handling of broken TrueType fonts that have a loca table that is not in order. Bug 687889 for customer 670. DETAILS: This is clearly a questionable TT font since the Apple TT font reference manual clearly states that the length of glyphs can be inferred from the difference in successive offsets. Note that the PostScript code only needs to deal with the sorted 'locatable' in order to decide where to split the glyf strings in the sfnts array (in the .dividesfnts proc). Otherwise the PostScript code doesn't care. If the .dividesfnts uses a sorted locatable, but doesn't replace the 'loca' table written into the sfnts, then the VMerror occurs because the C code in 'default_get_outline' calculated the glyph_length for the gs_alloc using loca table entries that might be out of order. In order to effect the entire fix, I sorted the 'locatable' for the PS code in .dividesfnts as well as creating a new 'len_glyphs' array in the gs_type42_data structure that holds the actual glyph lengths. The glyph lengths are calculated once when the font is initialized in gs_type42_font_init. If the 'loca' table is in order, then nothing changes, but if it is out of order, we get the lengths by finding the next higher glyph offset anywhere in the loca table. These changes let the file run and show the same glyphs as Adobe Acrobat Reader.[lib/gs_ttf.ps 1.41, src/gstype42.c 1.49, src/gxfont42.h 1.21]
2005-02-26 21:00 Igor Melichev
ps2write : Fixing minor problems with debug printing. DETAILS : EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.44]
2005-02-26 18:07 Igor Melichev
ps2write : Implementing a conversion of images into ProcessColorModel, step 3 (final). DETAILS : 1. Attached the "image colors" filter and provided appropriate color conversions. 2. Changed function prototype to pass filter parameters. 3. Removed all related stubs. EXPECTED DIFFERENCES : None.[src/devs.mak 1.126, src/gdevpdfi.c 1.64, src/gdevpsdf.h 1.29, src/gdevpsdi.c 1.40, src/gdevpsds.c 1.14, src/gdevpsds.h 1.12]
2005-02-26 13:32 Igor Melichev
ps2write : Implementing a conversion of images into ProcessColorModel, step 2. DETAILS : This step generalizes the "image to mask" filter into a general image color conversion filter. Also improved return codes from s_image_colors_process in complience to constraints defined in strimpl.h . EXPECTED DIFFERENCES : None.[src/gdevpsdi.c 1.39, src/gdevpsds.c 1.13, src/gdevpsds.h 1.11]
2005-02-25 21:08 Igor Melichev
ps2write : Implementing a conversion of images into ProcessColorModel, step 1. DETAILS : This patch defines overall logic and data exchange for converting images to ProcessColorModel color space. For a while, the real convertion is stubbed with conversion into a bitmask (a 1 bit per sample image). 1. When pdf_begin_typed_image calls pdf_color_space, a failure means that the image can't represent in the output PDF. Then we setg up a n image color conversion filter with psdf_setup_image_colors_filter. 2. The function psdf_setup_image_colors_filter currently is stubbed with etting up the "image_to_mask" filter instead a general color conversion filter. Implementing the general filter will be the next step. 3. When conversion happens, pdf_begin_typed_image writes a ProcessColorModel colore space instead the image color space. Currently it is stubbed with gs_color_space_index_DeviceGray to comply with the stub in psdf_setup_image_colors_filter. 4. Multiple bugs (mainly the order of bits in the stream, and row to tyte alignment) have bin fixed in s_image_to_mask_process. 5. We continue to use pdev->OrderResources as a general switch for the ps2write mode, rather it's not fully correct. The new code will be useful for pdfwrite with CompatibilityLevel < 1.3, so later we'll need to remove the switch from pdf_begin_typed_image. EXPECTED DIFFERENCES : None.[src/gdevpdfi.c 1.63, src/gdevpsdi.c 1.38, src/gdevpdfx.h 1.106, src/gdevpsdf.h 1.28, src/gdevpsds.c 1.12]
2005-02-25 14:02 Igor Melichev
pdfwrite : Simplify data exchange for pdf_color_space. DETAILS : 1. The old code assumes a constraint explained in the comment : /* SRZB 2001-04-25/Bl * Since psdf_setup_image_filters may change the color space * (in case of pdev->params.ConvertCMYKImagesToRGB == true), * we postpone the selection of the PDF color space to here: */ Implement this dependence implicitly with defining a new function psdf_is_converting_image_to_RGB, in order to cancel the "postpone" constraint. 2. Call pdf_color_space before setting up image filters. This allows a proper check of the color space compatibility before image filters are set. This is important since we'll apply a filter for the image color space conversion. EXPECTED DIFFERENCES : None.[src/gdevpdfi.c 1.62, src/gdevpsdf.h 1.27, src/gdevpsdi.c 1.37]
2005-02-25 07:58 Igor Melichev
ps2write : Unwind the last patch (disallow ICCBased color spaces when writing a ps2write output). DETAILS : When applied the last patch, we decided to convert ICC profile into a CIEBased color space. But ICC profiles (especially ones coming from PDF documents from wild) may contain a general lookup table, and a general lookup table can't convert into M1*T*M2 transformation, where Mi are 3D linear transformations, and and T is unlinear 3-component transformation. Since a CIEBased color space is restricted with M1*T*M2 transformation, in a general ICC profile can't convert into a CIEBased. Besides that, the ICC-based method can't apply to DeviceN spaces. Therefore now we choose another implementation strategy. Single colors will be converted into low level colors in the ps2write step, and images will be filtered to convert into low level color spaces. Will implement a special filter for that. Due to all above, the last patch appears wrong. Unwinding it now. EXPECTED DIFFERENCES : None.[src/gdevpdfk.c 1.10]
2005-02-24 19:46 Igor Melichev
ps2write : Allow ICCBased color spaces when writing a ps2write output. DETAILS : Since CIEBased is not a PDF 1.2 object, we need to convert it somehow. One possible way is to write CIEBased into PDF. We do not choose this way because (1) it will generate an invalid PDF so that we'll not be able to verify the output with PDF readers; (2) we have no code for writing a CIEBased color space to PDF or Postscript, but we do have one for ICCBased. Another way is to write ICCBased into the ps2write output and to implement a parsing of ICC profile in opdfread.ps . We prefer this way since a part of this algorithm (an ICC writer) already presents in Ghostscript. Strongly saying, a PDF with ICCBased is not a valid PDF 1.2 document. But as we noticed before, Adobe PDF viewers simply ignore pdf level from the document header. So we'll be able to view it as it is or after a small modification of the header. We continue to use the flag OrderResources as a general switch for ps2write mode. Doing so because we still have no a perfect decision about the list and logics of configuration options. Later we'll need to bring more order to this field. Possibly writing a "restricted PDF1.3" would be better that writing an "extended PDF 1.2". By the way, pdfwrite appears to have a rudimentary branch pdf_convert_cie_to_lab, which currently is a stub, which always fails. We think that this conversion isn't possible in general due to Lab restricts with a very special class of transformations. So lakely this branch will never be implemented and it must always fail. Please note that with this patch ps2write successfully converts a smaller class of input files then before it, because the writer becomes inconsistent with the reader coded in opdfread.ps . But we do need this step in the develoipment technology. Actually the files outside the class were converted into a too long PDF. EXPECTED DIFFERENCES : None.[src/gdevpdfk.c 1.9]
2005-02-24 11:26 Igor Melichev
Fix (pdfwrite) : Improving the heap consistensy with compression chooser. DETAILS : When a compression chooser is being installed, s_add_fimter may insert another NullEncode filter to comply the buffering between the compression chooser and its target. After the compression chooser is closed, the old code left the NullEncode filter unreleased in the heap, so that the heap consistency check claimed a reference from it to a freed object, which is the target of the NullEncode. It's not a real bug sisnce NullEncode was never referred, But running with -Z? got a failure in the heap consistency check. This patch generalizes the code with closing all filters in the chain (including the NullEncode) without a dependence on features of specific filters. BTW, we're unappy of all this stuff, becauase actually the compression chooser filter doesn't need any target. A dummy one was inserted only to work around a crash in s_add_filter, in the check of the buffer size compliance, and now we fix a problem with the dummy thing. Maybe a simpler way would be patching s_add_filter to allow NULL target (I mean no target at all, rather than a null filter as the target), but we don't want to modify that fundamental thing, which is handled by another engineer. EXPECTED DIFFERENCES : None.[src/gdevpdfj.c 1.38, src/gdevpsdi.c 1.36]
2005-02-23 15:10 Igor Melichev
ps2write : Improving the compatyibility to another PSLL2 interpreter 5D PDF Creator. DETAILS : EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.43]
2005-02-23 10:48 Igor Melichev
ps2write : A wrong data were set to sfnts defining a Type 42 font. DETAILS : It attached an encoded data. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.42]
2005-02-23 10:08 Igor Melichev
Fix : Erase all pointers initializing a font structure. DETAILS : Bug 687951 "Inconsistent heap after 'definefont' fails.". EXPECTED DIFFERENCES : None.[src/gsfont.c 1.35]
2005-02-23 09:57 Igor Melichev
Fix (pdfdwrite) : Don't apply FlateEncode generating a PDF 1.2. DETAILS : FlateEncode is a PDF 1.2 and PSLL3 feature. This patch is important for ps2write project. EXPECTED DIFFERENCES : None.[src/gdevpsdi.c 1.35]
2005-02-22 15:41 Igor Melichev
A new implementation of shadings, step 89. DETAILS : This is a partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". This patch improves the decision how to subdivide a quadrangle patch. EXPECTED DIFFERENCES : normal, 72dpi : "442-01.ps" "464-01-fixed.ps" "478-01.ps" "Altona-Testsuite_p2_S_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "S2_Digitalproof-Forum_x3k.pdf" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" normal, 300dpi : "442-01.ps" "464-01-fixed.ps" "478-01.ps" "Altona-Testsuite_p2_S_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "S2_Digitalproof-Forum_x3k.pdf" "SmoothShading.pdf"[src/gxshade6.c 1.91]
Fix conformance problems in ghostpdf.ppd. Now tested with cupstestppd.[lib/ghostpdf.ppd 1.3]
2005-02-17 21:40 Igor Melichev
ps2write : A compatibility to a PSLL@ interpreter gs3_70. DETAILS : 1. With GS HEAD 'makepattern' always returns a local dictionary, but with gs3_70 it depends on current allocation mode. Forced the local allocation mode for any case. 2. Fixed the file name in the error handler message. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.41]
2005-02-16 22:05 Igor Melichev
ps2write : Fix problems with hex encodings (continued). DETAILS : The old code sometimes corrupted data when pdfwrite applies /ASCII85EncodePages true . The data corruption happened while applying ASCII85Decode filter together with another filter for inline images or embedded fonts. The reason is that two instances of the stream dumper shared same buffer. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.40]
2005-02-16 15:29 Igor Melichev
ps2write : Implementing a conversion of type 4 images into an 'imagemask' with a pattern color. DETAILS : The mask is being generated with a new 4th alternative stream of pdf_image_writer. Note it's a completely different way than image type 3. 1. Fixed a typo in 'pdf_image_writer_num_alt_streams'. 2. pdf_image_writer_num_alt_streams is increased to 4, and added pdf_image_writer::pres_mask. 3. Garbager methods of pdf_image_writer are updated with (2) in gdevpdfj.c . 4. Factored out pdf_begin_image_data_decoded (an equivalent code change). 5. Factored out pdf_end_and_do_image (an equivalent code change). 6. pdf_begin_write_image now may be called at 2nd time to set up the 4th alternative stream. The branches for mask==true work for that. 7. Implenented a new filter image_to_mask for converting a colored image with MaskColors into an imagemask (gdevpsds.h, gdevpsds.c). 8. psdf_setup_image_to_mask_filter helps for (7). (gdevpsdf.h, gdevpsdi.c)/ 9. pdf_begin_typed_image now creates 4th alternative image stream with applying the image_to_mask filter - see the branch "if (pic->type->index == 4 && pdev->CompatibilityLevel < 1.3)". See comment in there. 10. pdf_image_end_image_data handles the 4th stream with the branch "if (pie->writer.alt_writer_count == 2)". 11. pdf_choose_compression_cos preserves the 4th alternative stream (gdevpdfj.c). EXPECTED DIFFERENCES : None.[src/devs.mak 1.125, src/gdevpdfg.h 1.40, src/gdevpdfi.c 1.61, src/gdevpdfj.c 1.37, src/gdevpsdf.h 1.26, src/gdevpsdi.c 1.34, src/gdevpsds.c 1.11, src/gdevpsds.h 1.10]
2005-02-16 11:11 Igor Melichev
Fix (pdfwrite) : Improve garbager methods of pdf_image_writer. DETAILS : This change should be algorithmically equivalent, rather the order of pointer enumeration is changed slightly. The goal is to simplify the ps2write project. EXPECTED DIFFERENCES : None.[src/gdevpdfg.h 1.39, src/gdevpdfj.c 1.36]
2005-02-16 09:13 Igor Melichev
Fix (pdfwrite) : Implement an explicit initialization of pdf_image_writer. DETAILS : This change should be algorithmically equivalent, rather it initializes more data, which were left uninitiaized (and hopely unused) by the old code. The goal is to simplify the ps2write project. The patch simplifies the logics of pdf_begin_write_image, and drops its argument, which was added when implementing the compression chooser. EXPECTED DIFFERENCES : None.[src/gdevpdfb.c 1.26, src/gdevpdfg.h 1.38, src/gdevpdfi.c 1.60, src/gdevpdfj.c 1.35, src/gdevpdfv.c 1.38]
Add a pdfformaterror Warning for the case where an outline link destination does not exist (so that the resulting PDF will not have dangling links).[lib/pdf_main.ps 1.93]
Tolerate non-printing garbage characters prior to the %PDF header of a PDF file. Bug 687942 for customer 670. DETAILS: This is yet another example of PDF's that Acrobat Reader can handle that don't quite meet the spec. AR has the advantage that they don't have to 'auto-sense' PostScript, EPS and PDF and they can just ignore garbage before the %PDF header. We don't have that advantage. We've had previous proposals to operate the way AR does, but this would require a command line switch to force PDF language mode (akin to the PJL ENTER LANGUAGE functionality of PCL). This is a simple enough patch and does solve at least one customer's issue so I'm committing this patch. We can always improve on it later. Note that skipping initial non-printing characters doesn't interfere with PostScript or EPS recognition or processing (and may help).[lib/pdf_main.ps 1.92]
Fix: make sure that transfer functions and spot functions are permuted to the same order as the other halftoning parameters. Fixes bug #687916.[src/zht2.c 1.13]
2005-02-15 14:47 Igor Melichev
Fix (the filling algorithm) : Drpouts could appear at Y-extremes of the path (continued). DETAILS : This is a continuation of the patch http://ghostscript.com/pipermail/gs-cvs/2005-January/005180.html . Bug 687940 "Infinite loop in spot_into_scan_lines_fd". EXPECTED DIFFERENCES : None.[src/gxfillsl.h 1.8]
Provide more robust handling of errors in an attempt to prevent badly formed error handlers defined in the PS file from causing nested errors (and the infamous dump-like "Unexpected interpreter error"). Refer to bug 687925. DETAILS: Note that broken error handlers are fairly common, so running them in a .internalstopped context makes sense. The .internalstopped is used to avoid side effects such as modifying the $error dict contents. Also note that the -dJOBSERVER may often be needed to actually see the error message since this forces the use of the "standard" error reporting to stdout. Expected Differences: None.[lib/gs_init.ps 1.117]
Fix a problem with the initial matrix when the InputAttributes has a page size range (four element array) with the lower bounds greater than 0. Patch submitted by Till Kamppeter for bug 687902. DETAILS: The logic was clearly broken. There was an arbitrary MIN_MEDIA_SIZE #define that was used to allow setting the media size correctly (to the request instead of the range maximum). The corrected logic determines that a range is being used when the medium.p{x|y} is not the same as medium.q{x|y}. Expected Differences: Since the default InputAttributes only has a single range page size slot, and the minimum values are 0, 0, this won't change the default behaviour.[src/zmedia2.c 1.17]
Fix so that outline links to non-existent pages do not get processed or included in the outline passed to pdfwrite (via pdfmark). Bug 687917. DETAILS: Broken links cause a 'rangecheck in --get--' in the pdfpagenumber proc. called from 'linkdest'. We now catch errors (any) using stopped and simply omit the link from the outline that we write.[lib/pdf_main.ps 1.91]
Fix for 687935 rangecheck in stroke while overprinting on the display device. DETAILS: This fix corrects a problem in gx_default_get_bits_rectangle. The fix forces the 'actual_data' parameter to NULL when the GB_RETURN_POINTER option is not included in the parameter options. A value of NULL in the actual_data parameter forces the get_bits routine to copy data instead of simply returning a pointer to the data. The default implementation of overprinting uses the device get_bit_rectangle proc to retrieve the current pixel data. This one of the few situations that only uses the 'GB_RETURN_COPY' option to the get_bits routine. (Most cases use both GB_RETURN_COPY and GB_RETURN_POINTER.)[src/gdevdgbr.c 1.12]
2005-02-09 19:42 Igor Melichev
ps2write : Fix problems with heh encodings. DETAILS : The old code failed when pdfwrite applies /ASCII85EncodePages true . This patch fixes that. When reading the generated PS file with Ghostscript, we observe a problem with ASCII85Decode filter : images and fonts appear corrupt, and embedded fonts cause an access violation on Windows. In same time Adobe Reader reads them fine. This secondary problem shouldn't be important for the Postscript generation. It will be fixed separately. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.39, lib/ps2write.bat 1.6]
Revert to the redistributable Identity-H and Identity-V CMaps (same as the CVS revision 1.1). Bug 687933.[Resource/CMap/Identity-H 1.3, Resource/CMap/Identity-V 1.3]
2005-02-09 16:36 Igor Melichev
ps2write : Implementing a conversion of type 3 images into an 'imagemask' with a pattern color. DETAILS : 1. The main worker is use_image_as_pattern. 2. pdf_image_end_image_object2 transfers the condition for calling use_image_as_pattern. 3. pdf_image_end_image_data handles more cases, including the new USE_AS_PATTERN. See comment in code near it. Other 2 cases are equivalent to old ones. 4. Don't write the Mask key when the image is used as the pattern color. 5. New fields are added into pdf_device_s to provide a data transfer for use_image_as_pattern. 6. pdf_do_image is splitted into 2 functions. A further simplification would be useful, but we delay it in order to simplify this patch. See new comments in code. 7. A comment is inserted into gdevpdfd.c to provide a reference to a similar code fragment. Maybe we should factor out a common function. Delaying to simplify this patch. 8. Added a 'const' to a pdf_add_resource argument, since this patch calls it with a constant. EXPECTED DIFFERENCES : None.[src/devs.mak 1.124, src/gdevpdfd.c 1.47, src/gdevpdfg.h 1.37, src/gdevpdfi.c 1.59, src/gdevpdfj.c 1.34, src/gdevpdfx.h 1.105, src/gdevpdti.c 1.40]
2005-02-08 16:52 Igor Melichev
Implementing a conversion of a shading to a raster image for high level devices (continued 2). DETAILS : 1. When a patch possibly is self-overlapping, patch_fill passes an empty path (instead the patch boundary) to the device. Receiveing an empty path, the device knows that it must convert the coverage area into a mask. 2. pdfwrite converts self-overlapping patches into an imagemask with a colored pattern color, which paints the shading image. See the new code and comments in gdevpdfd.c. 3. An auxiliary function is added to gsptype2.c . 4. Probably we'll need to break big patterns into small ones against the printer RAM overflow. Delaying for a while. EXPECTED DIFFERENCES : None.[src/devs.mak 1.123, src/gdevpdfd.c 1.46, src/gsptype2.c 1.17, src/gsptype2.h 1.12, src/gxshade6.c 1.90]
2005-02-08 15:57 Igor Melichev
ps2write : Allow image compression. EXPECTED DIFFERENCES : None. 3[lib/ps2write.bat 1.5]
Fix for 687849 Unrecoverable error, converting PDF to TIF. Igor determined that the file has a problem that that causes the XREF rebuilding logic to be invoked and that object 74 0 was not being found. With this fix, we are able to rebuild the file. DETAILS: The XREF rebuild logic uses a working string while searching for objects. Object 74 0 was not being found because it is larger than the working string. This fix increases the working string size to 65535 bytes (the maximum size for a string).[lib/pdf_rbld.ps 1.8]
Update the currentpoint after processing invisible text. BUg 687860. DETAILS: This could be more efficient, but invisible text is not assumed to be very performance sensitive. I tested the bugs related to this one (see the bug report) and this patch still works for those. Expected Differences: None.[lib/pdf_ops.ps 1.38]
Fix for miterlimit value that is smaller than PostScript PLRM allows. Bug 687895. Somewhat based on patch from Alex Cherepanov. DETAILS: The patch from Alex issued a pdfformaterror *** Warning but reading the PDF specification, the minimum value of 1 given in the PostScript ref manual is NOT stated, so we clamp the value to a lower bound of 1 silently.[lib/pdf_draw.ps 1.90]
Some dependencies were missing that caused the build to fail when a subset of DEVICE_DEVS were included. Specifically, zlib and the 'display' device were problems. Bug 687920 for customer #580. DETAILS: Apparently the needed modules for zlib have changed, but when a 'png' device was included, the crc32 module was included anyway. The display device didn't include several dependencies for the new DeviceN and Spot Color support: gdevdevn.obj gsequivc.obj gdevdcrd.obj[src/devs.mak 1.122, src/zlib.mak 1.9]
2005-01-31 03:08 Igor Melichev
Implementing a conversion of a shading to a raster image for high level devices (continued). DETAILS : 1. In pdf_copy_color_data, allowed the new value 2 for the parameter for_pattern. In this case non-lossless filters are allowed. 2. In gdev_pdf_fill_path, fixed the grouping of clip paths for all meshes|patches of a shading. 3. In gdev_pdf_fill_path, used the shading BBox to minimize the size of the raster image. 4. In gdevpdfp.c allowed CompatibilityLevel=1.1 . Now this is done mainly for debug purpose, but likely we'll use it in ps2write when the target doesn't handle TT fonts. 5. The new function gx_dc_pattern2_get_bbox works for (3). 6. The function shade_bbox_transform2fixed has been renamed into gx_dc_pattern2_shade_bbox_transform2fixed with making its scope bigger to work for (5). It has been moved into gsptype2.c, which is mode fundamental than gxshade.c . The following changes happened due to that : gsptype2.c, gsptype2.h, gsshade.c, gxshade.c, gxshade1.c, gxshade4.c. We would like to do more cleanup with replacing it with gx_dc_pattern2_get_bbox, but currently we delay that to simplify this patch. 7. Introduced a new field patch_curve_t::straight to know whether a patch boundary is a straight line. patch_fill uses it when passing the shading coverage area. 8. mesh_triangle now passes the coverage area. An auxiliary function mesh_triangle_rec is factored out for that. 9. patch_fill checks for self-overlapoped patches and prints a warning is the patch appears suspicious. Comments in patch_fill about that have been improved. 10. patch_fill and mesh_triangle check the sign odf the coverage area, and change the contour direction for making all contours be positive. This works for proper clipping. 11. Fixed compressed streams in opdfread.ps . EXPECTED DIFFERENCES : None.[src/gdevpdfb.c 1.25, src/gdevpdfd.c 1.45, src/gdevpdfp.c 1.43, src/gsptype2.c 1.16, src/gsptype2.h 1.11, src/gsshade.c 1.14, src/gxshade.c 1.22, src/gxshade.h 1.12, src/gxshade1.c 1.36, src/gxshade4.c 1.28, src/gxshade6.c 1.89, lib/opdfread.ps 1.38, src/gxshade4.h 1.38, src/lib.mak 1.205]
2005-01-31 02:02 Igor Melichev
Fix (pdfwrite) : Improving the check for a degenerate curve. DETAILS : This is a minor optimization for the case when a curve degenerates to a dot. The old code converted it into the PDF instruction 'y', which looks uneven. EXPECTED DIFFERENCES : pdfwrite : "Openhuis_pdf_zw.pdf"[src/gdevpsdu.c 1.22]
2005-01-30 23:49 Igor Melichev
A new implementation of shadings, step 88. DETAILS : The function is_bended could give a wrong result (false instead true) when the first vector product is zero. This could cause insufficient subdivision. EXPECTED DIFFERENCES : normal, 72dpi : "442-01.ps" "446-01-fixed.ps" "483-05-fixed.ps" normal, 300dpi : "442-01.ps" pdfwrite 72dpi : "442-01.ps" normal 300dpi : "442-01.ps"[src/gxshade6.c 1.88]
2005-01-30 20:59 Igor Melichev
Fix (pdfwrite) : Uninitialized variables when applying LZWEncode. DETAILS : Normally pdfwrite doesn't apply LZWEncode since it prefers FlateEncode. Meanwhile ps2write needs LZWEncode, and we found unitialized variables in there. EXPECTED DIFFERENCES : None.[src/gdevpsdi.c 1.33]
2005-01-28 19:11 Igor Melichev
Implementing a convertion of a shading to a raster image for high level devices. DETAILS : If a high level device can't handle a shading, it is being converted to a raster image. This patch implements it only in OrderResources mode. A generalization to "normal" mode will be done in a separate patch. The generated bitmap sometimes appears too big since it doesn't accout a bbox of a real shading coverage. An optimization is coming soon. 1.The device virtual function pattern_manage now handles a new request pattern_manage__shading_area. If it returns 1, the graphics library will pass the shading area as a special call to fill_path, with passing NULL images\r state and NULL clipping path. Such call immediately follows pattern_manage(...., pattern_manage__shading_area). Currently it goes only to a special converter device (see below), other devices and the default implementation return 0 for pattern_manage(...., pattern_manage__shading_area). 2. A new local type pdf_lcvd_t implements a subclass for memory device, which is used especially for converting shadings to raster image. It is defined locally in pdfwrite. The subcalss redefines 4 device methods : 2.1. fill_rectangle with shifting the device space. It is used to mapo the shading and its paths to the image coordinate system. 2.2. get_clipping_box returns the target clipping box, to deceive a cut-off condition in the shading algorythm. 2.3. pattern_manage returns 1 for pattern_manage__shading_area. 2.4. fill_path is used only for handling the shading area. It sets a clipping when instantiating the bitmap. 3. gdev_pdf_fill_path implements the convertion with (2). 4. gs_shading_fill_path doesn't set up a clipper device when it works with the shading convertion device. Instead that the clipping path is being passed through (2.4). 5,. patch_fill in gxshade6.c checks if the devices needs the shading area, and if so, passes the area throuhg the special call to fill_path. EXPECTED DIFFERENCES : None.[src/devs.mak 1.121, src/gdevpdfb.c 1.24, src/gdevpdfd.c 1.44, src/gdevpdfg.h 1.36, src/gdevpdfi.c 1.58, src/gdevvec.h 1.16, src/gsshade.c 1.13, src/gx.h 1.43, src/gxdevcli.h 1.35, src/gxshade6.c 1.87]
fix memory leak for indexed color space data when banding. In gxclrast.c::clist_playback_band() color_space.params.indexed.lookup.table.data leaked on a per band basis. table.size indicates allocated memory which is freed at the end of the routine. The reallocate case when multiple colorspaces are used per band was correctly handled. Using a more descriptive client name of "color_space indexed table".[src/gxclrast.c 1.32]
2005-01-28 18:11 Igor Melichev
Fix : gx_forward_pattern_manage missed a return code. EXPECTED DIFFERENCES : None.[src/gdevnfwd.c 1.27]
Fix: Resolve indirect object references in Widths array. Fixes bug #687906.[lib/pdf_font.ps 1.76]
Fix update_specific so that it gets the correct parameters for pdfwrite testing. It was previously using the superset of raster parameters.[toolbin/tests/update_specific 1.5]
2005-01-25 22:22 Igor Melichev
(pdfwrite) : Don't skip white color while painting a pattern (continued 2). DETAILS : This change is important for ps2write only. It is algorithmically equivalent for other invocations. 1. The patch http://ghostscript.com/pipermail/gs-cvs/2005-January/005163.html broke the OrderResources mode. Fixed in gdevpdfu.c . This is another fix to that. 2. Removed the hack about writing non-eexec fonts because PDF specification doesn't allow it. Rather ps2write can handle them, we use a PDF viewer to debug the writer. EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.65, src/gdevpdtb.c 1.32]
2005-01-25 21:23 Igor Melichev
Fix (PDF interpreter) : A minor change for fixing the repository consistency. DETAILS : A wrong revision of pdf_font.ps was committed by error and then removed. This minor change in a space provides a right repository synchronization. EXPECTED DIFFERENCES : None.[lib/pdf_font.ps 1.75]
Fix for an infinite loop in a PDF file that uses Patterns. Bug 687802 for customer #850. DETAILS: The problem was that the DefaultQstate used when making a Pattern was the device *BEFORE* the pdf14 device filter was inserted as the device. If the underlying device had a different 'depth' than the PDF14 device, the pattern cache lookup would always fail which would then cause the fill to return e_RemapColor and perform the PaintProc again. The 'depth' comparison is in gsptype1.c in the gx_pattern_cache_lookup function. The fix is to set the DefaultQstate *AFTER* the pushpdf14devicefilter is performed (and of course also reset it after popdevicefilter is done). Expected Differences: None (we didn't have any regression tests that use Patterns in pages with transparency). In fact, we only had two pages with ANY transparency: ai2.pdf and dina3_watermark.pdf.[lib/pdf_main.ps 1.90]
2005-01-25 20:28 Igor Melichev
ps2write : Improving the output file structure (continued). DETAILS : Removed a debug option that was added unintentionally. EXPECTED DIFFERENCES : None.[lib/ps2write.bat 1.4]
2005-01-25 18:39 Igor Melichev
ps2write : Improving the output file structure (continued). DETAILS : Removed a debug option that was added unintentionally. EXPECTED DIFFERENCES : None.[lib/ps2write.bat 1.3]
2005-01-25 18:33 Igor Melichev
ps2write : Improving the output file structure. DETAILS : 1. Merge opdfread.ps and opdferrh.ps . 2. Fix a header commant in opdfread. 3. Remove opdferrh.ps from ps2write.bat and from documentation. 4. Change the documentation since ps2write is not a "device". EXPECTED DIFFERENCES : None.[lib/opdfrerh.ps 1.3]
2005-01-25 18:30 Igor Melichev
ps2write : Improving the output file structure. DETAILS : 1. Merge opdfread.ps and opdferrh.ps . 2. Fix a header commant in opdfread. 3. Remove opdferrh.ps from ps2write.bat and from documentation. 4. Change the documentation since ps2write is not a "device". EXPECTED DIFFERENCES : None.[doc/Psfiles.htm 1.59, lib/opdfread.ps 1.37, lib/ps2write.bat 1.2]
2005-01-25 18:26 Igor Melichev
(pdfwrite) : Don't skip white color while painting a pattern (continued). DETAILS : 1. The patch http://ghostscript.com/pipermail/gs-cvs/2005-January/005163.html broke the OrderResources mode. Fixed in gdevpdfu.c . 2. Error codes were wrongly propagated in gdevpdfd.c . EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.43, src/gdevpdfu.c 1.64]
2005-01-25 11:18 Igor Melichev
Fix (the filling algorithm) : Drpouts could appear at Y-extremes of the path. DETAILS : Bug 687717 "Dropouts at Y-extremes when filling a path". EXPECTED DIFFERENCES : Normal, 72pdi : "0.pdf" "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "017-01.ps" "020-01.ps" "027-01.ps" "027-05.ps" "027-09.ps" "031-01.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "036-01.ps" "039-01.ps" "045-01.ps" "083-01.ps" "083-05.ps" "083-09.ps" "083-13.ps" "104-01.ps" "109-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "136-01.ps" "148-16.ps" "150-01.ps" "154-01.ps" "158-01.ps" "165-01.ps" "169-01.ps" "169-05.ps" "169-09.ps" "169-13.ps" "176-01.ps" "181-01.ps" "192-01.ps" "1_2001.pdf" "1_pct_50_bang.pdf" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "212-01.ps" "213-01.ps" "214-01.ps" "220-01.ps" "220-07.ps" "222-01.ps" "222-05.ps" "222-09.ps" "222-13.ps" "223-01.ps" "226-01.ps" "244-01.ps" "245-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "250-01.ps" "251-01.ps" "255-01.ps" "258-01.ps" "260-01.ps" "264-01.ps" "269-01.ps" "270-01.ps" "281-01.ps" "289-01.ps" "297-01.ps" "303-01.ps" "307-01.ps" "307-07.ps" "308-04.ps" "311-03.ps" "316-07.ps" "320-01.ps" "335-01.ps" "336-01.ps" "446-01-fixed.ps" "455690.pdf" "687572.pdf" "86554321.pdf" "a.pdf" "adesso1.pdf" "adesso6.pdf" "adesso8.pdf" "Altona-Testsuite_p2_S_x3.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Measure_1v1.pdf" "Altona_Technical_1v1_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "BEST8-99-Path.fh7.pdf" "besttest.pdf" "budget2.pdf" "budget2_ai87.pdf" "Bug1344.ps" "Bug687044.ps" "Bug687207.ps" "Bug687396.ps" "Bug687546.ps" "Bug687603.pdf" "Bug687603.ps" "Bug687660.ps" "Bug687660a.ps" "Bug687698.ps" "Bug687724.pdf" "Bug687812.ps" "Bug687828.pdf" "Bug687840.pdf" "bugsample.pdf" "BW0696FOLD1FRONT.pdf" "ca.pdf" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "colorcir.ps" "DisplayedGood.pdf" "DisplayedWrong.pdf" "escher.ps" "file2.pdf" "golfer.eps" "gs.anotherfailure.pdf" "gs5.98-dragon.pdf" "gs6.0-dragon.pdf" "gslandscape.pdf" "H00216q.pdf" "InstandardBuildChar.ps" "john_clippedimage.pdf" "knight.pdf" "LMG-40-7161-RU-DUC-01.pdf" "messenger.pdf" "messenger16.pdf" "motor.pdf" "muur.eps" "Openhuis_pdf_zw.pdf" "Page01.pdf" "PixelisAd.pdf" "probe3.pdf" "PT.ps" "ridt91.eps" "RodinCIDEmbed.pdf" "S2_Digitalproof-Forum_circles.pdf" "S2_Digitalproof-Forum_x3k.pdf" "shading_prob_800.ps" "si_tg_brochure.pdf" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "test.pdf" "tiger.eps" "time1.pdf" "type3xshow.eps" "unihaken-color.pdf" "vasarely.ps" "vsem0093.pdf" Normal, 300dpi : "0.pdf" "001-13.ps" "002-09.ps" "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "017-01.ps" "01_001.pdf" "020-01.ps" "027-01.ps" "027-05.ps" "027-09.ps" "027-13.ps" "031-01.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "035-07.ps" "036-01.ps" "039-01.ps" "045-01.ps" "083-01.ps" "083-05.ps" "083-09.ps" "083-13.ps" "102-01.ps" "103-01.ps" "104-01.ps" "109-01.ps" "118-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "136-01.ps" "148-16.ps" "149-05.ps" "150-01.ps" "154-01.ps" "158-01.ps" "165-01.ps" "169-01.ps" "169-05.ps" "169-09.ps" "169-13.ps" "175-01.ps" "176-01.ps" "181-01.ps" "192-01.ps" "1_2001.pdf" "1_pct_50_bang.pdf" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "212-01.ps" "213-01.ps" "214-01.ps" "220-01.ps" "220-07.ps" "222-01.ps" "222-05.ps" "222-09.ps" "222-13.ps" "223-01.ps" "226-01.ps" "231-01.ps" "237-01.ps" "244-01.ps" "245-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "250-01.ps" "251-01.ps" "255-01.ps" "257-01.ps" "258-01.ps" "260-01.ps" "264-01.ps" "269-01.ps" "270-01.ps" "281-01.ps" "289-01.ps" "297-01.ps" "298-01.ps" "298-05.ps" "298-09.ps" "303-01.ps" "307-01.ps" "307-07.ps" "308-04.ps" "310-04.ps" "311-03.ps" "316-07.ps" "320-01.ps" "321-01.ps" "321-05.ps" "321-09.ps" "321-13.ps" "327-01.ps" "334-01.ps" "335-01.ps" "336-01.ps" "442-01.ps" "446-01-fixed.ps" "687572.pdf" "86554321.pdf" "a.pdf" "adesso8.pdf" "Altona-Testsuite_p2_S_x3.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Measure_1v1.pdf" "Altona_Technical_1v1_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "BEST8-99-Path.fh7.pdf" "besttest.pdf" "budget2.pdf" "budget2_ai87.pdf" "Bug1344.ps" "Bug687044.ps" "Bug687207.ps" "Bug687396.ps" "Bug687472.ps" "Bug687489.ps" "Bug687546.ps" "Bug687598.ps" "Bug687603.pdf" "Bug687603.ps" "Bug687660.ps" "Bug687660a.ps" "Bug687698.ps" "Bug687724.pdf" "Bug687812.ps" "Bug687828.pdf" "Bug687832.pdf" "Bug687840.pdf" "bugsample.pdf" "bulletin.pdf" "BW0696FOLD1FRONT.pdf" "ca.pdf" "CAT_LOGO.ps" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "colorcir.ps" "DisplayedGood.pdf" "DisplayedWrong.pdf" "doretree.ps" "Es001-01.pdf" "escher.ps" "file.pdf" "file2.pdf" "Fixed_Original.pdf" "golfer.eps" "gs.anotherfailure.pdf" "gs5.98-dragon.pdf" "gs6.0-dragon.pdf" "H00216q.pdf" "InstandardBuildChar.ps" "john_clippedimage.pdf" "knight.pdf" "LMG-40-7161-RU-DUC-01.pdf" "messenger.pdf" "messenger16.pdf" "motor.pdf" "mspro.pdf" "muur.eps" "non-sepqxd2distiller.pdf" "Openhuis_pdf_zw.pdf" "Original.pdf" "p2b-100.pdf" "Page01.pdf" "PixelisAd.pdf" "probe3.pdf" "PT.ps" "QA_Inv.pdf" "ridt91.eps" "RodinCIDEmbed.pdf" "rotate0.pdf" "rotate180.pdf" "rotate270.pdf" "rotate90.pdf" "S2_Digitalproof-Forum_circles.pdf" "S2_Digitalproof-Forum_x3k.pdf" "shading_prob_800.ps" "si_tg_brochure.pdf" "SmoothShading.pdf" "Svd.pdf" "test.pdf" "tiger.eps" "time1.pdf" "Type3stringwidth.ps" "type3xshow.eps" "unihaken-color.pdf" "UnusualFontMatrix.ps" "vasarely.ps" "vsem0093.pdf" pdfwrite,72dpi : "0.pdf" "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "017-01.ps" "01_001.pdf" "020-01.ps" "027-01.ps" "027-05.ps" "027-09.ps" "031-01.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "039-01.ps" "045-01.ps" "083-01.ps" "083-05.ps" "083-09.ps" "083-13.ps" "093-01.ps" "103-01.ps" "104-01.ps" "109-01.ps" "118-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "136-01.ps" "148-16.ps" "150-01.ps" "154-01.ps" "158-01.ps" "165-01.ps" "169-01.ps" "169-05.ps" "169-09.ps" "169-13.ps" "176-01.ps" "181-01.ps" "192-01.ps" "1_2001.pdf" "1_pct_50_bang.pdf" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "212-01.ps" "213-01.ps" "214-01.ps" "220-01.ps" "220-07.ps" "222-01.ps" "222-05.ps" "222-09.ps" "222-13.ps" "223-01.ps" "226-01.ps" "237-01.ps" "244-01.ps" "245-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "250-01.ps" "251-01.ps" "255-01.ps" "258-01.ps" "260-01.ps" "264-01.ps" "269-01.ps" "270-01.ps" "281-01.ps" "297-01.ps" "303-01.ps" "307-01.ps" "307-07.ps" "308-04.ps" "311-03.ps" "316-07.ps" "320-01.ps" "335-01.ps" "336-01.ps" "446-01-fixed.ps" "455690.pdf" "687572.pdf" "86554321.pdf" "a.pdf" "adesso1.pdf" "adesso6.pdf" "adesso8.pdf" "Altona-Testsuite_p2_S_x3.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Measure_1v1.pdf" "Altona_Technical_1v1_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "annots.pdf" "BEST8-99-Path.fh7.pdf" "besttest.pdf" "budget2.pdf" "budget2_ai87.pdf" "Bug1344.ps" "Bug687044.ps" "Bug687207.ps" "Bug687396.ps" "Bug687546.ps" "Bug687603.pdf" "Bug687603.ps" "Bug687660.ps" "Bug687660a.ps" "Bug687698.ps" "Bug687724.pdf" "Bug687812.ps" "Bug687828.pdf" "Bug687832.pdf" "Bug687840.pdf" "bugsample.pdf" "bulletin.pdf" "BW0696FOLD1FRONT.pdf" "ca.pdf" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "colorcir.ps" "DisplayedGood.pdf" "DisplayedWrong.pdf" "escher.ps" "file2.pdf" "golfer.eps" "gs.anotherfailure.pdf" "gs5.98-dragon.pdf" "gs6.0-dragon.pdf" "gslandscape.pdf" "GS_Stroke_error.pdf" "H00216q.pdf" "InstandardBuildChar.ps" "john_clippedimage.pdf" "knight.pdf" "LMG-40-7161-RU-DUC-01.pdf" "messenger.pdf" "messenger16.pdf" "motor.pdf" "mspro.pdf" "muur.eps" "Openhuis_pdf_zw.pdf" "Page01.pdf" "PixelisAd.pdf" "probe3.pdf" "PT.ps" "RodinCIDEmbed.pdf" "rotate180.pdf" "S2_Digitalproof-Forum_circles.pdf" "S2_Digitalproof-Forum_x3k.pdf" "shading_prob_800.ps" "si_tg_brochure.pdf" "SmoothShading.pdf" "test.pdf" "tiger.eps" "time1.pdf" "type3xshow.eps" "unihaken-color.pdf" "vasarely.ps" "vsem0093.pdf" pdfwrite 300dpi: "0.pdf" "001-13.ps" "002-09.ps" "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "017-01.ps" "01_001.pdf" "020-01.ps" "027-01.ps" "027-05.ps" "027-09.ps" "027-13.ps" "031-01.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "035-07.ps" "036-01.ps" "039-01.ps" "045-01.ps" "083-01.ps" "083-05.ps" "083-09.ps" "083-13.ps" "093-01.ps" "102-01.ps" "103-01.ps" "104-01.ps" "109-01.ps" "118-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "136-01.ps" "148-16.ps" "149-05.ps" "150-01.ps" "154-01.ps" "158-01.ps" "165-01.ps" "169-01.ps" "169-05.ps" "169-09.ps" "169-13.ps" "175-01.ps" "176-01.ps" "181-01.ps" "192-01.ps" "1_2001.pdf" "1_pct_50_bang.pdf" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "212-01.ps" "213-01.ps" "214-01.ps" "220-01.ps" "220-07.ps" "222-01.ps" "222-05.ps" "222-09.ps" "222-13.ps" "223-01.ps" "226-01.ps" "231-01.ps" "237-01.ps" "244-01.ps" "245-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "250-01.ps" "251-01.ps" "255-01.ps" "257-01.ps" "258-01.ps" "260-01.ps" "264-01.ps" "269-01.ps" "270-01.ps" "281-01.ps" "297-01.ps" "298-01.ps" "298-05.ps" "298-09.ps" "303-01.ps" "307-01.ps" "307-07.ps" "308-04.ps" "310-04.ps" "311-03.ps" "316-07.ps" "320-01.ps" "321-01.ps" "321-05.ps" "321-09.ps" "321-13.ps" "327-01.ps" "334-01.ps" "335-01.ps" "336-01.ps" "442-01.ps" "446-01-fixed.ps" "483-05-fixed.ps" "687572.pdf" "86554321.pdf" "a.pdf" "adesso1.pdf" "adesso7.pdf" "adesso8.pdf" "Altona-Testsuite_p2_S_x3.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Measure_1v1.pdf" "Altona_Technical_1v1_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "BEST8-99-Path.fh7.pdf" "besttest.pdf" "budget2.pdf" "budget2_ai87.pdf" "Bug1344.ps" "Bug687044.ps" "Bug687207.ps" "Bug687396.ps" "Bug687472.ps" "Bug687489.ps" "Bug687546.ps" "Bug687598.ps" "Bug687603.pdf" "Bug687603.ps" "Bug687660.ps" "Bug687660a.ps" "Bug687698.ps" "Bug687724.pdf" "Bug687812.ps" "Bug687828.pdf" "Bug687832.pdf" "Bug687840.pdf" "bugsample.pdf" "bulletin.pdf" "BW0696FOLD1FRONT.pdf" "ca.pdf" "CAT_LOGO.ps" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "colorcir.ps" "DisplayedGood.pdf" "DisplayedWrong.pdf" "doretree.ps" "Es001-01.pdf" "escher.ps" "file.pdf" "file2.pdf" "Fixed_Original.pdf" "golfer.eps" "gs.anotherfailure.pdf" "gs5.98-dragon.pdf" "gs6.0-dragon.pdf" "GS_Stroke_error.pdf" "H00216q.pdf" "InstandardBuildChar.ps" "john_clippedimage.pdf" "knight.pdf" "LMG-40-7161-RU-DUC-01.pdf" "messenger.pdf" "messenger16.pdf" "motor.pdf" "mspro.pdf" "muur.eps" "ngnews.pdf" "ngnews1.pdf" "non-sepqxd2distiller.pdf" "Openhuis_pdf_zw.pdf" "Original.pdf" "p2b-100.pdf" "Page01.pdf" "PixelisAd.pdf" "probe3.pdf" "PT.ps" "QA_Inv.pdf" "RodinCIDEmbed.pdf" "rotate0.pdf" "rotate180.pdf" "rotate270.pdf" "rotate90.pdf" "S2_Digitalproof-Forum_circles.pdf" "S2_Digitalproof-Forum_x3k.pdf" "shading_prob_800.ps" "si_tg_brochure.pdf" "SmoothShading.pdf" "Svd.pdf" "test.pdf" "test3.pdf" "tiger.eps" "time1.pdf" "Type3stringwidth.ps" "type3xshow.eps" "unihaken-color.pdf" "UnusualFontMatrix.ps" "vasarely.ps" "vsem0093.pdf" "xngnews.pdf"[src/gxfill.c 1.121, src/gxfilltr.h 1.12]
Always rebuild the jasper autoconf header when configure is run to prevent the persistence of stale versions. Closes bug 687852.[src/configure.ac 1.50]
2005-01-24 16:03 Igor Melichev
Fix (pdfwrite) : Register charproc XObjects with a page (continued); DETAILS : Fixing cygwin/gcc warnings in the last patch. EXPECTED DIFFERENCES : None.[src/gdevpdfg.h 1.35, src/gdevpdte.c 1.69, src/gdevpdtx.h 1.4]
2005-01-24 15:37 Igor Melichev
Fix (pdfwrite) : Register charproc XObjects with a page. DETAILS : If an XObject is uzed in a charproc, it has to be added to the page resource list. Bug 687894 "Wrong handling of Type 3 fonts (?)" Generalized pdf_font_resource_t::used_fonts, pdf_register_charproc_font and pdf_used_charproc_fonts for any resource type. EXPECTED DIFFERENCES : None.[src/gdevpdfj.c 1.33, src/gdevpdte.c 1.68, src/gdevpdtf.c 1.42, src/gdevpdtf.h 1.27, src/gdevpdts.c 1.28, src/gdevpdtx.h 1.3]
2005-01-24 12:19 Igor Melichev
Fix (pdfwrite) : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.67, src/gdevpdtt.c 1.99]
2005-01-24 12:00 Igor Melichev
Define more CMap resources. DETAILS : Adding more 4 redistributable Adobe CMaps. EXPECTED DIFFERENCES : None.[Resource/CMap/Adobe-CNS1-3 1.1, Resource/CMap/Adobe-GB1-4 1.1, Resource/CMap/Adobe-Japan1-4 1.1, Resource/CMap/Adobe-Korea1-2 1.1]
Add switch -dNO_TN5044 to disable the TN 5044 pusedo operators. These operators are needed from some QuarkXpress files but cause probems with some Illustrator 88 and Corel 9 files. Also add documentation to Use.htm. This is part of bug 687884.[lib/gs_lev2.ps 1.36, doc/Use.htm 1.127]
Add the "Identity-" CMaps to the decode list.[lib/gs_ciddc.ps 1.14]
Correct a comment typo.[src/sjbig2.h 1.5]
Fix for 687897 There are still devices not switched to new API. This change implements the DeviceN color related changes in the device API four these four source files. These devices are not normally part of the Ghostscript build but they are present in the GS sources.[src/gdevccr.c 1.6, src/gdevcp50.c 1.7, src/gdevifno.c 1.6, src/gdevmgr.c 1.8]
Add new files to the documentation listing.[doc/Develop.htm 1.144, doc/Psfiles.htm 1.58]
2005-01-17 14:58 Igor Melichev
(pdfwrite) : Don't skip white color while painting a pattern. DETAILS : Bug 687890 "pattern misconverted". 1. Don't skip white color while painting a pattern (gdevpdfd.c). 2. The "%PDF-" file tag was erroneusely written into the pattern stream (gdevpdfu.c). EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.42, src/gdevpdfu.c 1.63]
2005-01-13 17:07 Igor Melichev
(ps2write) : Convert unsupported font types into bitmap fonts (continued). DETAILS : This patch is a part of ps2write project. It has no effect with "usual" invocation of Ghostscript. 1. A code for setting the device parameter HaveCIDSystem was missed from the last patch. Adding it now. 2. Replace a magic constant with a meanful name psdf_version_ll3. EXPECTED DIFFERENCES : None.[src/gdevpdfp.c 1.42, src/gdevpsdf.h 1.25]
2005-01-13 16:58 Igor Melichev
(ps2write) : Convert unsupported font types into bitmap fonts. DETAILS : This patch is a part of ps2write project. It has no effect with "usual" invocation of Ghostscript. 1. If the target device doesn't support Postscript version 2010, convert Type 42 fonts into bitmap fonts. 2. Ever convert Type1C into bitmaps since Postscript level 2 can't handle Type 2 charstrings. 3. Convert CIDFontType0 into bitmap if the target device has no CID system installed or the font has Type 2 subfonts. 4. Convert CIDFontType2 into bitmap if the target device has no CID system installed or it doesn't support Postscript version 2010. 5. A new device parameter HaveCIDSystem is defined to the pdfwrite device to provide information for (3), (4). A new function gs_cid0_has_type2 is defined to implement (3). Also fixed a header comment gs_cid0_indexed_font, which was entirely wrong. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.98, src/gdevpsdf.h 1.24, src/gsfcid.c 1.14, src/gxfcid.h 1.14]
2005-01-13 12:26 Igor Melichev
(ps2write) : Require lesser encoding resources. DETAILS : This patch is a part of ps2write project. It has no effect with "usual" invocation of Ghostscript. 1. Defined a new device parameter PSVersion to the pdfwrite device. It is being ignored without OrderResources. Reserved for future development. 2. pdf_refine_encoding_index allows lesser encodings with OrderResources. 3. MacRomanEncoding and MacGlyphEncoding are still needed for True Type fonts. Their access has been simplified in lib/opdfread.ps, lib/opdfrerh.ps . 4. Created gs/lib/ps2write.bat to simplify the further maintenance of the file list to be concatenated. EXPECTED DIFFERENCES : None.[src/gdevpdfp.c 1.41, src/gdevpdtt.c 1.97, src/gdevpsdf.h 1.23, lib/opdfread.ps 1.36, lib/opdfrerh.ps 1.2, lib/ps2write.bat 1.1]
Update broken Adobe documentation links. Closes bug 687892.[doc/Ps2epsi.htm 1.37, doc/Ps2pdf.htm 1.75, doc/Readme.htm 1.62, doc/Use.htm 1.126]
Correct a typo in the installation file list. Closes bug 687891.[src/unixinst.mak 1.38]
2005-01-12 10:23 Igor Melichev
(ps2write) : Provide a compatibility to Adobe CPSI. DETAILS : This patch is a part of ps2write project. It has no effect with "regular" invocation. 1. Defined an error handler and necessary GS-specific operators in a new file opdfrerh.ps . 2. Defined the missed debug switch TTFDEBUG. 3. Defined a debug printing 'printdict', 'printfont'. 4. Fixed an unconformity in FunctionToProc4 with 'run'. 5. Fixed an unconformity: encoding must not be packed arrays ('packedarray' in opdfrerh.ps). A minor massive change : inserted a space between '=' to distinguish temporary and permanent debug printing. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.35, lib/opdfrerh.ps 1.1]
2005-01-12 10:09 Igor Melichev
Fix (pdfwrite) : Wrong options were passed to psf_write_type1_font. DETAILS : This patch is a part of ps2write project. It has no effect with "regular" invocation (when OrderResources=false). EXPECTED DIFFERENCES : None.[src/gdevpdtb.c 1.31]
2005-01-11 12:34 Igor Melichev
[Log message beg] Fix : Unimplemented CIDFont feature with a Type 3 font descendent (continued). DETAILS : This is a partial fix for the bug 687875 "pdfwrite : Type 0 FMapType 9 font with a Type 3 descendent converts to bitmaps". The old code created two fonts and duplicated the text. With this path the font still converts to bitmaps, but the text duplication is fixed. EXPECTED DIFFERENCES : pdfwrite Bug687845.ps[src/gdevpdtt.c 1.96]
2005-01-10 14:54 Alex Cherepanov
Ignore / as a name of BaseEncoding; recover broken PDF files generated by J.D.Edwards OneWorld (B7333). Fix bug 687786 from customer 220.[lib/pdf_font.ps 1.74]
2005-01-10 14:33 Igor Melichev
Fix (the new filling algorithm) : Prevent painting outside the clipping box. DETAILS : Bug 687872 "access violation in GS 8.50". When a trapesoid degenerates to a rectangle, the old code wrongly truncated it with the clipping box. Minor change : Moved ybot, ytop definitions closer to their usage. Due to another known bug 687717, this patch may sometimes cause a regression, which looks as another missed pixel at a path's Y extreme. Such regression, when it appears with this patch, to be considered as a part of the problem 687717. Expected differences are such cases. EXPECTED DIFFERENCES : Normal, 300 dpi : "Clarke Tate Manns Chinese.ai" "doretree.ps" "gs5.98-dragon.pdf" "gs6.0-dragon.pdf" "QA_Inv.pdf" "shading_prob_800.ps" pdfwrite 300 dpi : "doretree.ps" "gs5.98-dragon.pdf" "gs6.0-dragon.pdf" "QA_Inv.pdf"[src/gxfilltr.h 1.11]
2005-01-10 11:32 Igor Melichev
Fix : CDevProc|Metrics|Metrics2 did not work with CIDFontType 0 (continued 2). DETAILS : Bug 687832 (PDF interpreter) : CID Font in PDF The CDevProc output was transformed with w CID font leaf's FontMatrix. See comment in code. EXPECTED DIFFERENCES : None.[src/gxchar.c 1.44]
Fix for possibly non-compliant PDF where the /DecodeParms for a stream is an array, but the /F consists of a single filter name. Bug 687861 for customer 700.[lib/pdf_base.ps 1.45]
2004-12-25 10:49 Alex Cherepanov
Search the whole PDF file for the last occurrence of %%EOF string starting from the last 1024 bytes. Following Acrobat example, accept invalid PDF files that have large number of junk bytes at the end. Fix bug 687474 from customer 580.[lib/pdf_main.ps 1.89]
2004-12-23 23:48 Igor Melichev
Fix : CDevProc|Metrics|Metrics2 did not work with CIDFontType 0 (continued). DETAILS : Bug 687846 "parenthesis misplaced and text strings too long with vertical text". The bug title is mosleading - actually all glyphs were shifted, but parenthesis were shifted in another direction due to a different WMode. We didn't pass actual glyph width to CDevProc when use_FontBBox_as_Metrics2 is true - see the patch. I reacll that I wrote this portion of code from scratch 3 years ago. Our test base did not include test cases for it. Now we got one. EXPECTED DIFFERENCES : None.[src/zchar1.c 1.43]
2004-12-22 18:52 Igor Melichev
Fix : Unimplemented CIDFont feature with a Type 3 font descendent. DETAILS : Bug 645316 Quark EPS file with CID fonts Bug 687845 text doesn't appear from embedded japanese font Bug 687847 text missing from CIDFont From PLRM3 section 5.11 page 389 : Under special conditions, a CID can be used when the descendant is a Type 3 base font. The font's BuildGlyph or BuildChar procedure is invoked to render a character whose code is the last byte originally extracted from the show string. If this procedure executes setfont to establish a CIDFont as the current font and then executes a show operation on a string consisting of just that character code, the code is ignored; instead, the CID determined by the earlier CMap mapping is used to look up the glyph in the CIDFont. This special case exists for compatibility with applications that substitute Type 3 fonts for base fonts in a composite font hierarchy to achieve certain special effects. This patch fixes the PS interpreter, but pdfwrite processing needs a separate improvement, which is described in the new bug 687875. EXPECTED DIFFERENCES : None.[src/gstext.c 1.19, src/gxtext.h 1.16, src/int.mak 1.133, src/zchar.c 1.16]
2004-12-21 20:13 Igor Melichev
Fix (TT interpreter) : Provide a tolerance to the FDef array overflow. DETAILS : Bug 687858 /invalidfont in --charpath--. A buggy TT fopnt defines more functions than the max profile specifies. EXPECTED DIFFERENCES : None.[src/ttobjs.c 1.9]
2004-12-21 11:27 Igor Melichev
Fix (PDF interpreter) : The interpretation must not depend on the font subset prefix. DETAILS : Bug 687856 "PDF interpretation depends on the font subset prefix.". 1. Remaned pdfcachefont into pdffindcachedfont for a better reflection of its function. 2. Defined pdfaddcachedfont. 3. Used it immediately when an embedded font is loaded. 4. Added a comment to code. See it for more details. EXPECTED DIFFERENCES : pdfwrite tpc2.ps[lib/pdf_font.ps 1.73]
2004-12-21 08:53 Igor Melichev
Fix (pdfwrite) : Propagate error code from setup_image_compression. DETAILS : Bug 687854 "-dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode" doesn't work . EXPECTED DIFFERENCES : None.[src/gdevpsdi.c 1.32]
2004-12-20 22:35 Igor Melichev
Fix : Targets gconfxx.h and ld.tr had an incorrect dependence in the makefile. DETAILS : Bug 687059 "Re-building a ready gswin32.exe". The old rule $(ld_tr) : $(gconfig_h) wrongly established a dependence opposite to the file modification order. Diagnosed with inserting "echo xxxxxxxxxxx" after the rule above. Made the order of targets to be same as the order of file modifications when they are created with genconf.exe and echogs.exe . EXPECTED DIFFERENCES : None.[src/gs.mak 1.30]
2004-12-20 22:22 Igor Melichev
Fix : Restore missed dependencies on gconfxx.h . DETAILS : This is a preparation for fixing the bug Bug 687059 "Re-building a ready gswin32.exe". We prefer to commit it separately, since it's definitely an independent bug. EXPECTED DIFFERENCES : None.[src/int.mak 1.132, src/lib.mak 1.204]
2004-12-20 22:17 Igor Melichev
Fix : Completely remove the platform dependent target lib.tr from makefiles. DETAILS : This is a preparation for fixing the bug Bug 687059 "Re-building a ready gswin32.exe". The file lib.tr was created for old linkers, which can't handle objs and libs in a single list file. This change affects FAPI, which only uses a list of libs, and only on Windows and OS/2 platforms. We did not test Borland and Watcom compilers, but unlikely FAPI is compiled with them. EXPECTED DIFFERENCES : None.[src/bcwin32.mak 1.36, src/genconf.c 1.10, src/gs.mak 1.29, src/msvc32.mak 1.69, src/msvccmd.mak 1.24, src/msvclib.mak 1.29, src/os2.mak 1.44, src/watcw32.mak 1.33, src/winint.mak 1.24]
2004-12-19 17:24 Igor Melichev
Fix (pdfwrite) : The "NeverEmbed" logics was broken (continued 2). DETAILS : Bug 687836 "Crash with -dNeverEmbed". Fixes a cast in the previous patch. EXPECTED DIFFERENCES : None.[src/gdevpdtd.c 1.20]
2004-12-19 17:19 Igor Melichev
Fix (pdfwrite) : The "NeverEmbed" logics was broken (continued). DETAILS : Bug 687836 "Crash with -dNeverEmbed". Fixes 'const' in the previous patch. EXPECTED DIFFERENCES : None.[src/gdevpdtd.c 1.19]
2004-12-19 17:10 Igor Melichev
Fix (pdfwrite) : The "NeverEmbed" logics was broken. DETAILS : Bug 687836 "Crash with -dNeverEmbed". It was an inaccuracy (incomplete testing) when implementing PDFW_DELAYED_STREAMS for the ps2write project. EXPECTED DIFFERENCES : None.[src/gdevpdtd.c 1.18]
Fix for invalid (zero width) BBox in PDF Form Xobject or Annotation. Bug 687862 for customer 770.[lib/pdf_draw.ps 1.89]
2004-12-16 12:34 Igor Melichev
Fix (PDF interpreter) : Prefer 'post' to cmap 1.0, because obsolete PDF writers misuse the latter. DETAILS : Bug 687828 "pages retain some of earlier pages displayed/" The bug title above is misleading. Real problem is missing characters and rendering .notdef instead. This patch improves hewristics for choosing an encoding for True Type fonts. Obsolete versions of Distiller and Ghostscript wrote a cmap 1.0 (Macintosh Roman) into a PDF, which really uses a random encoding. For example, the test case of the bug 687828 encodes Arabian characters with cmap 1.0. Thits patch prefers to use 'post' table instead cmap 1.0, when a 'post' table presents, and font resource dictionary doesn't specify Encoding. Also improved a debug printing. EXPECTED DIFFERENCES : None.[lib/gs_ttf.ps 1.40, lib/gs_typ42.ps 1.7]
2004-12-15 23:21 Igor Melichev
Fix : A hang adding over 256 glyphs for a stable font copy. DETAILS : Bug 687816 "Hang in named_glyph_slot_hashed". 1. Added gs_copied_font_data_s::num_glyphs to monitor the current number of glyphs in a stable font copy (gxfcopy.c). 2. copy_glyph_data maintains gs_copied_font_data_s::num_glyphs (gxfcopy.c). 3. gs_copied_can_copy_glyphs checks whether the preallocated size of the glyphs array doesn't exceed (gxfcopy.c). 4. copy_glyph_data is fixed to return error code when trying to add a glyph over the preallocated size of the glyphs array (gxfcopy.c). 5. pdf_obtain_font_resource_encoded is changed to handle the case when new glyphs overflow the font copy (gdevpdtt.c). The changes above fix the bug, but we also provide an additional optimization with GLYPHS_SIZE_IS_PRIME 1 (gxfcopy.c): 6. Preallocate at least 257 ghyphs rather than 256 ones by the old code; This coners a font of 256 glyphs and 1 .notdef (gxfcopy.c). (Well, that could fix the hang in the sample case of the bug 687816, but generally there exist other cases due to the font merging, which require the changes 1-5 above. 7. Use primes numbers for the size of glyphs array instead powers of 2 against unprodactive expense of RAM (gxfcopy.c). When the changes 5 was done, a regression happened with tpc2.ps : pdfwrite generated an incorrect PDF. To fix that, we forced to do more changes : 8. pdf_register_charproc_font recieved a gs_id of the PS font instead the PDF object id. It caused a problem with multiple muster fonts, because MM instances have same id as the MM font. pdf_encode_string is changed to pass a correct resource id (gdevpdte.c), 9. Since tpc2.ps generates hundreds of MM font instances, the field pdf_font_resource_s::u.s.used_fonts may not have a staticly defined size. replaced with a dynamicly allocated array (gdevpdtf.h, gdevpdte.c). 10. Garbager descriptor for pdf_font_resource_s is changed to maintain (9). 11. A new function pdf_find_resource_by_resource_id is defined for the correct implementation of pdf_used_charproc_fonts (gdevpdfu.c). After it another tpc2.ps regression persisted : the character 'y' dissapperaed in some words. The following changes are done to fix that : 12. Improved thge hash function in pdf_add_subset_prefix (gdevpdtb.c). 13. Defined FINE_GLYPH_USAGE 1 for a better precision of the font subset, in the case when a PS interpreter callout happens fro CDevProc or for a Type 3 BuildChar (gdevpdfx.h, gdevpdte.c). Currently it works for non-CID fonts only. 14. Improved the diagnistics for the missed glyph in a Type 1 font (gs_type1.ps). Actually the last regression reflects another problem in the PDF interpreter, which is described in a new bug 687856. EXPECTED DIFFERENCES : pdfwrite : test-setweightvector.ps tpc2.ps The distilled tpc2.ps gets 1 progression and 1 regression. The progression is the glyph width. The regression is an ununiform stem width while rendering the PDF due to problem in the PDF interpreter. We describe that problem in the new bug 687857.[src/gdevpdfu.c 1.62, src/gdevpdfx.h 1.104, src/gdevpdtb.c 1.30, src/gdevpdte.c 1.66, src/gdevpdtf.c 1.41, src/gdevpdtf.h 1.26, src/gdevpdtt.c 1.95, src/gxfcopy.c 1.55, lib/gs_type1.ps 1.16]
2004-12-14 12:42 Igor Melichev
Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 5). DETAILS : Interval boundaries for subfunctions of a stitching function got an artithmetic error, which caused the interval to move outside the subfunction domain. Bug 687840 "/rangecheck in --fill--". The effect only appeared with MSVC6 release build. The hunk #2 of this patch fixes the particular problem, but we prefer to provide a better safety with the hunk #3. EXPECTED DIFFERENCES : None.[src/gsfunc3.c 1.23]
2004-12-14 09:32 Igor Melichev
Fix (TT grid fitting) : An assertion failed in the spot analyzer (continued). DETAILS : A condition for a stem prolongation was too weak. Bug 687823 "assert in gzspotan.c with ttcf2cid font". This re-applies the resent patch, which was reverted before 8.50 release. See http://ghostscript.com/pipermail/gs-cvs/2004-December/005087.html http://ghostscript.com/pipermail/gs-cvs/2004-December/005091.html EXPECTED DIFFERENCES : The list of differences, which are caused by the patch, is applied below. Meanwhile the baseline was already upgraded with them : http://ghostscript.com/pipermail/gs-regression/2004-December/001324.html, and then the patch was reverted. When the patch was reverted, the reverse difference should have appeared in the regression report, but it did not appear for an unclear reason. 72dpi : 01_001.pdf 159.pdf 289-01.ps adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf type42_glyph_index.ps normal, 300dpi : 01_001.pdf 159.pdf 289-01.ps adesso2.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf pdfwrite 300 dpi : 01_001.pdf 159.pdf adesso2.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps shading_prob_800.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf[src/gzspotan.c 1.13]
Bump the version after the 8.50 release.[lib/gs_init.ps 1.116, src/gscdef.c 1.52, src/version.mak 1.80]
This is the first release in the new stable series of Ghostscript. In addition to many bug fixes it contains numerous new features. Most obvious will be improved font handling and rasterization, and better support for PDF 1.4 and 1.5 documents.
New features since the last stable release:
Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for GridFitTT for information on this feature.
The PDF writer now implements PDF 1.4 encryption. See the encryption parameter documentation for more information.
A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions.
Better support for running Ghostscript in "Job Server" mode as a daemon to continually accept and convert a series of independent files.
Also new is the Rinkj deivce, an experimental new driver for some inkjet printers using ETS screening and color profiles to achieve very high quality output for tuned output. See the Rinkj section for more information.
We now support PDF 1.5 files, including the new compression and encryption modes.
We have beta support for JPEG 2000 compressed images, using the JasPer compression library. In this release this support is only enabled as in the default autoconf (POSIX) and MSVC builds.
This release also has major internal improvements toward thread safety, although we have not yet reached this goal. Nevertheless Ghostscript should be more robust when used as a library, and these changes were an important precursor to complete virtualization.
The following bug numbers were open at the time of this release:
405501, 430175, 446344, 458780, 463688, 465936, 487953, 493348, 526099, 526491, 530011, 535366, 535932, 578865, 592160, 603934, 610478, 614298, 626295, 674418, 677324, 685335, 686747, 686750, 686816, 686819, 686824, 686841, 686842, 686843, 686853, 686865, 686867, 686919, 686980, 686996, 687011, 687012, 687013, 687039, 687059, 687063, 687084, 687086, 687095, 687105, 687108, 687110, 687122, 687125, 687146, 687168, 687174, 687193, 687196, 687203, 687219, 687221, 687229, 687231, 687243, 687251, 687257, 687259, 687271, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687324, 687327, 687341, 687342, 687345, 687346, 687360, 687373, 687375, 687394, 687397, 687399, 687401, 687410, 687414, 687434, 687435, 687445, 687460, 687468, 687473, 687474, 687475, 687480, 687484, 687485, 687492, 687497, 687498, 687514, 687518, 687520, 687523, 687525, 687529, 687531, 687535, 687536, 687537, 687539, 687541, 687545, 687551, 687558, 687559, 687560, 687561, 687583, 687593, 687595, 687600, 687608, 687611, 687621, 687622, 687628, 687630, 687633, 687642, 687643, 687644, 687650, 687654, 687657, 687661, 687663, 687666, 687669, 687674, 687676, 687677, 687678, 687679, 687680, 687682, 687684, 687686, 687694, 687695, 687696, 687697, 687702, 687707, 687712, 687715, 687717, 687721, 687727, 687728, 687729, 687731, 687735, 687738, 687754, 687756, 687769, 687772, 687775, 687778, 687780, 687782, 687783, 687786, 687791, 687793, 687795, 687796, 687800, 687802, 687803, 687805, 687806, 687808, 687809, 687813, 687814, 687815, 687816, 687820, 687822, 687823, 687825, 687826, 687827, 687828, 687830, 687831, 687832, 687834, 687835, 687836, 687837, 687838, 687840, 687842, 687843, 687844, 687845, 687846, 687847, 687848, 687849.
No known incompatible changes at this point
Update 3rd party library versions to match the latest releases.[src/all-arch.mak 1.16, src/bcwin32.mak 1.35, src/dvx-gcc.mak 1.29, src/macos-mcp.mak 1.33, src/macosx.mak 1.26, src/msvc32.mak 1.68, src/msvclib.mak 1.28, src/openvms.mak 1.39, src/openvms.mmk 1.31, src/os2.mak 1.43, src/ugcclib.mak 1.29, src/unix-gcc.mak 1.48, src/unixansi.mak 1.39, src/watclib.mak 1.24, src/watcw32.mak 1.32]
Propagate release date and version changes to the documentation.[doc/API.htm 1.48, doc/Bug-form.htm 1.44, doc/Bug-info.htm 1.43, doc/C-style.htm 1.50, doc/Commprod.htm 1.36, doc/Copying.htm 1.34, doc/DLL.htm 1.38, doc/Deprecated.htm 1.15, doc/Details8.htm 1.15, doc/Develop.htm 1.143, doc/Devices.htm 1.84, doc/Drivers.htm 1.52, doc/Fonts.htm 1.45, doc/Helpers.htm 1.38, doc/History1.htm 1.34, doc/History2.htm 1.34, doc/History3.htm 1.34, doc/History4.htm 1.34, doc/History5.htm 1.36, doc/History6.htm 1.51, doc/History7.htm 1.39, doc/History8.htm 1.20, doc/Htmstyle.htm 1.39, doc/Install.htm 1.49, doc/Issues.htm 1.46, doc/Language.htm 1.90, doc/Lib.htm 1.38, doc/Maintain.htm 1.45, doc/Make.htm 1.84, doc/New-user.htm 1.55, doc/Projects.htm 1.62, doc/Ps-style.htm 1.32, doc/Ps2epsi.htm 1.36, doc/Ps2pdf.htm 1.74, doc/Psfiles.htm 1.57, doc/Readme.htm 1.61, doc/Release.htm 1.89, doc/Source.htm 1.34, doc/Tester.htm 1.34, doc/Testing.htm 1.32, doc/Unix-lpr.htm 1.34, doc/Use.htm 1.125, doc/Xfonts.htm 1.34, doc/gs-vms.hlp 1.32, man/dvipdf.1 1.32, man/font2c.1 1.32, man/gs.1 1.33, man/gslp.1 1.32, man/gsnd.1 1.32, man/pdf2dsc.1 1.31, man/pdf2ps.1 1.33, man/pdfopt.1 1.31, man/pf2afm.1 1.32, man/pfbtopfa.1 1.33, man/printafm.1 1.32, man/ps2ascii.1 1.31, man/ps2epsi.1 1.30, man/ps2pdf.1 1.37, man/ps2pdfwr.1 1.36, man/ps2ps.1 1.39, man/wftopfa.1 1.32]
Update version and date for the 8.50 release. Also some additions to the release notes.[doc/News.htm 1.158, lib/gs_init.ps 1.115, src/gscdef.c 1.51, src/version.mak 1.79]
Disable JPXDecode support in the default MacOS Codewarrior build, pending resolution of some functional issues. The autoconf gcc build can be used as a workaround.[src/macos-mcp.mak 1.32]
Correct an ambiguous '#if DEBUG' to an '#ifdef DEBUG'. Part of the fix for bug 687830.[src/vdtrace.c 1.10]
Additional clean up for the MacOS CodeWarrior build. Adds a dependency on gconfigd.h so it gets built when the project file is generated, and include a search path for the jasper library headers.[src/macgenmcpxml.sh 1.12, src/macos-mcp.mak 1.31]
Update the MacOS test framework to current code.[src/dmmain.c 1.5, src/dmmain.r 1.2]
Use #ifdef DEBUG instead of the ambiguous #if DEBUG.[src/gp_macio.c 1.37]
Add a missing dependency on the DeviceN code to the tiffsep device.[src/devs.mak 1.120]
Modify the MacOS polling implementation to use the new libctx accessor for the callbacks.[src/gp_macpoll.c 1.3]
Update the jbig2 makefile for the latest release. We now require jbig2dec 0.7 if you want to compile in the jbig2dec source instead of linking to the shared library.[src/jbig2.mak 1.9]
Delaying changes for assertions and gzspotan.c till after 8.50 release.[src/fapi_ft.c 1.14, src/gdevddrw.c 1.27, src/gdevpdfc.c 1.51, src/gdevpsf1.c 1.20, src/gdevpsft.c 1.35, src/gendev.c 1.7, src/gserror.h 1.9, src/gsfcmap.c 1.27, src/gsfunc0.c 1.23, src/gslibctx.c 1.7, src/gsmisc.c 1.22, src/gxccman.c 1.30, src/gxcht.c 1.15, src/gxdhtserial.c 1.7, src/gxfdrop.c 1.16, src/gxpflat.c 1.44, src/gxshade1.c 1.35, src/gxshade6.c 1.86, src/gzspotan.c 1.12, src/siinterp.c 1.7, src/write_t1.c 1.5, src/write_t2.c 1.7]
Mention the need to run autogen.sh to generate the configure script when building from CVS.[doc/Make.htm 1.83]
MacOS platform build cleanup. DETAILS: Since the libctx changes, stdio hasn't been directly available. Therefore we no longer support '-' as a special filename in (the obsolete) gp_open_printer(). We change an fprintf(stderr,...) to an eprintf() which is more correct in any case. This change also removes the fprintf() and fputs() implementations in the MacOS build. Metrowerks CW libc has for some time provided implementations, but they're even less needed now that we're being a proper library.[src/gp_macio.c 1.36]
2004-12-08 18:09 Igor Melichev
Fix (TT grid fitting) : An assertion failed in the spot analyzer. DETAILS : A condition for a stem prolongation was too weak. Bug 687823 "assert in gzspotan.c with ttcf2cid font". EXPECTED DIFFERENCES : 72dpi : 01_001.pdf 159.pdf 289-01.ps adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf type42_glyph_index.ps normal, 300dpi : 01_001.pdf 159.pdf 289-01.ps adesso2.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf pdfwrite 300 dpi : 01_001.pdf 159.pdf adesso2.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps shading_prob_800.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf[src/gzspotan.c 1.11]
Convert gs_malloc() calls in the MacOS gp_* code to unwrapped libc malloc() now that gs_malloc() requires a memory pointer, which is not available. Partial fix for bug 687830. DETAILS: Only the call in getenv() is active; the one in gp_init() is not used. This may have been what the earlier libctx patch was trying to do when it touched gp_macio.c, changing the function call, but not the arguments, and breaking the[src/gp_mac.c 1.17, src/gp_macio.c 1.35]
Pulled silly macro to try to disuade the direct use of assert()[src/gserror.h 1.8]
2004-12-08 00:31 Alex Cherepanov
Provide back-up definitions of /-| /RD /|- /ND /| /NP for the benefit of embedded PDF fonts that forget to define them. Issue a warning when they are used. Don't fix PS interpreter because Distiller doesn't accept such fonts either. fix bug 687824[lib/pdf_font.ps 1.72]
forgot an #undef to correctly disable assert()[src/gsmisc.c 1.21]
Moved include outside of function body to fix MSVC compile error.[src/gsmisc.c 1.20]
Added macros for assertions: GS_ASSERT(false) returns -1 in a release system asserts in a debug system GS_DBG_ASSERT(false) is a NOP in a release system asserts in a debug system Both versions will printf to stderr first. Raw assert() should not be used. GS_ASSERT will not compile in a void function, as it returns -1. This means you can not use assertions to change the standard error return exception handline mechanism in Ghostscript. You can use them to catch programmer usage errors in a debug build. gs_misc::gs_assert() is the one place the operating system's assert is called. This can be modified in a embedded system, again assert is only called in a debug build.[src/fapi_ft.c 1.13, src/gdevddrw.c 1.26, src/gdevpdfc.c 1.50, src/gdevpsf1.c 1.19, src/gdevpsft.c 1.34, src/gdevpx.c 1.15, src/gendev.c 1.6, src/gserror.h 1.7, src/gsfcmap.c 1.26, src/gsfunc0.c 1.22, src/gslibctx.c 1.6, src/gsmisc.c 1.19, src/gxccman.c 1.29, src/gxcht.c 1.14, src/gxdhtserial.c 1.6, src/gxfdrop.c 1.15, src/gxpflat.c 1.43, src/gxshade1.c 1.34, src/gxshade6.c 1.85, src/gzspotan.c 1.10, src/siinterp.c 1.6, src/write_t1.c 1.4, src/write_t2.c 1.6]
2004-12-07 10:24 Igor Melichev
Fix : Disable an unuseful warning from MSVC8.[src/msvccmd.mak 1.23]
Correct an incorrect cast in the jpx filter. Bug 687831.[src/sjpx.c 1.11]
Add a const qualifier to the jpx filter memory contest. Corrects an error with Metrowerks CodeWarrior 8.[src/sjpx.h 1.4]
Remove the calls to set the TEXT filetype for the source files. This has not been necessary for the last few versions of CodeWarrior, and doing it correctly for the hierarchical jasper source is tedious.[src/macos-mcp.mak 1.30]
Add jasper.mak to the MacOS CW build.[src/macos-mcp.mak 1.29]
Enable compilation of the jasper library source for JPEG 2000 image stream support in the MacOS Code Warrior build.[src/macos-mcp.mak 1.28]
2004-12-06 13:17 Igor Melichev
Fix : Improvinmg documentation for recently improced algorythms. DETAILS : This patch only changes comments in C code. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.120, src/gxfillsl.h 1.7, src/gxfilltr.h 1.10, src/gxshade6.c 1.84, src/gzspotan.c 1.9]
Decide to run a recursive configure for the jasper source based on existence of the new jas_config_ac.h instead of the old jas_config.h We now require the 1.701.0-gs2 (or later) release to build out of the box. Other versions can still be used by running their configure manually and touching this file, or by building a separate shared library.[src/configure.ac 1.49]
Add JPXDecode filter to the default Windows MSVC build. This is based on the "jasper" source and must be at least version 26 from the svn repository using svn co http://svn.ghostscript.com:8080/jasper/trunk jasper DETAILS: This is a fairly minor modification to the gs MSVC makefiles, but it did require changing our jasper version (that had accumulated many changes) to hook in the correct jas_config***.h file and to avoid using windows.h (so we can build with /Za). See the jasper svn for details of the changes. EXPECTED DIFFERENCES: none. (we didn't have any PDF 1.5 files with JPEG2000 images in the comparefiles).[src/msvc32.mak 1.67, src/winlib.mak 1.24]
Fix: in implementation of n operator in clip mode, put pathbbox in stopped context so that completely empty paths have the same behavior as paths with empty bbox, rather than causing an error. Fixes bug #687820. DETAILS The test file has a "n W n" sequence, which is a request to clip to a totally empty path. The error comes from code added to pdf_ops.ps v 1.33 to handle the case where a path is defined but has an empty bbox. See bug 687136 for more details on this change. Comment #8 of that bug report suggests that our PDF interpreter always maintains a currentpoint, which would justify the use of an unprotected pathbbox. However, that assumption seems to be false. This fix wraps the pathbbox added in the 1.33 change in a stopped context.[lib/pdf_ops.ps 1.37]
Add a platform-specific JASPERCFLAGS makefile variable to assist with proper compilation of the jasper jpeg2k library. Set this variable correctly in the autoconf build. DETAILS: The jasper library natively supports building under both autoconf+cc and MSVC, but expects a preprocessor define to be set to distinguish the two. While we do carefully construct a special JAS_CC for compiling the jasper source into Ghostscript, as with all the other 3rd party libraries, there is only a facility to set special CFLAGS globally. This change adds a new top-level makefile variable for passing platform-specific CFLAGS into gs.mak for addition to that global set. Also, set JASPERCFLAGS=-DJAS_CONFIGURE in Makefile.in so that the jasper sourcr expects the autoconf generated configuration header when compiling as part of Ghostscript.[src/Makefile.in 1.40, src/gs.mak 1.28]
Return error code when using -f filename. Fix bug #687811 strange behavior with -f.[src/imainarg.c 1.34]
When doing a Windows debug build, link against the debug run time libraries.[src/msvccmd.mak 1.22]
Correct the SubfontID values in the example substitutions.[doc/Use.htm 1.124]
Correct errors in .buildnativefontmap procedure. DETAILS: The enumeration of fonts returned by .getnativefonts was being given "array true" which was causing a typecheck in forall because of a missing exch. It should have been "true array". Also, .findfontname was returning a name rather than a string, so cvn was failing because it was already a name.[lib/gs_fonts.ps 1.48]
When using CJK Windows TrueType fonts, add the Windows fonts directory to the GS_LIB registry variable to allow access to this directory when SAFER is used.[src/dwsetup.cpp 1.10]
2004-11-23 12:18 Igor Melichev
Fix (TT interpreter) : The component 'usage' buffer size was wrongly computed. DETAILS : Bug 687810 "/invalidfont in --@0x1e36c". Note that the error message appears some misleading due to sbx, sby is placed in ostack for type42_finish. Rather we could fix it in this particular case in type42_finish, a complete fix appears too complicated. So for now leave it as it is. EXPECTED DIFFERENCES : None.[src/ttfmain.c 1.32]
2004-11-23 07:44 Igor Melichev
Fix (type 1 hinter) : Bugs in 'flex' with disabled hinting. DETAILS : Bug 687812 "Distortion in charpath outline". 1. Wrong poles were exported from the hinter when 'flex' works with disabled hinting. 2. Improved vdtrace commands for a disabled hinting. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.56]
Null the DEVICE_DEVS_EXTRA variable when calling the link line. This works around env space limitations on some vendor unicies when a large set of devices are passed from the make command line through this variable. Bug 687804.[src/unixlink.mak 1.7]
Cast the gx color index to an int inside the switch argument to avoid problems with the HP-UX 10 compiler which does not accept 64 bit arguments to switch(). Bug 687804.[src/gdevstc.c 1.11]
Bump the version number after the 8.33 beta release.[doc/News.htm 1.157, lib/gs_init.ps 1.114, src/gscdef.c 1.50, src/version.mak 1.78]
This is a release candidate for the next stable version of Ghostscript.
New features since the last stable release:
Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for GridFitTT for information on this feature.
The PDF writer now implements PDF 1.4 encryption. See the encryption parameter documentation for more information.
A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions.
This version contains the first release of Rinkj, an experimental new driver for some inkjet printers using ETS screening. See the Rinkj section for more information.
We now support PDF 1.5 files, including the new compression and encryption modes.
We have beta support for JPEG 2000 compressed images, using the JasPer compression library. This is only enabled as part of the default build in the autoconf (POSIX) build system in this release.
The following bug numbers were open at the time of the last release:
405501, 430175, 446344, 458780, 463688, 465936, 487953, 493348, 526099, 526491, 530011, 535366, 535932, 578865, 592160, 603934, 610478, 614298, 626295, 645316, 674418, 677324, 685335, 686747, 686750, 686816, 686819, 686824, 686841, 686842, 686843, 686853, 686865, 686867, 686919, 686980, 686996, 687011, 687012, 687013, 687039, 687063, 687084, 687086, 687095, 687105, 687108, 687110, 687122, 687125, 687146, 687157, 687168, 687174, 687193, 687196, 687203, 687219, 687221, 687229, 687231, 687243, 687251, 687257, 687259, 687271, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687324, 687327, 687341, 687342, 687345, 687346, 687360, 687373, 687375, 687394, 687397, 687399, 687401, 687410, 687414, 687434, 687435, 687445, 687460, 687468, 687473, 687474, 687475, 687480, 687484, 687485, 687492, 687497, 687498, 687514, 687518, 687520, 687523, 687525, 687529, 687531, 687535, 687536, 687537, 687539, 687541, 687545, 687551, 687558, 687559, 687560, 687561, 687575, 687583, 687593, 687595, 687600, 687608, 687611, 687621, 687622, 687628, 687630, 687633, 687637, 687642, 687643, 687644, 687650, 687654, 687657, 687661, 687663, 687666, 687669, 687674, 687676, 687677, 687678, 687679, 687680, 687682, 687684, 687686, 687694, 687695, 687696, 687697, 687702, 687707, 687712, 687715, 687717, 687721, 687727, 687728, 687729, 687731, 687732, 687735, 687738, 687754, 687756, 687769, 687772, 687775, 687778, 687780, 687782, 687783, 687786, 687791, 687793, 687795, 687796, 687798, 687799, 687800, 687801, 687802, 687803, 687804, 687805, 687806.
No known incompatible changes at this point
Propagate release date to all documentation.[doc/API.htm 1.47, doc/Bug-form.htm 1.43, doc/Bug-info.htm 1.42, doc/C-style.htm 1.49, doc/Commprod.htm 1.35, doc/Copying.htm 1.33, doc/DLL.htm 1.37, doc/Deprecated.htm 1.14, doc/Details8.htm 1.13, doc/Develop.htm 1.142, doc/Devices.htm 1.83, doc/Drivers.htm 1.51, doc/Fonts.htm 1.44, doc/Helpers.htm 1.37, doc/History1.htm 1.33, doc/History2.htm 1.33, doc/History3.htm 1.33, doc/History4.htm 1.33, doc/History5.htm 1.35, doc/History6.htm 1.50, doc/History7.htm 1.38, doc/History8.htm 1.18, doc/Htmstyle.htm 1.38, doc/Install.htm 1.48, doc/Issues.htm 1.45, doc/Language.htm 1.89, doc/Lib.htm 1.37, doc/Maintain.htm 1.44, doc/Make.htm 1.82, doc/New-user.htm 1.54, doc/Projects.htm 1.61, doc/Ps-style.htm 1.31, doc/Ps2epsi.htm 1.35, doc/Ps2pdf.htm 1.73, doc/Psfiles.htm 1.56, doc/Readme.htm 1.60, doc/Release.htm 1.88, doc/Source.htm 1.33, doc/Tester.htm 1.33, doc/Testing.htm 1.31, doc/Unix-lpr.htm 1.33, doc/Use.htm 1.123, doc/Xfonts.htm 1.33, doc/gs-vms.hlp 1.31, man/dvipdf.1 1.31, man/font2c.1 1.31, man/gs.1 1.32, man/gslp.1 1.31, man/gsnd.1 1.31, man/pdf2dsc.1 1.30, man/pdf2ps.1 1.32, man/pdfopt.1 1.30, man/pf2afm.1 1.31, man/pfbtopfa.1 1.32, man/printafm.1 1.31, man/ps2ascii.1 1.30, man/ps2epsi.1 1.29, man/ps2pdf.1 1.36, man/ps2pdfwr.1 1.35, man/ps2ps.1 1.38, man/wftopfa.1 1.31]
Correct a typo in the reference to the cmpi script.[doc/Testing.htm 1.30]
Update release date and product name.[doc/News.htm 1.155, src/gscdef.c 1.49, src/version.mak 1.77]
Define SHARE_JASPER=0 by default in the windows build. This doesn't enable anything, but makes it easier to get going.[src/winlib.mak 1.23]
Due to an oversight, JBIG2Decode was omitted from the windows build. Now it is included in the default FEATURE_DEVS although in the future this should probably be moved to the pdf.dev[src/msvc32.mak 1.66]
Add some missing initializers for glyph_data_t->memory. Related to the 687459 fix.[src/gdevpsf1.c 1.18, src/gdevpsf2.c 1.33, src/gdevpsfu.c 1.12, src/gsfcid.c 1.13, src/gstype42.c 1.48, src/gxfcopy.c 1.54, src/gxtype1.c 1.41, src/zchar1.c 1.42, src/zfcid0.c 1.25, src/zfcid1.c 1.23]
Copies over new-style color procs when making a null device with a target, to avoid inconsistent states. Fixes bug #687770. DETAILS The problem was a null device (for implementing stringwidth) with inconsistent color info; the color_info struct specified 4 components, but the get_color_mapping_procs was gx_default_DevGray_get_color_mapping_procs, which is the desired value for null devices instantiated through gs_copydevice (i.e. -sDEVICE=null). As a result, cm_comps[1] through [3] were left uninitialized, and, when negative, would crash the halftone logic. This patch copies over the new-style color mapping procs (the old-style were already copied) in the gs_make_null_device routine. A strong argument could be made for changing the logic in gx_device_copy_color_procs() instead, but it was felt that this change was more localized. Dan reviewed this patch during a phone conversation, so I am going ahead and committing. I'm also opening a new bug to encourage a closer look at other uses of gx_device_copy_color_procs() to see whether a change there is beneficial or harmful.[src/gsdevice.c 1.24]
Fix regression created by previous patch for bug 687752.[lib/pdf_draw.ps 1.88]
Update Windows installer to use the current name for the license file, Public.htm not the older PUBLIC.[src/winint.mak 1.23]
Add utility mkcidfm.ps to create a cidfmap file based on fonts found in a directory. Change MS-Windows installer to optionally update lib/cidfmap with the CJK fonts found in the Windows font directory. DETAILS: Ghostscript does not ship with CJK fonts. If support for Chinese, Japanese or Korean is added to MS-Windows, CJK TrueType fonts and font collections are added to the MS-Windows fonts directory. These can be used by ghostscript by specifying mapping and aliases in the lib/cidfmap file. This patch looks in the MS-Windows fonts directory for known CJK fonts, and if present it appends appropriate mappings or aliases to the lib/cidfmap file. The font names and aliases are currently fixed, but can be changed by editing mkcidfm.ps. A new checkbox is added to the installer dialog "Use Windows TrueType fonts for Chinese, Japanese and Korean" Only if the user selects this will lib/cidfmap will be updated. The default behavior is that lib/cidfmap is unchanged.[doc/Psfiles.htm 1.55, lib/mkcidfm.ps 1.1, src/dwinst.cpp 1.6, src/dwinst.h 1.7, src/dwsetup.cpp 1.9, src/dwsetup.h 1.6, src/dwsetup.rc 1.12, src/dwuninst.cpp 1.5]
Fix a missing part of the JOBSERVER implementation that makes the ^D a self-delimitting token. Fixes bug 687779.[src/iscan.c 1.19]
Fix for unlimited recursion in 'cs/CS' implementation (actually in a certain path in 'resolvecolorspace'. Fixes bug 687752 for Artifex customer 190.[lib/pdf_draw.ps 1.87]
Fix bug 687777 to remove the makefile dependency of dscparse from the pdfwrite device. This allows non-PS to include the pdfwrite.dev in the build. Also updated zdscpars.c to add needed 'mem' pointer.[src/devs.mak 1.119, src/int.mak 1.131, src/zdscpars.c 1.17]
2004-11-16 02:53 Igor Melichev
Fix (pdfwrite) : Page context stream was not properly formed when starts with an invisible text. DETAILS : Bug 687797 "pdfwrite generates invalid pdf". The improved condition made consistent with gdevpdte.c ln 501. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.94]
Fix for Bug 687459 (SEGV) addressing several problems: (i) Elements fetched from a font dictionary have to be dereferenced into a ref since pointers change if the dictionary is resized (to add entries); (ii) The glyph_cache used by gs_font_cid2 fonts needs to be in stable memory since elements might be added after a 'save' and the list will still be refereced by the font, so cannot be freed by 'restore'; (iii) The gs_glyph_cache__release was never being called so creating a memory leak -- font notification (called by gs_font_finalize) is now used to free the cache list; (iv) The gs_glyph_cache__release did not work (probably was never tested since it was not being used). DETAILS: Using stable_memory means that the objects created need to be freed properly, that's why the font_notify mechanism was used. This fixes the problem reported by the bug and doesn't seem to have created any other problems (regression test passed). A 'memory' element was added to the gs_glyph_data_s structure so that the 'bits' can be allocated using the desired memory (stable memory in the case that we are using the cache). This was deemed preferable to always using the pfont->memory->stable_memory since changing to this might cause other problems. This did create a fair number of changes since every place the get_outline was used, the glyph_data structure needed to have the 'memory' element set. We could have used 'NULL' to signal pfont->memory, but this might have masked uninitialized memory issues that can be tracked with tools such as valgrind. The gs_glyph_cache__release was totally broken, and since it was not previously used, fixing and testing it presents no risk of other clients relying on broken behaviour. The implementation of the cache is VERY RUDIMENTARY -- a linked list of elements with a hard-coded number (32767) limit to the size of the cache. The size is too small to be useful for Asian fonts, but making it bigger will result in a lot of time spent finding a 'miss' condition. At least the current logic has LRU slot re-use behaviour (which should be retained). Fixing this, and making the cache limit larger are left for a later change (post 8.50 release). EXPECTED DIFFERENCES: None.[src/gdevpsft.c 1.33, src/gsgcache.c 1.3, src/gsgcache.h 1.2, src/gsgdata.h 1.5, src/gstype42.c 1.47, src/gxfcopy.c 1.53, src/gxttfb.c 1.36, src/zbfont.c 1.28, src/zfcid0.c 1.24, src/zfcid1.c 1.22]
Add missing header include for setting the display device callback.[src/imain.c 1.41]
2004-11-13 22:08 Igor Melichev
Fix : toolbin/pdfinflt.ps did not decompress some streams (continued). DETAILS : The 2nd Patch from SaGS for the bug 687746 "gs\toolbin\pdfinflt.ps doesn't unpack a stream" The previous patch contained on over-optimization that leaded to a corrupted operand stack. "{ [ {proc} {proc} ] }" (note: 2 identical inner procs) can be optimized: either as "{ [ {proc} dup ] }" - use VM for only 1 copy of "{proc}" or as "{ { {proc} {proc} } }" - the 2-element array is allocated only once, by the parser, not at each execution of the enclosing proc but we cannot apply both these optimizations at the same time. This error affects PDF files that include a /Filter and/or /DecodeParams specified as 1-element arrays. PDFs for which these entries are a single name (for /Filter) or dict (for /DecodeParams) or arrays with 2 or more elements are not affected. EXPECTED DIFFERENCES : None.[toolbin/pdfinflt.ps 1.7]
Spelling corrections.[doc/Use.htm 1.122]
Add the new image comparison tool to the file index in the documentation.[doc/Testing.htm 1.29]
2004-11-07 21:09 Igor Melichev
Fix : Improve the resource path customization and the related documentation (continued). DETAILS : This fixes some minor ambiguities.[doc/Use.htm 1.121]
2004-11-07 19:57 Igor Melichev
fuzzy.c : Implementing multipage image files. DETAILS: Report will contain a line per different page. Thus the report file may contain multiple lines. The output image file contains only the the first page difference due to a restricted capability of available viewers. Bug 687765 "fuzzy.c : multipage documents unsupported.".[toolbin/tests/fuzzy.c 1.17]
2004-11-07 19:25 Igor Melichev
Fix : Cygwin/gcc warnings. DETAILS : Cygwin/gcc claims an undefined result in spdiff.c due to possibly undefined order of evaluation of operands of a binary operation. The hunk #2 now sets 'ti', rather the old code does not. But we believe that the change is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxdevndi.c 1.5, src/spdiff.c 1.8, src/ttinterp.c 1.16]
Remove some obsolete assert calls which caused problems on some platforms due to incorrect string quoting in assert.h.[src/gxhintn.c 1.55]
Fix: Python opens files in text mode unless "rb" is needed.[toolbin/tests/cmpi.py 1.2]
Add an interactive image compare tool written in Python by a Python neophyte. Not quite ready for prime-time, but an interesting enough start to commit. Even though there are bugs in the differencing, responsiveness and memory usage, it is still sometimes useful. If a version # were to be applied to this, I would call it 0.1 (at least it is a positive number).[toolbin/tests/cmpi.py 1.1]
Update the MacOS X platform-specific makefile. Remove -traditional-cpp. This was added to work around bugs in earlier releases of Apple's gcc, but it is not necessary with more recent releases, and conflicts with newer cpp features used by more recent Ghostscript code. Partial fix for bug 687787.[src/macosx.mak 1.25]
Improve documentation for CID fonts.[doc/Use.htm 1.120]
Include stdio_.h instead of the system header according to C style.[src/gslibctx.h 1.5, src/lib.mak 1.203]
Add handling for missing EOL following the %PDF-#.## string in the header. Yet another bad file that Acrobat Reader handles. Bug 687781. DETAILS: If we get an error doing the 'cvr' to get the version #, trim a character from the end of the string and try again. Stop if the string becomes empty.[lib/pdf_main.ps 1.88]
Add missing opening quotes to the error printouts. This typo came in as part of an earlier bug fix and prevented compilation. Bug 687784.[src/gdevsppr.c 1.9]
Fixes Bug#687762. Includes the date specification of the CVS checkout in the baseline update log. This then gets propagated to the daily reports.[toolbin/tests/update_specific 1.4]
2004-11-01 21:09 Igor Melichev
Fix (pdfwrite) : Forget cancelled resources. DETAILS : Bug 687749 "PS to PDF generates very large PDF document" 1. An indeterministic bug fixed in gdevpdfi.c, hunk #1. 2. Implemented a recognition of equal patterns in gdevpdfi.c and provided a PDF pattern substitution. We caould not provide a substitution in the PS interpreter because an accumulated pattern instance doesn't point to the corresponding client color. 3. pdf_forget_resource is applied when a resource is cancelled and is not longer needed. This applies to all redundant resources except patterns, because patterns keep the substitution data. We would like to save memory from substitured patterns with a special substitution table, but we have no time for such optimization now. 4. The function pdf_forget_resource is some slow because the data structure was not designed for removing resources from lists. We would like to implement dual linked lists, but we have no time for such optimization now. 5. Since pdf_forget_resource is not applied to patters, we need to prevent a big growth of the number of stored patterns. We implemented pdf_drop_resources for that purpose and drop all substitured pattrens after 300 ones have been accumulated, but not frequenter than once per page. This solution isn't perfect, but should work for most cases. If a substituted pattern is dropped erroneusely, it will be accumulated again, maybe causing some slowdown. 6. Implemented a new device parameter PrintStatistics. The new function pdf_print_resource_statistics prints a statistics to stdout. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.101, src/gdevpdfg.c 1.59, src/gdevpdfg.h 1.34, src/gdevpdfi.c 1.57, src/gdevpdfj.c 1.32, src/gdevpdfp.c 1.40, src/gdevpdfu.c 1.61, src/gdevpdfv.c 1.37, src/gdevpdfx.h 1.103, src/gdevpdti.c 1.39, src/gdevpdtt.c 1.93]
Exempt three new files from the multiple-include protect check. Like the previous exemptions, these are templates that must be instantiated multiple times to function properly.[toolbin/tests/check_source.py 1.11]
We now implement job server behavior. This is no longer an open issue.[doc/Issues.htm 1.44]
Mention the issue with polygon overlap in antialiased rendering. Closes bug 687742.[doc/Use.htm 1.119]
Documentation update to fix some dead links.[doc/Readme.htm 1.59]
Documentation fixes, due to changes in iapi.h.[doc/API.htm 1.46, doc/Lib.htm 1.36]
2004-10-28 17:34 Igor Melichev
Fix (pdfwrite) : Font size was wrong when definefont applied to a scaled font. DETAILS : Bug 687615 "ps2pdf squeezes glyph strings". This continues the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003487.html (igor486). EXPECTED DIFFERENCES : None.[src/gdevpdtd.c 1.17]
2004-10-28 11:58 Igor Melichev
Fix (vdtrace.c) : Fix gcc warnings and improve C-style. DETAILS : This change is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/vdtrace.c 1.9]
2004-10-28 09:26 Igor Melichev
Fix (gswin32) : Opened a window outside the desctop area. DETAILS : When the Tracer window was opened with a clean Registry (particularly at a first run after the operating system instalaton), the window placement got big negative coordinates. EXPECTED DIFFERENCES : None.[src/dwimg.c 1.17]
2004-10-28 08:39 Igor Melichev
Fix (type 1 interpreter) : Replaced Metrics was missed. DETAILS : Bug 687614 "mirrored glyph is rendered at incorrect position". This patch fixes the problem for raster devices. Without -dNOCACHE the behavior was indeterministic due to uninitialized cxs.use_FontBBox_as_Metrics2 in zchar1.c. We ported the change from gstype1.c to gstype2.c with no special testing because we have no practical examples of Type 2 with a replaced lsb. It happens so because Type 2 only appears in PDF, which doesn't replace lsb. EXPECTED DIFFERENCES : None.[src/gstype1.c 1.32, src/gstype2.c 1.36, src/zchar1.c 1.41]
2004-10-28 07:25 Igor Melichev
Fix (pdfwrite) : Glyph positions were wrong for vertical CID fonts (continued 2). DETAILS : Bug 687614 "mirrored glyph is rendered at incorrect position". The new code implements the improved logics : /* With WMode 1 v-vector is (WMode 1 origin) - (WMode 0 origin). The glyph shifts in the opposite direction. */ /* With WMode 0 v-vector is (Metrics sb) - (native sb). The glyph shifts in same direction. */ Also improved the related comments. EXPECTED DIFFERENCES : pdfwrite 093-01.ps .[src/gdevpdte.c 1.65]
2004-10-27 10:56 Igor Melichev
Fix (resource machinery) : Improve the resource path customization and the related documentation (continued). DETAILS : A wrong paragraph removed form the documentation. EXPECTED DIFFERENCES : None.[doc/Use.htm 1.118]
Bump the version info after the 8.32 release.[doc/News.htm 1.154, lib/gs_init.ps 1.113, src/gscdef.c 1.48, src/version.mak 1.76]
2004-10-26 17:07 Igor Melichev
Fix (resource machinery) : Improve the resource path customization and the related documentation. DETAILS : 1. Explained the resource locator's logics in Use.htm . Bug 687767 "Adding -Ic:\windows\fonts breaks CJK fonts". 2. The old code missed some directories when the user specifies a non-absolute path as GenericResourcePath. EXPECTED DIFFERENCES : None.[doc/Use.htm 1.117, lib/gs_res.ps 1.38]
2004-10-26 09:44 Igor Melichev
Fix (PDF interpreter) : Improve the font substitution and the CID font substitution. DETAILS : 1. A new procedure .remove_font_name_prefix removes the subset font name prefix when computing a substitute font name. 2. Improved a warning when substituting a CID font resource. 3. Improved the documentation about CID font substitution if the PDF interpreter Bug 687747 "PDF tries substituting but throws /undefinedresource in --findresource--". EXPECTED DIFFERENCES : None.[doc/Use.htm 1.116, lib/pdf_font.ps 1.71]
This is the third beta release leading up to the stable 8.5x series. It contains numerous bug fixes since the last testing release, but a few outstanding issues remain.
New features since the last stable release:
Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for GridFitTT for information on this feature.
The PDF writer now implements PDF 1.4 encryption. See the encryption parameter documentation for more information.
A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions.
This version contains the first release of Rinkj, an experimental new driver for some inkjet printers using ETS screening. See the Rinkj section for more information.
We now support PDF 1.5 files, including the new compression and encryption modes.
We have beta support for JPEG 2000 compressed images, using the JasPer compression library. This is only enabled as part of the default build in the autoconf (POSIX) build system in this release.
The following bug numbers were open at the time of the last release:
405501, 430175, 446344, 458780, 463688, 465936, 487953, 493348, 526099, 526491, 530011, 535366, 535932, 578865, 592160, 603934, 610478, 614298, 626295, 645316, 674418, 677324, 685335, 686747, 686750, 686816, 686819, 686824, 686841, 686842, 686843, 686853, 686865, 686867, 686919, 686980, 686996, 687011, 687012, 687013, 687039, 687063, 687084, 687086, 687095, 687105, 687108, 687110, 687122, 687125, 687146, 687157, 687168, 687174, 687179, 687193, 687196, 687203, 687219, 687221, 687229, 687231, 687243, 687251, 687257, 687259, 687271, 687275, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687324, 687327, 687341, 687342, 687345, 687346, 687360, 687373, 687375, 687394, 687397, 687399, 687401, 687410, 687414, 687434, 687435, 687445, 687459, 687460, 687468, 687473, 687474, 687475, 687480, 687484, 687485, 687492, 687497, 687498, 687514, 687518, 687520, 687523, 687525, 687529, 687531, 687535, 687536, 687537, 687539, 687541, 687545, 687551, 687558, 687559, 687560, 687561, 687575, 687583, 687593, 687595, 687600, 687608, 687611, 687614, 687615, 687621, 687622, 687628, 687630, 687633, 687637, 687642, 687643, 687644, 687650, 687654, 687657, 687661, 687663, 687666, 687669, 687674, 687676, 687677, 687678, 687679, 687680, 687682, 687684, 687686, 687694, 687695, 687696, 687697, 687702, 687707, 687712, 687715, 687717, 687721, 687727, 687728, 687729, 687731, 687732, 687735, 687738, 687742, 687747, 687749, 687752, 687754, 687756, 687762, 687765, 687767, 687769, 687770, 687773.
No known incompatible changes at this point
Move a dependency out of order so it's available when needed.[src/lib.mak 1.202]
Update version and release date in the documentation.[doc/API.htm 1.45, doc/Bug-form.htm 1.42, doc/Bug-info.htm 1.41, doc/C-style.htm 1.48, doc/Commprod.htm 1.34, doc/Copying.htm 1.32, doc/DLL.htm 1.36, doc/Deprecated.htm 1.13, doc/Details8.htm 1.11, doc/Develop.htm 1.141, doc/Devices.htm 1.82, doc/Drivers.htm 1.50, doc/Fonts.htm 1.43, doc/Helpers.htm 1.36, doc/History1.htm 1.32, doc/History2.htm 1.32, doc/History3.htm 1.32, doc/History4.htm 1.32, doc/History5.htm 1.34, doc/History6.htm 1.49, doc/History7.htm 1.37, doc/History8.htm 1.15, doc/Htmstyle.htm 1.37, doc/Install.htm 1.47, doc/Issues.htm 1.43, doc/Language.htm 1.88, doc/Lib.htm 1.35, doc/Maintain.htm 1.43, doc/Make.htm 1.81, doc/New-user.htm 1.53, doc/Projects.htm 1.60, doc/Ps-style.htm 1.30, doc/Ps2epsi.htm 1.34, doc/Ps2pdf.htm 1.72, doc/Psfiles.htm 1.54, doc/Readme.htm 1.58, doc/Release.htm 1.87, doc/Source.htm 1.32, doc/Tester.htm 1.32, doc/Testing.htm 1.28, doc/Unix-lpr.htm 1.32, doc/Use.htm 1.115, doc/Xfonts.htm 1.32, doc/gs-vms.hlp 1.30, man/dvipdf.1 1.30, man/font2c.1 1.30, man/gs.1 1.31, man/gslp.1 1.30, man/gsnd.1 1.30, man/pdf2dsc.1 1.29, man/pdf2ps.1 1.31, man/pdfopt.1 1.29, man/pf2afm.1 1.30, man/pfbtopfa.1 1.31, man/printafm.1 1.30, man/ps2ascii.1 1.29, man/ps2epsi.1 1.28, man/ps2pdf.1 1.35, man/ps2pdfwr.1 1.34, man/ps2ps.1 1.37, man/wftopfa.1 1.30]
Update libpng version to the latest release. There are security issues with 1.2.5, so upgrading is recommended.[src/all-arch.mak 1.15, src/bcwin32.mak 1.34, src/dvx-gcc.mak 1.28, src/macos-mcp.mak 1.27, src/macosx.mak 1.24, src/msvc32.mak 1.65, src/msvclib.mak 1.27, src/openvms.mak 1.38, src/openvms.mmk 1.30, src/os2.mak 1.42, src/ugcclib.mak 1.28, src/unix-gcc.mak 1.47, src/unixansi.mak 1.38, src/watclib.mak 1.23, src/watcw32.mak 1.31]
Back out double-include protection for gxfill*.h. Contrary to C-style, these are templates that are configured and included multiple times. They should probably be .c files rather than .h.[src/gxfillsl.h 1.6, src/gxfilltr.h 1.9, src/gxfillts.h 1.5]
Add double-include protection to four files that needed it. Also correct a comment typo in a related file's protection.[src/gp_os2.h 1.2, src/gxfill.h 1.23, src/gxfillsl.h 1.5, src/gxfilltr.h 1.8, src/gxfillts.h 1.4]
Add a new-style RCS Id line to the re-instated LZWEncode filter.[src/slzwe.c 1.3]
Commute a C++ style comment.[src/main.h 1.8]
Exempt the rinkj CVS directories from the documentation reference check.[toolbin/tests/check_docrefs.py 1.11]
Revert jbig2 makefile update accidentally included in the last commit. We want to maintain compatibility with 0.6 for this release.[src/jbig2.mak 1.8]
Add the new gsutil.py source to the file catalog[doc/News.htm 1.152, doc/Testing.htm 1.27]
Update notes and dates for the 8.32 release.[src/gscdef.c 1.47, src/jbig2.mak 1.7, src/version.mak 1.75]
Add libctx memory pointers where required in the compiled-fonts code. This was missed in the initial commit. Also, add the OBJ directory to the include path when compiling the font data, since stdpre.h now requires the generate arch.h header. Closes bug 687758.[src/cfonts.mak 1.5, src/iccfont.c 1.11]
2004-10-25 15:11 Igor Melichev
Fix : CIDFont-CMap construction didn't work with substituted CID font resources. DETAILS : Bug 687766 "CJK cidfmap ignores aliases". This patch fixes the problem (the change to gs_cidfm.ps) and provides a debug printing in various modules related to CID font substitution. EXPECTED DIFFERENCES : None.[lib/gs_cidcm.ps 1.12, lib/gs_cidfm.ps 1.7, lib/gs_fntem.ps 1.8, lib/gs_init.ps 1.112, lib/gs_resmp.ps 1.11]
Fixes copying of paths into clipping path list so that it works even when the path is allocated with local_segments. Fixes bugs #687401, #687612, and #687750.[src/gxcpath.c 1.13]
2004-10-21 17:57 Igor Melichev
Fix (TT interpreter) : Subglyphs were positioned wrongly (continued). DETAILS : This fixes the log message of the previous patch in the "expected differences" section. Bug 687589 "A composite glyph renders wrongly". Bug 687768 "umlauts misplaced in eps file". EXPECTED DIFFERENCES : Testform.v1.0.2.pdf"[src/ttfmain.c 1.31]
2004-10-21 17:52 Igor Melichev
Fix (TT interpreter) : Subglyphs were positioned wrongly. DETAILS : Bug 687589 "A composite glyph renders wrongly". Bug 687768 "umlauts misplaced in eps file". EXPECTED DIFFERENCES : None.[src/ttfmain.c 1.30]
2004-10-21 15:05 Igor Melichev
Fix (TT interpreter) : A tolerance to bad TT instructions. DETAILS : Bug 687764 "/invalidfont in .type42execchar". Since we met several fonts with bad TT instructions, we print a warning and continue with ignoring instructions. EXPECTED DIFFERENCES : None.[src/gstype42.c 1.46, src/gxfont42.h 1.20, src/gxttfb.c 1.35, src/ttfmain.c 1.29, src/ttfoutl.h 1.14]
2004-10-20 15:58 Igor Melichev
Fix (pdfwrite) : Glyph positions were wrong for vertical CID fonts (continued). DETAILS : Bug 687603 "vertical text misplaced after distilling", reopened. Bug 687753 "Text not aligned when viewed with Acrobat Reader", re-testing. Disposition : D1. The PDF spec requires X-compomenent of v-vector always equals to half glyph width. D2. AR5 appears to use W|DW to compute the X-component of the v-vector of WMode 1. The previous patch fixed most problems, but one left unfixed. When a glyph is used with WMode 0, and later with WMode 1, the second usage doesn't store Width and V due to the 'used' flag is already set. This patch introduces 2 separate sets of flags for WNode 0 and WMode 1. Changes : 1. Defined a new field 'used2' fro WMode 1 in gdevpdtf.h . 2. Allocated the used2 array, provided garbager methods, and a resizing on demand in gdevpdtf.c . 3. gdevpdtc.c sets used2. 4. Improved the computation of the v-vector in gdevpdtt.c . Now pdf_glyph_widths should be conforming to (D1) and (D2). 5. The coordinate adjustment in gdevpdte.c is not longer useful due to (4). Removed. 6. When writing W, W2, glyphs are being enumerated with used, used2 correspondingly (gdevpdtw.c). 7. The accedd to Widths2 sometimes was incorrect. Now fixed (gdevpdtf.c). 8. gdevpdtc.c misused Widths2 as Widths when storing the WMode 0 width as a component of theWMode 1 v-vector. Now fixed. EXPECTED DIFFERENCES : Bug687603.ps[src/gdevpdtc.c 1.39, src/gdevpdte.c 1.64, src/gdevpdtf.c 1.40, src/gdevpdtf.h 1.25, src/gdevpdtt.c 1.92, src/gdevpdtw.c 1.34]
Remove quotes from input filenames.[toolbin/tests/update_specific 1.3]
2004-10-20 01:30 Igor Melichev
Fix (pdfwrite, PDF interpreter) : Glyph positions were wrong for vertical CID fonts. DETAILS : Bug 687753 "Text not aligned when viewed with Acrobat Reader". Disposition : D1. The PDF spec requires X-compomenent of v-vector always equals to half glyph width. D2. AR5 appears to use W|DW to compute the X-component of the v-vector of WMode 1. Changes : 1. With WMode 1, pdf_obtain_cidfont_widths_arrays obtains both Widths and Widths2 arrays (gdevpdtf.c, gdevpdtf.h, gdevpdtc.c). 2. For CID fonts gdevpdtc.c computes both WMode 1 and WMode 2 width when WMode 1 is requested. 3. Due to (D1), must compensate the half width when computing a glyph position in gdevpdte.c (hunk #2). 4. In gdevpdte.c internal data glyph_origin_shift used opposite signs for CID and non-CID fonts. Now made uniform. 5. The Type 0 font matrix and the descendent CID font matrix were applied in a wrong order in gdevpdte.c . 6. To satisfy (D2) when WMode 1 is only requested, write DW 0 when WMode 1 is only requested. 7. After fixing all above, from the test file of the bug 687753 pdfwrite generated a PDF, which GS failed interpret due to a curious failure with e_dictfull while checking for an absent key /File in the font dictionary. Patched zfcid1.c to provide a tolerance. Meanwhile we're not sure that it's the best way for fixing that, so if someone can bring a better method, feel free to improve. 8. The PDF interpreter is patched to comply with (D2) - pdf_font.ps, hunk #2 . 9. Fixed a bug in .pdfMakeInternalMTXArray : W2 arraytype elements wrongly computed the range (debugged with re-distilled Bug687603.ps). EXPECTED DIFFERENCES : Bug687603.ps besides that, it generates an improved PDF for japan-.ps, Type11CDevProc.ps, but rasters appear same because a change to the PDF interpreter compensates changes to the PDF writer.[lib/pdf_font.ps 1.70, src/gdevpdtc.c 1.38, src/gdevpdte.c 1.63, src/gdevpdtf.c 1.39, src/gdevpdtf.h 1.24, src/gdevpdtw.c 1.33, src/zfcid1.c 1.21]
2004-10-18 15:23 Igor Melichev
Fix : Degenerate segments must not paint when caps is not round. DETAILS : Bug 687720 "Zero length lines must not stroke". See comment in code. EXPECTED DIFFERENCES : Normal 72 dpi : "012-05.ps" "013-05.ps" "014-05.ps" "015-01.ps" "015-05.ps" "027-01.ps" "027-09.ps" "032-01.ps" "034-01.ps" "034-10.ps" "083-05.ps" "123-05.ps" "169-05.ps" "192-01.ps" "222-05.ps" "298-05.ps" "307-01.ps" "321-05.ps" "file2.pdf" Normal 300 dpi : "012-05.ps" "014-05.ps" "015-01.ps" "015-05.ps" "027-01.ps" "027-09.ps" "034-01.ps" "034-10.ps" "123-05.ps" "169-05.ps" "192-01.ps" "222-05.ps" "298-05.ps" "307-01.ps" "321-05.ps" "a.pdf" "file2.pdf" pdfwrite 72 dpi : "012-05.ps" "013-05.ps" "014-05.ps" "015-01.ps" "015-05.ps" "027-01.ps" "027-09.ps" "032-01.ps" "034-01.ps" "034-10.ps" "083-05.ps" "123-05.ps" "169-05.ps" "192-01.ps" "222-05.ps" "298-05.ps" "307-01.ps" "321-05.ps" "ai2.pdf" "file2.pdf" pdfwrite 300 dpi : "012-05.ps" "014-05.ps" "015-01.ps" "015-05.ps" "027-01.ps" "027-09.ps" "034-01.ps" "034-10.ps" "083-05.ps" "123-05.ps" "169-05.ps" "192-01.ps" "222-05.ps" "298-05.ps" "307-01.ps" "321-05.ps" "a.pdf" "file2.pdf"[src/gxpdash.c 1.6, src/gxstroke.c 1.13]
2004-10-18 08:43 Igor Melichev
Fix (Type 1 hinter) : Don't align glyph width to pixels. DETAILS : See comment in code. Bug 687719 "PDFWRITE corrupts letter spacing/placement". When porting this patch to GS_8_1X please note that the default value of AlignToPixels is different in HEAD andf GS_8_1X. Therefore this patch may cause differences witg GS_8_1X. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.54]
2004-10-15 18:24 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 9). Check the Encoding compatibility while merging Type 3 glyph variations. DETAILS : Fixes the reopened bug 687660 "incorrect font rendering/missing glyphs from ps2pdf". pdf_is_same_charproc1 now checks whether we try to replace a charproc with one taken from a font with a compatible Encoding. Before now the encoding was ingnored, causing a subsequent failure (due to an encoding conflict) when adding glyphs to the font copy, and an infinite loop. As usual, the encoding compatibility is being checked within the list of characters of a current text. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h 1.102, src/gdevpdti.c 1.38, src/gdevpdtt.c 1.91, src/gdevpdtt.h 1.25]
2004-10-15 18:18 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 8). Allocate a single character list per text. DETAILS : This change is algorithmically equivalent. It's a preparation for fixing the reopened bug 687660 "incorrect font rendering/missing glyphs from ps2pdf". For 1-byte fonts now we allocate a singe instance of pdf_char_glyph_pairs_t for storing the character list for entire text. Now it is done once per text as an extention to pdf_text_enum_t. The intention is to provide an access to it from pdf_find_same_charproc. CID text is still processed in chunks, which are delimited by font changes or CDevProc callouts. It may cause a searchability problem with some viewers, when converting a composefont with a Type 3 descendent. But unlikely we'll met such case in practice, due to we have no exmples of composefont with a Type 3 descendent. We would like to improve the CID text processing sometimes with with building a complete character list for a text portion delimited with font changes. The new algorithm for scan_cmap_text should be like this : first delimit a single font portion, then construct the character list for the portion, and then process the portion with possible CDevProc and charproc callouts. EXPECTED DIFFERENCES : None.[src/gdevpdtc.c 1.37, src/gdevpdte.c 1.62, src/gdevpdtf.c 1.38, src/gdevpdtf.h 1.23, src/gdevpdtt.c 1.90, src/gdevpdtt.h 1.24, src/gxfcopy.c 1.52, src/gxfcopy.h 1.11]
2004-10-15 08:55 Igor Melichev
Fix : toolbin/pdfinflt.ps did not decompress some streams. DETAILS : Patch from SaGS for the bug 687746 "gs\toolbin\pdfinflt.ps doesn't unpack a stream" Current version of pdfinflt.ps uncompresses only streams that have a single filter applied, and only if that single filter is /FlateDecode. Proposed patch (attached) ads support for procesing streams with multiple filters. However, not all decompressing filters can be removed, and not in all cases it would be desirable to remove them. The /filterstoremove dictionary lists filters that are to be processed, and omits filters that are to be preserved in the output. For streams with multiple filters chained together, the new version of pdfinflt.ps removes all filters from the first in the decompressing chain up to, but excluding, the first filter that is to be preserved. The list of preserved filters, with the reason why these are not removed, follows: /RunLengthDecode, /CCITTFaxDecode, /DCTDecode: These are normaly used for compressing raster images. I assume the main purpose of this tool is to decompress page streams for debugging, and decompressing images only adds a huge amount of binary data, making harder to find and examine content streams. If this is not the case, and getting raw image data is necessary, simply uncomment the lines corresponding to these filters. /JBIG2Decode, /JPXDecode: There's no (standard) PostScript filter that corresponds to these PDF filters. (I think) GhostScript implements these filters in the PostScript interpreter, but not for all platforms, so I added some detection code for them. The preceding paragraph applies too, so I left the lines corresponding to these filters commented out. /Crypt (PDF1.5-specific): This is a generic interface with decryption plug-ins, and has no PostScript counterpart (and I don't see how it could have one). EXPECTED DIFFERENCES : None.[toolbin/pdfinflt.ps 1.6]
Add logic to capture the ENTIRE regression report to a rotating log file. As before the ENTIRE regression report is only emailed on Mondays.[toolbin/tests/run_nightly 1.29]
2004-10-14 17:28 Igor Melichev
Fix (pdfwrite) : Fixing some Type 3 encoding problems. DETAILS : We found that Encoding compatibility was insufficiently checked with Type 3 glyph variations. It's a preparation for fixing the reopened bug 687660 "incorrect font rendering/missing glyphs from ps2pdf". EXPECTED DIFFERENCES : None.[src/gdevpdti.c 1.37, src/gdevpdtt.c 1.89]
2004-10-13 15:31 Igor Melichev
Fix (pdfwrite, PDF interpreter) : Correctly handle different widths for same glyph (continued). DETAILS : This patch continues a long story about the handling of different widths for same glyph in a PDF embedded font. The last patch in this series was http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004834.html That patch caused a problem with pdfwrite, which needs to write an original glyph name rather than a substituted one. This change establish a new discipnile for passing the original glyph name from the PDF interpreter to pdfwrite inside a substituted glyph name, with using an implementation specific separator (~GS~). Before writing a font, we apply copied_drop_extension_glyphs to remove extended glyph names. We don't like to modify the font, but choose this minimal solution for now. A better solution would be to introduce another flag to glyph slots to mark ones, which to be skipped when writing the embedded font. Bug 687740 "(pdfwrite) A character dissappeared in ADOBE1-4.pdf". EXPECTED DIFFERENCES : pdfwrite : ADOBE1-4.pdf[src/gdevpdtb.c 1.29, src/gdevpdtw.c 1.32, src/gxfcopy.c 1.51, src/gxfcopy.h 1.10, src/gxfont.h 1.23, src/gxtype1.c 1.40, lib/pdf_font.ps 1.69]
Fix LZWEncode filter to use the EarlyChange parameter and also correct the tifflzw device to initialize EarlyChange to the proper value (1). Bug 687726. DETAILS: The LZWEncode filter failed to use the EarlyChange param but the LZWDecode did honor this setting. The LZWEncode always acted as if EarlyChange = 1 which since that was the default, worked as long as the Decoder wasn't set for EarlyChange == 0. Also, now that the Encoder honors EarlyChange = 0, the tifflzw device needed to have the flag set correctly (it needs EarlyChange == 1). EXPECTED DIFFERENCES: 430-01.ps[src/gdevtfax.c 1.8, src/slzwe.c 1.2]
2004-10-08 22:55 Igor Melichev
Fix (pdfwrite) : *bfrange boundaries may differ in the last byte only. DETAILS : The PDF specification requires so. Bug 687737 "can't select text in distilled pdf". EXPECTED DIFFERENCES : None.[src/gsfcmap.c 1.25]
2004-10-08 13:27 Igor Melichev
Fix (pdfwrite) : The function same_type42_hinting was indeterministic. DETAILS : It compares few TrueType tables for equality, but didn't work out the case when a table is absent. In that case the bahavior was indeterministic. Bug 687736 "pdfwrite hangs (or takes really long) on input file". It created too many font copies and spent lots of time for garbage collection. EXPECTED DIFFERENCES : None.[src/gxfcopy.c 1.50]
2004-10-07 21:12 Alex Cherepanov
Don't overwrite CFLAGS variable if it is already defined. Bug 687739[src/msvc32.mak 1.64]
Fix initialization of C stack streams that did not perform s_init(). Bug 687709 that could result in a Segmentation Fault (SEGV) DETAILS: The normal s_alloc() streams included s_init() on the allocated stream, but C stack streams could have uninitialized elements in the stream struct. Since this was UMR related, and affected the clist mode, the jpeg device and the pswrite device (and possibly some pdfwrite data), this would be different on different platforms. The premature 'CloseTarget' action when the stream->close_strm was not initialized as 0 (false) would show up as a SEGV when the -Z@ was used. Other problems that this patch fixes are not linked to a test file at the current time. This change also corrects a trivial typo and a NUL character found in src/gxtype1.c as a header file related warning in src/imain.c[src/gdevjpeg.c 1.8, src/gdevlj56.c 1.6, src/gdevpdfc.c 1.49, src/gdevpdfm.c 1.47, src/gdevpdtb.c 1.28, src/gdevpdtw.c 1.31, src/gdevps.c 1.40, src/gdevpsf1.c 1.17, src/gdevpsf2.c 1.32, src/gdevpsft.c 1.32, src/gdevpsim.c 1.14, src/gdevpsu.c 1.18, src/gsfunc4.c 1.16, src/gxclimag.c 1.11, src/gxclpath.c 1.20, src/gxclrast.c 1.31, src/gxclread.c 1.13, src/gxfcopy.c 1.49, src/gxtype1.c 1.39, src/iccfont.c 1.10, src/imain.c 1.40, src/imainarg.c 1.33, src/stream.c 1.26]
Add a missing dependency on version.mak to the generation of gconfigd.h. Without this the revision number isn't correctly updated in an incremental build. Closes bug 687733.[src/gs.mak 1.27, src/version.mak 1.74]
2004-10-06 11:32 Igor Melichev
Fix (TrueType interpreter) : Calls to user defined instructions were not implemented. DETAILS : This implements IDEF and user defined instructions calls according to the TrueType specification by Apple http://developer.apple.com/fonts/TTRefMan/ . EXPECTED DIFFERENCES : None.[src/ttinterp.c 1.15, src/ttobjs.c 1.8, src/ttobjs.h 1.6]
2004-10-05 12:45 Igor Melichev
Fix : The 'gslibctx' patch had broken FAPI. DETAILS : A memory context pointer was added with no initialization. EXPECTED DIFFERENCES : None.[src/zfapi.c 1.53]
2004-10-05 10:24 Igor Melichev
Fix (Type 1 hinter) : 'int32' conflicts with AIX compiler standard types. DETAILS : Bug 687723 "type conflicts in gxhintn.h" EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.53, src/gxhintn.h 1.23, src/lib.mak 1.201]
2004-10-04 17:28 Igor Melichev
Fix : Optimize gs_c_decode with a binary search. DETAILS : Bug 687102 "Optimize gs_c_decode". Patch from John Desrosiers. EXPECTED DIFFERENCES : None.[src/gscedata.c 1.5, src/gscedata.h 1.4, src/gscencs.c 1.8, toolbin/encs2c.ps 1.5]
2004-10-02 01:45 Alex Cherepanov
Add TrivialCMYK color space, which simulates standard PostScript CMYK to RGB conversion on device-independent level. Fix bug 687711 [DETAILS] Recent versions of Adobe Acrobat simulate on screen the appearance of printed documents when the color of an object is specified in DeviceCMYK color space. The resulting dark colors can be undesirable for presentation graphics. TrivialCMYK can help when the user had RGB colors in mind, but for some reason used CMYK colors instead in the document.[Resource/ColorSpace/DefaultCMYK 1.4, Resource/ColorSpace/DefaultRGB 1.4, Resource/ColorSpace/TrivialCMYK 1.1]
Change OS/2 gx_color_index from 32 to 64 bits to allow better support for DeviceN.[src/os2.mak 1.41]
Fix for 687706 Display device 8-bit native incorrectly dithers grays. This is a partial fix and also needs Dan Coby's fixes to the post DeviceN halftoning. The DeviceRGBK color model is added. DETAILS: Prior to GS 8, the display device 8-bit native format would use 32 gray levels to avoid halftoning, and a 4x4x4 color cube which did use halftoning. The halftoning logic was changed with the introduction of DeviceN and in GS 8 both grays and colors were being halftoned. The DeviceRGBK color model is added and used by the display device native 8-bit format. The RGB color space to RGBK color model conversion converts pure RGB grays to the K (black/gray additive) component. This allows the 32 gray levels to be recognised by the halftoning logic as being sufficient to avoid halftoning.[src/gdevdsp.c 1.30, src/gxcmap.c 1.23, src/gxcmap.h 1.12, src/zcolor.c 1.21]
Fix for 687718 The tiffsep device fails when the size of gx_color_index is 32 bits DETAILS: The comments on bug 687705 "Compile of 8.31 fails on OS/2" point out that the tiffsep device fails during device initialization if the size of gx_color_index is 32 bits. This is due to a recent change which made the default number of components for this device equal to 8. This works if the size of gx_color_index is 64 bits. But it fails with 32 bits. This fix changes the default number of components for this device to be based upon the size of gx_color_index. It also changes the psdcmyk device to use the same logic for its default number of components. This fix also includes changes to doc/Devices.htm which explains that the number of components will differ based upon the size of gx_color_index (and a link giving more details on gx_color_index). More information about the parameters for the tiffsep device is given including an example command line.[doc/Drivers.htm 1.49, src/gdevpsd.c 1.18, src/gdevtsep.c 1.5]
2004-09-30 17:31 Igor Melichev
Fix : Moving type1_cis_get_metrics to the graphics library. DETAILS : Doing so since copied_type1_glyph_outline calls it. This change is algorithmically equivalent. Thanks to Stefan for pointing this out. EXPECTED DIFFERENCES : None.[src/gxtype1.c 1.38, src/zchar1.c 1.40]
This is a partial fix for 687706 Display device 8-bit native incorrectly dithers grays. Russell Lang is improving the 8-bit (256 color) display device to allow more shades of gray. This change is required for that effort. DETAILS: The pre 8.00 release had more gray levels for the 8-bit display device but the pre 8.00 release had other related problems in halftoning. The fix for those problems eliminated the extra gray levels. Russell's effort dug up some problems with the handling of halftones for devices in which the max_color and max_gray values are different and gray_index is set to an actual component number. This fix corrects those problems. Russell has a patch for the remainder of the effort. His changes involve changing the 256 color display device to use a DeviceRGBK process color model: red, green, blue and an additive black (gray). New device color mapping procs also have been created for this process color model. (This is the first example of this process color model in Ghostscript.)[src/gxdevice.h 1.20, src/gxdevndi.c 1.4]
2004-09-29 21:36 Igor Melichev
Fix (the filling algorithm) : Unite trapezoids if they have a common side. DETAILS : Bug 687716 "Assertion fails in gzspotan.c". The spot analyzer can't reconstruct the topology when there are two trapezoids with a common side. We patched the spot decomposition algorithm with uniting such trapezoids, because (1) it's too hard to unite them in the "spotan" device, and (2) the post-condition of the spot decomposer simplifies. For more details see a new comment in code. This patch causes a rendering difference. We believe that a big part of differences happens due to the bug 687717, which is currently unfixed due to the QA overload. If the bug 687717 is fixed before this patch, a small rendering difference can also appear, because we unite trapezoids by the equality of x_current, x_next, which have an arithmetic error. Therefore ununited trapezoids may have a pixel center between them, which is not painted, but shifting a boundary to x_current, x_next the pixel center may fall into a trapezoid, then it is covered by the union and painted. Besides that, with dropout prevention, a pixel set for the union of two trapezoids may differ from the union of pixel sets for ununited trapezoids when at least one of the trapezoids is narrow. Particularly, two narrow trapezoids may paint 2 pixels, but its (narrow) union does a single pixel. Contacting trapesoids are not regular in characters, which only use a dropout prevention, but the test file of the bug 687698 (same as for 687667) demonstrates some ones in a CJK TT font, which composes hieroglyphs from subglyphs with a deformation and shifting. EXPECTED DIFFERENCES : normal 72dpi : "181-01.ps" "222-05.ps" "222-09.ps" "289-01.ps" "307-07.ps" "86554321.pdf" "bulletin.pdf" "KozukaB-ILEmbed.pdf" "S2_Digitalproof-Forum_x3k.pdf" "waterfal.ps" normal 300dpi : "012-05.ps" "012-09.ps" "013-05.ps" "013-09.ps" "123-05.ps" "123-09.ps" "222-09.ps" "289-01.ps" "307-07.ps" "86554321.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" pdfwrite 72dpi : "181-01.ps" "222-05.ps" "222-09.ps" "307-07.ps" "86554321.pdf" "Bug687603.ps" "bulletin.pdf" "KozukaB-ILEmbed.pdf" "S2_Digitalproof-Forum_x3k.pdf" pdfwrite 300dpi : "012-05.ps" "012-09.ps" "013-05.ps" "013-09.ps" "123-05.ps" "123-09.ps" "222-09.ps" "307-07.ps" "86554321.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf"[src/gxfilltr.h 1.7]
2004-09-29 19:10 Igor Melichev
Fix (pdfwrite) : Handle more than 32 TrueType subglyphs. DETAILS : Bug 687698 "Cannot extract the embedded font" error message 1. The old code run out an implementation limit MAX_GLYPH_PIECES. 2. Error code was not propagated. EXPECTED DIFFERENCES : None.[src/gxfcopy.c 1.48]
2004-09-29 11:34 Igor Melichev
Fix : Don't apply fill adjustment when stroking a character. DETAILS : Bug 687667 "Line width in a Type 1 stroked font". EXPECTED DIFFERENCES : -r300 CAT_LOGO.ps[src/zchar1.c 1.39]
2004-09-28 21:45 Igor Melichev
Fix : Pattern metrics was imprecize. DETAILS : Bug 687581 "A pattern truncated". This bug is a regression since the December 09 2003 revision. We still think that we insufficiently understand the Adobe's method, but now we've got one closer to CPSI than it was before the December 09 2003 revision. Particularly the pattern step now appears better than on December 09 2003. This patch includes a change, which is well defined by the math : the usage of float2fixed_rounded instead float2fixed. It is a part of the PRECISE_CURRENTPOINT stuff. The rest of the patch is a kind of hewristic. We guessed that a pattern size should always round up to allow a similar logics as for a clipping - "any part of pixel inside". As before December 09 2003, we improved the case with neither skewing nor rotation. A further work on the general case may be useful. At last, some old problems, which existed on December 09 2003, are still unfixed. An example is -r300 298-09.ps : a line appears outside the pattern box. For now living them as they are, because the primary purpose of this patch is to fix regressions. EXPECTED DIFFERENCES : normal 72 dpi : "176-01.ps" "255-01.ps" 257-01.ps" (A dashed line became wider due to a CTM coefficient slightly increased, and therefore it now looks contiguous. It's not a regression.) "269-01.ps" "289-01.ps" "296-01.ps" "303-01.ps" "Bug687396.ps" normal 300 dpi : "012-09.ps" "013-09.ps" "014-09.ps" "015-09.ps" "027-13.ps" "034-10.ps" "035-07.ps" "045-01.ps" "083-09.ps" "103-01.ps" "118-01.ps" "123-09.ps" "169-09.ps" "176-01.ps" "192-01.ps" "205-09.ps" "212-01.ps" "213-01.ps" "214-01.ps" "222-09.ps" "231-01.ps" "250-01.ps" "257-01.ps" "264-01.ps" "269-01.ps" "289-01.ps" "297-01.ps" "298-09.ps" "307-07.ps" "310-04.ps" "311-03.ps" "468-01.ps" "Bug687396.ps" "mspro.pdf" pdfwrite 72 dpi : "176-01.ps" "212-01.ps" "214-01.ps" "257-01.ps" (same as above) "269-01.ps" "303-01.ps" "Bug687396.ps" pdfwrite 300 dpi : "012-09.ps" "013-09.ps" "014-09.ps" "015-09.ps" "017-01.ps" "027-13.ps" "034-10.ps" "035-07.ps" "045-01.ps" "083-09.ps" "103-01.ps" "118-01.ps" "123-09.ps" "169-09.ps" "176-01.ps" "192-01.ps" "205-09.ps" "212-01.ps" "213-01.ps" "214-01.ps" "222-09.ps" "231-01.ps" "244-01.ps" "245-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "250-01.ps" "255-01.ps" "257-01.ps" "258-01.ps" "264-01.ps" "269-01.ps" "270-01.ps" "297-01.ps" "298-09.ps" "307-07.ps" "310-04.ps" "311-03.ps" "321-09.ps" "327-01.ps" "468-01.ps" "Bug687396.ps" "mspro.pdf"[src/gsptype1.c 1.20]
Export the prototype for gcst_get_memory_ptr() which is now used by ilocate.c as well as igc.c to igc.h so it is available in both files. Remove the cast that was papering over the warning this causes. Completes the fix for bug 687617.[src/igc.c 1.14, src/igc.h 1.9, src/ilocate.c 1.12]
2004-09-28 02:26 Alex Cherepanov
Remove a comment about LZW-compatible code that is no longer apply. Bug 687554.[src/Makefile.in 1.39, src/openvms.mmk 1.29]
Cast the read standard illuminant to icIlluminant instead of icStandardFlare inside icmMeasurement_read() inside the icc library. Not really our code, but resolves an enum mis-match warning. Bug 687694.[icclib/icc.c 1.10]
Add string_.h to some files missing prototypes. Bug 687694.[src/devs.mak 1.118, src/gdevps.c 1.39, src/gxpflat.c 1.42, src/lib.mak 1.200]
Add stdio_.h to the makefile dependencies for gslibctx.c.[src/lib.mak 1.199]
Properly include the portability version of the stdio error. Corrects type confict problems on HP-UX. Closes bug 687689.[src/gslibctx.c 1.5]
Fix bug #687705 Compile of 8.31 fails on OS/2.[src/gdevos2p.c 1.9, src/gp_os2.c 1.32, src/os2.mak 1.40]
2004-09-27 13:13 Igor Melichev
Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 3. DETAILS : Don't reset zone alignment. Bug 687578 "T1 hinter disturbs stem width", Comment #8. EXPECTED DIFFERENCES : normal 72 dpi : "045-01.ps" ("s" now aligns with the upper zone). "Bug687603.ps" normal 300 dpi : "CIDembedded.pdf" ("b", "d" now aligns with the bottom zone). pdfwrite 72 dpi : "045-01.ps" pdfwrite 300 dpi : "chess.ps" (a sloped line hints better). "CIDembedded.pdf"[src/gxhintn.c 1.52]
Fix SEGV caused by premature free of the bbox device with high level devices that use the bbox_device of the vector high level device. Bug 687631. DETAILS: The vector device allocated a bbox device, but never incremented the reference count past zero, so any use of the device that added a forwarding device with that bbox_device as the target would free the bbox device when that forwarding device closed. This happens with clipped images or images that use ROP's since a clipping ROP forwarding could be used.[src/gdevvec.c 1.25]
Add missing source file (it hadn't been 'added', so it did not get included on the previous LZWEncode commit.[src/slzwe.c 1.1]
Add the LZWEncode filter that actually compresses using the LZW method, rather than the dummy encoder in slzwce.c that expanded the input, but that avoided the patent issues. Bug 687554. Also fix a long standing issue in filter closing that failed to flush the target stream after the final s_process_write_buf with 'last' == true. Bug 224134. DETAILS: The LZWEncode filter was moved over from an older version of Ghostscript that actually had a working LZWEncode. The s_filter_close logic (discussed at length in bug 224134) was fixed to be consistent with the specification and with Adobe. While the target stream is not closed (per the specification unless CloseTarget is true), the specification *DOES* call for an automatic 'flushfile' which is supposed to be propagated down the filter chain.[doc/Develop.htm 1.140, doc/Issues.htm 1.42, doc/Projects.htm 1.59, doc/Ps2pdf.htm 1.71, src/bcwin32.mak 1.33, src/dvx-gcc.mak 1.27, src/lib.mak 1.198, src/macos-mcp.mak 1.26, src/macosx.mak 1.23, src/msvc32.mak 1.63, src/msvclib.mak 1.26, src/openvms.mak 1.37, src/os2.mak 1.39, src/slzwce.c 1.5, src/stream.c 1.25, src/unix-gcc.mak 1.46, src/unixansi.mak 1.37, src/watcw32.mak 1.30, src/zfilter2.c 1.6]
Fix error with automatic baseline creation for files which contain spaces in their names.[toolbin/tests/gscheck_pdfwrite.py 1.24, toolbin/tests/gscheck_raster.py 1.14]
Remove the 'makegnu' utility. It is out of date, and recent changes to the documentation structure have rendered its automation more-or-less unnecessary. The appropriate steps to convert releases are now documented in doc/Release.htm.[toolbin/makegnu.tcl 1.6]
Toolbin cleanup. Remove the extensionless shell wrappers for convenience utilities, except for gsmake where is aesthetically reasonable. Typing the script extensions for these little-used commands isn't a hardship.[toolbin/cvs2hist 1.4, toolbin/makefonts 1.4, toolbin/makegnu 1.4, toolbin/makehist 1.4, toolbin/makemaster 1.4, toolbin/makeset 1.4, toolbin/maketars 1.4, toolbin/makewin 1.4, toolbin/tmake 1.4]
Update some remaining occurances of 'GNU Ghostscript' to 'GPL Ghostscript'.[doc/Commprod.htm 1.33, doc/Make.htm 1.80, doc/New-user.htm 1.52, doc/Public.htm 1.7, doc/Readme.htm 1.57]
2004-09-22 15:35 Igor Melichev
Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/zchar1.c 1.38]
2004-09-22 15:32 Igor Melichev
Fix (pdfwrite) : Alwasys write the file ID in hexadecimal encoding. DETAILS : Bug 687688 "PDF file identifier uses non-alphanumeric characters". The previous patch was committed by error. This one fixes that, unwinding the last patch. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.100, src/gdevpdfu.c 1.60]
2004-09-22 15:23 Igor Melichev
Fix (pdfwrite) : Alwasys write the file ID in hexadecimal encoding. DETAILS : Bug 687688 "PDF file identifier uses non-alphanumeric characters". EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.59]
2004-09-22 14:15 Igor Melichev
Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/ichar1.h 1.12]
2004-09-22 13:52 Igor Melichev
CDevProc|Metrics|Metrics2 did not work with CIDFontType 0. DETAILS : Bug 687681 "Character spacing incorrect". The old implementation, which comes from the gs-cjk team, has a bug accessing the replaced metrics of a CIDFontType 0 font, which effectively caused the replaced metric to be ignored with CIDFontType 0 fonts. 1. Bug : With CIDFontType 0, CDevProc|Metrics|Metrics2 was searched in the descendent type 1 or 2 font rather than in the parent type 9 font. 1.1. A Type 9 font needs to be accessed via a descendent Type 1|2 font in pfont->procs.glyph_info. Added a new field gs_type1_data_s::parent, and provided an access through it with a new function gs_font_parent. 1.2. Metrics|Metrics2 is now accessed through gs_font_parent. 1.3. To access CDevProc implemented a new function zchar_get_CDevProc, which also works through gs_font_parent. 1.4. gs_type1_data_s::parent needs to reset while a type 9 font finalization, due to a reason, which we could not understand for sure. Likely descendent fonts appear to have a bigger lifetime than their parent type 9 font. Probably the descendents are pointed from somewhere besides FDArray (maybe the font registry ? or maybe after scaling the type 9 font from a type 9 copy ?), and we think it's not good. We believe that they should be released together with the type 9 font. For now leaving it as it is, working around with a hack notify_remove_font_type9. 1.5. In stable font copies gs_type1_data_s::parent is set to NULL to simplify the finalization. They are not used now. 2. Bug : In some cases the glyph bytecode was used instead the CID as a key for searching a Metrics|Metrics2 element (zchar1.c). 3. Bug : The PDF interpreter wrongly scaled W,W2,DW,DW2 for CIDFontTYpe0 (pdf_font.ps). 4. pdfwrite : Improved the generation of W, W2 for CID fonts, because after implementing (1) re-distilled 401-01.ps rendered incorrectly. 4.1. Prefer a non-zero width when computing DW, DW2 (gdevpdtw.c) (debugged with 401-01.ps). 4.2. Don't skip zero W, W2 elements. The old code recognized zeros as unused glyphs, but must do with the real glyph set in the font copy (debugged with the test file of the bug 687681). 5. zcharstring_outline still ignores CDevProc. We believe that it is correct, because it is used to compute font features with no dependence on the relaced metrics. 6. pdfwrite : Allowed a CDevProc callout for CIDFontType 0, because pdfwrite needs to know replaced widths, as well as it was done a half year ago for CIDFontType2. Actually after implementing (1) pdfwrite stopped to work correctly when re-distilling a PDF file with CIDFontType0, due to now it uses W,W2,DW,DW2. 6.1. A new function z1_set_cache is defined for this purpose similarly to zchar42_set_cache. 6.2. gs_font_procs::glyph_outline now retrieves the side bearing and width. Added a new argument 'sbw' to all implementations. 6.2.1. Currently this function extension is implemented for charstring fonts only, which need to interpret a charstring to retrieve the info : type 1,2,9, because we don't want to run the type 1 interpreter 2 times for getting sbw and bbox. Other font types retrieve zeros, which currently are not used. 6.2.2. type1_cis_get_metrics has been made public. 7. We believe that the implementation of W,W2,DW,DW2 in the PDF interpreter, which was contributed by the gs-cjk team, is unreasonably overcomplicated, because it is based on CDevProc, which needs an interpreter callout, which appears extremily hard from pdfwrite. For now leaving it as it is (except a small improvement in (3)). We would like to generate Metrics, Metrics2 instead that. Note that a small part of this patch (the part (1)) is necessary for generating Metrics, Metrics2 for CIDFontTYpe 0. EXPECTED DIFFERENCES : Almost all differences are a single pixel glyph shift. normal 72dpi : "Altona.Page_3.2002-09-27.pdf" "HeiseiMinStd.pdf" "KozukaB-ILEmbed.pdf" "Openhuis_pdf_zw.pdf" "RodinCIDEmbed.pdf" normal 300dpi : "289-01.ps" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" "CIDembedded.pdf" "HeiseiMinStd.pdf" "KozukaB-ILEmbed.pdf" "Openhuis_pdf_zw.pdf" "RodinCIDEmbed.pdf" pdfwrite 72dpi : "Altona.Page_3.2002-09-27.pdf" "HeiseiMinStd.pdf" "KozukaB-ILEmbed.pdf" "Openhuis_pdf_zw.pdf" "RodinCIDEmbed.pdf" pdfwrite 300dpi : "CIDembedded.pdf" "HeiseiMinStd.pdf" "KozukaB-ILEmbed.pdf" "Openhuis_pdf_zw.pdf" "RodinCIDEmbed.pdf"[src/gdevpdtt.c 1.88, src/gdevpdtw.c 1.30, src/gsfont.c 1.34, src/gstype42.c 1.45, src/gxfcopy.c 1.47, src/gxfont.h 1.22, src/gxfont1.h 1.13, src/gxtype1.c 1.37, src/gxtype1.h 1.19, src/ichar1.h 1.11, src/icharout.h 1.10, src/zchar.c 1.15, src/zchar1.c 1.37, src/zcharout.c 1.13, src/zfcid0.c 1.23, src/zfcid1.c 1.20, src/zfont1.c 1.13, src/zfont42.c 1.21, lib/pdf_font.ps 1.68]
Move the definition of gs_overprint_t from gsovrc.c to gsovrc.h. This makes this structure definition available to future devices which may want to define their own overprint compositor.[src/gsovrc.c 1.8, src/gsovrc.h 1.4, src/lib.mak 1.197]
Correct some gcc warnings.[src/gdevdevn.c 1.23, src/zcolor.c 1.20]
2004-09-21 10:00 Igor Melichev
Fix (pdfwrite) : Generate an error message when pdfmark points beyond the last page. DETAILS : Fixes the bug 687693 "A dangling reference from DOCVIEW pdfmark". We want to return error code, but currently we don't due to bug 687686 "Ghostscript creates bad xref from ADOBE1-4.pdf". EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.99, src/gdevpdfm.c 1.46, src/gdevpdfx.h 1.101]
Partial fix for 687657 Text in transparency mask yields rangecheck in discardtransparencymask. DETAILS: Three problems have been found with this file. The rangecheck is actually a secondary effect. The actual problem was a typecheck in setrgbcolor. However that error occurred inside a stopped context. 1) The file has a mask group. This group specifies a color space (CS). The previous code set the current color space to the given value. However the FillColorSpace and StrokeColorSpace were not set. As a result, a DeviceRGB color space was being used instead of the specified DeviceGray color space. This resulted in a mismatch in the number of operands when the color as set (1 versus 3). The fix consists of setting both StrokeColorSpace and FillColorSpace when a mask group contains a CS value. 2) The file uses scn for setting color values for a DeviceGray color space. FillColor and StrokeColor can contain wither a single numeric value (which is common but not required for DeviceGray) or an array of values for all other color spaces. The scn and SCN operators were always assuming that these values always contained arrays. The fix consists of checking for the non array cases in the operators. 3) The appearance produced by Ghostscript with the test file does not match Adobe. A solid magenta rectangle is produced by Ghostscript. Adobe shows magenta text. This problem is NOT fixed by this patch. Note: If the test file is opened with Illustrator CS and then saved, Ghostscript does produced the same appearance as Adobe for the saved file. The reason for the differences are not currently known. However there are some more details in the bug report on this issue.[lib/pdf_draw.ps 1.86, lib/pdf_ops.ps 1.36]
Fix for 687403 Poor halftoning for 16 color (4 bit) devices. DETAILS: This bug is a brother to bug 687390. That bug was for 256 color (8 bit) devices. Russell Lang suggested testing the 4 bit devices and they were found to have problems caused by the same logical error. The halftoning logic assumes that all components for a device have the same number of shades. This was not true for the implementations of the 4 and 8 bit color devices. This fix converts the 16 color devices to using a 2x2x2 cube. Note: A possible future enhancement would be to convert these devices to using a 4 level gray for shades of pure gray (R = G = B).[src/gdevbmp.c 1.10, src/gdevdsp.c 1.29, src/gdevmgr.c 1.7, src/gdevmswn.c 1.12, src/gdevpccm.c 1.7, src/gdevpccm.h 1.8, src/gdevpcfb.c 1.6, src/gdevpcx.c 1.8, src/gdevpm.c 1.10, src/gdevpng.c 1.11]
Fix for 687664 tiffsep sometimes producing apparently corrupt files sometimes. DETAILS: The tiffsep device did not properly handle multiple page input files. This change adds multiple page handling to the tiffsep device. Most of the various tiff related routines already properly handled multiple pages so changes were only required inside the tiffsep device. The changes consists of: 1. Moving several variables which were local to tiffsep_print_page into the tiffsep device structure and adding initialization. These variables provide state information to the general tiff handling routines and the file pointers for the separation files. 2. Add logic for determining if the output file name includes a numeric format specification. If so then we create individual separation files for each page. If not then we create a single file for each separation. 3. A device close procedure was added to ensure that the separation files were closed.[src/gdevtsep.c 1.4]
2004-09-20 16:21 Igor Melichev
Fix (pdfwrite) : Could merge fonts with insufficient subrs. DETAILS : Bug 687675 "ps2pdf13 gives ERROR -15 closing the device" happened due to an inaccurate computation of Subrs array inclusion. EXPECTED DIFFERENCES : None.[src/gxfcopy.c 1.46]
2004-09-20 13:06 Igor Melichev
Fix : Degenerate curves could cause a too big number of flattened curve segnments. DETAILS : Bug 687653 "-dNOTRANSPARENCY still allocates large buffers". Actually the problem happens due to the bbox device sets a high resolution, and degenerate curves with zero X or Y variation use "the conservative method" in gx_curve_log2_samples. With this change degenerate curves will render as line segments. EXPECTED DIFFERENCES : golfer.eps At 72dpi (a 2 pixels difference).[src/gxpcopy.c 1.23]
Fixes bug #687690 MSVC6 warning in dwimg.c.[src/dwimg.c 1.16]
2004-09-20 09:59 Igor Melichev
Fix : vd_save caused a yntax error in a release build. DETAILS : See the comment added to vdtrace.h : /* NOTE : Use vd_save at end of the definition group of a block, because in release build it compiles to the empty operator. */ EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.83, src/vdtrace.h 1.14]
Changes bbox device forwarding logic so that get_page_device requests are always forwarded to the target. Fixes bug #687421. Note: this change backs out a change made to gdevnfwd.c between GS 4.70 and 4.80, with a confusing explanation in the change notes. Changes to the page device behavior in forwarding devices would not be surprising. See the code review notes linked from the bug for more details.[src/gdevbbox.c 1.22, src/gdevnfwd.c 1.26, src/gsovrc.c 1.7]
Fix handling of CMaps to be able to handle large number of CMap entries seen with some (Adobe) CMap files. Also fix name of a CMap file and remove garbage at the end of one of our CMap files. Bug 687555. Thanks to Alex Cherepanov for the changes to allow large CMaps.[Resource/CMap/Adobe-CNS1-ETen-B5 1.2, Resource/CMap/Adobe-CNS1-ETenms-B5 1.1, Resource/CMap/Adobe-Korea1-H-Mac 1.2, lib/gs_cmap.ps 1.18, src/zfcmap.c 1.16]
Sets explicit umask for nightly regression run. Fixes Bug #687648.[toolbin/tests/run_nightly 1.28]
Fix support for filenames that include spaces. Also add '.ai' as a PDF type extension.[toolbin/tests/gstestgs.py 1.24]
Fix a typo made by someone's previous commit.[toolbin/tests/gscheck_pdfwrite.py 1.23]
Added new gsutil module for utility functions. Changed all file extension checks to use new gsutil.check_extension(). Added support for '.ai' as a file extension. This should fix the problem of several files in comparefiles not making it into the nightly runs.[toolbin/tests/gscheck_pdfwrite.py 1.22, toolbin/tests/gscheck_raster.py 1.13, toolbin/tests/gsutil.py 1.1, toolbin/tests/make_testdb 1.13, toolbin/tests/revert_baseline 1.13, toolbin/tests/revert_pdfbaseline 1.11, toolbin/tests/update_baseline 1.14, toolbin/tests/update_pdfbaseline 1.10]
Add log rotation for the Ghostscript stdout and stderr logs. Fixes Bug #687574.[toolbin/tests/run_nightly 1.27, toolbin/tests/testing.cfg.example 1.6]
Fixes bug #687683 "gswin32c : Ctrl+C doesn't stop the application". Make Ctrl+C in the image window act the same as Ctrl+C in the console window, which generates a signal to exit the process.[src/dwimg.c 1.15]
Fix for 687625 Incorrect spot color behavior in tiffsep. Garbage text was being printed for the spot color names. DETAILS: The problem was with the allocation and GC enumeration logic for the storage for the storage for the spot color names. Thus the problem was only apparent after the GC relocation logic had executed. The fix involves adding enumeration logic for the gs_param_string structure and correcting the allocation of storage for the data. Note: The file src/gdevdevn.c was missed in the previous commit on this topic.[src/gdevdevn.c 1.22]
Fix for 687625 Incorrect spot color behavior in tiffsep. Garbage text was being printed for the spot color names. DETAILS: The problem was with the allocation and GC enumeration logic for the storage for the storage for the spot color names. Thus the problem was only apparent after the GC relocation logic had executed. The fix involves adding enumeration logic for the gs_param_string structure and correcting the allocation of storage for the data.[src/gsparam.h 1.12]
Use PSOBJDIR as a staging area for the name-rewritten scripts at unix install time. We previously used 'sed -i' to modify the installed file in place, but this option is a recent extension and insufficiently portable. The install script also isn't capable enough to accept files through pipes, so we much have an intermediate staging area. PSOBJDIR should be a safe place to write to for this purpose. Fix for 686863.[src/unixinst.mak 1.37]
2004-09-16 15:14 Igor Melichev
Fix (PDF interpreter) : Correctly handle different widths for same glyph. DETAILS : Bug 687672 "incorrect font rendering". An Encoding may specify various character codes for same glyph, and Widths may specify different widths for those codes. Thus same glyph may be used with different widths. This patch continues a long story about the handling of different widths for same glyph, which includes my old hacks (pdf_font.ps Revision 1.22 and 1.26) and Alex's change pdf_font.ps Revision 1.57 . Alex defines new glyph names for same glyph to resolve the widths conflict. After the Alex's change my old hacks appear low useful, and can be removed. This patch 1. Removes the hacks; 2. Improves the Alex's change with the case when CharStrings has no referred glyph (debugged with 1_2001.pdf) 3. Improves the Alex's change with minimizing a number of newly generated names, because the test file of the bug 687672 maps many charcodes to .notdef with various widths. Here is a list of bugs related to this change : 687672 623292 467492 517474 444366 EXPECTED DIFFERENCES : None.[lib/pdf_font.ps 1.67, lib/pdf_ops.ps 1.35]
2004-09-16 08:03 Igor Melichev
Fix : A library context was not provided for bbox device. DETAILS : BBox device needs a library context for gs_next_id called from gx_image_enum_common_init. It was not provided when the bbox device has no target. We assume that the bbox device behavior doesn't depend on availability of a memory pointer - likely it is so from reading the code. Bug 687671 "epswriter it's not working at all." EXPECTED DIFFERENCES : None.[src/gdevbbox.c 1.21, src/gdevbbox.h 1.6, src/gdevvec.c 1.24, src/gslib.c 1.15, src/gximag3x.c 1.20]
Fix a typo in and earlier commit.[src/unixinst.mak 1.36]
2004-09-16 06:57 Igor Melichev
Fix : A syntax error in a recent patch. EXPECTED DIFFERENCES : None.[src/gdevbbox.c 1.20]
Remove trailing ^M on lines in several commits by alexcher.[src/dwimg.h 1.11, src/dwmain.c 1.21, src/dwmainc.c 1.24, src/dwtrace.h 1.7, src/gdevbbox.c 1.19, src/gdevwdib.c 1.9, src/gs.c 1.14, src/iscannum.c 1.10, src/stream.c 1.24, src/unistd_.h 1.12, src/zdevice.c 1.10]
2004-09-15 11:46 Alex Cherepanov
Fix the problems reported by HP aC++/C compiler but unrelated to the crash. Partial fix for 687643 [DETAILS] gs.c, int.mak - include the prototype of gs_malloc_init() ttfmain.c - fix partly initialized FixMatrix m; gdevpsd.c - allocate 4 elements for CMYK, not 3[src/gdevpsd.c 1.17, src/gs.c 1.13, src/int.mak 1.130, src/ttfmain.c 1.28]
2004-09-15 07:59 Igor Melichev
A new implementation of shadings, step 87. DETAILS : Contrary to PLRM3 page 689, Background was not ignored with shfill. Adding gs_pattern2_instance_s::shfill for that. Bug 687673 "Axial shadings differ from Adobe". EXPECTED DIFFERENCES : Background isn't painted with 'shfill' (a progression) : "464-01.ps" "483-01.ps" "483-05-fixed.ps"[src/gscolor3.c 1.9, src/gsptype2.c 1.15, src/gsptype2.h 1.10, src/lib.mak 1.196]
2004-09-15 07:21 Igor Melichev
A new implementation of shadings, step 86. DETAILS : 1. Implemented gx_shade_background with a compatible INTERPATCH_PADDING logic for filling a background. 2. The clipping logic in gdevdsha.c must be "any ppart of pixel inside", as it is in other places. 3. Dont need adjust_swapped_boundary for clipping rectangles (gxshade6.c). 4. INTERPATCH_PADDING is enlarged to half pixel. See comment in code. 5. Optimized with a better clipping in gx_shade_trapezoid. Completes the fix for 687585 "A shading renders narrower than its background". EXPECTED DIFFERENCES : Shadings render slightly different : "442-01.ps" "446-01-fixed.ps" "464-01.ps" "478-01.ps" "483-01.ps" "483-05-fixed.ps" "Altona-Testsuite_p2_S_x3.pdf" "BEST8-99-Path.fh7.pdf" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "S2_Digitalproof-Forum_x3k.pdf" "self-intersect2.ps" "shading_prob_800.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"[src/gdevdsha.c 1.11, src/gsshade.c 1.12, src/gxshade4.h 1.37, src/gxshade6.c 1.82]
Add custom page size to PostScript Printer Description file.[lib/ghostpdf.ppd 1.2]
Fixes bug 687542 Print with pswrite gives 'Could not open the file \\spool\yourprinter'. Add a %printer% IODevice for OS/2, which opens to a temporary file then later copies it to the print spooler. This will need "%printer%yourprinter", not "\\spool\yourprinter". This is needed to make pswrite write to a printer queue.[doc/Develop.htm 1.139, src/gp_os2.c 1.31, src/gp_os2.h 1.1, src/gp_os2pr.c 1.1, src/os2.mak 1.38]
Add support for 4-bit/pixel CMYK to the display device clients for Windows and gtk+.[src/dwimg.c 1.14, src/dxmain.c 1.15, src/gdevdsp.c 1.28]
Ignore MediaPosition when selecting a media type. Adobe CPSI does it this way, and the PLRM suggests that this is advisory only. Bug 687547 for customer 780. DETAILS: Adobe CPSI also ignores this parameter without generating any error or warning. The PLRM says: This parameter does not override the normal media selection process described in the text, but if specified it will be honored--provided it can satisfy the input media request in a manner consistent with normal media selection--even if the media source it specifies is not the best available match for the requested attributes. Since an input PS file is unlikely to have a PPD that accurately reflects the 'slot' numbers of our InputAttributes dictionary, we also ignore this option and instead give the 'best fit' based on size and orientation (and other parameters that may exist).[lib/gs_setpd.ps 1.25]
Handle CS/cs PDF operators that have a colorspace array as an operand instead of a name as the specification requires (yet another broken PDF that Acrobat Reader handles without complaint). Issue pdfformaterror when bad CS operands are seen. Bug 687610 for customer 770.[lib/pdf_draw.ps 1.85]
2004-09-13 18:32 Igor Melichev
A new implementation of shadings, step 85. DETAILS : Propagate error codes from shade_bbox_transform2fixed. EXPECTED DIFFERENCES : None.[src/gxshade1.c 1.33, src/gxshade4.c 1.27, src/gxshade4.h 1.36, src/gxshade6.c 1.81]
2004-09-13 16:01 Igor Melichev
A new implementation of shadings, step 84. DETAILS : Fixed a Cygwin/gcc warning. EXPECTED DIFFERENCES : None.[src/gsshade.c 1.11]
2004-09-13 15:52 Igor Melichev
A new implementation of shadings, step 83. DETAILS : This is a partial fix for the bug 687585 "A shading renders narrower than its background". It fixes various secondary problems : 1. gx_default_fill_linear_color_scanline could miss pixels at the end of the scanline (bug 687585 "A shading renders narrower than its background", the right boundary). 2. decompose_linear_color could miss pixels when swapping axes of the clip rectangle. (bug 687585 "A shading renders narrower than its background", the top boundary). Defined adjust_swapped_boundary and applied for this purpose. 3. mesh_padding cauld miss pixels when swapping axes of the padding. Defined adjust_swapped_boundary and applied for this purpose. 4. Moved the fill adjustment from gx_dc_pattern2_fill_path to gsshade.c and disabled it in the NEW_SHADINGS build, because NEW_SHADINGS build never needs it. Instead that it applies mesh_padding. The new function gx_dc_pattern2_fill_path_adjusted access the new functionality from outside gsshade6.c . Also renamed gx_dc_pattern2_fill_path_adjusted with gx_dc_pattern2_fill_path for a better reflection of its new purpose. 5. Implemented VD_TRACE_DOWN in try_device_linear_color. The old code did a misleading drawing. 6. Fixed a conflict of the 's' flag in the -T argument. Changed the documentation to reflect that. EXPECTED DIFFERENCES : Shading render slightly different : 72 dpi : "446-01-fixed.ps" "483-01.ps" "483-05-fixed.ps" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" (a strong progression) "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai" 300dpi : "442-01.ps" "446-01-fixed.ps" "464-01.ps" "483-01.ps" "483-05-fixed.ps" "BEST8-99-Path.fh7.pdf" (a strong progression) "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "S2_Digitalproof-Forum_x3k.pdf" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" (a strong progression)[src/gdevdsha.c 1.10, doc/Use.htm 1.114, src/gsptype2.c 1.14, src/gsptype2.h 1.9, src/gsshade.c 1.10, src/gsshade.h 1.8, src/gxfill.c 1.119, src/gxshade6.c 1.80, src/gxstroke.c 1.12, src/lib.mak 1.195]
2004-09-13 07:13 Igor Melichev
Fix : Improve the error reporting about a dangling resource map record. DETAILS : When a resource map record pointed to an undefined resource, it printed "undefinedresource in GetSize". With this inprovement it prints the substituted resource name instead GetSize. EXPECTED DIFFERENCES : None.[lib/gs_cidfm.ps 1.6]
2004-09-12 19:12 Igor Melichev
A new implementation of shadings, step 82. DETAILS : The preceeding patch was incorrect in the point (1) "constant_color_quadrangle painted a triangle when the quadrangle is degenerate.". There exist cases when quadrangle degenerates to a triangle, and the patched code skipped it. This putch fixes that. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.79]
2004-09-09 21:01 Igor Melichev
Fix : Type 3 charproc must inherit flattnes from the text context. DETAILS : Bug 687582 "Flatness in a Type 3 font". The feature has been tested with Adobe CPSI. EXPECTED DIFFERENCES : "012-09.ps" "013-09.ps" "014-09.ps" "015-09.ps" "020-01.ps" "027-05.ps" "032-07.ps" "045-01.ps" "083-09.ps" "093-01.ps" "103-01.ps" "118-01.ps" "136-01.ps" "165-01.ps" "192-01.ps" "205-09.ps" "231-01.ps" "233-01.ps" "238-01.ps" "251-01.ps" "281-01.ps" "289-01.ps" "298-09.ps" "308-04.ps" "311-03.ps" "321-09.ps" "409-01.ps" "a.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" "Bug687207.ps" "Type3stringwidth.ps"[src/gxpaint.c 1.5, src/lib.mak 1.194]
Fixes for security problems not fixed in previous commit and fixes for other problems identified by SaGS in bug report -- detecting recursion, allowing r/w strings in procedures (but not in PermitFile arrays). Bug 687559.[lib/gs_lev2.ps 1.35]
2004-09-09 17:47 Igor Melichev
A new implementation of shadings, step 81. DETAILS : 1. constant_color_quadrangle painted a triangle when the quadrangle is degenerate. 2. rangecheck happened if the path lies entirely within an Extend area of an axial shading. 3. Due to a poor precision of t0, t1, Extend areas were painted when they have a zero width. Bug 687646 <pdfwrite : A strange shading in "Clarke Tate Manns Chinese.ai" >. EXPECTED DIFFERENCES : "442-01.ps" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai"[src/gxshade1.c 1.32, src/gxshade6.c 1.78]
2004-09-09 12:44 Igor Melichev
fuzzy.c : Improving the return codes. DETAILS: Return 2 on "out of window", return 1 with a difference within the window, return 0 otherwize (files equal).[toolbin/tests/fuzzy.c 1.16]
2004-09-09 11:33 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 7). DETAILS : A flag to be reset when going to the next character. Bug 687660 "incorrect font rendering/missing glyphs from ps2pdf" EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.61]
2004-09-09 11:24 Igor Melichev
Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 2. DETAILS : Switch on the new code in gxhintn.h, gxhintn.c . See the preceeding log message about the configuration flags : http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004792.html . Fixes bugs 687578 "T1 hinter disturbs stem width" 687579 "Type 1 hinter disturbs glyph height" 687588 "A CJK TT rendering worse" EXPECTED DIFFERENCES : A massive glyph rendering difference : about 50% of files at 72dpi, and about 95% of files at 300dpi.[src/gxhintn.h 1.22]
2004-09-08 10:13 Igor Melichev
Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 1. DETAILS : This change is algorithmically equivalent, because new code is disabled wirth configuration switches listed below. 1. FINE_STEM_COMPLEXES 1.1. Stem complex could miss a common boundary. 1.2. Stem width could be distorsed due to a common boundary missing (Bug 687578 "T1 hinter disturbs stem width".). 1.3. Overall hint (if presents) should have a bigger priority. 2. ALIGN_BY_STEM_MIDDLE 2.1. A stem middle could be shifted too much due to independent grid-fitting of boundaries and the change 1.2 - see 'i' in ccc-.pdf attached to Bug 687578. Fixed with an improved alignment with t1_hinter__align_stem_to_grid. 2.2. This isn't applicable for top|bottom zones from the TT stem recognizer, because we want to force outer boundaries to keep the glyph height. 2.3. 033-52-5873.pdf defines "pseodo-stem" hints, which have only one boundary corresponding to real poles. recognize them with t1_hinter__mark_existing_stems, and don't apply the improved alignment, because those stems designate outer glyph boundaries, which we want to force the uniform glyph height. Apparently fixes Bug 687579 "Type 1 hinter disturbs glyph height". 3. OPPOSITE_STEM_COORD_BUG_FIX Aligning a stem width, the resolutions by X and Y were exchenged. 4. TT_AUTOHINT_TOPZONE_BUG_FIX topzone and botzone were mixed when come from the TT stem recognizer. Also improved general comments in gxhintn.c . EXPECTED DIFFERENCES : None (the new code disabled).[src/gxhintn.c 1.51, src/gxhintn.h 1.21]
2004-09-08 09:36 Igor Melichev
fuzzy.c : Improving the report message. DETAILS: Print report message if any difference found. Before now it was printed only if out of window. Return error code only if out of window, as it was before.[toolbin/tests/fuzzy.c 1.15]
Translate the name of the gs executable stored in the utility scripts at install-time on unix. Closes bug 686863. DETAILS: The autoconf build supports a --with-gs=<name> option for setting the name of the Ghostscript executable, which is stored in the makefiles as '$(GS)', but scripts such at ps2pdf that expect to make invoke Ghostscript made no use of this variable, causing version skew at best, complete failure of that popular utility at worst. We therefore now rewrite the hard-coded name each time we install the utility scripts.[src/unixinst.mak 1.35]
Propagate autotools build system changes from the GS_8_1X branch. Use the proper macro for the 'rm' function, and a more specific test for locating the local libpng library source.[src/Makefile.in 1.38, src/configure.ac 1.48]
Change regression test flags to use new JOBSERVER flag. Older flags are retained to allow older regression testing to still use this module.[toolbin/tests/gstestgs.py 1.23]
Add some job server related support. The -dJOBSERVER option defines the ^D to start a new encapsulated job, and the ^D is changed to be a self- delimitting token in the scanner. Fixes 687079. DETAILS: For backward compatibility, -dNOOUTERSAVE is retained, but this does *NOT* define the ^D to start a new encapsulated job. As specified in the updates to doc/Use.htm, in order to avoid an /invalidrestore error, the input should be from stdin otherwise the restore done as part of the new job encapsulation (restore returns to the server state) will encounter a file object that was created after the encapsulation save. This allows 289-01.ps to complete IFF the -dJOBSERVER option is used during regression testing. Thus the only (eventual) regression change will be: 289-01.ps[doc/Use.htm 1.113, lib/gs_init.ps 1.111, lib/gs_lev2.ps 1.34, src/scantab.c 1.5]
Add missing memory argument in 'I' interp debug printing. Also remove local prototype for debug_print_ref in favor of using idebug.h. Fixes SEGV when using -ZI or (I) true .setdebug.[src/int.mak 1.129, src/interp.c 1.20]
Use the MTIME define from the stat module rather than a numerical index to specify the modification time in python. Propagates a similar change from gscheck_raster.py.[toolbin/tests/gscheck_pdfwrite.py 1.21]
Propagate memory pointer gs_malloc() changes to the optional lj3100sw device. Patch from Harald Koenig. Closes bug 687636.[src/gdevl31s.c 1.5]
2004-09-02 08:26 Igor Melichev
Fix : Unwind an unintentional change to setup_image_compression. DETAILS : I guess that gdevpsdi.c revision 1.30 was unintentionally modified with the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-August/004681.html EXPECTED DIFFERENCES : None.[src/gdevpsdi.c 1.31]
Fix for 687640 Unable to set default halftones for PDF. DETAILS: To support both PS level 1 and PS level 2 interpreting modes, Ghostscript defines two routines for setting a default halftone. PS level 1 does not support resources. Thus for PS 1 we have .setdefaultscreen which sets a default halftone which is defined inside of gs_init.ps. For PS 2, we have .setdefaulthalftone which is similar to .setdefaultscreen except that it also checks for a default halftone resource. The PDF interpreter's handler for the /HT gstate parameter called .setdefaultscreen if the parameter value was /Default. This fix changes the handler to use .setdefaulthalftone instead. This results in the PDF interpreter using the default halftone resource if it is present.[lib/pdf_draw.ps 1.84]
Fix ResourceForAll Category procedure to make sure that the path given by GenericResourceDir systemparam is included in the enumeration. Bug 687641.[lib/gs_res.ps 1.37]
Bump version after the 8.31 beta release.[doc/News.htm 1.151, lib/gs_init.ps 1.110, src/gscdef.c 1.46, src/version.mak 1.73]
2004-08-31 19:23 Alex Cherepanov
Trap C stack overflow exception on Borland C and MSVC. Without the trap the application silently terminates when C stack overflows. Fix bug 687461 [DETAILS] Watcom C 1.2 doesn't need the trap. It is also the only compiler tested that converts trailing recursion to iteration. GCC 3.2 on Windows still generates programs that fail silently but I don't know how to fix this. GCC 2.95 on Linux reports the stack overflow.[src/dwmain.c 1.20, src/dwmainc.c 1.23, src/windows_.h 1.7, src/winint.mak 1.22]
2004-08-31 13:49 Igor Melichev
Fix : Arcs were imprecise (continued). DETAILS : A previous patch had a minor portability defect : PRECISE_CURRENTPOINT was used before defined. EXPECTED DIFFERENCES : None.[src/gxmatrix.h 1.10]
2004-08-31 13:23 Igor Melichev
Fix : Arcs were imprecise. DETAILS : Bug 687584 "An extra element painting a circle.". The problem happened due to the PRECISE_CURRENTPOINT patch http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004333.html appears incomplete : arcs were not improved. This patch fixes that. 1. Applied gs_point_transform2fixed_rounding in arc_add to be consistent with the precise current point. 2. Renamed float2fixed_rounding with float2fixed_rounded and made it global. 3. Moved the definition of PRECISE_CURRENTPOINT to the appropriate scope. We leave many places in code, in which the unrounded transform is still applied, but those places do not deal with the current point. EXPECTED DIFFERENCES : Massive difference with acrs : normal, 72 dpi : "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "027-05.ps" "031-01.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "035-07.ps" "103-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "148-16.ps" "149-05.ps" "150-01.ps" "154-01.ps" "158-01.ps" "192-01.ps" "237-01.ps" "244-01.ps" "289-01.ps" "298-09.ps" "308-04.ps" "311-03.ps" "321-09.ps" "Bug687207.ps" "vasarely.ps" normal 300 dpi : "213-01.ps" "214-01.ps" "244-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "258-01.ps" "270-01.ps" "289-01.ps" "014-01.ps" "014-01.ps" "014-13.ps" "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "027-05.ps" "031-01.ps" "032-01.ps" "034-01.ps" "034-10.ps" "035-07.ps" "103-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "148-16.ps" "149-05.ps" "150-01.ps" "154-01.ps" "158-01.ps" "192-01.ps" "237-01.ps" "244-01.ps" "298-09.ps" "308-04.ps" "311-03.ps" "321-09.ps" "Bug687207.ps" "vasarely.ps" pdfwrite, 72 dpi : "012-01.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-13.ps" "015-01.ps" "015-05.ps" "032-01.ps" "034-10.ps" "123-01.ps" "123-05.ps" "192-01.ps" "298-09.ps" "321-09.ps" "vasarely.ps" pdfwrite 300 dpi : "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "027-05.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "109-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "192-01.ps" "220-01.ps" "237-01.ps" "245-17.ps" "251-01.ps" "255-01.ps" "258-01.ps" "269-01.ps" "270-01.ps" "298-09.ps" "308-04.ps" "321-09.ps" "442-01.ps" "446-01.ps" "Bug687207.ps" "vasarely.ps"[src/gsmatrix.c 1.8, src/gspath.c 1.10, src/gspath1.c 1.10, src/gxfixed.h 1.9, src/gxmatrix.h 1.9, src/gxstate.h 1.11]
2004-08-31 09:07 Igor Melichev
Implementing Visual Trace for 'stroke'. DETAILS : It is necessary for analyzing the Bug 687584, and it is useful in general. EXPECTED DIFFERENCES : None.[doc/Use.htm 1.112, src/gxfill.c 1.118, src/gxstroke.c 1.11, src/lib.mak 1.193, src/vdtrace.h 1.13]
Fix for 687607 Text missing with TextALphaBits=2 and tiffsep device. DETAILS: The TextAlphaBits and GraphicsAlphaBits device parameters were not working for devices with a depth of more than 32 bits. The fix involves replacing the copy_alpha device procs in the 40, 48, 56, and 64 bit memory devices with the gx_default_copy_alpha routine. These devices previously had a copy_alpha routine which did nothing. This was a mistake from when these devices were created as part of the DeviceN work.[src/gdevm40.c 1.2, src/gdevm48.c 1.2, src/gdevm56.c 1.3, src/gdevm64.c 1.3]
Fix for security problems with user parameters, in particular the /PermitFileReading array. Also corrects handling of parameter arrays that contain a 'mark'. Fixes bug 687559. Thanks to mat. Gh. Savulescu (SaGS) for the bug report and for a suggested patch.[lib/gs_lev2.ps 1.33]
This is a beta release of the development tree. It contains a number of new features and is made available for those interested in testing the new version before it becomes the next stable release.
This second beta contains a large number of bug fixes over the earlier 8.30 version.
New features since the last stable release:
Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for GridFitTT for information on this feature.
The PDF writer now implements PDF 1.4 encryption. See the encryption parameter documentation for more information.
A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions.
This version contains the first release of Rinkj, an experimental new driver for some inkjet printers using ETS screening. See the Rinkj section for more information.
We now support PDF 1.5 files, including the new compression and encryption modes.
We have beta support for JPEG 2000 compressed images, using the JasPer compression library. This is only enabled as part of the default build in the autoconf (POSIX) build system in this release.
The following bug numbers were open at the time of release:
405501, 430175, 446344, 456692, 458780, 463688, 465936, 487953, 493348, 526099, 526491, 530011, 535366, 535932, 578865, 592160, 603934, 610478, 614298, 626295, 634036, 645316, 674418, 677324, 685335, 686747, 686750, 686816, 686819, 686824, 686841, 686842, 686843, 686853, 686863, 686865, 686867, 686902, 686919, 686980, 686996, 687011, 687012, 687013, 687039, 687063, 687079, 687084, 687086, 687095, 687102, 687105, 687108, 687110, 687122, 687125, 687146, 687157, 687168, 687174, 687179, 687193, 687196, 687203, 687219, 687221, 687229, 687231, 687243, 687251, 687257, 687259, 687271, 687275, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687324, 687327, 687341, 687342, 687345, 687346, 687360, 687373, 687375, 687394, 687397, 687399, 687401, 687403, 687410, 687414, 687421, 687434, 687435, 687445, 687459, 687460, 687461, 687467, 687468, 687473, 687474, 687475, 687479, 687480, 687484, 687485, 687490, 687492, 687497, 687498, 687501, 687512, 687514, 687516, 687518, 687520, 687523, 687524, 687525, 687528, 687529, 687531, 687535, 687536, 687537, 687539, 687541, 687542, 687545, 687547, 687551, 687552, 687554, 687555, 687558, 687559, 687560, 687561, 687571, 687574, 687575, 687577, 687578, 687579, 687581, 687582, 687583, 687584, 687585, 687586, 687588, 687589, 687590, 687592, 687593, 687595, 687600, 687601, 687607, 687608, 687610, 687611, 687612, 687614, 687615, 687616, 687617, 687621, 687622, 687625, 687627, 687628, 687630, 687631, 687632, 687633, 687634.
No known incompatible changes at the time of release.
Update the version and date on the VMS help file.[doc/gs-vms.hlp 1.29]
Update release date on documentation.[doc/API.htm 1.44, doc/Bug-form.htm 1.41, doc/Bug-info.htm 1.40, doc/C-style.htm 1.47, doc/Commprod.htm 1.32, doc/Copying.htm 1.31, doc/DLL.htm 1.35, doc/Deprecated.htm 1.12, doc/Details8.htm 1.9, doc/Develop.htm 1.138, doc/Devices.htm 1.81, doc/Drivers.htm 1.48, doc/Fonts.htm 1.42, doc/Helpers.htm 1.35, doc/History1.htm 1.31, doc/History2.htm 1.31, doc/History3.htm 1.31, doc/History4.htm 1.31, doc/History5.htm 1.33, doc/History6.htm 1.48, doc/History7.htm 1.36, doc/History8.htm 1.13, doc/Htmstyle.htm 1.36, doc/Install.htm 1.46, doc/Issues.htm 1.41, doc/Language.htm 1.87, doc/Lib.htm 1.34, doc/Maintain.htm 1.42, doc/Make.htm 1.79, doc/New-user.htm 1.51, doc/Projects.htm 1.58, doc/Ps-style.htm 1.29, doc/Ps2epsi.htm 1.33, doc/Ps2pdf.htm 1.70, doc/Psfiles.htm 1.53, doc/Readme.htm 1.56, doc/Release.htm 1.86, doc/Source.htm 1.31, doc/Tester.htm 1.31, doc/Testing.htm 1.26, doc/Unix-lpr.htm 1.31, doc/Use.htm 1.111, doc/Xfonts.htm 1.31, man/dvipdf.1 1.29, man/font2c.1 1.29, man/gs.1 1.30, man/gslp.1 1.29, man/gsnd.1 1.29, man/pdf2dsc.1 1.28, man/pdf2ps.1 1.30, man/pdfopt.1 1.28, man/pf2afm.1 1.29, man/pfbtopfa.1 1.30, man/printafm.1 1.29, man/ps2ascii.1 1.28, man/ps2epsi.1 1.27, man/ps2pdf.1 1.34, man/ps2pdfwr.1 1.33, man/ps2ps.1 1.36, man/wftopfa.1 1.29]
Change the product name to BETA RELEASE[src/gscdef.c 1.45]
Add recent new files to the listings in the documentation.[doc/Develop.htm 1.137, doc/Psfiles.htm 1.52]
Update release notes and open bug list for the 8.31 beta release. Bump the release date as well.[doc/News.htm 1.150, src/version.mak 1.72]
Fix half-toning for display device, bug 687629. DETAILS: Prior to DeviceN, dither_gray/max_gray were used if ncomp==1. With DeviceN, dither_gray/max_gray are used if gray_index >= 0. The display device was not correctly setting gray_index for native 1-bit/pixel format.[src/gdevdsp.c 1.27]
Fix for image matrix having negative values. Thanks to Len Sorenson for submitting this patch (author unknown). Bug #687411. DETAILS: The error is using floor to round a value without checking if it might be negative first. There were actually two places that did this even though the patch that was originally submitted only was for one of them.[src/gximag3x.c 1.19]
Close the font file after the font has been processed (loaded into VM). This prevents a problem with using up too many file handles detected on Solaris. Thanks to Alex Cherepanov for the patch. Bug #687066. DETAILS: The patch has no effect on the cache. There is no point of not closing the file after the content has been copied to memory. On GNU/Linux GS has 250K VMThreshold and 1024 handles. That's enough. On Windows GS has 1M VNThreshold and 512 handles. This is still OK. On Solaris GS has 1M VMThreshold and 256 handles. Handles can be used up before garbage collection starts. The following program fails on Solaris. (a)(w) file closefile 1000 { (a)(r) file pop } repeat Dependence on VMThreshold indicates that GC is not activated by open(2) failing with EMFILE . This is a real bug, the patch is just a work around that we may need to fix later, but not likely to be a problem.[lib/gs_type1.ps 1.15]
Fix to close streams at EOF (not only filter streams), as required by the PLRM. Thanks to Alex Cherepanov for this patch. Bug #687505. DETAILS: This is similar to a patch that I had developed and tested prior to Alex's patch. I had tested my patch, then Alex's against the regression suite and determined that it does not cause any differences. Alex's patch conforms to my analysis of the problem and the fix.[src/stream.c 1.23]
2004-08-25 15:56 Alex Cherepanov
Bind all operators in DefaultGray, DefaultRGB, DefaultCMYK color spaces. Partial fix for the bug 687608[Resource/ColorSpace/DefaultCMYK 1.3, Resource/ColorSpace/DefaultGray 1.3, Resource/ColorSpace/DefaultRGB 1.3]
2004-08-24 17:51 Igor Melichev
Fix (pdfwrite) : A page compression type change could cause a crash. DETAILS : Bug 687626 "A crash in pdfwrite". It crashed after the compression is changed from none to Flate with setdevparams inside a page. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.98, src/gdevpdfu.c 1.58, src/gdevpdfx.h 1.100]
2004-08-24 15:36 Igor Melichev
Fix : gs_lib_ctx was wrongly accessed while looking up a dictionary stack extension. DETAILS : Bug 687623 A crash in the interp.c EXPECTED DIFFERENCES : Fixes crash with re-distilled files : 251-01.ps Bug687044.ps Bug687489.ps test-setweightvector.ps, tpc2.ps[src/idstack.c 1.7]
2004-08-24 15:36 Igor Melichev
Fix : gs_lib_ctx was not accessible while clist_playback_band. DETAILS : Bug 687624 "A crash in gp_check_interrupts". EXPECTED DIFFERENCES : Fixes crash with re-distilled files : Svd.pdf test.pdf[src/gxclread.c 1.12]
2004-08-24 12:52 Igor Melichev
Fix (TT interpreter) : Provide a tolerance to an inconsistent cvt length. DETAILS : Bug 687604 "/invalidfont in --show-- error". We analyzed UFST and Free Type 2. UFST has same problem. FreeType 2 provides a tolerance, which we port now. Note that now we don't port a tolerance for other CVT commands. EXPECTED DIFFERENCES : None.[src/ttinterp.c 1.14]
2004-08-24 10:58 Igor Melichev
Fix (TT interpreter) : A minor portability problem. DETAILS : A preprocessor statement didn't start in the first column. Occasionally discovered readin the code. Some time ago it was claimed as non-portable. EXPECTED DIFFERENCES : None.[src/ttload.c 1.6]
2004-08-24 09:10 Igor Melichev
Fix : Makefiles missed a dependency. DETAILS : After rebuilding the last revision got a crash due to gp_mspol.c was not recompiled. Found out that gslibctx_h was wrongly defined in lib.mak . Also changed the including of stdio.h in gslibctx.h to a C library file (IMO it should be so). EXPECTED DIFFERENCES : None.[src/gslibctx.h 1.4, src/lib.mak 1.192]
Allow the display device row alignment to be changed from the default 4 bytes to 8, 16, 32 or 64 bytes. DETAILS: If the image is allocated in video display memory, an alignment such as 16 bytes (128-bit memory) may be required. This is implemented by making the underlying memory device use a larger width than the display device.[src/gdevdsp.c 1.26, src/gdevdsp.h 1.10]
Changed iapi to use a void* instead of a gs_main_instance pointer.[src/dmmain.c 1.4, src/dpmain.c 1.12, src/dwmainc.c 1.22, src/dxmain.c 1.14, src/dxmainc.c 1.10]
Changed iapi to use a void* instead of a gs_main_instance pointer. Cleaned up warning related to function pointer signature miss-matches. DETAILS: iapi.h no longer defines a type for gs_main_instance * This will likely need to be put back in for backward compatibility. The iapi interface now uses a void * instance handle reflecting that it is an opaque type to the outside world. Note that function pointer argument miss-matches generate warnings in msvc but not in gcc. These have been fixed.[src/dwmain.c 1.19, src/gdevpdtw.c 1.29, src/gdevpsf.h 1.27, src/gdevpsfm.c 1.15, src/gsalloc.c 1.22, src/gsccode.h 1.14, src/gscpixel.c 1.13, src/gscpixel.h 1.7, src/gscspace.c 1.18, src/gsdevice.c 1.23, src/gslibctx.c 1.4, src/gslibctx.h 1.3, src/gxccman.c 1.28, src/gxfcache.h 1.27, src/iapi.c 1.12, src/iapi.h 1.13, src/idict.c 1.12, src/ilocate.c 1.11, src/iutil.c 1.11, src/iutil.h 1.8, src/sdctc.c 1.6, src/zchar32.c 1.5, src/zcssepr.c 1.16, src/zfont.c 1.12, src/zpacked.c 1.7]
Add a PPD for PostScript to be used by ghostscript ps2pdf.[doc/Develop.htm 1.136, doc/Ps2pdf.htm 1.69, lib/ghostpdf.inf 1.1, lib/ghostpdf.ppd 1.1]
Enable progressive updates for the image window of the MS-Windows ghostscript command line program. Change update method to use a Windows timer. DETAILS: In the MS-Windows GUI executable (i.e. text window managed by ghostscript rather than using a system console window), the image window is progressively updated every second or so as each page is drawn. The console executable did not do this. The update code for both GUI and console executables is changed to use a timer. The display update code is called whenever particular device drawing operations happen, and if a timer is not already running, it starts an update timer. The minimum update interval is shortened from 1s to 100ms. The time to refresh the window is measured, and the update interval may be increased to make sure that updates account for no more than 10% of processing. The update interval is decreased if subsequent updates are much quicker. The timer is stopped by any sync.[src/dwimg.c 1.13, src/dwimg.h 1.10, src/dwmainc.c 1.21]
Fixed dependancies for gslibctx.h[src/int.mak 1.128, src/lib.mak 1.191]
Removed redundant include.[src/gsmalloc.c 1.13]
2004-08-18 20:44 Igor Melichev
Fix (pdfwrite) : Check for glyph name conflicts while font merging. DETAILS : Bug 687597 pdf created by pdfwrite has garbled text (spr 3994) 1. When a document embeds 2 fonts with same name, same hinting and same glyph names but different charstrings, the old code didn't compare charstrings and erroneusely merged fonts. 2. pdf_obtain_font_resource_encoded didn't compare the hinting because same_type1_hinting computed a too strong condition (this change is not strongly neccessary for the bug). EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.87, src/gxfcopy.c 1.45]
2004-08-18 14:40 Igor Melichev
Fix (pdfwrite) : Wrong glyph positions with CIDFontType2 with no vmtx. DETAILS : Bug 687603 vertical text misplaced after distilling . 1. When computing the glyph position, must account that we write DW2[0 0] when there is no vmtx. 2. Computing a DW2, the advance got a wrong sign. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.86]
Implementation of 687496 transparency and CMYK support. DETAILS: This change extends our current implementation of the PDF 1.4 transparency to include blending in a DeviceCMYK color space. There is also a partial implementation of a DeviceGray blending space. However I do not have a method of generating test data for a DeviceGray blending space. Currently the choice of a blending color space is based upon the process color model of the output device. Note: There two differences expected in the regression testing. These are with ai2.pdf and dina3_watermark.pdf.[src/gdevp14.c 1.26, src/gxblend.c 1.6, src/lib.mak 1.190]
Add PDFSTEP debug aid. Prints a step number at end of PDFDEBUG line, and sync's the display, then reads a number of steps to skip (<cr> == single step). This is rudimentary but somewhat useful. Invoked with -dPDFSTEP.[lib/pdf_base.ps 1.44]
Bump the version number after the last beta release.[lib/gs_init.ps 1.109, src/gscdef.c 1.44, src/version.mak 1.71]
Remove references to the FreeType license. Artifex Software, Inc. has purchased rights to the FreeType 1 code and the work included here is relicensed under the same terms as with the rest of the Ghostscript code.[LICENSE 1.4, doc/FTL.txt 1.3]
Add support for PDF single stepping debug aid (PDFSTEP). Actual interpreter changes made separately.[lib/gs_init.ps 1.108]
Handle invalid PDF's that use 0.0 font scaling (Tf operator). Fixes bug 687606 for customer number 780. DETAILS: If the font scale is 0.0, then just use a very small value. This may result in a small unwanted dot, but that is probably not an issue since it is an invalid value. The better approach for 'invisible' text is to use TextRenderingMode 3. The 'pdfformaterror' function is used to complain about this so the problem might get fixed by the PDF Creator.[lib/pdf_ops.ps 1.34]
Correct the previous MSVC 8 updates to allow compilation with debugging.[src/msvc32.mak 1.62, src/msvccmd.mak 1.21]
Added missing parameter types to prototype.[src/gpcheck.h 1.9]
Detect the version of Microsoft Visual C++ from the version of nmake.[doc/Make.htm 1.78, src/msvc32.mak 1.61]
Add support for compiling with the beta of Microsoft Visual Studio 2005, also known as MSVC 8. DETAILS: Add new MSVC_MINOR_VERSION=1 to distinguish Microsoft Visual Studio .NET 2003 (MSVC 7.1) from Microsoft Visual Studio .NET (MSVC 7.0) Add new MSVC_VERSION=8 for Microsoft Visual Studio 2005 Ignore deprecated warnings from MSVC 8 with /wd4996, because insecure CRTL functions like strcpy and sprintf are now marked as deprecated. Remove /Ze which is always the default and is unknown to MSVC 8. Replace /O with /O2. The former is not documented for MSVC 5 - 8 and is unknown to MSVC 8. Remove /Gs and /Ge for MSVC 8. Stack checking is now always done.[doc/Make.htm 1.77, src/msvc32.mak 1.60, src/msvccmd.mak 1.20]
Added memory pointers to gsmalloc use by jpg2000 interface. DETAILS: Added jpx_memory to the stream state since the memory pointer in a normal stream object in often NULL indicating a stack object.[src/sjpx.c 1.10, src/sjpx.h 1.3, src/zfjpx.c 1.2]
When scaling factors of /ImageMatrix in a image mask for ImageType3 are negative, translation offset values for image mask rendering are incorrect and it makes abnormal output (eg. white lines). This patch fixes this bug #686843. Thanks to Len Sorensen for the analysis.[src/gximag3x.c 1.18]
When scaling factors of /ImageMatrix in a image mask for ImageType3 are negative, translation offset values for image mask rendering are incorrect and it makes abnormal output (eg. white lines). This patch fixes this bug #686843. Thanks to Len Sorensen for the analysis.[src/gximage3.c 1.14]
Fix bug 687038 that resulted in a crash if the initial device was not pdfwrite. DETAILS: This was almost fixed by recent changes to gs_pdfwr.ps and gs_setpd.ps for bugs 687325, 687436 and 687458. Unfourtunately, the initialization of parameters only occurred if the initial device was pdfwrite. A second patch removing the initial device constraint on the '1010' .schedule_init process was committed and fixes the problem. Note that there was a work-around that if -dPDFSETTINGS=... was given on the command line, it also worked. EXPECTED DIFFERENCES: none, since we don't test for this usage.[lib/gs_pdfwr.ps 1.39]
Added memory_t pointers to gs_malloc() gs_free() calls in devices that aren't normally built.[src/gdev3b1.c 1.5, src/gdevadmp.c 1.6, src/gdevccr.c 1.5, src/gdevcif.c 1.6, src/gdevcp50.c 1.6, src/gdevcslw.c 1.5, src/gdevhl7x.c 1.10, src/gdevimgn.c 1.7, src/gdevlp8k.c 1.5, src/gdevlxm.c 1.5, src/gdevmgr.c 1.6, src/gdevn533.c 1.6, src/gdevo182.c 1.6, src/gdevokii.c 1.7, src/gdevos2p.c 1.8, src/gdevp14.c 1.25, src/gdevphex.c 1.7, src/gdevpsdi.c 1.30, src/gdevsgi.c 1.6, src/gdevsj48.c 1.5, src/gdevsppr.c 1.8, src/gdevsunr.c 1.7, src/gdevwddb.c 1.7, src/gdevwprn.c 1.10, src/gp_macio.c 1.34]
fixed bug with iapi, removed gs_lib_finit()'s call of gs_malloc_release. DETAILS: The problem is that single instance and multi instance interfaces both call gs_to_exit() with different meanings. If gs_lib_init0 was called then it should malloc_release single instance exit library means free all. If the iapi interface was used then the memory should not be freed since gs_lib_finit() and gs_to_exit() are called when the interpreter is exited but there is a seperate delete_instance call that should free the memory[src/gsinit.c 1.7]
Fixed uninitialized fstdio2 pointer.[src/gslibctx.c 1.3]
Fixed incorrect function pointer prototype, const gs_memory_t * argument was missing.[src/gxfcache.h 1.26, src/gxfcopy.c 1.44]
Valid memory pointer used create a tile_clip device instead of NULL. Details : This needs to be leak checked.[src/gxp1fill.c 1.6]
Windows only: check_interrupts() with a mem pointer to access the poll function. DETAILS : This is windows specific since only windows uses the polling function in check_interrupts() macros. If the gs_dll interface is used then a single instance is forced since the design of that interface forces one thread per process. The iapi interface can not but enabled for more than one thread until the stream calling check_interrupts() calls are fixed. process_interrupts(NULL) calls are currently hacked to access a global memory pointer intended for access to stderr. This is a place holder until the stream object changed that guarantee a valid memory pointer in process_stream calls are committed. Basically it is common to allocate a stream object on the stack and use it in a functional manor with an uninitialized memory pointer in the object.[src/gdevdbit.c 1.11, src/gdevddrw.c 1.25, src/gdevwpr2.c 1.18, src/gdevwprn.c 1.9, src/gp_macpoll.c 1.2, src/gp_mslib.c 1.6, src/gp_mspol.c 1.5, src/gp_mswin.c 1.24, src/gxclrast.c 1.30, src/gxclread.c 1.11, src/gxclutil.c 1.11, src/gxdtfill.h 1.27, src/sfxfd.c 1.10, src/sfxstdio.c 1.9]
fixed typo in last commit.[src/gpcheck.h 1.8]
gs_memory_t pointer additions for msvc build. DETAILS : Mostly gs_malloc() and gs_free() additions of a gs_memory_t argument. Not gsdll.c forces a single instance.[src/gdev4081.c 1.6, src/gdev4693.c 1.9, src/gdev8510.c 1.7, src/gdevdm24.c 1.8, src/gdevdsp.c 1.25, src/gdevescp.c 1.7, src/gdevmswn.c 1.11, src/gdevmsxf.c 1.8, src/gdevpjet.c 1.7, src/gdevwpr2.c 1.17, src/gp_mspol.c 1.4, src/gpcheck.h 1.7, src/gsargs.c 1.9, src/gsdll.c 1.12, src/gsmisc.c 1.18, src/gxccache.c 1.32, src/gxclutil.c 1.10, src/imain.h 1.9, src/interp.c 1.19, src/main.h 1.7, src/msvc32.mak 1.59, src/sfxstdio.c 1.8]
Addition of a Library Context to start the process of removing globals. DETAILS : The goals is to remove globals from the system, this includes static globals that would hinder multiple threads from running at once. gs_lib_ctx is intended to be used as the opaque "handle" object that a client would use to associate with a thread running through the library. Independent of a gs or a language switch build, this needs a new iapi2.h that allows the use of better job control from the client side. gs_lib_ctx is stashed under the gs_memory_t object and all memory objects used by a thread refer to the same gs_lib_ctx. This storage location was choosen as a convenence since a memory_t pointer is common throughout the system. Most of the turmoil is adding memory_t pointers to functions that used global variables but didn't have a memory pointer. FILE stdin, stdout, stderr are one per process by default. stdin and stdout may be changed but stderr may not. FILE stderr is one per process and shouldn't be changed. Note the stderr_fn is also one per process, changing this function pointer will not help as most users of stderr printing do not have a thread handle. Changing to a thread local storage mechanism can solve this. gs_id's are currently per thread with each thread starting over at 1. This can be moved to per process with mutexes if so desired. A library context has a pointer to the top_of_system the intent is that this a void handle avaliable to make top of the system calls without knowing the data type. In a postscript only build this would be gs_main_instance but in a language switched build this would be an object above that main_universe. Other members of gs_lib_ctx_t are nothing more than global objects relocated to this "bag". gs_name_table, dict_autoexpand are examples of this. There are a few more globals that will be moved. At the moment iapi is still constrained to one thread, since some of the globals haven't been removed yet. The display device's callback function setting is supported for now but this interface should be changed to a sDEVICE style call. gs_memory_t is the base type the abstract type gs_raw_memory_t is gone, this means that all memory types must derive from gs_memory_t. In addition to a pointer to the gs_lib_ctx there is a pointer to a non_gc_memory this will always point to a non garbage collected memory, it maybe the current object or an object below the current gargabe collected memory space. This can be used were the previous code used the global gs_malloc_memory. gs_malloc() now takes a memory pointer, it finds the non-gc memory from a valid memory pointer and allocates from it. The gdevbit device has an improved algorthym for converting from cmyk to rgb, this is never used by postscript but for pcl rops it puts the k plane into rgb.[src/bfont.h 1.10, src/devs.mak 1.117, src/dstack.h 1.6, src/files.h 1.10, src/gdevbj10.c 1.9, src/gdevcdj.c 1.15, src/gdevdcrd.c 1.6, src/gdevepsc.c 1.11, src/gdevepsn.c 1.9, src/gdevijs.c 1.9, src/gdevp14.c 1.24, src/gdevpdfb.c 1.23, src/gdevpdfc.c 1.48, src/gdevpdfg.c 1.58, src/gdevpdfg.h 1.33, src/gdevpdfi.c 1.56, src/gdevpdfk.c 1.8, src/gdevpdfv.c 1.36, src/gdevpdti.c 1.36, src/gdevplnx.c 1.10, src/gdevprn.c 1.18, src/gdevprna.c 1.6, src/gdevpsdi.c 1.29, src/gdevpxat.h 1.6, src/gdevpxen.h 1.6, src/gdevstc.c 1.10, src/gdevupd.c 1.16, src/gdevvec.c 1.23, src/gdevxcmp.c 1.9, src/gdevxxf.c 1.9, src/gp_mac.c 1.16, src/gs.c 1.12, src/gs_dll_call.h 1.1, src/gsalloc.c 1.21, src/gsalloc.h 1.7, src/gsalphac.c 1.7, src/gsccode.h 1.13, src/gscdevn.c 1.21, src/gscolor.c 1.14, src/gscolor1.c 1.11, src/gscolor3.c 1.8, src/gscparam.c 1.10, src/gscpixel.c 1.12, src/gscpixel.h 1.6, src/gscrd.c 1.6, src/gscrd.h 1.7, src/gscscie.c 1.12, src/gscsepr.c 1.27, src/gscspace.c 1.17, src/gscspace.h 1.14, src/gsdevice.c 1.22, src/gsequivc.c 1.5, src/gsexit.h 1.10, src/gsfcid2.c 1.6, src/gsfcmap.c 1.24, src/gsfcmap1.c 1.7, src/gsfont.c 1.33, src/gsht.c 1.22, src/gsht1.c 1.15, src/gshtx.c 1.6, src/gsimage.c 1.12, src/gsinit.c 1.6, src/gsio.h 1.8, src/gsiodevs.c 1.6, src/gsistate.c 1.10, src/gslib.c 1.14, src/gslib.h 1.6, src/gslibctx.c 1.2, src/gslibctx.h 1.2, src/gsmalloc.c 1.12, src/gsmalloc.h 1.6, src/gsmemlok.c 1.6, src/gsmemory.c 1.9, src/gsmemory.h 1.8, src/gsmemraw.h 1.8, src/gsmemret.c 1.5, src/gsmisc.c 1.17, src/gsovrc.c 1.6, src/gspcolor.c 1.14, src/gsptype1.c 1.19, src/gsstate.c 1.24, src/gsstruct.h 1.18, src/gsstype.h 1.6, src/gsutil.c 1.10, src/gsutil.h 1.8, src/gxacpath.c 1.10, src/gxalloc.h 1.11, src/gxccache.c 1.31, src/gxccman.c 1.27, src/gxcht.c 1.13, src/gxclbits.c 1.9, src/gxclrast.c 1.29, src/gxclread.c 1.10, src/gxclrect.c 1.7, src/gxcpath.c 1.12, src/gxcspace.h 1.13, src/gxdevcli.h 1.34, src/gxdevice.h 1.19, src/gxdhtserial.c 1.5, src/gxfcmap.h 1.16, src/gxfcopy.c 1.43, src/gxht.c 1.16, src/gxht.h 1.9, src/gximag3x.c 1.17, src/gximage.c 1.7, src/gxpcmap.c 1.13, src/gxttfb.c 1.34, src/gzht.h 1.13, src/ialloc.c 1.7, src/ialloc.h 1.6, src/iapi.c 1.11, src/ibnum.c 1.8, src/ibnum.h 1.8, src/ichar.h 1.7, src/icharout.h 1.9, src/icid.h 1.8, src/icie.h 1.7, src/icstate.h 1.13, src/idebug.c 1.9, src/idebug.h 1.6, src/idict.c 1.11, src/idict.h 1.6, src/idparam.c 1.9, src/idparam.h 1.7, src/idstack.c 1.6, src/ifapi.h 1.19, src/ifont.h 1.14, src/ifont1.h 1.7, src/ifont42.h 1.9, src/igc.c 1.13, src/igc.h 1.8, src/igcref.c 1.6, src/iimage.h 1.7, src/iinit.c 1.10, src/ilocate.c 1.10, src/imain.c 1.39, src/imainarg.c 1.32, src/iminst.h 1.8, src/iname.h 1.5, src/interp.c 1.18, src/iparam.c 1.10, src/iplugin.c 1.5, src/iplugin.h 1.5, src/isave.c 1.11, src/isave.h 1.7, src/iscan.c 1.18, src/iscanbin.c 1.14, src/iutil.c 1.10, src/iutil.h 1.7, src/lib.mak 1.189, src/sdctc.c 1.5, src/std.h 1.12, src/szlibc.c 1.6, src/ttload.c 1.5, src/zarray.c 1.5, src/zbfont.c 1.27, src/zchar.c 1.14, src/zchar1.c 1.36, src/zcharout.c 1.12, src/zcharx.c 1.7, src/zcid.c 1.9, src/zcie.c 1.12, src/zcolor.c 1.19, src/zcontext.c 1.11, src/zcontrol.c 1.11, src/zcrd.c 1.8, src/zcsdevn.c 1.12, src/zcsindex.c 1.7, src/zcspixel.c 1.5, src/zcssepr.c 1.15, src/zdevice.c 1.9, src/zdevice2.c 1.9, src/zdict.c 1.6, src/zdps.c 1.8, src/zdps1.c 1.7, src/zfapi.c 1.52, src/zfcid0.c 1.22, src/zfcid1.c 1.19, src/zfcmap.c 1.15, src/zfile.c 1.41, src/zfileio.c 1.17, src/zfont.c 1.11, src/zfont0.c 1.7, src/zfont1.c 1.12, src/zfont2.c 1.7, src/zfont32.c 1.5, src/zfont42.c 1.20, src/zfontenum.c 1.4, src/zfrsd.c 1.10, src/zfunc.c 1.14, src/zfunc3.c 1.7, src/zfunc4.c 1.12, src/zgeneric.c 1.8, src/zgstate.c 1.10, src/zht2.c 1.12, src/zht2.h 1.3, src/zicc.c 1.7, src/zimage.c 1.14, src/zimage3.c 1.7, src/ziodevs.c 1.9, src/ziodevsc.c 1.7, src/zmatrix.c 1.8, src/zmedia2.c 1.16, src/zmisc.c 1.7, src/zmisc2.c 1.7, src/zmisc3.c 1.6, src/zpacked.c 1.6, src/zpcolor.c 1.15, src/zrelbit.c 1.6, src/zshade.c 1.15, src/zstring.c 1.6, src/ztoken.c 1.14, src/ztrans.c 1.22, src/ztype.c 1.8, src/zupath.c 1.10, src/zusparam.c 1.13, src/zvmem.c 1.8]
add a .cvsignore list for generated files[contrib/pscolor/.cvsignore 1.1]
Add variable declaration for the path to the ghostscript executable to the unix wrapper scripts. This simplifies changing the invocation name. Partial fix for bug 686863.[lib/bdftops 1.5, lib/dumphint 1.2, lib/dvipdf 1.5, lib/eps2eps 1.6, lib/font2c 1.4, lib/gsbj 1.4, lib/gsdj 1.4, lib/gsdj500 1.4, lib/gslj 1.4, lib/gslp 1.4, lib/gsnd 1.4, lib/pdf2dsc 1.6, lib/pdf2ps 1.7, lib/pdfopt 1.7, lib/pf2afm 1.5, lib/pfbtopfa 1.6, lib/pphs 1.4, lib/ps2ascii 1.7, lib/ps2epsi 1.10, lib/ps2pdfwr 1.10, lib/ps2ps 1.7, lib/pv.sh 1.4, lib/unix-lpr.sh 1.5, lib/wftopfa 1.4]
2004-08-02 03:33 Igor Melichev
Fix : .OrigFont was not provided when an embeded font is defined. DETAILS : Bug 687598 "Courier CE font problems". The test case embeds a font with an instandard FontMatrix [ 0.00039 0 0 0.00039 0 0 ]. For passing it to pdfwrite, the procedure .completefont adds the /.OrigFont key to the font dictionary. However the key was added after .buildfont1 is called, and the device did not recieve the information at the time. This patch moves the .OrigFont setting ahead to the .buildfont* call. EXPECTED DIFFERENCES : None.[lib/gs_fonts.ps 1.47]
More work upon 687551 Implement the remaining TN 5044 procedures. This commit implements the setcmykoverprint procedure. DETAILS: We received a posting against 687551. This posting indicated that some files in arXiv.org were failing with the current version of Ghostscript but worked with older versions. The files were all created by a package called Canvas by Deneba Systems. They failed because setcmykoverprint was not defined. Evidently the people at Deneba Systems did not read the following comment from page 15 of TN 5044: "Note The setcmykoverprint operator has not been adopted by the industry. It remains on the list of color convention operators because it has some perceived usefulness, but it is not supported by any shipping host-based separation applications today." The even stranger detail is that the Deneba Systems people have a dummy version of this procedure that does not implement overprinting. Thus if they do not need overprinting, they have no need to use this procedure. The files also fail with Distiller 6.0, Illustrator CS, and Photoshop 6.0. However this change allows these files to work with current Ghostscript. The change consists of putting in a dummy version of the setcmykoverprint procedure. This version does not actually implement overprinting.[lib/gs_lev2.ps 1.32]
2004-07-29 19:19 Igor Melichev
Fix : True Type font loader : numLoca run out the PS string size limit. DETAILS : Bug 687599 "/rangecheck in --string--". This patch increases the maximal 'loca' size to 64528 bytes, which is enough for the customer's file. A further improvement would be to allow more 'loca' segments (currently arbitrary restricted with 2 for a minor code simplification). EXPECTED DIFFERENCES : None.[lib/gs_ttf.ps 1.39]
2004-07-29 17:46 Igor Melichev
1. Fix (PS interpreter) : The FontBBox validation check was too strong. 2. Fix (pdfwrite) : Explicitely set line parameters in a charproc. DETAILS : Bug 687594 "Barcode Width". See comments in the new code. This solution is a partial one. With the current architecture of the Postscript interpreter, a device can't recognize whether a PS charproc sets line parameters or not. Therefore we copy to PDF the values, which appear at a first use within a charproc. The old code copied only values, which differ from defaults. The new behavior appears closer to Adobe Distiller. A complete solution should copy the PS behavior to PDF, i.e. the PDF charproc should set those and only those parameters, which are set by the PS charproc. For doing that we need flags in the graphic state structure per each graphic state parameter, reset all them before running a charproc, and set whenever a parameter is changed. Without the flag, when the charproc sets a value equal to the old one (which was inherited from the context of the glyph usage), the event of setting is lost and causes a line width and other problems. We don't want such a deep change now, and go with the partial solution, because the partial solution appears enough for customer's needs. Likely Adobe Distiller have same architectural problem, and resolves it in same manner. EXPECTED DIFFERENCES : pdfwrite, 72dpi : 012-09.ps 013-09.ps 014-09.ps 015-09.ps 083-09.ps 123-09.ps 205-09.ps 250-01.ps 296-01.ps 298-09.ps 321-09.ps pdfwrite 300dpi : 012-09.ps 013-09.ps 014-09.ps 015-09.ps 027-05.ps 032-07.ps 034-10.ps 083-09.ps 093-01.ps 123-09.ps 169-09.ps 205-09.ps 212-01.ps 213-01.ps 214-01.ps 222-09.ps 238-01.ps 250-01.ps 296-01.ps 298-09.ps 307-07.ps 321-09.ps[src/gdevpdtt.c 1.85, src/gslparam.h 1.5, src/zchar.c 1.13]
test commit; verifying the cvs announcement list is working.[src/Makefile.in 1.37]
2004-07-28 10:09 Igor Melichev
Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 4). DETAILS : FunctionType 3 did not account stitches with reversed interval boundaries : lower > upper. Also added a tolerance to a small noise. 687573 Error: /rangecheck in --.shfill-- EXPECTED DIFFERENCES : None.[src/gsfunc3.c 1.22]
Fix for 687572 AFPL Ghostscript 8.14 fails with some PDF files. DETAILS: The given file uses the scn operator inside of a form. The scn operator is used for defining a color with DeviceN color spaces. The scn operator uses .pdfcount (inside of scresolve) to determine the number of parameters. However inside a form, there is an extra dictionary on the stack. The fix consists of adjusting pdfemptycount (which is used by .pdfcount) to match the stack depth while executing a form. After the form is executed, pdfemptycount is returned to its previous value.[lib/pdf_draw.ps 1.83]
Fix for 687591 Overprint Preview is not documented. This change adds documentaion for how Ghostscript handles overprinting and spot colors to Use.htm.[doc/Use.htm 1.110]
2004-07-24 08:12 Igor Melichev
ps2write step 39 : Implementing embedded TrueType fonts (continued). DETAILS : This fixes the problem with True Type encoding : account 'post' when 'cmap' can't give a character mapping. Debugged wit 159.pdf , the character /registered. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps, UnusualFontMatrix.ps, 159.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.34]
2004-07-23 19:11 Igor Melichev
ps2write step 39 : Implementing embedded TrueType fonts. DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps, UnusualFontMatrix.ps, 159.pdf . Embedded fonts work, but there exist an encoding problem with 159.pdf . The PS reader must have AdobeGlyphList and MacRomanEncoding. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.33]
2004-07-22 17:35 Igor Melichev
ps2write step 38 : Implementing embedded Type 1 fonts. DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps, UnusualFontMatrix.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.32]
2004-07-22 13:04 Igor Melichev
ps2write step 38 : Write font data after the font descriptor. DETAILS : opdfread.ps will use this constraint to provide a proper context for interpreting font data. Rather we need this constraint with ps2write only, we always implement it to simplify the code. EXPECTED DIFFERENCES : None.[src/gdevpdtb.c 1.27, src/gdevpdtb.h 1.10, src/gdevpdtd.c 1.16]
2004-07-22 11:08 Igor Melichev
ps2write step 37 : Don't convert Type 1 into CFF when generating ps2write output. DETAILS : 1. Applied the Type 1 font writer. 2. Rather Type1C is a PDF 1.2 feature, we can't write it into a ps2write output. We use the OrderResources parameter to decide about (not)converting Type 1 into Type1C (i.e. into CFF), because we want to write some PDF1.2 objects into a ps2write output (for example - function objects, because we don't want to convert them in C code). 3. The parameter OrderResources isn't a good switch for deciding about CFF due to the parameter name, but currently we don't want to define one more parameter. Maybe will improve it later. 4. Fixed a bug, which wrote "/Length1 -1" with Type1C. 5. CONVERT_CFF_TO_TYPE1 is reserved for further development. 6. Fixed Cygwin/gcc warnings in gdevpdfg.c . EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.57, src/gdevpdfx.h 1.99, src/gdevpdtb.c 1.26]
2004-07-22 07:56 Igor Melichev
ps2write step 36 : Switching on the new code DELAYED_STREAMS, PS2WRITE. DETAILS : See log messages of previous patches. EXPECTED DIFFERENCES : None.[src/gdevvec.h 1.15]
Fix to make sure that device deactivation is invoked before final close of the device when exit. Bug #687557. DETAILS: It is not known whether or not this ever worked, but this change does make sure that the .uninstalldevice gets invoked before the final closedevice on exit. EXPECTED DIFFERENCES. None detected with regression suite.[src/imain.c 1.38]
Fix so that compiled fonts have the dictionary permissions set correctly. Bug 687444 for customer #531. DETAILS: Previously the 'dict_attrs' parameter was ignored. I compared the attrs of the compiled font to a font loaded from a PFB file using: %! ------------------------------------------------------------------------- % Procedure to check attributes of all elements of a dictionary % used to check Font dict contents. /dumpattrs { % object dumpattrs - dup { rcheck } stopped { pop (?) } { { (r) } { (-) } ifelse } ifelse print dup { wcheck } stopped { pop (?) } { { (w) } { (-) } ifelse } ifelse print dup { xcheck } stopped { pop (?) } { { (x) } { (-) } ifelse } ifelse print ( ) print type = flush } bind def /chkattrs { % dict chkattrs - and lots of formatted output (Dictionary: ) print dup dumpattrs { exch ( / ) dup dup 4 -1 roll 20 string cvs 5 exch putinterval print ( / ) 0 exch putinterval dumpattrs } forall } bind def /Helvetica findfont chkattrs quit %--------------------------------------------------------------------------[src/iccfont.c 1.9]
2004-07-16 22:14 Igor Melichev
Fix (pdfwrite) : Provide a delayed stream writing. DETAILS : The ps2write requires length of streams to be written before the stream. This implements pdf_begin_data_stream with opening a stream object in a temporary file, using a methgod similar to pdf_enter_substream. With the new mechanizm the output file doesn't need to be positionable, and the generated PDF appears more effective because the number of objects is smaller. Also fixed a bug in gdevpdfu.c : crashed when encrypted with no page compression. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.97, src/gdevpdfu.c 1.57, src/gdevpdfx.h 1.98, src/gdevpdtb.c 1.25, src/gdevpdtf.c 1.37, src/gdevpdti.c 1.35, src/gdevpdtw.c 1.28, src/gdevpdtw.h 1.5]
2004-07-15 16:39 Igor Melichev
Fix (pdfwrite) : Discard the output file seekability requirement in the /PS pdfmark implementation. DETAILS : The ps2write requires length of streams to be written before the stream. The implementation of /PS pdfmark wrote a length in a separate object after the stream. Now /PS pdfmark is implemented with pdf_enter_substream, which writes the length directly into the object dictionary. EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.45]
2004-07-15 12:37 Igor Melichev
Fix (pdfwrite) : text.operation was inconsistent after replacing TEXT_FROM_GLYPHS. DETAILS : Bug 687563 "segfault during pdfwrite". text.operation became inconsistent after replacing TEXT_FROM_*_GLYPH* with TEXT_FROM_STRING. Declared a stronger constraint for process_text_modify_width, and documented the trick with text indices in process_plain_text. EXPECTED DIFFERENCES : pdfwtite -r300 tpc2.ps[src/gdevpdtc.c 1.36, src/gdevpdte.c 1.60]
Sort the output in filename order to make comparison of daily db's easier.[toolbin/tests/dump_testdb 1.7]
2004-07-14 17:57 Igor Melichev
ps2write step 35 : Fixing more problems with color spaces. DETAILS : The alternative space of [/Indexed [/Separation ...] ...] was not resolved. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 473-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.31]
2004-07-14 17:57 Igor Melichev
Fix (pdfwrite) : Don't write DeviceN, DevicePixel colors with CompatibilityLevel<=1.2 . DETAILS : PDF 1.2 doesn't define DeviceN, DevicePixel. EXPECTED DIFFERENCES : None.[src/gdevpdfc.c 1.47, src/gdevpdfg.c 1.56]
Include string_.h for missing prototypes of strlen() &c. Bug 687541.[src/gscdevn.c 1.20, src/gsfcmap.c 1.23, src/gsht1.c 1.14, src/int.mak 1.127, src/lib.mak 1.188, src/zfile1.c 1.12]
Cast pointer type to avoid a warning. Bug 687541.[src/sjpx.c 1.9]
Correct some types to unsigned to match the gp_file_name_combine() prototype. Partial fix for bug 687541.[src/gp_unix_cache.c 1.3]
Fix to pdfwrite initialization to make sure initial distiller params are incorporated into the device. Also add collection of distillerparams when building currentpagedevice. Fixes bugs 687325, 687436 and 687458. DETAILS: Earlier change to use .putdeviceparamsonly in gs_pdfwr.ps so that the use of setdistillerparams does not reinitialize the device caused the initial parameter settings to not be set in the device. The change to gs_pdfwr.ps accomplishes this. Part of the investigation by Igor Melichev discovered that the values of disillerparams would not be correctly reflected in the pagedevice. The change to gs_setpd.ps collects the currentdistillerparams when the device is pdfwrite and merges new values into the pagedevice dictionary. The method is similar to that used for the dynamicppkeys such as PageCount that can be changed by the device. For the distillerparams, the values are changed dynamically by setdistillerparams. EXPECTED DIFFERENCES. Rotation of several files is restored to the correct value given by gs8.11: 541.pdf mspro.pdf new_rect_nr.pdf pstopdf.pdf xes2ps-problem.pdf[lib/gs_pdfwr.ps 1.38, lib/gs_setpd.ps 1.24]
2004-07-13 19:52 Igor Melichev
ps2write step 34 : Applying filters to the page contents stream. DETAILS : Due to the device parameter problem in the PS interpreter, the distilled PT.ps had a filtered contents stream in spite of we disabled filters. Fixing it now to avoid the dependence on another project. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.30]
2004-07-13 19:31 Igor Melichev
ps2write step 33 : Fixing problems with color spaces in image XObjects. DETAILS : 1. The Separation color space needs to resolve and substitute the alternative color space. 2. The Pattern color space needs to resolve and substitute the base color space. 3. Removed an obsolete temporary debug printing. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf . EXPECTED DIFFERENCES : None. `[lib/opdfread.ps 1.29]
2004-07-13 18:58 Igor Melichev
ps2write step 32 : Fixing problems with color spaces in inline images. DETAILS : Inline images use local allocation mode for image data. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.28]
2004-07-13 15:58 Igor Melichev
ps2write step 31 : Implementing DecodeParms for filters. DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 245-01.ps, 415-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.27]
2004-07-13 15:13 Igor Melichev
ps2write step 30 : Continue the implementation of color spaces. DETAILS : 1. Implemented Lab. 2. A pattern color space specification can contain an indirect reference. 3. Moved the StreamDumperBuffer definition to the proper place. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 245-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.26]
2004-07-13 13:44 Igor Melichev
ps2write step 29 : The inplementation of FunctionType 4 was wrong. DETAILS : The test case 245-01.ps . Also implemented a debug printing of the uncompressed data steram. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.25]
2004-07-13 12:38 Igor Melichev
Fix (pdfwrite) : Don't write shadings with CompatibilityLevel<=1.2 . DETAILS : Bug 687567 "pdfwrite : Shadings are written with CompatibilityLevel=1.2" : Shadings are not allowed in PDF 1.2 . This patch simply forwards to the default implementation, causing a shading to decompose into thousands of constant color areas. Probably a convertion to an image would be a better solution - delaying it for a while, because our current goal is to make ps2write working somehow. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.41, src/gdevpdfg.c 1.55]
2004-07-13 12:02 Igor Melichev
Fix (pdfwrite) : Wrong /Matrix from /BP pdfmark (continued). DETAILS : Fixing a misprint in the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004502.html Thanks to SaGS for pointing it out. EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.44]
2004-07-13 11:09 Igor Melichev
Fix (pdfwrite) : Dont create the alternative image compression if a loseless compression is only allowed. DETAILS : It is an optimization. The problem was occasionally found when working on the bug 687325, rather that bug is irrelevant. It created 2 alternative streams with same filters. This change rejects the creation of the second stream in such cases. EXPECTED DIFFERENCES : None.[src/gdevpdfi.c 1.55, src/gdevpsdi.c 1.28]
2004-07-10 08:55 Igor Melichev
ps2write step 28 : Fixing tab characters in the source code (continued). DETAILS : This change is syntactically equivalent. Also removed an unuseful comment. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.24]
2004-07-10 08:04 Igor Melichev
ps2write step 27 : Implemented FunctionType 4. DETAILS : 245-01.ps contains one. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.23]
2004-07-09 20:54 Igor Melichev
ps2write step 26 : Fixing tab characters in the source code. DETAILS : This change is syntactically equivalent. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.22]
2004-07-09 20:28 Igor Melichev
ps2write step 25 : Fixing various problems in functions and color spaces. DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.21]
2004-07-09 16:52 Igor Melichev
ps2write step 24 : An initial implementation of functions. DETAILS : 1-argument FunctionType 0 is converted to a Postscript procedure. The Order is ignored. 3d order functions interpolate as 1st order. Maybe we'll convert them in C in pdfwrite. N-argument FunctionType 0 are coded but not tested yet. Other function types are not coded. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.20]
2004-07-08 17:15 Igor Melichev
ps2write step 23 : Implementing Indexed and Separation (continued). DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.19]
2004-07-08 15:28 Igor Melichev
ps2write step 22 : Implementing Indexed and Separation. DETAILS : SubstitutePDFColorSpace factored out from ResolveColorSpace. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.18]
2004-07-08 14:00 Igor Melichev
ps2write step 20 : Implementing CalGray, CalRGB. DETAILS : - implemented the color space cache PDFColorSpaces; - improved the procedure 'error'; - a bug in Register : s|gt|ge; - moved color procedures before image procedures; - a bug in the CompleteOutlineImage comment. - ResolveColorSpace now converts CalGray, CalRGB. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.17]
2004-07-08 11:12 Igor Melichev
ps2write step 20 : The implementations of Q,q,CharProc were incomplete. DETAILS : Minor change : collected work data definitions in a single place. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.16]
2004-07-08 10:06 Igor Melichev
ps2write step 17 : Implementing Patterns. DETAILS : Tested with Bug687546.ps, 035-01.ps, 035-07.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.15]
2004-07-08 08:03 Igor Melichev
ps2write step 18 : Fix : Length was written to a wrong file position. DETAILS : Fixes a bug in the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-July/004607.html . Thanks to Ray Johnston for pointing it out. EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.43]
2004-07-07 15:19 Igor Melichev
ps2write step 17 : Image XForm implementation. DETAILS : Tested with Bug687546.ps, 035-01.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.14]
2004-07-07 14:24 Igor Melichev
ps2write step 16 : Inline image implementation. DETAILS : Tested with Bug687546.ps, TESTIMG.PS . The interpretation completes, but some images render wrongly. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.13]
2004-07-07 11:42 Igor Melichev
ps2write step 15 : Fix : ObjectRegistry expansion code was wrong. DETAILS : Tested with Bug687546.ps, 148-01.ps . 148-01.ps still fails due to unimplemented images. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.12]
2004-07-07 11:00 Igor Melichev
ps2write step 14 : Fix : fonts may have no Encoding. DETAILS : Tested with Bug687546.ps, 148-01.ps . 148-01.ps still fails due to unimplemented images. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.11]
2004-07-07 10:40 Igor Melichev
ps2write step 13 : Implementing Type 3 fonts. DETAILS : A minor restructurization of the code and a debug printout improvement. Tested with Bug687546.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.10]
2004-07-07 10:19 Igor Melichev
ps2write step 12 : Implementing Type 3 fonts. DETAILS : 1. Implemented a delayed stream interpretation. 2. Implemented Type 3 fonts. 3. Renamed UnRefD with ResolveD. 4. Debug switches are bound. Tested with Bug687546.ps - now it renders fine. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.9]
Fixes bug 687451 "default resolution for display device" Set the display resolution from the MS-Windows display resolution, using a device parameter -dDisplayResolution=DPI. DETAILS: The initial resolution must be set in display_put_params. Setting it in display_open is too late because this leaves the device resolution and currentpagedevice reporting different values. Callbacks can't be used in display_put_params because the callback structure is not yet initialized. This leaves a device parameter on the command line as the cleanest implementation. If HWResolution is set (e.g. from -r72), then use that. Otherwise, if DisplayResolution is set, use that in the initial display_put_params. After that, ignore all further use of DisplayResolution. The Windows client adds -dDisplayResolution=DPI to the command lines, similar to the existing -dDisplayFormat. The Windows client gets the resolution from the GDI. The default Windows display resolution is 96dpi (the same as the display device). This can be changed to 120dpi by selecting "large fonts", or other values in recent versions of Windows.[doc/Devices.htm 1.80, src/dwmain.c 1.18, src/dwmainc.c 1.20, src/gdevdsp.c 1.24, src/gdevdsp.h 1.9, src/gdevdsp2.h 1.8]
Fixes bug 687562 "vector devices close output file incorrectly". Vector devices open the output file with gx_device_open_output_file, so should close it with gx_device_close_output_file, not fclose. This was preventing pswrite from correctly closing special files such as "%printer%Printer Name" on Windows and OS/2.[src/gdevvec.c 1.22]
In the Windows %printer% IODevice, the existing thread handle is closed automatically when the thread finishes. Duplicate the thread handle so we always have a valid handle for waiting and closing. DETAILS: When the thread finishes, the CRTL _endthread is closing the existing handle. During debugging, it was found that waiting on the thread handle was Ok because the thread was still running, but by the time CloseHandle ran the thread handle was invalid. IODevices are effectively static, so iodev->state is initialized once at the start of the interpreter. There is no need to test if iodev->state is valid.[src/gp_msprn.c 1.4]
Fix for 687565 Incorrect equiv color for Orange in Altona test file. The altona test file Altona_Visual_bb_1v1_x3.pdf contains a spot color called Orange. An incorrect equivalent CMYK color is being determined for this spot color. The result is that the spot color is being displayed as black for the devices which handle spot colors and attempt to determine equivalent CMYK colors for the spot colors. These are the psdcmyk, tiffsep, and display (with -dDisplayFormat=16#a0800) devices. DETAILS: The Orange spot color is used in two different DeviceN color spaces. The first color space has components named 'None'. These components are used as part of a special feature described in section 4.5 of the PDF 1.5 spec. This feature uses the None components as a means for passing values to the color space's alternate tint transform function. In the example in the spec., these values are an equivalent color in the alternate color space. Our logic for determining an equivalent CMYK color for a spot colorant sets all color components except for the desired spot color to zero and then uses the tint transform function to form an alternate color. This results in the equivalent CMYK color being black since the None values contain the real information for the tint transform function. This change consists of check for the presence of DeviceN color space components named None. If any are detected then the equivalent CMYK color logic exits rather than determine an invalid color. This is sufficient for this case since the second color space which contains the Orange spot color does not have the None components. For the general case, a solution needs to be found which samples colors given actual values for the None components.[src/gsequivc.c 1.4]
2004-07-06 19:27 Igor Melichev
ps2write step 11 : Implementing Metrics for Type 1,2,42 fonts (continued). DETAILS : The previous patch appeares incomplete due to MissingWidth. Now fixing. CID fonts and Type 3 fonts are still stubbed. Tested with Bug687546.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.8]
2004-07-06 19:04 Igor Melichev
ps2write step 10 : Implementing Metrics for Type 1,2,42 fonts. DETAILS : CID fonts and Type 3 fonts are still stubbed. Tested with Bug687546.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.7]
2004-07-06 17:44 Igor Melichev
ps2write step 9 : Implementing Encoding for Type 1,2,42 fonts. DETAILS : CID fonts and Type 3 fonts are still stubbed. Tested with Bug687546.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.6]
2004-07-06 13:48 Igor Melichev
ps2write step 8 : Implementing ExtGState. DETAILS : Function objects are subbed yet. Debugged with Bug687546.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.5]
2004-07-06 12:05 Igor Melichev
ps2write step 7 : Implementing text rendering operastors. DETAILS : Font loading is stubbed yet. Debugged with Bug687546.ps . TextRenderingMode!=0 isn't debugged yet. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.4]
2004-07-05 21:16 Igor Melichev
ps2write step 6 : :Providing a page stream execution context. DETAILS : Most operators are eother stubbed or unimplemented, but the interpretation runs and prints a trace. Debugged wioth Bug687546.ps . EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.3]
2004-07-05 17:03 Igor Melichev
ps2write step 5 : Page streams must interpret immediately. DETAILS : This works against a huge memory consumption. Also improved comments, the module structurization and error processing. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.2]
2004-07-05 17:03 Igor Melichev
ps2write step 4 : Stream data length must preceed the stream. DETAILS : The new code is disabled with PS2WRITE 0 in gdevvec.h . pdf_begin_data_stream, pdfmark_PS wrote a stream data length after the stream object. With OrderResources true we write a direct object instead that. EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.42, src/gdevpdfu.c 1.56, src/gdevpdfx.h 1.97]
2004-07-05 12:55 Igor Melichev
ps2write step 3 : Initial commit for the Ordered PDF Reader. DETAILS : This revision only reads PDF objects into VM. EXPECTED DIFFERENCES : None.[lib/opdfread.ps 1.1]
Log Message: Fixes bug 686956 Display device does not support separations. Add support for separations to display device. This requires a change to the display callback structure. Support is maintained for clients using version 1 of the structure. DETAILS: Add support for a new color format, DISPLAY_COLORS_SEPARATION, which supports CMYK and spot colors. A new callback display_separation() is used to tell the client about the names and CMYK equivalents of each separation. The callback structure version number is incremented to 2 to show that has changed. The display devices checks whether it is passed the older v1 structure or the newer v2 structure, and only calls the new separation callback if it was given a v2 structure. Only 8-bit/pixel, up to 8 components and 64-bit depth are supported. In the Windows and gtk+ clients, a subset of these 8 separations can be selected for display. The new code is based on the tiffsep device.[doc/API.htm 1.43, doc/Devices.htm 1.79, src/dwimg.c 1.12, src/dwimg.h 1.9, src/dwmain.c 1.17, src/dwmainc.c 1.19, src/dxmain.c 1.13, src/gdevdsp.c 1.23, src/gdevdsp.h 1.8, src/gdevdsp2.h 1.7, src/idisp.c 1.7]
2004-07-01 19:23 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 6). DETAILS : Bug 687546 pdfwrite : Type 3 glyph variations (was: ps2pdf segfaults) Relates to 687044, 687472, 687489, 687546. charproc_just_accumulated was not properly initialized on some circumstances. EXPECTED DIFFERENCES : Bug687546.ps (new)[src/gdevpdtt.c 1.84]
Correct some warnings from the MSVC compiler.[src/gscdevn.c 1.19, src/gscsepr.c 1.26, src/gsht.c 1.21, src/gzht.h 1.12]
This change creates common routines for handling the DeviceN related device parameters (SeparationColorNames, SeparationOrder, and MaxSeparations). The change also splits up some common routines that were assuming that the device was a 'printer' device.[src/devs.mak 1.116, src/gdevdevn.c 1.21, src/gdevdevn.h 1.10, src/gdevnfwd.c 1.25, src/gdevpsd.c 1.16, src/gdevtsep.c 1.3, src/gdevxcf.c 1.9, src/gxcmap.c 1.22, src/gxcmap.h 1.11]
Fixes nonportable code in the vasarely.ps example file so that keeps to reasonable page size values even when default clippath is very large (as is the case with the bbox device). Fixes bug #687549.[examples/vasarely.ps 1.3]
2004-06-30 14:55 Igor Melichev
Fix (pdsfwrite) : Compression of XObjects implicitely depended on CompressFonts (continued). DETAILS : Fixing a compiler error with PS2WRITE 1. EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.55]
2004-06-30 14:50 Igor Melichev
Fix (pdsfwrite) : Compression of XObjects implicitely depended on CompressFonts. DETAILS : This patch makes the dependence explicit. Have no idea which distiller parameter must controll patterns and forms, so keeping the old dependence. With OrderResources=true pages now depend on CompressPages. EXPECTED DIFFERENCES : None.[src/gdevpdfi.c 1.54, src/gdevpdfm.c 1.41, src/gdevpdfu.c 1.54, src/gdevpdfx.h 1.96, src/gdevpdti.c 1.34]
2004-06-30 14:35 Igor Melichev
ps2write part 2 : Delay writing pages. DETAILS : The new code is disabled with PS2WRITE 0 in gdevvec.h . With OrderResources=true it writes pages at the end of the document, after all resources are written to PDF. Before that pages are accumulated in a temporary file. OrderResources has been moved from distiller parameters to device parameters. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.96, src/gdevpdfg.c 1.54, src/gdevpdfp.c 1.39, src/gdevpdfu.c 1.53, src/gdevpdfx.h 1.95, src/gdevpsdf.h 1.22, src/gdevpsdp.c 1.14]
2004-06-30 11:54 Igor Melichev
ps2write part 1 : starting the project. DETAILS : Define a new temporary configuration switch PS2WRITE. The new code is disabled with PS2WRITE 0 in gdevvec.h . Our development strategy is to make pdfwrite to generate an output, which a PS interpreter can handle with a special procset. For a while we'll not define a new ps2write device, but enhance the pdfwrite device with a new feature. A new temporary distiller parameter OrderResources will make pdfwrite to keep a proper resource ordering for generating a PS output. EXPECTED DIFFERENCES : None.[src/gdevpsdf.h 1.21, src/gdevpsdp.c 1.13, src/gdevvec.h 1.14]
2004-06-30 08:15 Igor Melichev
Fix : MSVC compiler warning. EXPECTED DIFFERENCES : None.[src/gdevtsep.c 1.2]
Fix for 687553 rangecheck in .sethalftone5 and SeparationOrder. DETAILS: If a file specifies a type 5 halftone and the SeparationOrder device parameter is specified then a rangecheck can occur. This happens when the halftone includes two or more colorants that are not in the SeparationOrder parameter or one colorant and a 'Default' value. The problem occurs because the get_color_comp_index device procs use GX_DEVICE_COLOR_MAX_COMPONENTS to indicate colorants which are not being imaged due to the colorant not be included in the list for the SeparationOrder device parameter. However the gs_color_name_component_number routine was using the same value to indicate 'Default' halftones. The fix consists of modifying gs_color_name_component_number to look for GX_DEVICE_COLOR_MAX_COMPONENTS from the get_color_comp_index device proc. If found then the component is treated the same as a component that is not present in the device. The halftoning logic is only concerned with the colorants which are actually being used by the device.[src/gsht.c 1.20]
Correct spelling in a comment.[src/gxcmap.h 1.10]
Change the default handling of the MaxSeparations device parameter. This parameter is only used by some of the DeviceN mode devices (which have their own handling of this parameter). The default handler now simply ignores this parameter. However it does read the parameter. Not reading the parameter was causing problems with PDF files and page devices.[src/gsdparam.c 1.17]
Add contributed pscolor utility by Carsten Hammer. This splits a ps document into two, one consisting only of black and white pages, and one of color pages. Useful for printing on separate devices. Submitted under bug 602263. The Makefile needs updating for the new location.[contrib/pscolor/Makefile 1.1, contrib/pscolor/instream.yy 1.1, contrib/pscolor/test.c 1.1]
2004-06-28 17:13 Igor Melichev
Fix : True Type grid fitting must not apply to FAPI fonts. DETAILS : Bug 687543 "FAPI: Type 42 is broken". EXPECTED DIFFERENCES : None.[src/gxccman.c 1.26, src/lib.mak 1.187]
2004-06-24 10:10 Igor Melichev
Fix : A dangling pointer from TExecution_Context could cause a memory corruption. DETAILS : The pointed area was never used and the pointer was not listed in the garbager descriptor. Due to the latter it was not relocated and a wrong object was released through it. Bug 687533 "segmentation fault on this PS file" We still keep the pointer defined, because we don't want to change FreeType structures. But now we don't allocate the area for its referent. Minor change (ttinterp.c) : skip allocating a debug data of zero size. EXPECTED DIFFERENCES : None.[src/ttfmemd.c 1.7, src/ttinterp.c 1.13, src/ttobjs.c 1.7]
2004-06-24 09:51 Igor Melichev
Fix: Unwinding the recent change to gsdparam.c becauase it breaks the PDF interpreter. DETAILS : All comparefiles/*.pdf failed with -sDEVICE=ppmraw after the change http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004575.html . EXPECTED DIFFERENCES : See DETAILS.[src/gsdparam.c 1.16]
Add source file src/gdevtsep.c. This file is part of the implementation 687440 and 542629.[src/gdevtsep.c 1.1]
Add the src/gdevtsep.c file. This contains the tiffgray, tiff32nc, and tiffsep devices.[doc/Develop.htm 1.135]
2004-06-24 06:51 Igor Melichev
Fix (TT interpreter) : The implementation of INSTCTRL did not follow the TT specification by Apple. DETAILS : Bug 687526 /invalidfont in --show-- See http://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html#INSTCTRL The old implementation comes from FreeType. EXPECTED DIFFERENCES : None.[src/ttinterp.c 1.12]
This change implements the enhancements described in 542629 CMYK tiff driver and 687440 Support for outputting PDF separations separately. This change implements three devices: tiffgray which produces an 8 bit gray output with uncompressed data, tiff32nc which produces 32 bit CMYK with uncompressed data, and tiffsep which produces a tiffgray file for each separation (CMYK and spot colors) and it also produces a CMYK output file which is created using the CMYK image data plus the spot colors image data. The spot colors are converted to CMYK using the logic in 687431. DETAILS: This change requires that 687504 be included in the sources. The tiffgray and tiff32nc devices are logically similar to the tiff24nc device except for the use of gray and CMYK process color models. The tiffsep device uses much of the logic which has been created for the psdcmyk and spotcmyk devices. These include logic for implementing the SeparationOrder setpagedevice parameter 687423, logic for determining an equivalent CMYK color to spot colors 687431, and automatically detecting spot colors (without requiring that they be specified via the SeparationColorNames setpagedevice parameter 687504. The tiffsep device also prints the names of any spot colors detected within a document to stderr. (stderr is also use for the output from the bbox device.) For each spot color the name of the color is printed preceded by '%%SeparationName: '. This provides a mechanism for external applications to be informed about the names of spot colors with a document. Due to the 64 bit pixel size limitation, the tiffsep can handle a maximum of 8 colorants per pass. However it is possible to handle more than 8 colorants by doing multiple passes. For each pass after the first one, the names of all of the separations need to be specified via the SeparationColorNames parameter and the names of the desired separations need to be specified via the SeparationOrder parameter. When colorants are selected via the SeparationOrder parameter, the composite CMYK output contains the equivalent CMYK data only from the selected colorants. It is possible to create an overall CMYK composite for more than 8 colorants by then adding together (via an external application like imagemagick) the composite CMYK output files from the individual Ghostscript passes. Internally each spot color is assigned a spot color number. These numbers start with 0 for the first spot color. The spot color numbers are assigned in the same order as the names are printed to stderr (see above). This order also matches the ordering in the SeparationColorNames list, if this parameter is specified. The spot color numbers are not affected by the SeparationOrder parameter. This device creates multiple output files. The file specified via the OutputFile command line parameter is used to contain the composite CMYK equivalent. File names for the separations for the CMYK planes are created by appending '.Cyan.tif', '.Magenta.tif' '.Yellow.tif' or '.Black.tif' to the to the end of the file name specified via the OutputFile parameter. File names for the spot color separation files are created by appending '.sn.tif' (where n is the spot color number) to the end of the file name specified via the OutputFile parameter. The src/gdevtsep.c source file does have a compile time option for including/not the '.tif' at the end of the created file name. It also has a compile time option for using the name of the spot color as part of the file name. However this is not enabled since there may be conflicts with spot color names (in which Adobe allows almost anything) and the operating system's conventions on file naming. This change consists of the new source module src/gdevtsep.c, changes to devs.mak for defining the new devices, changes to the various top level make files for including these devices in their DEVICE_DEVS definitions, and changes to the documentation files.[doc/Devices.htm 1.78, src/Makefile.in 1.36, src/devs.mak 1.115, src/dvx-gcc.mak 1.26, src/gdevdevn.h 1.9, src/gsdparam.c 1.15, src/macos-mcp.mak 1.25, src/msvc32.mak 1.58, src/openvms.mak 1.36, src/os2.mak 1.37, src/unix-gcc.mak 1.45, src/unixansi.mak 1.36, src/watcw32.mak 1.29]
2004-06-24 06:47 Igor Melichev
A new implementation of shadings, step 80. DETAILS : A stronger prevention of a tiny decomposition of a color. It works against glitches in function|color monotonity|linearity checks. EXPECTED DIFFERENCES : 72dpi : Altona-Testsuite_p2_S_x3.pdf Clarke Tate Manns Chinese.ai S2_Digitalproof-Forum_x3k.pdf 300dpi : Clarke Tate Manns Chinese.ai S2_Digitalproof-Forum_x3k.pdf[src/gxshade6.c 1.77]
Fix for 687534 Unable to determine equivalent CMYK for spot colors that are only used with overprint. DETAILS: The given test file uses spot colors. However the psdcmyk device was creating output files which did not contain equivalent CMYK colors for the spot colors. The cause was that the previous version of the logic was capturing the equivalent CMYK colors when the psdcmyk device's high drawing procs were called. However if overprinting is enabled, then the overprint device was inserting its own versions of these routines. Since it only took one call to a high level drawing handler, the previous logic would capture the equivalent CMYK colors if there were any drawing operations with a spot color that did not have overprinting enabled. The fix consists of moving the capturing of the equivalent CMYK colors to a new device proc. This new device proc is called update_spot_equivalent_colors. This device proc is called whenever a Separation or a DeviceN color space is installed. The default version of the proc does nothing. Thus there is only a small amount of overhead added for the installation of Separation and DeviceN color spaces for devices which do not need the equivalent CMYK colors for spot colors. Most of the change consists of the standard details of adding a new device proc. There are several places that have to be updated when this is done. The documentation in doc/Drivers.htm was updated to include this new proc. The high level drawing handlers in the psdcmyk devices were removed and a new psd_update_spot_equivalent_colors procedure was added. Some minor changes were made in the logic in gsequivc.c since it is no longer necessary to scan through base and alternate color spaces looking for Separation and DeviceN color spaces. The comments at the beginning of gsequivc.c was changed to reflect the changes in the logic for capturing equivalent CMYK colors for spot colors.[doc/Drivers.htm 1.47, src/gdevbbox.c 1.18, src/gdevdflt.c 1.24, src/gdevnfwd.c 1.24, src/gdevprn.c 1.17, src/gdevpsd.c 1.15, src/gdevrops.c 1.12, src/gscdevn.c 1.18, src/gscsepr.c 1.25, src/gsequivc.c 1.3, src/gsequivc.h 1.2, src/gxclip.c 1.15, src/gxclip2.c 1.11, src/gxclipm.c 1.13, src/gxclist.c 1.14, src/gxdevcli.h 1.33, src/gxdevice.h 1.18]
Minor change to avoid a spurious compiler warning about 't' used before initialized. Fixes bug #687412. DETAILS: This is an invalid warning, since 't' is always initialized before use, however the extensive use of macros confuses some compilers. IMO, this is an abuse of macros, but this is endemic in the older GS code.[src/spdiff.c 1.7]
2004-06-23 20:37 Alex Cherepanov
Disable idiom recognition feature during execution of .bindnow because it has no effect except burning a few seconds of CPU time. Fix bug 687521[lib/gs_init.ps 1.107]
Fixed CMYK to RGB conversion. Used in rop code where RGB -> CMYK -> RGB needs to work correctly in the black and white cases.[src/gdevbit.c 1.10]
Fix macro to use it's arguments. Platform specific, under exersized code.[src/gxfarith.h 1.7]
2004-06-23 09:04 Igor Melichev
Fix (ps2ascii) : Provide a tolerance to old versions of dvips output. DETAILS : Bug 531300 "ps2ascii chokes on ch-xoff and ch-* routines". Patch from Mike attached to the bug. EXPECTED DIFFERENCES : None.[lib/ps2ascii.ps 1.10]
Add new CMaps and update older ones to latest. Bug #687470. Thanks to A. Cherepanov for providing part of the newer files.[Resource/CMap/83pv-RKSJ-H 1.2, Resource/CMap/90ms-RKSJ-H 1.2, Resource/CMap/90ms-RKSJ-UCS2 1.1, Resource/CMap/90ms-RKSJ-V 1.2, Resource/CMap/90msp-RKSJ-H 1.1, Resource/CMap/90msp-RKSJ-V 1.1, Resource/CMap/90pv-RKSJ-H 1.2, Resource/CMap/90pv-RKSJ-UCS2 1.1, Resource/CMap/90pv-RKSJ-UCS2C 1.1, Resource/CMap/90pv-RKSJ-V 1.2, Resource/CMap/Add-RKSJ-H 1.2, Resource/CMap/Add-RKSJ-V 1.2, Resource/CMap/Adobe-CNS1-B5pc 1.1, Resource/CMap/Adobe-CNS1-ETen-B5 1.1, Resource/CMap/Adobe-CNS1-H-CID 1.1, Resource/CMap/Adobe-CNS1-H-Host 1.1, Resource/CMap/Adobe-CNS1-H-Mac 1.1, Resource/CMap/Adobe-CNS1-UCS2 1.1, Resource/CMap/Adobe-GB1-GBK-EUC 1.1, Resource/CMap/Adobe-GB1-GBpc-EUC 1.1, Resource/CMap/Adobe-GB1-H-CID 1.1, Resource/CMap/Adobe-GB1-H-Host 1.1, Resource/CMap/Adobe-GB1-H-Mac 1.1, Resource/CMap/Adobe-GB1-UCS2 1.1, Resource/CMap/Adobe-Japan1-90ms-RKSJ 1.1, Resource/CMap/Adobe-Japan1-90pv-RKSJ 1.1, Resource/CMap/Adobe-Japan1-H-CID 1.1, Resource/CMap/Adobe-Japan1-H-Host 1.1, Resource/CMap/Adobe-Japan1-H-Mac 1.1, Resource/CMap/Adobe-Japan1-PS-H 1.1, Resource/CMap/Adobe-Japan1-PS-V 1.1, Resource/CMap/Adobe-Japan1-UCS2 1.1, Resource/CMap/Adobe-Korea1-H-CID 1.1, Resource/CMap/Adobe-Korea1-H-Host 1.1, Resource/CMap/Adobe-Korea1-H-Mac 1.1, Resource/CMap/Adobe-Korea1-KSCms-UHC 1.1, Resource/CMap/Adobe-Korea1-KSCpc-EUC 1.1, Resource/CMap/Adobe-Korea1-UCS2 1.1, Resource/CMap/B5pc-H 1.1, Resource/CMap/B5pc-UCS2 1.1, Resource/CMap/B5pc-UCS2C 1.1, Resource/CMap/B5pc-V 1.1, Resource/CMap/CNS-EUC-H 1.1, Resource/CMap/CNS-EUC-V 1.1, Resource/CMap/EUC-H 1.2, Resource/CMap/EUC-V 1.2, Resource/CMap/Ext-RKSJ-H 1.2, Resource/CMap/Ext-RKSJ-V 1.2, Resource/CMap/GB-EUC-H 1.1, Resource/CMap/GB-EUC-V 1.1, Resource/CMap/GBK-EUC-H 1.2, Resource/CMap/GBK-EUC-UCS2 1.1, Resource/CMap/GBK-EUC-V 1.2, Resource/CMap/GBK2K-H 1.1, Resource/CMap/GBK2K-V 1.1, Resource/CMap/GBKp-EUC-H 1.1, Resource/CMap/GBKp-EUC-V 1.1, Resource/CMap/GBT-EUC-H 1.1, Resource/CMap/GBT-EUC-V 1.1, Resource/CMap/GBpc-EUC-H 1.1, Resource/CMap/GBpc-EUC-UCS2 1.1, Resource/CMap/GBpc-EUC-UCS2C 1.1, Resource/CMap/GBpc-EUC-V 1.1, Resource/CMap/H 1.2, Resource/CMap/HKdla-B5-H 1.1, Resource/CMap/HKdla-B5-V 1.1, Resource/CMap/HKdlb-B5-H 1.1, Resource/CMap/HKdlb-B5-V 1.1, Resource/CMap/HKgccs-B5-H 1.1, Resource/CMap/HKgccs-B5-V 1.1, Resource/CMap/HKm314-B5-H 1.1, Resource/CMap/HKm314-B5-V 1.1, Resource/CMap/HKm471-B5-H 1.1, Resource/CMap/HKm471-B5-V 1.1, Resource/CMap/HKscs-B5-H 1.1, Resource/CMap/HKscs-B5-V 1.1, Resource/CMap/Identity-H 1.2, Resource/CMap/Identity-V 1.2, Resource/CMap/KSC-EUC-H 1.1, Resource/CMap/KSC-EUC-V 1.1, Resource/CMap/KSCms-UHC-H 1.2, Resource/CMap/KSCms-UHC-HW-H 1.1, Resource/CMap/KSCms-UHC-HW-V 1.1, Resource/CMap/KSCms-UHC-UCS2 1.1, Resource/CMap/KSCms-UHC-V 1.2, Resource/CMap/KSCpc-EUC-H 1.1, Resource/CMap/KSCpc-EUC-UCS2 1.1, Resource/CMap/KSCpc-EUC-UCS2C 1.1, Resource/CMap/UCS2-90ms-RKSJ 1.1, Resource/CMap/UCS2-90pv-RKSJ 1.1, Resource/CMap/UCS2-B5pc 1.1, Resource/CMap/UCS2-ETen-B5 1.1, Resource/CMap/UCS2-GBK-EUC 1.1, Resource/CMap/UCS2-GBpc-EUC 1.1, Resource/CMap/UCS2-KSCms-UHC 1.1, Resource/CMap/UCS2-KSCpc-EUC 1.1, Resource/CMap/UniCNS-UCS2-H 1.2, Resource/CMap/UniCNS-UCS2-V 1.2, Resource/CMap/UniGB-UCS2-H 1.2, Resource/CMap/UniGB-UCS2-V 1.2, Resource/CMap/UniJIS-UCS2-H 1.2, Resource/CMap/UniJIS-UCS2-HW-H 1.1, Resource/CMap/UniJIS-UCS2-HW-V 1.1, Resource/CMap/UniJIS-UCS2-V 1.2, Resource/CMap/UniKS-UCS2-H 1.2, Resource/CMap/UniKS-UCS2-V 1.2, Resource/CMap/V 1.2]
2004-06-18 17:46 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 5). DETAILS : pdf_set_charproc_attrs went out the pw array range, and caused an indeterministic behavior with Bug687044.ps . EXPECTED DIFFERENCES : Not detected on Windows, but the old revision was indeterministic.[src/gdevpdti.c 1.33, src/gdevpdfx.h 1.94, src/gdevpdtt.c 1.83]
687504 Enhancement: Imaging spot colors without using the SeparationColorNames parameter. DETAILS: The purpose of this enhancement is to provide an example of how to implement imaging spot colors without requiring that they be specified in advance via the SeparationColorNames setpagedevice parameter. Note: Spot colors are only supported on a few devices which have output file formats which allow for spot colors. These are currently the psdcmyk, spotcmyk, and xcfcmyk devices. This commit only implements this feature on the psdcmyk, spotcmyk and devicen devices. In order to implement this feature, a device needs to be able to allocate image buffer memory for each colorant and to detect when a new colorant is being used inside of a color space. The implementation has the following pieces: 1. The handling of the MaxSeparation setpagedevice parameter was extended. Previously this parameter was always set to one. For most devices it now indicates the number of colorants being used by the device. For most devices this is a fixed quantity, however for the psdcmyk device, this parameter can be used to tell the device to allocate image buffer memory for up to eight colorants. (The eight colorant limit is due to the fact that the psdcmyk device uses 8 bits per colorant and we currently have a 64 bit maximum pixel size.) 2. The devices already have a 'get_color_comp_index' routine which is used to query if a colorant is supported by the device. However this routine is used for both real components in color spaces and also for some special cases. For instance, the same halftone may be used either for a cyan or a red colorant. To handle this case, the halftoning setup logic will query the get_color_comp_index routine to check if cyan is supported by the device. If not then a query is made to see if the device supports red. By monitoring the names of the components passed to get_color_comp_index routine, a device can detect when a new spot color is being used. However it is necessary to be able to detect the special cases so that the device does not believe that it has a 'red' spot color. To do this the third parameter of the get_color_comp_index device proc was logically modified to indicate if a name represents a name actually in a color space or one of the special case situations. Previously this parameter was not being used. 3. The get_color_comp_index routine for the psdcmyk device was modified to look for new spot colors and to add then to its list of colorants if there was space available. Note: This also required that the psdcmyk device have its own structure descriptor, pointer enumeration and relocation procedures. The macro which was used to define the psdcmyk and psdrgb devices needed to be changed since the previous macro used the st_device_printer structure descriptor instead of the new structure descriptor for the psd devices.[src/gdevdevn.c 1.20, src/gdevdevn.h 1.8, src/gdevnfwd.c 1.23, src/gdevperm.c 1.4, src/gdevpsd.c 1.14, src/gdevxcf.c 1.8, src/gscdevn.c 1.17, src/gscsepr.c 1.24, src/gscspace.c 1.16, src/gsdparam.c 1.14, src/gsht.c 1.19, src/gxcmap.c 1.21, src/gxcmap.h 1.9]
Protect genarch's test for sizeof(long long) with and #ifdef HAVE_LONG_LONG since a number of platforms (particularly MSVC) do not support this type.[src/genarch.c 1.11, src/stdint_.h 1.5]
2004-06-17 13:05 Alex Cherepanov
Round elements of Mask array to the nearest integer following implementation of AR4, AR5, AR6. Fix bug 687494 from customer 580.[lib/pdf_draw.ps 1.82]
2004-06-17 11:14 Igor Melichev
Fix : Arithmetic errors could cause a function monotonity misrecongition. DETAILS : Bug 687511 "shadinds: infinite recursion". EXPECTED DIFFERENCES : Not detected on Windows. On Linux expecting a difference with : Altona-Testsuite_p2_S_x3.pdf S2_Digitalproof-Forum_x3k.pdf[src/gsfunc0.c 1.21]
2004-06-16 20:01 Alex Cherepanov
Fix parsing of -2147483648.5, min_int followed by a fractional part. Fix bug 687500[src/iscannum.c 1.9]
2004-06-16 11:22 Igor Melichev
Fix (pdfwrite) : Allow named object reference in the Action key of /ANN pdfmark. DETAILS : Bug 687386 "-dEmbedAllFonts does not work". It's a PDF 1.5 feature. We still incompletely support PDF 1.5 . EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.40]
Protect against cache values containing spaces. This shouldn't be a problem, the change is more for consistency.[src/configure.ac 1.47]
Try to use long long as a 64 bit type in the genarch fallback stdint definitions. Fix for bug 687514.[src/genarch.c 1.10, src/stdint_.h 1.4]
2004-06-15 20:28 Igor Melichev
Fix (pdfwrite) : A wrong CFF string index randiomization. DETAILS : Bug 687507 "pdfwrite device closes with -15". 1. Randomization parameters for cff_string_index were computed wrongly, causing the search to skip some items. As a consequence, some strings were added to the table many times, causing a groth of the table while CFF size estimation iterations, and psf_write_type2_font returned error due to "offset > End_offset". 2. If an error happened writing a font after pdf_begin_fontfile is done, unconditionally call pdf_end_fontfile to provide a consistent stream state. EXPECTED DIFFERENCES : None.[src/gdevpdtb.c 1.24, src/gdevpsf2.c 1.31, src/lib.mak 1.186]
2004-06-15 15:27 Alex Cherepanov
Make pdf_dominant_rotation() return unknown text rotation for the file without text. It returned 0 rotation before, which excluded consideration of DSC comments later on. Fix bug 687515[src/gdevpdf.c 1.95]
2004-06-10 19:09 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 4). DETAILS : Recent changes about charproc variations caused an appearence of idle entries in the xref table. Those entries pointed to zero length objects and were never referred. Idle entries appeared due to the substream accumulator reserved an object id before entering a substream, but later the object (a charproc) was cancelled. This patch delays the reservation of an object id until we decide that the object won't be cancelled. Added a new argument of pdf_enter_substream for this purpose. EXPECTED DIFFERENCES : None.[src/gdevpdfi.c 1.53, src/gdevpdfm.c 1.39, src/gdevpdfx.h 1.93, src/gdevpdti.c 1.32]
2004-06-10 16:41 Igor Melichev
A new implementation of shadings, step 80. DETAILS : Propagated error codes from is_color_monotonic, is_color_linear. Should fix the bug 687511 "shadinds: infitite recursion". EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.76]
2004-06-09 20:47 Igor Melichev
Fix (type 1 hinter) : an indeterministic bug in t1_hinter__simplify_representation. DETAILS : Bug 687508 "segfault with cvs head". 1. An old defect in the code : when contour_count is greater than hint_count, and the hinting is disabled by one axis, random hints could appear, causing indeterministic effects. 2. this->grid_fit_x ans this->grid_fit_y were erroneusely exchanged. EXPECTED DIFFERENCES : 72dpi : 036-01.ps Bug687044.ps Faktura.pdf kazmir.pdf RealCities.pdf test.pdf xgfddg.pdf[src/gxhintn.c 1.50]
2004-06-09 12:07 Igor Melichev
Fix (type 1 hinter) : 1. Ever align the Y-coordinate of a glyph origin to pixels. 2. Improve the unaligned pole interpolation; 3. Set a waeaker angle threshold in t1_hinter__is_stem_hint_applicable. 4. Allow an offset fuzz in t1_hinter__is_stem_hint_applicable. 5. Align upper/lower horizontal stems by the upper/lower edge. 6. A dependency was missed in lib.mak . DETAILS : Bug 687419 "poor font rendering on X11 with gs 8.14". The intention of this change is to improve the rendering quality with TextAlphaBits > 1, but actually it modifies glyph rendering in all cases. 1. The test file of the bug 687419 shows that we had 3 inconsistent requirements : - the analigned glyph origin; - uniform glyph size; - and contrast stems. Since an uniform glyph height looks critical, we drop the analygned Y-coordinate of the glyph origin. In other words, now we ever align the Y-coordinate of the glyph origin to pixels. This also reduces the number of glyph raster variants in the cache. 2. The old interpolation algorithm could cause significant distortions with flex-like serifs, which are not marked with flex. The character 'L' in the test document of the bug 687419 demonstrates that. If the path goes outside the interpolation interval and have no turns, now we shift the "outer" parts rather than breaking the path at extremal poles. (We wanted this change a long ago but haven't got a strong reason for it.) 3. The threshold in t1_hinter__is_stem_hint_applicable changed from 1/3 to 9/10. This makes more stems to recognize. The reason for that is the same character "L". 4. Allowed a blue_fuzz offset t1_hinter__is_stem_hint_applicable. Debugged with comparefiles/tpc2.ps . 5. In the test file of the bug 687419 the small font has no upper alignment zone for lowercase. This caused an uniform glyph height due to wide and norrow horizontal stems aligned ocasionally by top or bottom. Implemented a choice of the aligned edge depending on the Y-coordinate of stem middle relative to the glyph middle. 6. gxhintn_h was defined in lib.mak after it is used at once. EXPECTED DIFFERENCES : Almost all comparefiles render differently.[src/gxchar.c 1.43, src/gxhintn.c 1.49, src/lib.mak 1.185, src/gxhintn.h 1.20]
2004-06-08 11:42 Igor Melichev
Fix (pdfwrite) : Merge equal ExtGState objects. DETAILS : Bug 687487 "(pdfwrite) redundant ExtGState objects". Now we represent ExtGState objects as cos_dict_t instances, and perform a full comparizon before writing them into the output PDF. Redundant equal objects are being substituted and skipped. This patch consists of 4 parts : 1. Creting an ExtGstate object, replaced old calls to stream functions with calls to cos_dict_t functions. 2. Implemented the comparizon/substitution logic in pdf_end_gstate. 3. pdf_prepare_drawing now doesn't pass keys to pdf_update_halftone, pdf_update_transfer, pdf_write_transfer_map, because we don't want them to become a part of a value. Instead that we made them to be keys of the cos_dict_t instance. 4. Defined new functions cos_dict_put_c_key_bool and cos_dict_put_string_copy to simplify the new code. EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.53, src/gdevpdfo.c 1.30, src/gdevpdfo.h 1.19]
2004-06-03 17:12 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 3). DETAILS : Must check FontMatrix when deciding about same charproc. EXPECTED DIFFERENCES : None.[src/gdevpdti.c 1.31]
2004-06-02 17:45 Igor Melichev
Fix (pdfwrite) : 1. After used a process color, continue using it for same client color space. 2. A bug in pdf_set_initial_color could miss some color commands. DETAILS : 1. Bug 687197 "ps2pdf creates incorrect PDF". Defined nad maintained new flags pdev->fill_used_process_color and pdev->stroke_used_process_color for vector devices. The function pdf_reset_color use them when the cclient color space isn't embeddable. 2. Occasionally found that pdf_set_initial_color set saved colors to pdev->vg_initial rather than to argument pointers. This could loose some color commands with a small probability, so that some objects could get a wrong color. EXPECTED DIFFERENCES : None.[src/gdevpdfb.c 1.22, src/gdevpdfd.c 1.40, src/gdevpdfg.c 1.52, src/gdevpdfg.h 1.32, src/gdevpdfp.c 1.38, src/gdevpdtt.c 1.82, src/gdevpdfx.h 1.92, src/gdevvec.h 1.13]
2004-06-02 13:19 Igor Melichev
Fix (pdfwrite) : ConvertCMYKImagesToRGB crashed. DETAILS : Bug 687428 "ConvertCMYKImagesToRGB does not produce a PDF-File". It made a pointer from global memory to C stack. Fixed with allocating the structure dinamically. It produces a small garbage, which is not critical in pdfwrite. EXPECTED DIFFERENCES : None.[src/gdevpsdi.c 1.27]
2004-06-02 12:14 Igor Melichev
Fix : 'midpoint' formula was wrong. DETAILS : Bug 687463 "The 'midpoint' formula is wrong". EXPECTED DIFFERENCES : I didn't detect any on Windows. After recent changes this stuff works only with curves, which can't flatten with 2^12 segments, and which are not a part of a shading, so likely the probability of a difference is small.[src/gxpflat.c 1.41, src/gxshade6.c 1.75]
Correct a typo. Thanks to Russell for catching this one.[doc/Make.htm 1.76]
Fix for 687477 Bad incremental update to a PDF file. DETAILS: The given test file had a bad incremental update. This update has two problems: 1. The trailer dict only had a Prev entry. None of the required entries were present. To fix this problem, entries from previous trailer dicts are placed into the initial trailer dict if there is no entry with the same key in the initial trailer dict. 2. The update had an xref table with two entries. One of them was bad. (Not a very good percentage.) To fix this problem, all entries in the composite xref table are scanned to verify that they point to a valid objects. If not then the rebuild logic is used to attempt to recover the xref data. This can be disabled by adding -dNoVerifyXref to the command line. In most cases, the verification time is not noticeable but I did find a file with 104,000 xref entries and it took about 2 seconds to verify the xref table.[lib/pdf_base.ps 1.43, lib/pdf_main.ps 1.87, lib/pdf_rbld.ps 1.7]
2004-06-01 17:20 Igor Melichev
Fix : A Cygwin/gcc warning. DETAILS : The prefious patch appeared incomplete. Now fixing. EXPECTED DIFFERENCES : None.[src/gdevpdfx.h 1.91]
2004-06-01 17:06 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 2). DETAILS : This is a final step of fixing the bug 687489 "pdfwrite creates invalid Type3 font -- missing characters". This patch provides a check whether a color was changed while a PS charproc interpretation. A color command is written into the PDF charproc if and only if the PS charproc changed the color. This patch discovers a bug in Adobe Acrobat Reader 5 : with the test document of the bug 687489 it paints an "invisible" text in the 4th page. That text isn't visible when viewing with Adobe reader 6 and with GS. The text is painted with a white color, but AR 5 erroneusly paints it with black. EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.39, src/gdevpdfg.c 1.51, src/gdevpdfg.h 1.31, src/gdevpdtt.c 1.81]
2004-06-01 17:03 Igor Melichev
High level devices may need a device color while executing stringwidth. DETAILS : This is second step of fixing the bug 687489 "pdfwrite creates invalid Type3 font -- missing characters". The problem happens due to the old code could run a charproc while executing a stringwidth, when device color is not evaluated. This patch provides the device color loading with no dependence on the text operation. dev_proc(dev, text_begin) now receives a device color in any case. THIS IS AN INCOMPATIBLE CHANGE : if an old device depends on a device color ability, it will malfunction. EXPECTED DIFFERENCES : None.[src/gstext.c 1.18]
2004-06-01 13:42 Igor Melichev
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued). DETAILS : This is a preparation for fixing the bug 687489 "pdfwrite creates invalid Type3 font -- missing characters". The problem happens due to the old code could run a charproc while executing a stringwidth, when the PDF viewer state isn't syncronized with the PS graphic state. We don't synchronize in this case because stringwidth doesn't paint. Our intention is to know whether a charproc changes graphic state parameters : current color, line width, etc. For doing so we need (1) to save the viewer state in the viewer state stack, and then (2) synchronize with the PS graphic state without writing commands to the PDF. This patch does provide (1) but does not implement (2) because we want to check the change (1) for no regressions. The change (2) will be a separate step. Saving a viewer state in a stack when entering a charproc was contributed with the recent patch http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004507.html as an improvement of pdf_enter_substream, which was called from pdf_install_charproc_accum called from pdf_text_set_cache. In other words, the viewer state saving was deferred until setcachedevice/setcharwidth. However we need to save the viewer state in the beginning of a PS charproc. This patch moves the call to pdf_enter_substream from pdf_install_charproc_accum to the TEXT_PROCESS_RENDER branch of pdf_text_process. We believe that the new logic is more straight : we start the charproc stream accumulation immediately before the PS interpreter enters a charproc interpretation. Minor changes : 1. Defined pdf_start_charproc_accum as a symmetric one for pdf_end_charproc_accum. 2. Renamed pdf_install_charproc_accum into pdf_set_charproc_attrs. 3. Improved the argument list of pdf_prepare_text_drawing. EXPECTED DIFFERENCES : None.[src/gdevpdti.c 1.30, src/gdevpdfx.h 1.90, src/gdevpdtt.c 1.80]
2004-06-01 02:37 Alex Cherepanov
Aviod a PostScript error in ps2ascii when the source file uses composite fonts. For now, dump the strings in the unmodified encoding when the corresponding font is composite. Fix bug 687466.[lib/ps2ascii.ps 1.9]
This is an beta release of the development tree. It contains numerous new features and is made available for those interested in testing out the new version before it becomes the next stable release.
New features in this version :
Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for GridFitTT for information on this feature.
The PDF writer now implements PDF 1.4 encryption. See the encryption parameter documentation for more information.
A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions.
This version contains the first release of Rinkj, an experimental new driver for some inkjet printers using ETS screening. See the Rinkj section for more information.
We now support PDF 1.5 files, including the new compression and encryption modes.
We have beta support for Jpeg2000 compressed images, using the JasPer compression library. This is only enabled as part of the default build in the autoconf (POSIX) build system in this release.
The following bug numbers were open at the time of the last release:
405501, 414947, 430175, 446344, 456692, 458780, 463688, 465936, 487460, 487953, 493348, 509829, 513731, 514194, 526099, 526491, 530011, 535366, 535932, 542629, 555072, 558151, 572865, 578865, 592160, 592837, 601336, 602263, 603934, 605830, 607850, 610478, 611898, 614298, 617523, 626295, 634036, 634358, 645316, 651644, 667301, 669654, 674417, 674418, 677324, 677430, 680301, 681469, 685335, 686747, 686750, 686752, 686816, 686819, 686824, 686833, 686834, 686841, 686842, 686843, 686853, 686860, 686863, 686865, 686867, 686873, 686889, 686896, 686897, 686902, 686904, 686919, 686930, 686936, 686937, 686954, 686956, 686958, 686963, 686980, 686996, 686999, 687011, 687012, 687013, 687020, 687021, 687029, 687038, 687039, 687050, 687063, 687066, 687072, 687079, 687084, 687085, 687086, 687093, 687095, 687102, 687105, 687108, 687110, 687122, 687123, 687125, 687137, 687145, 687146, 687155, 687157, 687163, 687168, 687171, 687174, 687179, 687181, 687193, 687196, 687197, 687203, 687211, 687214, 687219, 687221, 687229, 687230, 687231, 687243, 687251, 687257, 687259, 687271, 687275, 687280, 687289, 687295, 687297, 687298, 687303, 687304, 687314, 687316, 687322, 687324, 687325, 687327, 687331, 687341, 687342, 687345, 687346, 687355, 687360, 687364, 687369, 687373, 687375, 687380, 687386, 687388, 687392, 687394, 687395, 687397, 687398, 687399, 687401, 687403, 687406, 687407, 687410, 687411, 687412, 687414, 687419, 687421, 687424, 687426, 687428, 687434, 687435, 687436, 687437, 687438, 687440, 687441, 687442, 687444, 687445, 687446, 687448, 687451, 687452, 687454, 687458, 687459, 687460, 687461, 687463, 687465, 687466, 687467, 687468, 687470, 687471, 687473, 687474, 687475, 687476, 687477, 687479, 687480, 687481, 687484, 687485, 687486, 687487, 687489, 687490, 687491.
No known incompatible changes at this point
Correct various compiler warnings from MSVC and gcc. Fix for 687441.[src/gdevdevn.h1.7, src/gdevdevn.c 1.19, src/gdevpsd.c 1.13, src/gsequivc.c 1.2]
JPXDecode support is only enabled for the autoconf build. Mention this in the release notes, and add some brief notes to the MSVC makefile about how to make it build.[doc/News.htm 1.149, src/msvc32.mak 1.57]
Update the open bug list in the release notes.[doc/News.htm 1.148]
Enable separable_and_linear and separable for the display device. Fixes bug #687442. DETAILS: Enable separable_and_linear for gray, RGB and CMYK formats. The display device needs to explicitly call check_device_separable because it is closed and reopened when the callback is set, which causes linear_and_separable to be reset. Set the gray_index which is not set by check_device_separable. Prevent the unimplemented DISPLAY_ALPHA_FIRST and DISPLAY_ALPHA_LAST from being used. Make it clear that the display_map_rgb_color_rgb and display_map_color_rgb_rgb functions only work with 8bits/pixel.[src/gdevdsp.c 1.22]
Added more news items, in preparation for 8.30 release.[doc/News.htm 1.147]
Relocate the gxhldevc_h macro out of order so all its dependencies are available.[src/lib.mak 1.184]
Correct a dependency typo.[src/lib.mak 1.183]
Update documenation dates and version category for release.[doc/API.htm 1.42, doc/Bug-form.htm 1.40, doc/Bug-info.htm 1.39, doc/C-style.htm 1.46, doc/Commprod.htm 1.31, doc/Copying.htm 1.30, doc/DLL.htm 1.34, doc/Deprecated.htm 1.11, doc/Details8.htm 1.6, doc/Develop.htm 1.134, doc/Devices.htm 1.77, doc/Drivers.htm 1.46, doc/Fonts.htm 1.41, doc/Helpers.htm 1.34, doc/History1.htm 1.30, doc/History2.htm 1.30, doc/History3.htm 1.30, doc/History4.htm 1.30, doc/History5.htm 1.32, doc/History6.htm 1.47, doc/History7.htm 1.35, doc/History8.htm 1.10, doc/Htmstyle.htm 1.35, doc/Install.htm 1.45, doc/Issues.htm 1.40, doc/Language.htm 1.86, doc/Lib.htm 1.33, doc/Maintain.htm 1.41, doc/Make.htm 1.75, doc/New-user.htm 1.50, doc/News.htm 1.146, doc/Projects.htm 1.57, doc/Ps-style.htm 1.28, doc/Ps2epsi.htm 1.32, doc/Ps2pdf.htm 1.68, doc/Psfiles.htm 1.51, doc/Readme.htm 1.55, doc/Release.htm 1.85, doc/Source.htm 1.30, doc/Tester.htm 1.30, doc/Testing.htm 1.25, doc/Unix-lpr.htm 1.30, doc/Use.htm 1.109, doc/Xfonts.htm 1.30, man/dvipdf.1 1.28, man/font2c.1 1.28, man/gs.1 1.29, man/gslp.1 1.28, man/gsnd.1 1.28, man/pdf2dsc.1 1.27, man/pdf2ps.1 1.29, man/pdfopt.1 1.27, man/pf2afm.1 1.28, man/pfbtopfa.1 1.29, man/printafm.1 1.28, man/ps2ascii.1 1.27, man/ps2epsi.1 1.26, man/ps2pdf.1 1.33, man/ps2pdfwr.1 1.32, man/ps2ps.1 1.35, man/wftopfa.1 1.28, src/gscdef.c 1.43, src/version.mak 1.70]
Add new rinkj driver files to the index in Develop.htm.[doc/Develop.htm 1.133]
Add sample setup file for Rinkj driver, more documentation.[doc/Devices.htm 1.76, lib/rinkj-2200-setup 1.1]
Adds basic documentation for Rinkj driver, update copyright banners.[doc/Devices.htm 1.75, src/rinkj/evenbetter-rll.c 1.2, src/rinkj/evenbetter-rll.h 1.2, src/rinkj/rinkj-byte-stream.c 1.2, src/rinkj/rinkj-byte-stream.h 1.2, src/rinkj/rinkj-config.c 1.2, src/rinkj/rinkj-config.h 1.2, src/rinkj/rinkj-device.c 1.2, src/rinkj/rinkj-device.h 1.2, src/rinkj/rinkj-dither.c 1.2, src/rinkj/rinkj-dither.h 1.2, src/rinkj/rinkj-epson870.c 1.2, src/rinkj/rinkj-epson870.h 1.2, src/rinkj/rinkj-screen-eb.c 1.2, src/rinkj/rinkj-screen-eb.h 1.2]
This change implements "687431 Add determining equivalent CMYK colors for spot colors". This change currently only affects the psdcmyk device. DETAILS: For a description of the implementation see the comments at the beginning of gsequivc.c. In addition to the comments in gsequivc.c, the gs_separation structure was changed to simplify it. The gs_separation_info structure was removed and the names filed moved into the gs_separations structure.[src/devs.mak 1.114, src/gdevdevn.c 1.18, src/gdevdevn.h 1.6, src/gdevprn.c 1.16, src/gdevpsd.c 1.12, src/gsequivc.c 1.1, src/gsequivc.h 1.1]
Use ST_MTIME instead of the ctime to determine the date of the last baseline update. Partial fix for bug 687481.[toolbin/tests/gscheck_raster.py 1.12]
Initial commit of rinkj (resplendent inkjet) drivers, using ETS screening.[src/devs.mak 1.113, src/gdevrinkj.c 1.1, src/rinkj/evenbetter-rll.c 1.1, src/rinkj/evenbetter-rll.h 1.1, src/rinkj/rinkj-byte-stream.c 1.1, src/rinkj/rinkj-byte-stream.h 1.1, src/rinkj/rinkj-config.c 1.1, src/rinkj/rinkj-config.h 1.1, src/rinkj/rinkj-device.c 1.1, src/rinkj/rinkj-device.h 1.1, src/rinkj/rinkj-dither.c 1.1, src/rinkj/rinkj-dither.h 1.1, src/rinkj/rinkj-epson870.c 1.1, src/rinkj/rinkj-epson870.h 1.1, src/rinkj/rinkj-screen-eb.c 1.1, src/rinkj/rinkj-screen-eb.h 1.1]
2004-05-28 07:08 Igor Melichev
Fix (PDF interpreter) : Wrong processing of a big CIDToGIDMap. DETAILS : Bug 687471 problem with japanese fonts EXPECTED DIFFERENCES : None.[lib/pdf_font.ps 1.66]
2004-05-27 19:05 Igor Melichev
(pdfwrite) : 1. Implementing a dynamic recongnition for Type 3 charproc variations; 2. Bug : Viewer state could desynchronize when entering a charproc accumulation. DETAILS : Bug 687472 "barcode wrongly converted to type3 font". Type 3 glyph variations may appear if BuildChar uses setcharwidth. If a charproc uses setcharwidth, we perform the charproc accumulation for each character occurance, and compare the accumulated stream with older ones if they exist. In the case of exact equality (including the character name and character code), the old charproc is used. Othervise we embed a new one. If the character code was used with another charproc, we create another PDF font to resolve the conflict. Thus a single PS Type 3 font may convert into several PDF Type 3 fonts, and the text may be broken into smaller pieces. Particularly this happens with the test file of the bug 687472. Viewers must account that implementing the text serchability. A new array pdfont->u.simple.s.type3.cached is used to remember whether a charproc uses setcachedevice[2]. If a character used it at ones, we assume that all further its occurances to do same. We think that this assumption is implied by PLRM. Viewer state was not saved when entering a charproc accumulation, and was not restored after exiting it (a bug). This could cause wrong object attributes and excessive commands written into PDF. This patch fixes that. Some PDFs become longer due to excessive ExtGState objects generated for dropped copies of charprocs. Opened a new bug 687487 for tracking this issue. EXPECTED DIFFERENCES : An unimportant difference with pdfwrite -r72 : 136-01.ps prob1.pdf tpc2.ps xes2ps-problem.pdf An unimportant difference with pdfwrite -r300 : 260-01.ps tpc2.ps xes2ps-problem.pdf[src/gdevpdf.c 1.94, src/gdevpdfg.c 1.50, src/devs.mak 1.112, src/gdevpdfg.h 1.30, src/gdevpdfj.c 1.31, src/gdevpdfu.c 1.52, src/gdevpdfx.h 1.89, src/gdevpdte.c 1.59, src/gdevpdtf.c 1.36, src/gdevpdtf.h 1.22, src/gdevpdti.c 1.29, src/gdevpdtt.c 1.79, src/gdevpdtt.h 1.23]
2004-05-27 10:28 Igor Melichev
(pdfwrite) : Delaying the charproc insertion until it is accumulated. DETAILS : This change is a part of the work on the bug 687472 "barcode wrongly converted to type3 font". Our intention is to recognize Type 3 glyph variations, which may appear if BuildChar uses setcharwidth. For the case of no error while charproc accumulation this change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.78, src/gdevpdfx.h 1.88]
2004-05-27 10:25 Igor Melichev
(pdfwrite) : Delaying the charproc insertion until it is accumulated. DETAILS : This change is a part of the work on the bug 687472 "barcode wrongly converted to type3 font". Our intention is to recognize Type 3 glyph variations, which may appear if BuildChar uses setcharwidth. For the case of no error while charproc accumulation this change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.93, src/gdevpdti.c 1.28]
Handle some errors that could halt the regression run. DETAILS: When running a raster comparison, the test case generates a ShortDescription that includes the modification date of the baseline raster date. If no such file exists, the baseline gs is run to create an entry. However, if that insertion attempt fails, there is no baseline raster for reference. While the test case itself handled this properly, the ShortDescription logic did not, throwing an error that terminated the whole run. Also, makesum was returning '0' instead of None on failure, which was incompatible with the use of its return value as a dbm key. It now returns None in that case, and when it cannot stat the file argument at all.[toolbin/tests/gscheck_raster.py 1.11, toolbin/tests/gssum.py 1.7]
Fix reference count of overprint compositor so that it doesn't get freed too early. Fixes SEGV of bug #687425 for customer #1110. DETAILS: This only showed up when banding was being used. This only showed up when a high level image was being rendered from the clist since this installed a 'clipper' device on top of the overprint compositor. When the clipper device was closed, the finalization proc decremented the reference count for the 'target' device of the clipper which was the overprint compositor. When the overprint reference count was decremented to 0, it was freed even though it was being used by the clist renderer. EXPECTED DIFFERENCES: None.[src/gxclrast.c 1.28]
2004-05-26 08:44 Igor Melichev
Fix (pdfwrite) : Wrong /Matrix from /BP pdfmark. DETAILS : Bug 687430 "Wrong transformation matrix with Form XObjects". Patch from sags5495 at hotmail dot com (SaGS), adopted by igorm. EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.38]
Log message: Revised fix for 687418 WTS does not work with bitcmyk driver. DETAILS: The changes in this revised fix are pretty extensive. Note: This patch includes several items from Russell Lang. I am including these since they are required for the proper execution of the patch and it does not seem reasonable to require possible testers or reviewers to have to track down and install these patches separately. The list of changes includes: 1. Added logic to check_device_separable to also set the gray_index value. This suggestion came from Russell Lang. 2. Add verification that a colorants bits are consecutive. (from Russell Lang in: http://www.ghostscript.com/pipermail/gs-code-review/2004-May/004501.html 3. Changes to gx_default_encode_color and gx_default_decode_color to use position and bit count info from the device's color_info data. (Also from Russell Lang in the previously mentioned submission.) (See the comments in item 21 below about the gx_default_decode_color routine.) 4. Included test routines. (Also from Russell Lang in the previously mentioned submission.) 5. Added calls to check_device_separable prior to calls to the various 'fill_in_procs' routines (gx_device_fill_in_procs, gx_forward_fill_in_procs, fill_in_procs). The fill_in_procs routines use the separable information in choosing default routines for the encode_color and decode_color routines. Thus we have a chicken and egg problem since check_device_separable also uses the device's encode_color routine. The test routines from Russell were a great help in debugging Also various changes that were found while testing this patch: 6. The various color deskjet drivers (gdevcdj.c) was incorrectly setting the dither_grays and dither_colors values to 5 instead of 256. (I have no idea why.) The max_gray and max_color values were set to being set correctly to 255. 7. The color deskjet devices (gdevcdj.c) were doing BG and UCR removal inside of the encode_color routines. These devices use the default color_mapping_procs which also do these tasks. The code in the encode_color_routine was removed since it could cause conflicts with the overprint routines. The code in the encode_color routine was also using a fixed BG/UCR logic (from PS level 2). 8. Corrected a problem in the color desk jet decode_color routine which was always returning zero for the black value. 9. Changed the casting for values assigned to the std_colorant_names field. Note: MSVC and gcc complain about different conditions. There does not seem to be a combination that will keep both happy. This set produces no complaints from gcc. 10. Corrected the setting of dither_grays and dither_colors for the devicen device. Previously this was being set to 1 when it should have been set to 256. Found by Russell Lang. 11. Modified check_device_separable to only check for appropriate values of the max_gray/dither_grays and max_color/dither_colors pairs only for gray/color devices. 12. Added check for encode_color routines which encode zero bits for a colorant. Previously this condition would have caused an infinitely in check_device_separable. Change suggested by Russell Lang. 13. Removed a previous call to set_linear_color_bits_mask_shift in gx_default_fill_in_procs. This has been logically replaced by the calls to check_device_separable which have been added. 14. Corrected a problem in the ppm_map_rgb_color in gdevpbm.c. This routine was calling gx_default_encode_color which requires 15. Corrected problem in pcx256 device which incorrectly setting the dither_grays and dither_colors values. 16. Removed the check_process_color_names routine from gdevpsd.c since it not used. 17. Modified the dci_alpha_values macro in gxdevcli.h. This macro was setting some devices as 'separable' but was not setting the related color_info fields (comp_shift, comp_bits, comp_mask). Now this macro sets a devices as 'unknown'. The check_device_separable routine will change this for devices which are separable. Devices which want to change their process color model need to either set themselves as 'unknown' and let check_device_separable handle things or else the device needs to setup its own values for separable color_info fields. 18. Added a call to check_device_separable into gdev_x_open in gdevxini.c. With this addition, the x11 device is detected as being sperable. This is need since the x11 device sets up a color map in gdev_x_open. Prior to this, the encode_color routine for he x11 device returns 0 regardless of its input. 19. Modified the uniprint device (gdevupd.c) and color laser jet devices (gdevcljc.) to use 256 instead of 5 for its dither_gray and dither_color values with devices that have 8 bits per colorant. This is appropriate since the the max_gray and max_color values are 255. (I do not know why these values were being set to 5. This same error was found in gdevcdj.c. My only guess is that it was a typo in gdevcdj.c. Since this device is recommended as an example of how to code a color raster device (in Devices.htm), the error was propogated into the other devices. 20. Added more comments to gxdevcli.h explaining the use of the gray_index, max_gray, dither_grays, max_color, and dither_colors fields in the device color_info structure. 21. Changed the gx_default_decode_color routine (again). Russell Lang created two revisions to this routine as part of his efforts on this task. However one version was slow but produced the desired results. The second version was faster but its output was slightly different. This revision produces the same output as the first version but does so without the while loops that slowed its operation. Note: There is another related submission from Russell Lang that is not included in this patch. This consists of changes to the display device for making it 'separable'. This change is needed for Igor's linear shading work. http://www.ghostscript.com/pipermail/gs-code-review/2004-May/004500.html[src/gdevcdj.c 1.14, src/gdevcljc.c 1.7, src/gdevcmap.c 1.6, src/gdevdevn.c 1.17, src/gdevdevn.h 1.5, src/gdevdflt.c 1.23, src/gdevdsp.c 1.21, src/gdevmem.c 1.8, src/gdevp14.c 1.23, src/gdevp2up.c 1.6, src/gdevpbm.c 1.11, src/gdevpcx.c 1.7, src/gdevplnx.c 1.9, src/gdevpnga.c 1.9, src/gdevprn.c 1.15, src/gdevpsd.c 1.11, src/gdevrops.c 1.11, src/gdevupd.c 1.15, src/gdevxalt.c 1.11, src/gdevxcf.c 1.7, src/gdevxini.c 1.14, src/gsdevice.c 1.21, src/gslib.c 1.13, src/gxcmap.c 1.20, src/gxdevcli.h 1.32, src/gximag3x.c 1.16, src/gximage3.c 1.13, src/gxpcmap.c 1.12, src/zcolor.c 1.18, doc/Language.htm 1.85]
2004-05-25 10:41 Igor Melichev
Fix (pdfwrite) : Form XObject`s /BBox could contain reals in exponential format. DETAILS : Bug 687429 Form XObject`s /BBox may contain reals in exponential format. EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.37]
2004-05-25 09:20 Igor Melichev
Fix an MSVC compiler warning. EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.58]
Add a missing header include for gsutil.h which provides the prototype for bytes_compare(). Corrects a gcc warning.[src/devs.mak 1.111, src/gdevpdte.c 1.57]
Fix for 687453 Problem with overprinting and shading. DETAILS: The given test file is a PDF file. PDF allows for separate overprint parameters for stroke and fill operations. (There are also separate parameters for other conditions in PDF.) Usually this is handled by the PDF interpreter by calling either setfillstate or setstrokestate at the start of the handler for each operator. However this call was missing from the sh (shfill) handler.[lib/pdf_draw.ps 1.81]
2004-05-24 12:21 Alex Cherepanov
Add /WhiteIsOpaque page device parameter to provide user interface to the corresponding bbox device flag. Fix a bug introduced in gdevbbox.c v.1.9 (for bug 645531) that left bdev->white and bdev->black uninitialized, resulting in black objects skipped as white. Fix bugs 687410, 687478[src/gdevbbox.c 1.17, doc/Devices.htm 1.74]
2004-05-20 17:06 Igor Melichev
Fix (pdfwrite) : Add Encoding element even if the font has no glyph. DETAILS : Debugged with the test file of the bug 687464 "Problem converting from PS to PDF. 2 latin characters did not convert properly." : different PDFs generated with URW fonts and with Soft Horizon fonts rather none of them were embeded. The old code did not add a glyph to Encoding if the PS font has no glyph defined. Due to that, if the source encoding uses an instand glyph, the instandard glyph was not written to Differences, causing a standard glyph erroneusely appeared instead the instandard glyph. With this patch an Encoding element and a ToUnicode element are created in any case : either the glyph is defined in the PS font, or not. EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.56]
Apply a recursive 'configure' step to the autoconf build to generate required code for the jasper library. DETAILS: The jasper library also ships with an autoconf build framework for POSIX systems. Unfortunately, it relies on this framework to generate a header file with defines describing the local system. This header, located in jasper/src/libjasper/include/jas_config.h can be generated by hand from the jas_config.h.in template, but it must be available when we're directly compiling the source as part of Ghostscript. We could attempt to construct one of our own, but within the confines of an autoconf build, using jasper's native configure is more robust. We could also go ahead and use recursive make to build the library natively, but we would need a static makefile for non-autoconf builds. Jasper provides an alternate header, jas_config2.h for use with MSVC.[src/configure.ac 1.46]
Add the jasper include path when compiling the JPXDecode filter so the headers can be found if they're not already installed on the system. Required to compile in the jasper library source from a fresh distribution of the third-party library.[src/int.mak 1.126, src/lib.mak 1.182]
2004-05-19 11:09 Igor Melichev
Documenting the new implementation of shadings.[doc/News.htm 1.145]
2004-05-18 13:42 Igor Melichev
A new implementation of shadings, step 79. DETAILS : Removed unused variables. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.74]
2004-05-18 11:07 Igor Melichev
A new implementation of shadings, step 78. DETAILS : Implementing gx_color_map_procs::is_halftoned and use it in shadings to know whether linear color functions are applicable. EXPECTED DIFFERENCES : None.[src/gdevp14.c 1.22, src/gdevplnx.c 1.8, src/gxcmap.c 1.19, src/gxcmap.h 1.8, src/gxshade6.c 1.73]
2004-05-18 10:36 Igor Melichev
A new implementation of shadings, step 78. DETAILS : Implementing gx_color_map_procs::is_halftoned and use it in shadings to know whether linear color functions are applicable. EXPECTED DIFFERENCES : None.[src/gdevp14.c 1.21]
2004-05-18 09:57 Igor Melichev
Documenting the new implementation of shadings.[doc/Drivers.htm 1.45]
Reword the description of the new shading implementation.[doc/News.htm 1.144]
2004-05-17 12:24 Igor Melichev
A new implementation of shadings, step 77 (release candidate). DETAILS : 1. A bug in is_quadrangle_color_linear caused an indeterministic choice of subdivision. 2. Provided a better order of filling wedges. 3. Mesh padding now stronger follows the V-boundary of a patch. EXPECTED DIFFERENCES : "442-01.ps" "446-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "self-intersect2.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai"[src/gxshade6.c 1.72]
2004-05-13 15:24 Alex Cherepanov
Remove unused label. Partial fix for bug 687441.[src/gdevwpr2.c 1.16]
2004-05-13 13:03 Igor Melichev
Documenting the new implementation of shadings, step 76.[doc/News.htm 1.143]
2004-05-13 12:52 Igor Melichev
A new implementation of shadings, step 76. Switching new radial shadings on. Radial shadings render in 3...10 times faster. Radial shadings are not longer restricted with 8bpc. EXPECTED DIFFERENCES : "442-01.ps" "483-01.ps" "Clarke Tate Manns Chinese.ai" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai"[src/gxshade4.h 1.35]
2004-05-13 12:46 Igor Melichev
A new implementation of shadings, step 75. DETAILS : This is a continuation to the previous patch : 4. Optimized for constant color : Fix : pfs->monotonic_color was not properly restored. EXPECTED DIFFERENCES : "442-01.ps" "464-01.ps" "483-01.ps" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "STEUER-RollingMesh 1(linear).ai"[src/gxshade6.c 1.71]
2004-05-13 11:40 Igor Melichev
A new implementation of shadings, step 74. DETAILS : In the enabled code : 1. Non-linear color quadrangles are subdivided into quadrangles. This complies the color approximation with the specified smoothness. 2. Skipped quadrangles and triangles outside the clipping area. 3. Fixed the 'midpoint' formula. It was wrong and coused excessive subdivision. In the disabled code (NEW_RADIAL_SHADINGS 0 in gxshade4.h) : 1. Debugged Extensions. 2. mesh_padding and wedges with zero length sides were tested. 3. Skipped painting outside the clipping area. 4. Optimized for constant color. Known problems left : 1. With self-intersecting patches, outer wedges may paint in a wrong order. This can cause such dropout that a lower part of the patch penetrates through the upper part in single pixels. EXPECTED DIFFERENCES : "442-01.ps" "446-01.ps" "464-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "self-intersect2.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"[src/gxshade1.c 1.31, src/gxshade4.h 1.34, src/gxshade6.c 1.70]
2004-05-12 21:33 Igor Melichev
A new implementation of shadings, step 73. DETAILS : The new code is disabled with NEW_RADIAL_SHADINGS in gxshade4.h . The old implementation of the radial shading extensions appears incompatible with the tensor representation of the radial shading due to different spatial subdivision. Collisions at extension boundaries caused dropouts. Besides that, the old implementation can't handle the case in which circles contact each another and one circle is inside another. Also we suspect that with the old implementation the trailing extension can overlap the shading when represented as "triangles". This patch implements extensions with tensor patches. Rather they have a constant color, we need the wedge logics to work with them. Also we reworked the analyzis of special cases of mutual placement of the base circles. The new code works, but there are known problems : 1. Extensions to be tested systematically. 2. Debug mesh_padding and wedges with zero length sides. 3. Skip painting outside the clipping area. 4. Optimize for constant color. 5. Why "STEUER-RollingMesh 2(radial).ai-.pdf" generates so many triangles ? 6. Outer wedges may break the order of painting. EXPECTED DIFFERENCES : None.[src/gxshade1.c 1.30, src/gxshade4.h 1.33, src/gxshade6.c 1.69]
2004-05-12 20:12 Igor Melichev
A new implementation of shadings, step 72. DETAILS : 1. Another continuation for the bug in LAZY_WEDGES of the step 65 : "color was desynchronized with vertices when filling a wedge." Previous attempts to fix it appear wrong. This one implements entirely different logics. The division count is now a property of a division point. 2. Fixed the wrong order of colors in ln 2800 in the function "triangles". EXPECTED DIFFERENCES : "442-01.ps" "483-01.ps"[src/gxdtfill.h 1.26, src/gxshade4.h 1.32, src/gxshade6.c 1.68]
Fix regression reports (the previous commit accidentally did the exact opposite of what we wanted). Also, cleaned up the way the report is built so that it is much less confusing.[toolbin/tests/run_nightly 1.26]
2004-05-12 15:37 Alex Cherepanov
Avoid a numeric exception; throw /rangecheck when .getbitsrect operator is invoked with raster width = 0. Fix bug 687223.[src/zdevice.c 1.8]
2004-05-12 11:33 Igor Melichev
A new implementation of shadings, step 72. DETAILS : 1. A continuation for the bug in LAZY_WEDGES of the step 65 : "color was desynchronized with vertices when filling a wedge." : open_wedge_median did not set l->from_last_side. 2. A bug : Color linearity check missed the shading function linearity check. Debugged with "MLC2\PROB322-shadings\Clarke Tate Manns Chinese-1.ai.pdf" (the big yellow radial gradient) and NEW_RADIAL_SHADINGS 1. EXPECTED DIFFERENCES : "442-01.ps" "464-01.ps" "483-01.ps" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "STEUER-RollingMesh 1(linear).ai"[src/gxshade6.c 1.67]
2004-05-12 00:04 Alex Cherepanov
Fix some warnings about unused variables and undeclared functions generated by MSVC with warning level 3. Move the definition of WARNOPT and add ifdef's. Partial fix for bug 687441. [DETAILS] Although nmake overrides internal definitions when called from command line, it doesn't do so when the makefile is invoked from Development Studio.[src/dwimg.c 1.11, src/dwimg.h 1.8, src/dwmain.c 1.16, src/dwmainc.c 1.18, src/dwtrace.h 1.6, src/gdevm64.c 1.2, src/gdevwdib.c 1.8, src/msvc32.mak 1.56, src/msvccmd.mak 1.19, src/unistd_.h 1.11]
2004-05-11 20:48 Alex Cherepanov
GCC with -ffast-math compiles ang/90. as ang*(1/90.), losing precission. This doesn't happen when the numeral is replaced with a non-const variable. So we define the variable to work around the GCC problem. Fix bug 687420.[src/gsmisc.c 1.16]
2004-05-11 20:26 Alex Cherepanov
Ignore 0-length tables that occur in PDF files generated by Crystal. Fix bug 687457.[lib/gs_ttf.ps 1.38]
2004-05-11 11:13 Igor Melichev
A new implementation of shadings, step 70. DETAILS : Fixing a bug in fill_wedge_from_list_rec : wedge vertices can't identify by their coordinates, because dividing a short bar could get same coordinates as one of its end. wedge_vertex_list_elem_t::level now works for the identification. EXPECTED DIFFERENCES : None.[src/gxshade4.h 1.31, src/gxshade6.c 1.66]
2004-05-11 10:41 Igor Melichev
A new implementation of shadings, step 69. DETAILS : Implementing radial shading with tensor shadings. The new code is disabled with NEW_RADIAL_SHADINGS in gxshade4.h . The new code works but it discovered a problem in fill_wedge_from_list_rec : wedge vertices can't identify by their coordinates. The problem appears an important bug to be fixed separately. EXPECTED DIFFERENCES : None.[src/gspath.h 1.7, src/gspath1.c 1.9, src/gxshade1.c 1.29, src/gxshade4.h 1.30]
Correct a problem in the fix for 687418 detected by Russell Lang. Also make the routine check_device_separable public for use by the display device. The prototype is in gxdevice.h.[src/gdevdflt.c 1.22, src/gxdevice.h 1.17]
Disable the fix for 687418. This is causing many errors in the regression tests. These need to be investigated.[src/gdevdflt.c 1.21]
Repress the full report except on Mondays.[toolbin/tests/run_nightly 1.25]
2004-05-06 14:01 Igor Melichev
A new implementation of shadings, step 68. Switching linear color device fucntions on. EXPECTED DIFFERENCES : "442-01.ps" "446-01.ps" "464-01.ps" "478-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "BEST8-99-Path.fh7.pdf" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "self-intersect2.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"[src/gxshade4.h 1.29]
2004-05-06 13:25 Igor Melichev
A new implementation of shadings, step 67. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Provided a consistency of 'unlenear' to 'is_color_linear' EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.65]
2004-05-06 13:03 Igor Melichev
A new implementation of shadings, step 66. DETAILS : Improving the recognition of linear devices with a hack for a halftone check. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Debugged with pkmraw. This to be rivised by the color team. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.64]
2004-05-06 12:34 Igor Melichev
A new implementation of shadings, step 65. DETAILS : A bug in LAZY_WEDGES : color was desynchronized with vertices when filling a wedge. The bug was not detected because the color difference appears small due to small wedges. It appears big with USE_LINEAR_COLOR_PROCS 1 with -r300 483-01.ps. EXPECTED DIFFERENCES : 300dpi : "442-01.ps" "446-01.ps" "464-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "gradmesh.ai" "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai" "442-01.ps" 72dpi: "442-01.ps" "446-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "gradmesh.ai" "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai"[src/gxshade6.c 1.63, src/gxshade4.h 1.28]
2004-05-06 08:41 Igor Melichev
A new implementation of shadings, step 64. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Fixing various problems with linear color : 1. Clipping didn't work with linear color. 2. gx_default_fill_linear_color_scanline missed some clipping by X. 3. Zero smoothness caused an infinite recursion. 4. The number of device color components was wrong. EXPECTED DIFFERENCES : None.[src/gdevdsha.c 1.9, src/gxclip.c 1.14, src/gxshade6.c 1.62]
Limit the number of timing runs we're willing to do to detect the cache size, preventing an infinite loop if the os timing calls never measure appreciable elapsed time. After a patch from Patrick TJ McPhee. Bug 687095. DETAILS: It looks like there's a bug in some versions of FreeBSD which cause time_clear() to always return 0, even though the loop is being run. This is clearly incorrect behaviour of clock() on these systems, or the user is mistaken in debugging the problem, since we've been unable to reproduce. But in either case our code is arguably wrong. The later measurements will obviously not detect a nonlinearity if the timing loop continues to return 0. However, they will terminate at MAX_BLOCK (4MB) and so the misdetection isn't egregious. It was only the estimation of the measurement error that could loop forever.[src/genarch.c 1.9]
Make check_device_separable private to avoid a warning from gcc.[src/gdevdflt.c 1.20]
Fix for 687455. The overprint logic creates a temporary device which is used to initialize a set of procedures. This temp device is only paritally initialized. The partially initialized device is being set up as a forwarding device but the target device is not yet present. This created a problem when check_device_separable executed. This change sets the temp device to 'not separable' so check_device_separable does not try to do anything.[src/gsovrc.c 1.5]
2004-05-06 05:19 Igor Melichev
A new implementation of shadings, step 63. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Fixing various problems with linear color : 1. Applyed compiler independent data types int32_t. 2. Implemented ends_from_fa with X-independent gradients, because the decomposiotion by color linearity breaks at coordinates which are not trapezoid corners. Added a comment to gxdevcli.h to document it. 3. X-gradient denominator was wrong. 4. X-gradient numerator left wrong from the step 58. 5. gx_default_fill_linear_color_scanline ignored the clipping by X. 6. A_fill_region missed the path bbox. 7. Implemented is_color_linear for a proper subdivision by color. 8. decompose_linear_color now applies a linear color instead fill_triangle_wedge. See a comment in fill_triangle_wedge. Also for mesh_padding. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.24, src/gdevdsha.c 1.8, src/gdevnfwd.c 1.22, src/gxdevcli.h 1.31, src/gxdtfill.h 1.25, src/gxshade1.c 1.28, src/gxshade6.c 1.61]
2004-05-06 05:17 Igor Melichev
Implementing is_monotonic for cubic interpolation functions (continued 2). DETAILS : Some monotonic functions were not recognized. 1. Fix : A bug (identifier conflict) in clamp_poles, dimension_monotonity. 2. Fix : Allow the reversed order of boundaries (gsfunc0.c ln 980-983). EXPECTED DIFFERENCES : 464-01.ps[src/gsfunc0.c 1.20]
Fix for 687418 WTS does not work with bitcmyk driver. This fix is applicable to most devices. DETAILS: WTS screening, overprinting, halftoning for more than five colorants and the fast halftoning logic need to be able to create gx_color_index values without using the encode_color routine. This only works if a device is 'separable'. However, by default, most devices indicate 'unknown'. This change implements a heuristic for checking if a device is separable. If so then it also determines the various related parameter values (comp_shift, comp_bits, comp_mask).[src/gdevdflt.c 1.19]
Document that we no longer support loading truetype CJK fonts directly from /Resources/CIDFont as worked in 7.0x for Japanese fonts. This has been replaced by the more general, if less convenience, cidfmap mechanism. Closes bug 686949.[doc/Fonts.htm 1.40, doc/Use.htm 1.108]
2004-05-05 09:45 Igor Melichev
A new implementation of shadings, step 62. DETAILS : 1. Implemented gx_cspace_is_linear_in_line and applied it for checking the stripe transversal color lnearity. 2. Generalized 'is_halftoned' to 'unlinear'. 3. is_color_span_v_linear must not apply when 'unlinear'. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . EXPECTED DIFFERENCES : None.[src/gscspace.c 1.15, src/gxshade4.h 1.27, src/gxshade6.c 1.60]
2004-05-05 09:02 Igor Melichev
A new implementation of shadings, step 61. DETAILS : 1. is_color_span_v_linear allows wider stripes. 2. quadrangle_color_change doesn't yield color_change_gradient with USE_LINEAR_COLOR_PROCS. Thus it prefers color_change_linear, allowing bigger quadrangles. Both changes improve the performance. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . In the enabled code removed redundant computations from quadrangle_color_change. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.59]
2004-05-05 09:01 Igor Melichev
Implementing is_monotonic for cubic interpolation functions (continued 1). DETAILS : 1. Fix : subcurve expression applied wrong signs to t01, t11. 2. Suppress small noize while computing a subcurve. Both changes recognize more monotonic curves. EXPECTED DIFFERENCES : 464-01.ps[src/gsfunc0.c 1.19]
2004-05-05 06:35 Igor Melichev
A new implementation of shadings, step 60. DETAILS : Define frac31 with int32_t to minimize compiler dependence. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . EXPECTED DIFFERENCES : None.[src/gxdevcli.h 1.30, src/lib.mak 1.181]
Replace locally-defined (u)int32 typedefs with the stdint_.h types now that they're universally available. This avoids conflict with typedefs that are pulled in from sys/types.h on some systems. Bug 687404.[src/gdevupd.c 1.14]
2004-05-04 18:14 Igor Melichev
A new implementation of shadings, step 59. DETAILS : Moved the device pointer from gs_fill_attributes to a separate argument in order to simplify the implementation of forwarding devices. A farwarding device 'clipper' works for almost all shadings. Also fixed a bug in middle_frac31_color from the previous patch. It was not detected because normally this function isn't called. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.23, src/gdevdsha.c 1.7, src/gdevnfwd.c 1.21, src/gxdevcli.h 1.29, src/gxdtfill.h 1.24, src/gxshade6.c 1.58]
2004-05-04 17:53 Igor Melichev
A new implementation of shadings, step 58. DETAILS : Replaced frac32 with frac31 to represent negative color difference. We could do with frac32 and with additional arguments about the ending color, but we don't want the performance flaw. 31 bits should be enough precise. Also removed hacks about fitting negative differences into int32_t. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.22, src/gdevdsha.c 1.6, src/gdevnfwd.c 1.20, src/gxdevcli.h 1.28, src/gxdtfill.h 1.23, src/gxshade6.c 1.57]
Add recent new files to the listing in the developer documentation.[doc/Develop.htm 1.132]
Add the JPXDecode implementation to the list of files in the documentation.[doc/Develop.htm 1.131]
Add a missing file to the testsuite documentation.[doc/Testing.htm 1.24]
Return the number of failures on exit so an external program can take action on the results. Previously, our tests always returned 0. ----------------------------------------------------------------------[toolbin/tests/gstestutils.py 1.12]
Remove dependency on python2.2. Tested with python 2.3.3. Primary problem was that calendar module no longer has a localtime member, used time instead.[toolbin/tests/check_all.py 1.6, toolbin/tests/check_comments.py 1.4, toolbin/tests/check_dirs.py 1.9, toolbin/tests/check_docrefs.py 1.10, toolbin/tests/check_source.py 1.10, toolbin/tests/dump_testdb 1.6, toolbin/tests/get_baselines 1.3, toolbin/tests/gscheck_all.py 1.6, toolbin/tests/gscheck_fuzzypdf.py 1.8, toolbin/tests/gscheck_pdfwrite.py 1.20, toolbin/tests/gscheck_raster.py 1.10, toolbin/tests/make_testdb 1.12, toolbin/tests/make_two_pdfversions 1.8, toolbin/tests/make_two_versions 1.13, toolbin/tests/revert_baseline 1.12, toolbin/tests/revert_pdfbaseline 1.10, toolbin/tests/run_nightly 1.24, toolbin/tests/run_regression 1.13, toolbin/tests/testdiff 1.5, toolbin/tests/update_baseline 1.13, toolbin/tests/update_pdfbaseline 1.9]
Avoid failing when testing.cfg isn't available. This allows check_all.py to be run on a fresh checkout just by passing --gsroot=. on the commandline. Previously this option could only be used to override a required version in testing.cfg[toolbin/tests/gstestutils.py 1.11]
Provide a dummy 'make check' target in the autoconf build. Some users have requested this, and it's available on the GPL 7.0x releases.[src/Makefile.in 1.35]
Remove some more compiler warnings. Found by Igor. 687441.[src/gdevpsd.c 1.10]
2004-04-29 16:18 Igor Melichev
A new implementation of shadings, step 57. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . 1. Likely QUADRANGLES 1 appears unusefil. Documenting that. 2. Implementing mesh_padding with linear color. 3. Minor improvements to conmments. 4. Stronger conditions against color stairs in triangle_by_4, color_change_small. EXPECTED DIFFERENCES : None.[src/gxdevcli.h 1.27, src/gxshade4.h 1.26, src/gxshade6.c 1.56]
2004-04-29 13:47 Igor Melichev
A new implementation of shadings, step 56. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . The previous patch appears incomplete. Now fixed. EXPECTED DIFFERENCES : None.[src/gxshade4.h 1.25]
2004-04-29 13:40 Igor Melichev
A new implementation of shadings, step 55. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Implemented a check whether the device halftones. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.55]
2004-04-29 12:38 Igor Melichev
A new implementation of shadings, step 54. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . 1. Color computations were wrong. 2. clist didn't implement linear color functions. This patch stubs them, but fill_linear_color_trapesoid should write into clist. 3. The clipping rectangle was missed for shading Type 0, 5. It still has problems with clipping with 446-01.ps . Also likely we should replace frac32 with frac31 to provide signed values. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.21, src/gdevdsha.c 1.5, src/gdevnfwd.c 1.19, src/gxclist.c 1.13, src/gxdevcli.h 1.26, src/gxdtfill.h 1.22, src/gxshade1.c 1.27, src/gxshade4.c 1.26]
2004-04-29 06:14 Igor Melichev
A new implementation of shadings, step 53. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . This patch implements wedges with a linear color. USE_LINEAR_COLOR_PROCS 1 passed a simple test with ppmraw. Other devices are not yet supported due to problems with checking for a halftoning. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.20, src/gxdtfill.h 1.21, src/gxshade6.c 1.54]
2004-04-29 04:37 Igor Melichev
A new implementation of shadings, step 52. DETAILS : Linear color passed a simple test with ppmraw, except wedges. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . This patch fixes numerows errors in the desabled code. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.19, src/gdevdsha.c 1.4, src/gscspace.c 1.14, src/gxdtfill.h 1.20, src/gxshade6.c 1.53, src/lib.mak 1.180]
Fix for 687441 New: MSVC warnings. Correct some warning messages from MSVC.[src/devs.mak 1.110, src/gdevpsd.c 1.9, src/gdevdevn.c 1.16, src/gdevdevn.h 1.4]
2004-04-28 15:24 Igor Melichev
A new implementation of shadings, step 51. DETAILS : Colors were wrongly converted to frac32. Should do through device color. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . The new code is not debugged yet. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.52]
2004-04-28 09:39 Igor Melichev
A new implementation of shadings, step 50. DETAILS : 1. gx_default_fill_linear_color_triangle wrongly checked for a large color span. 2. fill_linear_color_* procs were not set for clip devices. 3. cs_is_linear were defined with a wrong argument list. 4. Optimized the prototype of cs_proc_is_linear. 5. Gradient buffers were not allocated in gxdtfill.h . 6. Attaching fill_linear_color_triangle to triangle_by_4 in shadings. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . The new code is not debugged yet. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.18, src/gdevrops.c 1.10, src/gscspace.c 1.13, src/gxclip.c 1.13, src/gxclip2.c 1.10, src/gxclipm.c 1.12, src/gxcspace.h 1.12, src/gxdtfill.h 1.19, src/gxshade4.h 1.24, src/gxshade6.c 1.51]
Implement 687423 Implement SeparationOrder for psdcmyk device. DETAILS: The following changes are for implementing the SeparationOrder parameter for the psdcmyk device. The change consists of the following: 1. Several routines which were duplicated in the spotcmyk and psdcmyk devices were restructured to allow the use of common subroutines. As part of this effort the various common DeviceN related parameters were separated into a substructure (call devn_params). This allows the use of common routines even though the devices do not have the same overall device description structure. 2. Changes to the src/gdevpsd.c module for actually collecting the SeparationOrder parameter data and then using it. Note: The treatment of separations is different for the process color model colorants versus the spot colors. The colorants for the process color model do not have their order changed. The output file always starts with information for the CMYK channels. If one of these colorants is not specified in the SeparationOrder, then the output channel data in the file will simply be 'blank'. Spot colors follow CMYK data. They are rearranged. Only the spot colors specified are output. 3. Several checks in src/gdevdflt.c and src/gxcmap.c had to be removed or modified. These checks were assuming that a device with a single component uses a gray process color model and a device with three components used RGB.[src/gdevdevn.c 1.15, src/gdevdevn.h 1.3, src/gdevdflt.c 1.18, src/gdevpsd.c 1.8, src/gsdparam.c 1.13]
2004-04-28 04:06 Igor Melichev
A new implementation of shadings, step 49. DETAILS : 1. gx_default_fill_linear_color_trapezoid wrongly subdivided big areas : the edge height was not reduced. It could cause an infinite loop. 2. Removed c_prec, x_prec. The new code is never called and never tested. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.17, src/gxdtfill.h 1.18]
2004-04-28 02:35 Igor Melichev
A new implementation of shadings, step 48a. DETAILS : Removing the unused gdevdsha.h . EXPECTED DIFFERENCES : None.[src/gdevdsha.h 1.2]
2004-04-28 02:26 Igor Melichev
A new implementation of shadings, step 48. DETAILS : Removing a code of dead development branches. EXPECTED DIFFERENCES : None.[src/gxshade4.h 1.23, src/gxshade6.c 1.50]
2004-04-27 08:26 Igor Melichev
A new implementation of shadings, step 47. DETAILS : Implementing gx_default_fill_linear_color_triangle, step 2 : fixing interface problems. The new code is never called and never tested. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.16, src/gxdevcli.h 1.25]
2004-04-27 08:12 Igor Melichev
A new implementation of shadings, step 46. DETAILS : Implementing gx_default_fill_linear_color_triangle. The new code is never called and never tested. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.15, src/gxdevcli.h 1.24]
Add makefile support for compiling in the jasper JPEG 2000 library, needed to support the JPXDecode filter in PDF 1.5. Currently only enabled in the autoconf build, but porting the changes to other top-level makefiles should now work.[src/Makefile.in 1.34, src/configure.ac 1.45, src/gs.mak 1.26, src/jasper.mak 1.1, src/lib.mak 1.179]
Correct two typos in the jasper local source directory detection. It was erroneously resetting the jbig2dec local source directory and not reporting the found location correctly.[src/configure.ac 1.44]
2004-04-27 05:43 Igor Melichev
A new implementation of shadings, step 45. DETAILS : Implementing a linear color for filling a trapezoid. This patch provides necessary data exchange. The new code is never called and never tested. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.14, src/gdevdsha.c 1.3, src/gdevnfwd.c 1.18, src/gxdevcli.h 1.23, src/gxdtfill.h 1.17, src/lib.mak 1.178]
2004-04-23 12:30 Alex Cherepanov
Keep calculation in signed types to avoid conversion of the negative int to the big positive long, which caused infinite loop on Alpha in t1_hinter__adjust_matrix_precision() inline function. Fix bug 687417.[src/gxhintn.c 1.48]
Document the use of .setpdfwrite and the relation of vmthreshold to the accumulation of shared object data in the pdfwrite device. Closes bug 687409.[doc/Language.htm 1.84, doc/Ps2pdf.htm 1.67, doc/Use.htm 1.107]
2004-04-17 18:30 Igor Melichev
A new implementation of shadings, step 44. DETAILS : The function fill_pixel appears unuseful. Now it is replaced with fill_linear_color_scanline. This patch also defines a default implementation. EXPECTED DIFFERENCES : None.[src/gdevdflt.c 1.17, src/gdevdsha.c 1.2, src/gdevnfwd.c 1.17, src/gxdevcli.h 1.22, src/gxdevice.h 1.16, src/lib.mak 1.177]
2004-04-15 22:50 Igor Melichev
Implementing color mapping linearity checks, step 2. DETAILS : Fix the color index decomposition in gx_cspace_is_linear_in_triangle. EXPECTED DIFFERENCES : None.[src/gscspace.c 1.12]
Fix to make sure that both stroke (CA) and non-stroke (ca) opacity is set. Support for customer #32 that wants to create transparent effects in PDF from PostScript input. DETAILS: Previously the opacity was set for one or the other (whichever was first) and only updated when the value changed. Since the 'state' only retained a single value, the following PS snippet would not set the CA value as it should to 0.5. Since we never use the 'b/B' fill + stroke painting methods (our graphics library currently has no device function for this), a PDF that contains a 'b' method will be decomposed into a 'f' followed by 's' operation, setting the opacity from the PDF interpreter's retained ca/CA between the operations. PostScript snippet to test this: << /CompatibilityLevel 1.4 >> setpagedevice % work around rectfill mapping directly to device fill_rectangle /rectfill { gsave 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath fill grestore } bind def % Do some background -- not transparent painting mode 0 0 0 setrgbcolor 0 0 600 700 rectfill .7 .7 .7 setrgbcolor 200 0 400 700 rectfill 1 1 1 setrgbcolor 400 0 200 700 rectfill % Go to a transparent painting mode /Normal .setblendmode .5 .setshapealpha % paint some shapes transparently .9 .8 .1 setrgbcolor 100 100 450 450 rectfill % The next stroke is non-transparent w/o the patch .2 .2 .9 setrgbcolor 50 setlinewidth 50 700 moveto 450 -650 rlineto stroke .7 .setshapealpha .9 .3 .3 setrgbcolor 50 setlinewidth 50 50 moveto 450 650 rlineto stroke showpage quit[src/gdevpdfg.c 1.49]
Correction to previous commit that caused Subtype value to be consumed if it was not a null name. Valid files would fail.[lib/pdf_font.ps 1.65]
Fix 687189 for bbox_forward_add_rect infinite recursion. This problem caused segment faults or apparent hangs with the x11alpha device. This fix also works for 656414 segfault when using x11alpha DETAILS: The problem was due to the bounding box device creating more and more bounding box devices in the device chain when the overprint compositor was being used. The x11alpha device uses the bounding box device. The overprint logic uses the 'create compositor' logic when a change is made in the status of the overprint or overprint mode parameters. However a new compositor is not created each time. Instead the overprint device simply updates its parameters. The bounding box device has its own create compositor. This routine would call its target device's create compositor routine and then wraps a new bounding box device around the target's compositor. The combination of many create compositor calls from the overprint logic and the fact that the bounding box device adds a new bounding box device could result in hundreds of bounding devices in the chain. The fix consists of checking if the bounding box's target device actually created a new compositor device. Only when a new compositor was added is a new bounding box also added to the chain.[src/gdevbbox.c 1.16]
Fix for 687402 Missing color on annots.pdf. This is actually not an error. Instead it is due to some confusion about the displaying of link annotations. DETAILS: To prevent confusion, the following two paragraphs of explanation were added to the first page of the examples/annots.pdf example file. "IMPORTANT NOTE ABOUT THIS PAGE: This page was created for the testing the display of link annotation parameters. The file was created using Adobe Acrobat 5.0 (and modified using Acrobat 6.0). The displaying of each annotation is specified in the annotation. By default, Acrobat sets link annotations so that they are normally displayed by 'viewer' applications. They are not normally displayed in printed output. That is the case with these annotations. Ghostscript checks the display specifications for each annotation. By default, Ghostscript assumes that the output is 'printed' if the 'OutputFile' parameter is defined. Adding '-dPrinted=false' to the command line will force Ghostscript to display 'viewer' annotations in all output. Adding '-dPrinted=true' will disable the displaying of these annotations."[examples/annots.pdf 1.2]
Handle (yet another) invalid PDF that Adobe Acrobat can open. If the Font /Subtype is / then assume Type1. Also issue a **** WARNING message. Bug #687422 for Artifex customer #670. DETAILS: This is a simple patch, with known limitations if the actual font type cannot be handled by the buildType1 procedure. Only Type1 and MMfonts will work correctly. Since the PDF is invalid, we will leave more vigorous handling until another different PDF file surfaces.[lib/pdf_font.ps 1.64]
2004-04-10 17:14 Alex Cherepanov
Use ld_length instead of length because RMap is a long dictionary. Fix bug 687363.[toolbin/pdfinflt.ps 1.5]
2004-04-09 06:20 Igor Melichev
A new implementation of shadings, step 44. DETAILS : Propagate return codes frpom patch_color_to_device_color. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.49]
Correct DOS line endings accidentally committed to the repository. Bug 687415.[lib/dumphint.ps 1.2, src/dwdll.c 1.7, src/dwimg.c 1.10, src/dwnodll.c 1.6, src/errors.h 1.10, src/gp_dosfs.c 1.17, src/gp_vms.c 1.38, src/gscolor.c 1.13, src/gscolor1.c 1.10, src/math_.h 1.7, src/windows_.h 1.6, src/zfont42.c 1.19, toolbin/tests/fuzzy.c 1.14]
2004-04-08 07:59 Igor Melichev
Implementing color mapping linearity checks, step 1. DETAILS : Color mapping linearity check rutines will be used to improve the performance and quality of shadings. They check whether a color mapping is quazi-linear within a subdomain. The subdomain is specified as a convex hull of a set of colors. This patch defines prototypes and the default implemetation. They are not called and not debugged. The purpose of this commit is a codebase synchronization before a project switch. EXPECTED DIFFERENCES : None.[src/gscdevn.c 1.16, src/gscolor2.c 1.20, src/gscpixel.c 1.11, src/gscscie.c 1.11, src/gscsepr.c 1.23, src/gscspace.c 1.11, src/gsicc.c 1.13, src/gspcolor.c 1.13, src/gxcspace.h 1.11]
Fix: Disables platfonts when antialiasing is in effect. Improves rendering quality, and fixes bug 687368.[src/gxchar.c 1.42]
2004-04-02 14:21 Igor Melichev
Fix (pdfwrite) : /XObject <<-1 0 R>> was written to a pattern dictionary. DETAILS : Bug 687396 "PDF Conversion of PS doc fails with large image" happened to a delayed object ID assignment. Delay adding the resource until an ID is assigned. EXPECTED DIFFERENCES : None.[src/gdevpdfj.c 1.30]
2004-04-02 07:06 Igor Melichev
Fix : Restoring the non-cache-device constraint in setcolor. DETAILS : It was removed by a recent patch, but PLRM3 page 215 requires it. EXPECTED DIFFERENCES : None.[src/gscolor2.c 1.19]
Dump output from 'attrib -H dosdefault' to the bit bucket (nul:) to eliminate a potentially confusing warning.[src/msvccmd.mak 1.18]
2004-04-01 20:39 Igor Melichev
Fix (Type 1 hinter) : Skip empty hint ranges, improved. DETAILS : The previous patch caused a regression with 86554321.pdf . This one fixes that. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.47]
2004-04-01 19:58 Igor Melichev
Fix (Type 1 hinter) : Skip empty hint ranges. DETAILS : Bug 687393 "Hang with 8.14 from command line". The test document embeds a font with a hint mask, which defines a stem range with 'closepath' only. t1_hinter__skip_stem couldn't handle this case, because we exclude 'closepath' from the pole list. We believe that the font is buggy, but provide a tolerance. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.46]
2004-04-01 13:35 Igor Melichev
Fix : Cygwin/gcc compiler warnings. DETAILS : ./src/gstext.c:83: warning: suggest explicit braces to avoid ambiguous `else' EXPECTED DIFFERENCES : None.[src/gstext.c 1.17]
2004-04-01 13:23 Igor Melichev
Fix : MSVC6 compiler warnings. DETAILS : An "initialized data" warning appeared when MSVC6 performs a release build with inline optimizations on (The inline optimization inlines small function bodies, being not marked with the inline keyword). 1. The "uninitialized data" warning in alloc_name_index_is_since_save in isave.c was a real bug with an indeterministic behavior : nref.tas.rsize was accessed by names_index_inline from names_string_inline from alloc_name_is_since_save from alloc_name_index_is_since_save with no advance initialization. This bug was not detected because this function is only invoked when a 'save' unwinds glyph names added to an incremental font, but doesn't unwind the font - we have no such examples. IMO existing PS drivers never cvreate such documents. 2. The "uninitialized data" warning in cos_array_add_object appears due to cos_copy_element_value copies entire 'value' when another variant of an union has a bigger size and was uninitialized. The copying of the uninitialized data looks not harmful due to the 'int' type, but generally it could cause an interrupt on platforms with a tagged memory. We prefer to suppress the warning with an unuseful initialization, because the processor time consumption is pretty small and happens not frequently. EXPECTED DIFFERENCES : None.[src/gdevpdfo.c 1.29, src/isave.c 1.10]
2004-04-01 11:43 Igor Melichev
A new implementation of shadings, step 43. DETAILS : Defining new device virtual functions for filling with a linear color. This only defines but never uses them. EXPECTED DIFFERENCES : None.[src/gdevdflt.c 1.16, src/gdevdsha.c 1.1, src/gdevdsha.h 1.1, src/gdevnfwd.c 1.16, src/gxdevcli.h 1.21, src/gxdevice.h 1.15, src/lib.mak 1.176]
2004-04-01 11:30 Igor Melichev
Fix : setcachedevice must not depend on a BuildChar color and on gx_show_text_retry. DETAILS : 1. The bug 687391 "assert src/gxccman.c:557 again" happened because BuildChar changed the current color before setcachedevice calls compute_glyph_raster_params, and the raster params computed differently than during the advance glyph raster cache lookup. 2. Removed if (pgs->in_cachedevice) return_error(gs_error_undefined); from gs_setcolor, because I can't guess it's reason/purpose. It looks as a rudiment from a pre-repository versions. 3. The assertion also failed with "-dTextAlphaBits=4 -dLastPage=1 comparefiles\xgfddg.pdf". In gx_add_cached_char added the case "cc->pair == NULL" : /* gx_show_text_retry could reset it when bbox_draw discovered an insufficient FontBBox and enlarged it. Glyph raster params could change then. */ 4. gx_show_text_retry must reset penum->pair due to possible FontBBox change, see (3). 5. The cc_set_pair macro to be applied for changing cc->pair to provide consistent data for font_dir_reloc_ptrs. EXPECTED DIFFERENCES : None with regular regression test. Normal with -r72 -dTextAlphaBits=4 -dAlignToPixels=0 : "213-01.ps" "214-01.ps" "244-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "258-01.ps" "270-01.ps" Normal with -r300 -dTextAlphaBits=4 -dAlignToPixels=0 : "245-07.ps" "270-01.ps" -dTextAlphaBits=2 : not tested. -dAlignToPixels=1 : not tested.[src/gscolor2.c 1.18, src/gxccache.c 1.30, src/gxccman.c 1.25, src/gxchar.c 1.41, src/gxtext.h 1.15]
Fix for premature freeing of a 'image' device (makeimagedevice or the similar makewordimagedevice). Bug #687227. Thanks to Alex Cherepanov for the patch.[src/gsdevmem.c 1.6]
Fix for inherited MediaBox for the page Group dictionary (transparency). Bug #687293. Thanks to Felix Pahl for the analysis and fix.[lib/pdf_main.ps 1.86]
Fix for 687390 GhostScript 8.11 inserts rendering artifacts with GIFs as source. The actual problem is an error which resulted in a pale yellow being shown as a pale pink. This occurs when dithering on devices which use a 256 color palette. DETAILS The halftoning logic assumes that there are the same number of shades of each color. However the 256 color palette devices were using a 7x7x5 color cube. I.e. there were 7 shades of red and green, however there were only 5 shades of blue. The data in the device's color_info (max_color, max_gray, dither_colors, and dither_grays) indicated that there were 7 shades. The halftoning logic, using this information, was attempting to display the given pale yellow color by dithering between 6/7ths and 7/7ths of each component. However the encode_color routine returned colors which include solid blue for all cases. This biased the resulting halftoned color toward blue. The fix involves changing the 256 color palette devices to use a 6x6x6 color cube. The same routine pc_8bit_map_rgb_color is used for all of the 256 color palette devices. Thus the change consists of modifying this routine and the associated pc_8bit_map_color_rgb routine. The specification of each of the devices has to be changed to represent the change in the cube size.[src/gdevbmp.c 1.9, src/gdevcgm.c 1.10, src/gdevp2up.c 1.5, src/gdevpccm.c 1.6, src/gdevpccm.h 1.7, src/gdevpcx.c 1.6, src/gdevpng.c 1.10, src/gdevsvga.c 1.6]
2004-03-25 17:35 Igor Melichev
Fix (PDF interpreter) : Stack balance was broken when a CID font is not embedded. DETAILS : It was broken since pdf_font.ps rev.1.59. Bug 687384 "/invalid font in -dict-". EXPECTED DIFFERENCES : None.[lib/pdf_font.ps 1.63]
2004-03-25 14:46 Igor Melichev
Fix (Type 1 hinter) : Use a weaker condition for horizontal stem recognition. DETAILS : Alignment zones were not applied due to a quazy horizontal segment was not considered as a hiorizontal one. We think that the font has an inaccurate glyph design, but we provide more tolerance. Likely Adobe does the same. Bug 687385 "fonts different heights with 75 dpi". EXPECTED DIFFERENCES : 72 dpi : 251-01.ps 289-01.ps 455690.pdf 86554321.pdf alphabet.ps dave.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf prob.pdf" RealCities.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test.pdf test2.pdf test2a.pdf 300 dpi : 033-52-5873.pdf 289-01.ps 455690.pdf 86554321.pdf alphabet.ps bulletin.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf pdfopt_bug.pdf prob.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test.pdf test2.pdf test2a.pdf[src/gxhintn.c 1.45]
Remove an empty '#' line. Closes bug 687377.[src/stdint_.h 1.3]
Fix for unnecessary re-link when building on Windows. Bug #687059. DETAILS: Since 'dosdefault' was not being made, make always did the link. Create a dummy "result" being a file named dosdefault and make works as Igor wants.[src/msvccmd.mak 1.17]
2004-03-24 07:30 Igor Melichev
Fix (pdfwrite) : TK was written into a charproc. DETAILS : Bug 687382 "fonts not printed with pdf 1.4". EXPECTED DIFFERENCES : None. Ghostscript PDF interpreter appears insensible to it. Adobe does.[src/gdevpdfg.c 1.48]
Make use of the SYS_TYPES_HAS_STDINT_TYPES define we set in the configure script. After a patch from Alex Cherepanov. Bug 687377. Also, adopt elif, since we've been using it elsewhere to no ill effect.[src/stdint_.h 1.2]
Fix for incorrect Annotation scaling when an Appearance (/AP) had scaling that was not unity (1) and the Subtype was not /Stamp. Fixes Bug #687288 for customer #32. DETAILS: The scaling difference in the annotation (object 14 0) was due to Ghostscript not recognizing the bsiTextStamp annotation Subtype. Careful reading of the Adobe PDF specification says that if there is an Appearace stream (/AP dict), then the Form XObject should be scaled using the method that we perviously only used for /Stamp Subtype annotations (calcstampscale). The section of the PDF 1.5 Reference Manual is 8.4.4. The patch is fairly simple, but testing of the regression suite showed one file, foo.pdf, that was missing the require /Rect entry in the Annot dict. The patch includes a check and warning for this problem. EXPECTED DIFFERENCES: With this patch, some of the regression files will have slightly different scaling for some of the annotations, but the differences are all too small to compare to Adobe. The largest variations are seen with annots.pdf (our test file) where the scaling ranges from a low of 0.979191 to a high of 1.01636. The files are: filename scaling range (was 1) 01_001.PDF 1.0 SyscoCorrugatedprintcard.pdf 1.0 .. 1.00268 annots.pdf 0.979191 .. 1.01636 rf1025.PDF 0.998471 IMO, these are all close enough to be considered progressions.[lib/pdf_draw.ps 1.80]
Adobe no longer provides a public link to DistillerParameters.pdf. Link to a hopefully somewhat stable directory from which the inspired user can register and download the documentation.[doc/Ps2pdf.htm 1.66]
Fix for 687364 rangecheck in buildshading2 from Quark XPress PS file. This fix involves the creation of the findcmykcustomcolor and setcustomcolor functions. DETAILS: Ray found that the error message was due to an invalid shading dictionary being given to shfill. The dictionary has a function which has a single input and a single output. The numbers are determined from the sizes of the Domain and Range arrays. Since the shading dictionary is using a DeviceCMYK color space, Ghostscript is generating a rangecheck since the function does not have four outputs. The file is generating an invalid shading dictionary. Specifically it generates: sh: << /Coords [0 0 0 1] /ColorSpace [/DeviceCMYK] /Function << /BitsPerSample 8 /Ra nge [0 1] /FunctionType 0 /Domain [0 1] /DataSource (\200\200\200\201\201\202\202\203 \203\204\204\205\205\206\206\207\207\210\210\211\211\212\212\213\213\214\214 \215\215\ 216\216\217\217\220\220\221\221\222\222\223\223\224\224\225\225\226\226\227\ 227\230\2 30\231\231\232\232\233\233\234\234\235\235\236\236\237\237\240\240\241\241\2 42\242\24 3\243\244\244\245\245\246\246\247\247\250\250\251\251\252\252\253\253\254\25 4\255\255 \256\256\257\257\260\260\261\261\262\262\263\263\264\264\265\265\266\266\267 \267\270\ 270\271\271\272\272\273\273\274\274\275\275\276\276\277\277\300\300\301\301\ 302\302\3 03\303\304\304\305\305\306\306\307\307\310\310\311\311\312\312\313\313\314\3 14\315\31 5\316\316\317\317\320\320\321\321\322\322\323\323\324\324\325\325\326\326\32 7\327\330 \330\331\331\332\332\333\333\334\334\335\335\336\336\337\337\340\340\341\341 \342\342\ 343\343\344\344\345\345\346\346\347\347\350\350\351\351\352\352\353\353\354\ 354\355\3 55\356\356\357\357\360\360\361\361\362\362\363\363\364\364\365\365\366\366\3 67\367\37 0\370\371\371\372\372\373\373\374\374\375\375\376\376\377) /Order 1 /Size [256] >> /S hadingType 2 >> The file was sent into Adobe Distiller 6.0. Inside the resulting PDF file there is a very different shading dictionary: Specifically: /sh: << /ColorSpace [/Separation /MEZZO__1 /DeviceCMYK -array-] /Coords [0 0 0 1] /Function << /Decode [0 1] /FilePosition 460412 /Range [0 1] /Filter /FlateDecode /BitsPerSample 8 /Encode [0 255] /Length 255 /FunctionType 0 /File -file- /Domain [0 1] /DataSource (\200\200\200\201\201\202\202\203\203\204\204\205\205\206\206\207\207\210\21 0\211\211\212\212\213\213\214\214\215\215\216\216\217\217\220\220\221\221\22 2\222\223\223\224\224\225\225\226\226\227\227\230\230\231\231\232\232\233\23 3\234\234\235\235\236\236\237\237\240\240\241\241\242\242\243\243\244\244\24 5\245\246\246\247\247\250\250\251\251\252\252\253\253\254\254\255\255\256\25 6\257\257\260\260\261\261\262\262\263\263\264\264\265\265\266\266\267\267\27 0\270\271\271\272\272\273\273\274\274\275\275\276\276\277\277\300\300\301\30 1\302\302\303\303\304\304\305\305\306\306\307\307\310\310\311\311\312\312\31 3\313\314\314\315\315\316\316\317\317\320\320\321\321\322\322\323\323\324\32 4\325\325\326\326\327\327\330\330\331\331\332\332\333\333\334\334\335\335\33 6\336\337\337\340\340\341\341\342\342\343\343\344\344\345\345\346\346\347\34 7\350\350\351\351\352\352\353\353\354\354\355\355\356\356\357\357\360\360\36 1\361\362\362\363\363\364\364\365\365\366\366\367\367\370\370\371\371\372\37 2\373\373\374\374\375\375\376\376\377) /Size [256] >> /ShadingType 2 >> This dictionary has a Separation color space. The given function is a reasonable function to use with the Separation color space. As Ray mentioned, it is not correct for a DeviceCMYK color space. The file is generating a different dictionary for the two interpreters. In the case of Ghostscript, the dictionary is invalid, Backtracking through the various procsets inside of the given file shows that is a mess of function definitions, followed by replacement of the functions with new definitions. Some of it may be Quarks. Some of it is labeled: %%BeginResource: file Jaws_custom_colour_blend_level3_emulation 2.1 0 The results of the search are: 1. Ghostscript does not define 'setcustomcolor' but Adobe Distiller 6.0 does define it. 2. The procsets in the file do provide a definition for setcustomcolor. Actually the file provides about 16 versions of setcustomcolor. However the versions provided in the file do not work. The PLRM does not mention setcustomcolor. However it is described in Adobe's "Technical Note #5044 Color Separation Conventions for PostScript Language Programs". TN 5044 says: "The following "operators" are not defined in the PostScript Language Reference Manual, but should be used as pseudo-operators in your PostScript language output. Separation applications from Adobe Systems and other vendors will redefine these convention operators to separate your documents. Your application should conditionally define procedures with these special names, as shown later in this document." The fix to the problem is to provide the functions: findcmykcustomcolor and setcustomcolor. These are placed at the end of the lib/gs_lev2.ps. They are placed there because the implementation requires Separation color spaces which is a level 2 feature.[lib/gs_lev2.ps 1.31]
2004-03-23 12:30 Igor Melichev
Fix : GenericResourceDir was not listed in PermitFileReading. DETAILS : Problems happened when gs/lib is specified with -I, and gs/Resource is not. Bug 687381 "pdfwrite can't start with -dSAFER -Id:/path/lib". EXPECTED DIFFERENCES : None.[lib/gs_init.ps 1.106]
Correct a number of warnings. DETAILS: Apply const appropriately so gcc doesn't warn about assignment of string literals. Remove an inappropriate const in a function argument. ifdef out the debug printout function since it's not called without JPX_DEBUG.[src/sjpx.c 1.8]
SunOS 5.9 does not properly replace files with ln -sf. Unlink the existing files instead. Closes bug 687378.[autogen.sh 1.4]
Fix for a long standing problem that could cause characters to be dropped when reading a file with the 'read' operator. Bug #687374 for customer #310. DETAILS: This was caused by the zread function reading the character (sgetc) prior to invoking the 'push' macro which could return with e_stackoverflow (discarding the character). The stackoverflow can happen more frequently than at MaxOpStack level since the stack is allocated as blocks, using the e_stackoverflow to signal the need to add more stack blocks, then retrying the operation. Fix for characters dropped from a file when using the 'read' operator. Bug #687374 for customer #310. DETAILS: This was caused by the zread function reading the character (sgetc) prior to invoking the 'push' macro which could return with e_stackoverflow (discarding the character). The stackoverflow can happen more frequently than at MaxOpStack level since the stack is allocated as blocks, using the e_stackoverflow to signal the need to add more stack blocks, then retrying the operation.[src/zfileio.c 1.16]
2004-03-19 10:08 Igor Melichev
Fix (TT interpreter) : Subglyphs could be placed to wrong coordinates. DETAILS : 1. When a subglyph position is specified with a reference to an outline point, the index of the point was interpreted wrongly and could use an undefined data with an indeterministic result. Bug 687366 "Font missing umlaut". 2. Shifting a subglyph, matrices like [xx 0 0 1 0 0] were misinterpreted as identity. EXPECTED DIFFERENCES : Testform.v1.0.2.pdf - a progression with umlaut over 'u' in the word "Drummer".[src/ttfmain.c 1.27]
2004-03-19 09:52 Igor Melichev
Fix (pdfwrite) : Zero text length caused an access to an uninitialized data. DETAILS : Detected by Dan with MSVC .NET 2003. Rather the result did not depend on the data, the access could cause a floating point interrupt. EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.55]
Fix to implement PDF specification for '/' as a valid name as opposed to the PS token scanning. Previously //name would be incorrectly scanned as an immediately evaluated name rather than two names '/' and '/name' which is correct. Fixes Bug #687277 for customer #440. DETAILS: Care is taken to reset the scanner behaviour after a PDF file is finished and also after an invalid number is scanned. Note that to reset the flag, the parameter must be set to 'null', not 'false' due to the implementation in the ztoken.c. Caveat impelementor. Previously the PDFScanRules was set when an invalid number was found and was never reset, so this may result is *LOTS* of pdfformaterror messages for files that have lots of invalid format numbers, but that's what they get. If this is ever a problem, reseting the PDFScanInvNum can be moved to pdf_main.ps where PDFScanRules is set to null. No expected differences.[lib/pdf_base.ps 1.42, lib/pdf_main.ps 1.85, src/iscan.c 1.17, src/iscan.h 1.9, src/iscannum.c 1.8, src/ztoken.c 1.13]
Rename the DEBUG_JPX symbol to JPX_DEBUG to match the others we've defined for the JPXDecode source.[src/sjpx.c 1.7]
Correct our YCrCb to RGB conversion code. Subtract the proper bias to center the chromaticity channels around zero if they are returned unsigned. Move the clamp routines to after the conversion to RGB where it does some good. Thanks to Raph Levien for his help with this code. We now use our conversion code by default, since there are some problems with the jasper library's conversion on big-endian platforms. The jasper conversion can be reenabled by defining JPX_USE_JASPER_CM in the preprocessor.[src/sjpx.c 1.6]
Fix name of file in raster directory so that update_pdfbaseline will be run when needed (when new files are added).[toolbin/tests/gscheck_pdfwrite.py 1.19]
2004-03-18 16:59 Igor Melichev
A new implementation of shadings, step 43. DETAILS : 1. An optimization : If an area has a monotonic color, each subarea has a monotonic color as well, so the color monotonity doesn't need to recompute. Doing so because the color monotonity function is not fast when appied to a ShadingType 1 with a bicubic color interpolation. 2. Bug: is_color_monotonic returned 'true' when the intrval has zero width by the 1st coordinate. This is wrong for with ShadingType 1, which uses a 2-argument function. ( The check was a rudiment from a 1 month old implementation of fn_Sd_is_monotonic, which returned 'false' when the low boundary is at the end of some cell, and the upper boundary is at the beginning of the next cell. Actually this case is a zero width interval and the function must return true. ) EXPECTED DIFFERENCES : A minor difference in colors : 442-01.ps 464-01.ps Clarke Tate Manns Chinese.ai STEUER-RollingMesh 1(linear).ai[src/gxshade4.h 1.22, src/gxshade6.c 1.48]
2004-03-18 12:33 Igor Melichev
Implementing is_monotonic for cubic interpolation functions. DETAILS : The old code ignores extremes of a cubic interpolation function (except ones at a cell boundary). It could cause a wrong rendering of shadings with replacing a randomly big part of the shading near an extremum with a constant color. The new code fixes that. The new code caches the interpolation coefficients. This may cause problems if the function data stream is modified after the function is build. Likely this must not cause problems due to gs/lib caches the stream with ReusableStreamDecode. Also we don't know practical cases. POLE_CACHE_IGNORE 1 avoids this problem with some slowdown, (the slowdown exponentially grows with >=3 arguments, but again we don't know practical examples with >=3 arguments). The configuration flag POLE_CACHE allows to revert to the old code. Bug 687352 "is_monotonic isn't implemented for 3d order sampled function". EXPECTED DIFFERENCES : 464-01.ps - A minor difference in color.[src/gsfunc0.c 1.18, src/gsfunc0.h 1.6]
Clamp and origin shift the chromaticity values in our JPXDecode filter's YUV to RGB conversion code. This still does not produce correct output with libjasper's output, but is an improvement. This change affects disabled code only.[src/sjpx.c 1.5]
2004-03-16 11:39 Igor Melichev
Fix (pdfwrite) : A floating point interrupt. DETAILS : MSVC7 applies a floating point (FP) operations to copy FP data. This may cause interrupts if the data is not initialized and represent an invalid FP number. gdev_vector_dopath_segment passed an unitialized data as an argument. Rather the callee never use them, an interrupt happens while building the argument list. EXPECTED DIFFERENCES : None.[src/gdevvec.c 1.21]
Use the jasper library's internal color conversion function to convert non-rgb multicomponent images to sRGB. DETAILS: As of jasper 1.701.0 this function does not work correctly on powerpc. However, it's better than our own routine, which I've had trouble getting working with the Y(')CbCr samples returned from the library.[src/sjpx.c 1.4]
Fix for 687337 Zerodivide in cie_cache_mult. Note: There was a typo in the previous fix. DETAILS: The direct cause of the problem, and also the reason that we have not seen this problem in real world files is that the 050-01.ps test file contains the following color rendering dictionary. /RenderDict2 12 dict begin /BlackPoint [ 0 0 0 ] def /ColorRenderingType 1 def /EncodeABC [ {} {} {} ] def /EncodeLMN [ {} {} {} ] def /MatrixABC [ 0 0 0 0 0 0 0 0 0 ] def /MatrixLMN [ 0 0 0 0 0 0 0 0 0 ] def /RangeABC [ 0 1 0 1 0 1 ] def /RangeLMN [ 0 1 0 1 0 1 ] def /RangePQR [ 0 1 0 1 0 1 ] def /TransformPQR [ {} {} {} ] def /WhitePoint [ 1 1 1 ] def Note: The matrices full of zeroes do not represent real world data. The zero matrices will result in all output component values being zero no matter what the inputs. Using this data, Ghostscript uses the given ranges and matrices to calculate values for DomainABC and DomainLMN. The results are [0, 0] for each domain. The domain values are later used to calculate a scaling factors which is also 0. Calculations, which use one of these values as a divisor, then generate a divide by zero exception. One option to fix this problem would be to check for zero before doing any calculations with the scaling factors. However another and simpler option is to check for the zero factors when they are crated and set the value to a value which will not cause the divide problem. Note: Even though we are using a dummy factor (1.0), the zero matrices still result in zero output values from the calculations.[src/gscie.c 1.16]
Fix for 687337 Zerodivide in cie_cache_mult. DETAILS: The direct cause of the problem, and also the reason that we have not seen this problem in real world files is that the 050-01.ps test file contains the following color rendering dictionary. /RenderDict2 12 dict begin /BlackPoint [ 0 0 0 ] def /ColorRenderingType 1 def /EncodeABC [ {} {} {} ] def /EncodeLMN [ {} {} {} ] def /MatrixABC [ 0 0 0 0 0 0 0 0 0 ] def /MatrixLMN [ 0 0 0 0 0 0 0 0 0 ] def /RangeABC [ 0 1 0 1 0 1 ] def /RangeLMN [ 0 1 0 1 0 1 ] def /RangePQR [ 0 1 0 1 0 1 ] def /TransformPQR [ {} {} {} ] def /WhitePoint [ 1 1 1 ] def Note: The matrices full of zeroes do not represent real world data. The zero matrices will result in all output component values being zero no matter what the inputs. Using this data, Ghostscript uses the given ranges and matrices to calculate values for DomainABC and DomainLMN. The results are [0, 0] for each domain. The domain values are later used to calculate a scaling factors which is also 0. Calculations, which use one of these values as a divisor, then generate a divide by zero exception. One option to fix this problem would be to check for zero before doing any calculations with the scaling factors. However another and simpler option is to check for the zero factors when they are crated and set the value to a value which will not cause the divide problem. Note: Even though we are using a dummy factor (1.0), the zero matrices still result in zero output values from the calculations.[src/gscie.c 1.15]
Fix for 687349 A wrong comment for gx_device_color_s. This change modifies the comment on ccolor and the related variable ccolor_valid.[src/gsdcolor.h 1.14]
Correctly calculate row offsets for copying JPXDecode filter results so multi-component images are indexed correctly. Also split the jpxd process code into several helper functions for readability. Support subsampled YUV images properly. Subsampled pixels are replicated, not interpolated. Colorspace conversion from YCrCb to RGB is still incorrect.[src/sjpx.c 1.3, src/sjpx.h 1.2]
2004-03-15 09:54 Igor Melichev
MSVC compiler: allowing Precompiled Headers, Incremental Compilation, Edit & Continue. DETAILS : These options are applied to debug build only. They dramatically improve the development technology. Automated Precompiled Header speeds up the compilation slightly. For best results should reorganize gs header files. Incremental Compilation speeds up the rebuilding after editing source code. Edit&Continue is a powerful tool for debugging. Together with incremental compilation it allows to regenerate the object code during a debug session, and continue the debugging with the new code without restarting the program. Press F10 after you changes source code and enjoy. F7 resets the session - forget it. Another related tool is the "Set instruction pointer" debugger command, which is available only from Tools/Customize/Commands/Debug. It looks as an yellow arrow with a blue thin curved arrow. Move it to your toolbar and enjoy. Also enabled the incremental linking. YOU NEED TO REBUILD ALL AT ONCE to activate these tools. Tested with MSVC 6, should also work wirth MSVC 7. Had no chance to test MSVC 5. A help wanted. EXPECTED DIFFERENCES : None.[src/msvccmd.mak 1.16]
2004-03-14 22:10 Igor Melichev
Fix : A Cygwin/gcc warning. EXPECTED DIFFERENCES : None.[src/zpcolor.c 1.14]
2004-03-14 22:02 Igor Melichev
Fix (PDF interpreter) : CIDMap was wrongly created from CIDToGIDMap. DETAILS : CIDMap size was equal to CIDCount, which gs_ttf.ps sets to the number of glyphs. With a non-Identity CIDToGIDMap it appears wrong, causing some valid CIDs to be out of range and to print as a notdef character. Bug 687351 "Embedded TTF font in PDF incorrectly displayed.". EXPECTED DIFFERENCES : Bug687351.pdf[lib/gs_ttf.ps 1.37, lib/pdf_font.ps 1.62]
2004-03-14 22:01 Igor Melichev
Fix (pdfwrite) : Crash after adding a glyph over a preallocated limit of a CIDFontType 2. DETAILS : Working on bug 687351 with CAIB_highres_page4.pdf, we detected a set of old bugs. They caused a heap corruption and crash. To reproduce the crash apply the patch of the bug 687351 to lib/pdf_font.ps (that patch will be committed AFTER this one). 1. pdf_resize_resource_arrays was called with a wrong array size (gdevpdtc.c). 2. pdf_resize_resource_arrays did not expand CIDToGIDMap (gdevpdtf.c). 3. gs_type42_glyph_info accepted a wrong type of the return value of get_glyph_index. 4. Copying a CIDFontType 2, CIDCount was wrong (gxfcopy.c). 5. pdf_obtain_cidfont_resource wrongly processed the case of shared font descendents : font compatibility was not checked, rather they may have different Metrics, Metrics2, CDevProc, CIDMap (gdevpdtt.c). 6. Implemented a dynamic expansion of CIDMap for copied fonts. 7. In font copies CIDMap used the code 0xFFFF for representing unmapped glyphs. 8. Inserted the comment into gdevpdtf.c : /* fixme : Likely pdfont->u.cidfont.CIDToGIDMap duplicates pdfont->FontDescriptor->base_font->copied->client_data->CIDMap. Only difference is 0xFFFF designates unmapped CIDs. */ 9. same_cid0_hinting must not check FDBytes (gxfcopy.c). EXPECTED DIFFERENCES : None.[src/gdevpdtc.c 1.35, src/gdevpdtf.c 1.35, src/gdevpdtt.c 1.77, src/gstype42.c 1.44, src/gxfcopy.c 1.42]
2004-03-14 11:26 Igor Melichev
Fix (pdfwrite) : XObject's resources were placed wrongly. DETAILS : Bug 687350 "Wrong placement for Form XObjects' resources" For Form XObjects created using /BP pdfmarks, the resources dictionary entries are placed into the dict part of the XObject itself, instead of being placed into a dictionary referenced by the /Resources key. Patch from SaGS (See the bug report). Thanks to SaGS (Sorry, never got his/her name.). EXPECTED DIFFERENCES : Bug687350.ps[src/gdevpdfm.c 1.36]
Add support for 16 bit deep images that is part of PDF 1.5. Expected Differences: None.[src/gxi16bit.c 1.1, src/gximage.h 1.7, src/gxino16b.c 1.1, src/gxipixel.c 1.10, src/int.mak 1.125, src/lib.mak 1.175, src/spdiff.c 1.6, src/spdiffx.h 1.5, src/zfdecode.c 1.6, src/zimage.c 1.13]
2004-03-13 18:28 Igor Melichev
Implementing current point with double precision. DETAILS : The old code stores the current point in pgs->ppath->position with the 'fixed' representation in the device space coordinates. This appears insufficiently precise if a document constructs a path with multiple 'rlineto' or 'rcurveto'. A significant to error accumulation happens. We implement the current point with 'double', duplicating pgs->ppath->position with the new field gs_imager_state::current_point. We can't replace pgs->ppath->position with the new one due to several reasons : - Sometimes (in the text processing, in arc processing and in reversepath) a new current point is computed when imager state is not accessible. - Don't want to spend processor time for conversion double to fixed, whenever a fixed is needed. - Don't want to modify many of low level modules; Text operation always round the current point to 'fixed'. Note that the convertion from fixed to double is always precise, therefore we widely use it with text operations. Thus this improves the precision of moveto, lineto, curveto, rmoveto, rlineto, rcurveto, but the precision of other operators left as it was. Likely there is no strong need to improve text operations due to pixel rounding, but it would be useful to improve arc, arcn, arct, arcto. However an improvement of arc operations isn't a high priority, and after this patch becomes a local change. We removed ppath->outside_position, because pgs->current_point now effectively handles this feature. Due to that the rounded pgs->current_point may be unequal to pgs->ppath->position when the current point is outside the range. The configuration flag PRECISE_CURRENTPOINT defined in gxstate.h helps to debug the new code with raster comparizon with the old code. PRECISE_CURRENTPOINT 0 works same as the old code except the coordinate clamping. Therefore once tested with the comparison, the further validation reduced to a validation of the code swtched by the flag - this part pof code is pretty small. The mode (PRECISE_CURRENTPOINT 0) **MUST**NOT** go to production due to the dropped clamping. PRECISE_CURRENTPOINT 1 handles the clamping. Bug 687359 "Current point is inprecise". EXPECTED DIFFERENCES : Almost all comparefiles render differently.[src/gdevpdtc.c 1.34, src/gdevpdte.c 1.54, src/gdevpdtt.h 1.22, src/gscoord.c 1.9, src/gspaint.c 1.9, src/gspath.c 1.9, src/gspath.h 1.6, src/gspath1.c 1.8, src/gstype1.c 1.31, src/gstype2.c 1.35, src/gstype42.c 1.43, src/gxchar.c 1.40, src/gxistate.h 1.21, src/gxmatrix.h 1.8, src/gxpath.c 1.10, src/gxpath.h 1.13, src/gxstate.h 1.10, src/gzpath.h 1.37, src/gzstate.h 1.10, src/lib.mak 1.174, src/zupath.c 1.9]
2004-03-13 00:33 Igor Melichev
Fix (TT grid fitting) : Hints could be lost. DETAILS : When passing hints from the stem recognizer to the hinter, glyph origin was not properly initialized, causing an occasional shift of hints. This bug appeared with gxttfb.c revision 1.32. EXPECTED DIFFERENCES : 72dpi: 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf budget2_ai87.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf ICPconcept.pdf japan.ps keyboard.pdf korea.ps MagicEye.pdf S2_Digitalproof-Forum_x3k.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf Type11CDevProc.ps type42_glyph_index.ps fonts.pdf 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf japan.ps 300dpi: 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf budget2_ai87.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf ICPconcept.pdf Jahr2000.pdf japan-.ps japan.ps 01_001.pdf keyboard.pdf korea.ps MagicEye.pdf S2_Digitalproof-Forum_x3k.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf Type11CDevProc.ps type42_glyph_index.ps[src/gxttfb.c 1.33]
2004-03-12 06:53 Igor Melichev
Fix (pdfwrite) : Fall back to the default implementation when the output document can't handle current color. DETAILS : This case is important when the output PDF uses a low PDF level. Particularly if the source file is a PDF 1.4 with a transparency, and the output is PDF 1.3, which can't represent a transparency. Bug 687338 "/rangecheck in --fill--". EXPECTED DIFFERENCES : None.[src/gdevpdfd.c 1.38, src/gdevpdtt.c 1.76]
Fix for 687349 A wrong comment for gx_device_color_s. This change modifies the comment on ccolor and the related variable ccolor_valid.[src/gsdcolor.h 1.13]
Log message: Implement 687347: Implementation of the PDF encryption feature: EncryptMetadata. Past versions of the PDF encryption have always encrypted metadata. With this feature it is possible to NOT encrypt metadata streams. I.e. By adding '/EncryptMetadata false' to the encryption dictionary. DETAILS: There are two pieces to the implementation: 1. The calculation of the user password key includes an additional step of feeding 0xffffffff to the md5 input if EncryptMetadata is false. (Ask Adobe, not me.) The PDF 1.5 spec. says that EncryptMetadata is an undocumented feature of PDF 1.4. This implies that this action needs to be done for values of R in the Encrypt dictionary of 3 or higher. However testing with Acrobat 5.0 and Acrobat 6.0 shows that this is not done for R = 3. Thus we check for R >= 4. 2. Testing with Acrobat 5.0 and 6.0 has verified that the encryption of metadata streams is controlled by EncryptMetadata in both versions. Thus we check for PDF 1.4 and higher (R >= 3) and if so then we check the stream type and the EncryptMetadata flag to determine if a stream needs to be decrypted.[lib/pdf_sec.ps 1.15]
2004-03-11 14:58 Igor Melichev
Fix : Some Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/devs.mak 1.109, src/gdevpdfi.c 1.52]
2004-03-11 14:50 Igor Melichev
Fix : Some Sun ONE Studio 7 compiler warnings (Solaris 8). DETAILS : Bug 687355 "warnings on Solaris (ghostscript-8.14)". This fixes all warnings which I understande, except "implicit function declaration", which probably require a Solaris-dependent fix to "memory_.h". EXPECTED DIFFERENCES : None.[src/gdevdevn.c 1.14, src/gdevijs.c 1.8, src/gdevnfwd.c 1.15, src/gdevpdfx.h 1.87, src/gdevpng.c 1.9, src/gdevpsd.c 1.7, src/gdevpsdu.c 1.21, src/gdevpsu.c 1.17, src/gdevxcf.c 1.6, src/gscpixel.c 1.10, src/gsdfilt.c 1.9, src/gximag3x.c 1.15, src/szlibd.c 1.7, src/ttfmain.c 1.26]
2004-03-11 07:01 Igor Melichev
Fix : Changing the default value of AlignToPixels to 0. THIS IS INCOMPATIBLE CHANGE. DETAILS : AlignToPixels=0 produces a better results with antialiased text. This is especially important after the True Type grid fitting is on. EXPECTED DIFFERENCES : None.[doc/Use.htm 1.106, src/gsfont.c 1.32]
Some systems require a longer link line with the default static jasper.[toolbin/jpxtopdf.c 1.2]
Add a simple C program that uses the jasper library to parse JPX (jpeg2k) image files and embed them in a PDF 1.5 document. Useful for testing as there are few producers available at the moment. DETAILS: We make no attempt to parse the required metadata (resolution and so on) ourselves. It would be simple to add this so that the program can stand alone. On the other hand, jasper is capable of opening a number of other image formats and encoding them to jpx streams. We don't do that either, but it would also be easy to add support for so that JPXDecode versions of arbitrary images could be embedded. Because of this, it's possible to embed e.g. baseline jpeg data instead of a jpx stream if you feed the program the wrong file. Caveat executor. Based on the jpegtopdf program by Tor Andersson.[toolbin/jpxtopdf.c 1.1]
Revert documentation change. Apparenlty the problem was that the user specified an ICC colorspace and it does have an effect with pswrite if one uses the usual RGB, etc. colorspaces. Bug 687357.[doc/Use.htm 1.105]
Clarify that -dNOSUBSTDEVICECOLORS has no effect on the pswrite device. Bug 687357.[doc/Use.htm 1.104]
Correct yet another typo that was preventing the regression from running.[toolbin/tests/run_nightly 1.23]
Fix problem with dci.max_components introduced with DeviceN changes. Closes bug #677383.[src/gdevijs.c 1.7]
Check for jpeg, zlib, and libpng headers as well as libraries before using the shared versions. Bug 687261.[src/configure.ac 1.43]
2004-03-09 13:30 Igor Melichev
Fix (PDF interpreter) : Wrong metrics when 2 font resources for same embeded font. DETAILS : Bug 687308 "Text in PDF Form field renders incorrectly". The document contains 2 font resources for same embedded font. PDF interpreter first creates a copy of the font, replacing the metrics with Widths. Then it creates another copy of the with no replaced metrics. But it used the first copy (through findfont) instead the original font, and the Metrics in the second copy appears wrong. This patch applies pdfcachefont for embedded fonts, to allow retrieving original fonts for subsequeent font resources. EXPECTED DIFFERENCES : None.[lib/pdf_font.ps 1.61]
2004-03-09 10:38 Igor Melichev
Fix (pdfwrite) : Annotations encrypted with a wrong object id. DETAILS : Bug 687333 "pdfwrite: A wrong encryption of bookmarks". EXPECTED DIFFERENCES : None.[src/gdevpdfm.c 1.35]
2004-03-09 09:31 Igor Melichev
Fix (Type 2 charstrings) : More tolerance and conformity. DETAILS : 1. Some Type 2 charstrings omit the vstemhm operator before rmoveto, even though this is only allowed before hintmask and cntrmask. Bug 687311 "could make more sense of invalid stem hints". 2. Subglyph offset was not crrect. 3. Removing an outdated comment. Thanks to Felix Pahl for these improvements. EXPECTED DIFFERENCES : None.[src/gstype2.c 1.34]
Remove some extra carriage returns (^M) at the ends of lines. These keep sneaking into the sources. Presumably the cause has to do with copying files from unix to windows or vice versa.[lib/pdf_base.ps 1.41]
Correct a typo in the whitelist keyword changes.[toolbin/tests/run_nightly 1.22]
2004-03-07 12:26 Igor Melichev
Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 3). DETAILS : Remove unused variables. EXPECTED DIFFERENCES : None.[src/gsfunc3.c 1.21]
2004-03-07 12:06 Igor Melichev
Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 2). DETAILS : 1. Remove gs_function_effort_t because it is not longer useful. 2. Update the documentation in comments. EXPECTED DIFFERENCES : None.[src/gsfunc.c 1.10, src/gsfunc.h 1.11, src/gsfunc0.c 1.17, src/gsfunc3.c 1.20, src/gsfunc4.c 1.15, src/gxfunc.h 1.9, src/gxshade1.c 1.26, src/gxshade6.c 1.47]
2004-03-07 12:04 Igor Melichev
Fix : gs_function_is_monotonic computed an unused auxiliary result (continued). DETAILS : Bug 687328 fn_is_monotonic_proc_t slows down ShadingType 1 in 3 times Actually the result appears used while checking the monotonity of a stiching function. But we believe that it doesn't worth the processor time expence. I simpler way is to consider the stitches as a monotonity breaks. EXPECTED DIFFERENCES : None[src/gsfunc3.c 1.19]
2004-03-07 00:02 Igor Melichev
Fix (dropout prevention) : extra pixels at small serifs. DETAILS : It appears a long standing bug. It caused a section was not cleaned before reusage. The reason was an interval to clean was added to the list of a another margin_set. This bug frequently caused a missed serif suppression (i.e. extra pixels at small serifs). EXPECTED DIFFERENCES : A massive rendering difference at small resolutions : 72dpi : "000040cf.000_60.pdf" "001-01.ps" "001-13.ps" "001-25.ps" "002-09.ps" "002-21.ps" "002-33.ps" "003-01.ps" "012-01.ps" "012-05.ps" "013-01.ps" "013-05.ps" "014-01.ps" "014-05.ps" "015-01.ps" "015-05.ps" "018-01.ps" "01_001.pdf" "021-01.ps" "023-01.ps" "027-01.ps" "027-05.ps" "027-09.ps" "032-01.ps" "033-01.ps" "034-01.ps" "036-01.ps" "040-01.ps" "045-01.ps" "046-01.ps" "050-01.ps" "055-01.ps" "061-01.ps" "070-01.ps" "076-01.ps" "083-01.ps" "083-05.ps" "084-01.ps" "091-01.ps" "093-01.ps" "094-01.ps" "096-01.ps" "103-01.ps" "104-01.ps" "109-01.ps" "110-01.ps" "113-01.ps" "118-01.ps" "119-01.ps" "119-10.ps" "119-16.ps" "119-47.ps" "120-01.ps" "123-01.ps" "123-05.ps" "124-01.ps" "129-01.ps" "141-01.ps" "148-05.ps" "148-11.ps" "149-01.ps" "154-01.ps" "158-01.ps" "159.pdf" "162-01.ps" "166-01.ps" "169-01.ps" "169-05.ps" "170-01.ps" "176-01.ps" "177-01.ps" "181-01.ps" "184-01.ps" "192-01.ps" "200-01.ps" "205-01.ps" "205-05.ps" "206-01.ps" "212-01.ps" "213-01.ps" "214-01.ps" "215-01.ps" "219-01.ps" "220-01.ps" "220-07.ps" "222-01.ps" "222-05.ps" "226-01.ps" "227-01.ps" "231-01.ps" "233-01.ps" "244-01.ps" "245-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "246-01.ps" "250-01.ps" "251-01.ps" "255-01.ps" "257-01.ps" "258-01.ps" "260-01.ps" "263-01.ps" "269-01.ps" "270-01.ps" "272-01.ps" "276-01.ps" "282-01.ps" "297-01.ps" "298-01.ps" "298-05.ps" "299-01.ps" "303-01.ps" "304-01.ps" "307-01.ps" "308-04.ps" "311-03.ps" "313-01.ps" "316-07.ps" "321-01.ps" "321-05.ps" "322-01.ps" "327-01.ps" "328-01.ps" "330-01.ps" "334-01.ps" "335-01.ps" "336-01.ps" "401-01.ps" "405-01.ps" "409-01.ps" "415-01.ps" "421-01.ps" "430-01.ps" "438-01.ps" "450-01.ps" "455690.pdf" "460-01.ps" "463-01.ps" "477-01.ps" "477-03.ps" "477-04.ps" "477-05.ps" "478-01.ps" "483-05-fixed.ps" "483-05.ps" "86554321.pdf" "a.pdf" "aaon97_p7.pdf" "acrobat.pdf" "adesso1.pdf" "adesso5.pdf" "adesso7.pdf" "adesso8.pdf" "AdobeLic.pdf" "alphabet.ps" "besttest.pdf" "brochurep1.pdf" "bulletin.pdf" "CAIB_highres_page4.pdf" "chess.ps" "CIDembedded.pdf" "Faktura.pdf" "Fixed_Original.pdf" "HeiseiMinStd.pdf" "japan.ps" "korea.ps" "KozukaB-ILEmbed.pdf" "loremIpsum.pdf" "mbb-with-space.ps" "ngnews1.pdf" "Original.pdf" "pdftops.pdf" "prfmm.pdf" "prob.pdf" "RealCities.pdf" "rf1025.pdf" "RodinCIDEmbed.pdf" "S2_Digitalproof-Forum_x3k.pdf" "Svd.pdf" "textsavematrix.pdf" "tpc2.ps" "type1-ce1_setcurrentpoint.ps" "type42_glyph_index.ps" "waterfal.ps" "womanface.pdf" 300 dpi : "000040cf.000_60.pdf" "001-01.ps" "093-01.ps" "a.pdf" "aaon97_p7.pdf" "alphabet.ps" "bug-gstest.pdf" "chess.ps" "Fixed_Original.pdf" "fonttest.pdf" "HeiseiMinStd.pdf" "japan-.ps" "japan.ps" "KozukaB-ILEmbed.pdf" "mbb-with-space.ps" "Original.pdf" "RodinCIDEmbed.pdf" "S2_Digitalproof-Forum_x3k.pdf" "tpc2.ps" "Type11CDevProc.ps"[src/gxfdrop.c 1.14]
2004-03-06 15:15 Alex Cherepanov
Immediately return the success for 0-length read from a string array. Don't seek to the offset because it may be invalid in some broken fonts. Fix bug 687340[src/zfont42.c 1.18]
2004-03-05 23:25 Igor Melichev
Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/devs.mak 1.108, src/gdevpdfv.c 1.35, src/gdevpdtt.c 1.75, src/gsfunc0.c 1.16, src/gsfunc3.c 1.18, src/ttfmain.c 1.25]
2004-03-05 22:26 Igor Melichev
Fix : Raster depended on bands, step 4, final. DETAILS : This change is algorithmically equivalent. 1. Removed the old code BAND_INDEPENDENT 0. 2. Simplified fill_slant_adjust with removing low useful variables. 3. Optimized the gxfilltr.h template with excluding some branches from the scope of le, re. 4. Renamed function templates with a (new) regular convention. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.117, src/gxfillsl.h 1.4, src/gxfilltr.h 1.6, src/gxfillts.h 1.3]
2004-03-05 15:35 Igor Melichev
Fix : Raster depended on bands, step 3. DETAILS : Bug 687222 "Raster depends on bands". Switching to the new code. Now trapezoid sides are independent on bands, clipping and scans. Any trapesoid side is equal to some flattened piece of an outline segment. A massive difference happens due to the old code recognized low trapezoids as rectangles. The new code does not because it checks the verticality with longer bars. EXPECTED DIFFERENCES : Almost all comparefiles render differently., but mist differences are single pixels. A dozen of files give dual pixel differences.[src/gxfill.c 1.116]
correct a typo in the recent comment revision[doc/Make.htm 1.74]
add a missing '.' to a comment[src/msvc32.mak 1.55]
2004-03-05 14:16 Igor Melichev
Fix : Raster depended on bands, step 2. DETAILS : Bug 687222 "Raster depends on bands". For the enabled code this change is algorithmically equivalent. It fixes rectangle coordinates in the disabled code. EXPECTED DIFFERENCES : None.[src/gxfilltr.h 1.5]
2004-03-05 13:17 Igor Melichev
Fix : Raster depended on bands, step 1. DETAILS : Bug 687222 "Raster depends on bands". This is a continuation for http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003986.html This patch defines a configuration flag BAND_INDEPENDENT. The enabled code should be equivalent to the old one. The disabled code passes band-independent data for low level functions. The disabled code is not debugged yet. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.115, src/gxfilltr.h 1.4, src/gxfillts.h 1.2]
Remove a debug tracing message.[src/sjpx.c 1.2]
Add support for our whitelist keyword filter to the regression run.[toolbin/tests/run_nightly 1.21]
Improve wording in the MSVC debug flag descriptions.[doc/Make.htm 1.73]
Improve wording in a comment.[src/msvc32.mak 1.54]
2004-03-04 16:41 Igor Melichev
Fix : gs_function_is_monotonic computed an unused auxiliary result. DETAILS : Bug 687328 fn_is_monotonic_proc_t slows down ShadingType 1 in 3 times The function fn_is_monotonic_proc_t computes a result consisting of 2 things : (1) whether the function is monotonic, (2) if so, whether it is encreesing or decreesing. The part (2) consumes a huge time and never used. Intending to cancel it. On necessity clients can compute (2) by calling 'evaluate'. EXPECTED DIFFERENCES : Clarke Tate Manns Chinese.ai STEUER-RollingMesh 1(linear).ai[src/gsfunc.h 1.10, src/gsfunc0.c 1.15, src/gsfunc3.c 1.17]
2004-03-04 16:27 Igor Melichev
Fix (pdfwrite) : Reject encryption options if no password is specified, improved. DETAILS : Bug 687334 "pdfwrite: Encryption with no password". EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.92]
2004-03-04 16:13 Igor Melichev
Fix : "KeyLength" option name was misspelled in the documentation. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm 1.65]
2004-03-04 16:13 Igor Melichev
Fix (pdfwrite) : Reject encryption options if no password is specified. DETAILS : Bug 687334 "pdfwrite: Encryption with no password". EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.91]
2004-03-04 15:50 Igor Melichev
Fix (pdfwrite) : Floating point aritmetic applied to uninitialized data. DETAILS : Rather the result was not used, the oprtation could cause floating point interrupts. Debugged with test-setweightvector.ps . EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.53, src/gdevpdtt.c 1.74]
2004-03-04 14:34 Igor Melichev
Fix (TT grid fitting) : The glyph trailing moveto got wrong coordinates. DETAILS : Advance width was scaled wrongly. EXPECTED DIFFERENCES : japan.ps S2_Digitalproof-Forum_x3k.pdf Testform.v1.0.2.pdf[src/gxttfb.c 1.32, src/ttfmain.c 1.24]
Implementation of 687326 Enhancement: Handling of PDF 1.5encryption. DETAILS: The PDF 1.5 specification has added several some features for encryption of PDF documents. 1. The new encryption changes are indicated by a /R value of 4 in the Encryption dictionary. Note: The encryption algorithm is the same as /R = 3. 2. The encryption handling for strings and streams may now be specified independently. Current possibilities are 'Identity' and the standard handler. Note: There are more encryption features in the PDF 1.5 specification. HowevertThe only means that I have for generating test files for these new encryption features is Acrobat 6.0. This patch will decode files which are encrypted using Acrobat 6.0. There is one more feature (EncryptMetaData) which will be the subject of a separate patch. Between the features covered by the current patch and the EncryptMetaData patch, this includes all of the capabilities that are available to a user of Acrobat 6.0. Since Acrobat 6.0 is the major producer of files with these new encryption features, Ghostscript will have the ability to decrypt files which we are likely to see in the near future.[lib/pdf_sec.ps 1.14]
2004-03-03 13:53 Igor Melichev
Fix : Shading could cause a floating point exception. DETAILS : It caused an a floating point interrupts if they are unmasked. The problem in gxshade6.c apeared with NEW_SHADINGS with ppmraw -r72 050-01.ps . The problem in gxshade1.c ln 638 apeared with NEW_SHADINGS with ppmraw -r72 "STEUER-RollingMesh 2*.ai" . Another one looks as a long standing bug with ppmraw -r72 442-01.ps EXPECTED DIFFERENCES : None.[src/gxshade1.c 1.25, src/gxshade6.c 1.46]
2004-03-03 10:10 Igor Melichev
Fix (TT grid fitting) : AlignToPixels=0 aligned to pixels. DETAILS : Bug 687318 'A poor TT grid fitting with TextAlphaBits>1". This patch doesn't close the bug. An StdHW, StdVW reconstruction is necesseary for perfect result. AlignToPixels=0 still gives a varying stem width. EXPECTED DIFFERENCES : None.[src/gxttfb.c 1.31]
2004-03-03 08:16 Igor Melichev
Fix (type 1 hinter) : small resolutions caused a rangecheck. DETAILS : Bug 687301 "/limitcheck in --.type42execchar-- at 13 dpi". When CTM is too small, its rational representation appears degenerate, and we pass the character with no hinting. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.44]
Fix for 687274 White areas appear shaded. DETAILS: This 'problem' is caused by a 'feature'. The high resolution transfer function deliberately has a piece of logic that forces any shade of gray that is not pure white (i.e. greater than 0.998) to halftone with at least one pixel being set in the output. This keeps nearly white shades from being washed out. We have seen several instances in which this 'feature' causes a problem. The fax output format tiffg4 has been bitten by this problem since it is commonly used at 204 dpi. This change removes this feature.[lib/gs_init.ps 1.105]
2004-03-02 11:47 Igor Melichev
Improving the MSVC debug build options. DETAILS : 1. The implementation of switches DEBUG and TDEBUG in msvc32.mak did not comply to their explanation in comments. Bug 687276 "mscv32.mak : DEBUG and TDEBUG don't comply to documentation" 2. Defined a new switch DEBUGSYM : + # Setting DEBUGSYM=1 is only useful with TDEBUG=0 for advanced developers. + # It includes symbol table information for the debugger to the release build. 3. Updated doc\Make.htm about that. EXPECTED DIFFERENCES : None.[src/msvc32.mak 1.53, src/msvccmd.mak 1.15, doc/Make.htm 1.72]
2004-03-02 10:14 Igor Melichev
Fix (pdfwrite) : Errors were missed processing a shading data stream. DETAILS : Bug 687307 "A ShadingType 7 differs from Adobe." shade_next_flag interpreted a wrong data as End-Of-Data, so that some wrong documents were passed with no error. Now pdfwrite handles the bad shading data exception separately from other errors: the shading is fully written and the error is signaled to the PS interpreter after that. Note that other errors terminate immediately with inconsistent data written to the PDF output. We did the special processing to provide a better conformity to some buggy Genoa tests, which paint a shading with a wrong data in a stopped context. Besides that, we cancelled the default implementation fallback when pdf_setfillcolor fails. The old implementation caused shadings to convert into a huge set of rectangles written to PDF. We believe that signalling an error is the right reaction for this case. EXPECTED DIFFERENCES : pdfwrite : 446-01.ps now prints error message to the raster. This is a progression. 483-05.ps now prints error message to stdout. This is a progression.[src/gdevpdfd.c 1.37, src/gdevpdfg.c 1.47, src/gdevpdfv.c 1.34]
2004-03-02 08:34 Igor Melichev
Fix : Errors were missed processing a shading data stream. DETAILS : Bug 687307 "A ShadingType 7 differs from Adobe." shade_next_flag interpreted a wrong data as End-Of-Data, so that some wrong documents were passed with no error. With pdfwrite the logic is different, and we didn't fix it. EXPECTED DIFFERENCES : 446-01.ps now prints error message to the raster. This is a progression. 483-05.ps now prints error message to stdout. This is a progression.[src/gxshade.c 1.21, src/gxshade4.c 1.25, src/gxshade6.c 1.45, src/gxshade.h 1.11]
2004-03-01 23:59 Igor Melichev
A new implementation of shadings, step 42. DETAILS : Big triangle meshes could overflow wedge_vertex_list_elem_buffer. See comment in code. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.44]
2004-03-01 12:39 Igor Melichev
A new implementation of shadings, step 41, release candidate 2. DETAILS : Implemented intersection_of_small_bars with int64_t, and improved the documentation about it. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.43]
2004-03-01 10:44 Igor Melichev
A new implementation of shadings, step 40. DETAILS : 1. Improved various constraints for patch size, which are caused by the arithmetic precision. Now all them are collected in curve_samples. 2. Improved the documentation about secondary branches. 3. Fixed minor bugs in secondary branches. 3. Improved the formatting with easier distinguishing a multiplication " * x" from dereferencing " *x". It was important for finding arithmetic constraints. EXPECTED DIFFERENCES : SmoothShading.pdf at 300dpi.[src/gxshade4.h 1.21, src/gxshade6.c 1.42]
2004-02-29 16:59 Igor Melichev
A new implementation of shadings, step 39. DETAILS : The previous patch appears wrong. This one replaces it. Fixed the order of painting pixels : U and V were exchanged. Debugged with examples attached to the bug 687307. Besides that, the smoothness condition is changed : the case with strong equality must not decompose. A special test for this is 478-01.ps - now it is decomposed with monotonic intervals only. EXPECTED DIFFERENCES : Since the previous patch appears wrong, here is a difference from a revision before it : 446-01.ps 478-01.ps 483-05.ps gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 3(Final).ai[src/gxshade1.c 1.24, src/gxshade6.c 1.41]
2004-02-29 14:47 Igor Melichev
A new implementation of shadings, step 38. DETAILS : Fixed the order of painting pixels : U and V were exchanged. Debugged with examples attached to the bug 687307. EXPECTED DIFFERENCES : 72dpi : 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf chilis_red.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf 300dpi: 289-01.ps 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf chilis_red.pdf Clarke Tate Manns Chinese.ai gradmesh.ai Openhuis_pdf_zw.pdf SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf[src/gxshade6.c 1.40]
2004-02-29 13:03 Igor Melichev
A new implementation of shadings, step 37. DETAILS : Fixed a bug in LAZY_WEDGES 1 : fill_wedge_from_list_rec missed non-leaf triangles. Also defined dbg_wedge_triangle_cnt for debug purpose. EXPECTED DIFFERENCES : 72dpi : 446-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 3(Final).ai 300dpi: 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai[src/gxshade6.c 1.39]
2004-02-28 12:30 Igor Melichev
A new implementation of shadings, step 36. DETAILS : Implemented lazy wedges : do not create a wedge, if both neighbours of a line were divided at same point. It reduces the number of constant color triangles to fill. Since this algorithm consumes an exponential RAM of the wedge nesting, we restrict the wedge nesting with 9. For doing that we enforce subdivision of large patches into chunks with <=512 pixels length sides - see LAZY_WEDGES_MAX_LEVEL. EXPECTED DIFFERENCES : 72dpi : 289-01.ps 442-01.ps 446-01.ps 464-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai 300dpi: 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf[src/gxshade1.c 1.23, src/gxshade4.c 1.24, src/gxshade6.c 1.38, src/gxshade4.h 1.20]
2004-02-27 09:24 Igor Melichev
A new implementation of shadings, step 35. DETAILS : 1. Improving the filling order for self-overlapping patches. The old code filled them wrongly (a bug). This patches fixes that. With self-overlapping patches the new code is slower. 2. Improved the numeric error processing in intersection_of_big_bars. With negative bars the old code could give a bias in fixed_1, rather negative bars probably never come here. EXPECTED DIFFERENCES : 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf chilis_red.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf[src/gxshade6.c 1.37]
2004-02-26 20:55 Igor Melichev
A new implementation of shadings, step 34. DETAILS : Improving the ShadingType 1 with applying the generic algorithm. The generic algorithm is extended for 2-argument functions. Also fixing the configuration switch DIVIDE_BY_PARALLELS, which was unintentionally set to 1 by the previous patch. EXPECTED DIFFERENCES : 289-01.ps 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps gradmesh.ai[src/gxshade.c 1.20, src/gxshade1.c 1.22, src/gxshade4.c 1.23, src/gxshade4.h 1.19, src/gxshade6.c 1.36, src/lib.mak 1.173]
Revert to the correct version of gs_setpd.ps and Use.htm. DETAILS: A local CVS problem resulted in an update from a directory that did not have the changes, causing me to think that the files needed to be updated, but instead removed the previous update. What a mess![doc/Use.htm 1.103, lib/gs_setpd.ps 1.23]
2004-02-26 19:55 Igor Melichev
Fix : A bug in fn_Sd_is_monotonic. DETAILS : Monotonic intervals were computed wrongly due to a wrong cell boundary condition. With no Encode it overestimated the number of cells in 1. This patch also extends fn_Sd_is_monotonic for multi-argument functions. Actually it checks whether both points are within same cell. This is fine with linear functions, but for 3d order we would like to check for zero derivatives within the interval specified by 2 vectors. EXPECTED DIFFERENCES : 300dpi: 442-01.ps 483-01.ps[src/gsfunc0.c 1.14]
2004-02-26 07:18 Igor Melichev
A new implementation of shadings, step 33. DETAILS : Improves the performance of radial shadings : For a faster painting, we apply fill adjustment to outer annula only. Inner annula are painted with no fill adjustment. It can't cause a dropout, because the outer side of an annulus gets same flattening as the inner side of the neighbour outer annulus. For other shadings this chande is algorithmically equivalent. EXPECTED DIFFERENCES : A minor difference with axial shadings : 442-01.ps 446-01.ps 483-01.ps 483-05.ps Altona-Testsuite_p2_S_x3.pdf Clarke Tate Manns Chinese.ai gradmesh.ai S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai[src/gxshade.c 1.19, src/gxshade.h 1.10, src/gxshade1.c 1.21, src/gxshade4.c 1.22, src/gxshade4.h 1.18]
Fixes bug 687317. Fix pdfwrite allowable Permissions for EncryptionR=2. Fix default Permissions. DETAILS: The code was assuming that the extra permissions should be 0's, when in fact they should be 1's. The fixed code is a bit more conservative and requires that all reserved bits match the PDF specification. Set the default permissions to -4 which allows everything.[src/gdevpdf.c 1.90]
Clean up dict stack after loading an embedded Type1 font from a PDF file. While the font is buggy, Adobe doesn't complain. Bug #687315.[lib/pdf_font.ps 1.60]
Add an option to prevent the 'range' type PageSize from being added to the InputAttribute dictionary. This option is useful for printers that want the requested pages to be rotated to fit one of the available page sizes. Option is -dNORANGEPAGESIZE. Fix for bug #629335.[lib/gs_setpd.ps 1.22, doc/Use.htm 1.102]
2004-02-25 16:21 Igor Melichev
A new implementation of shadings, step 32. DETAILS : 1. Implemented axial shading with a Coons patch. It gives more regularity with area decomposition and trapping. 2. Optimized tensor shadings for the case when the gradient is parallel to the quadrangle sides. Note that the old code applies 1/2 pixels fill adjustment when painting stripes of the shading, generating overlapped stripes. Instead that the new code generates non-overlapping stripes, and applies a trapping emulation at the shading boundaries with 1/8 pixels. EXPECTED DIFFERENCES : A minor difference with axial shadings : 442-01.ps 446-01.ps 464-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf chilis_red.pdf gradmesh.ai Openhuis_pdf_zw.pdf SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf An area shift in Testform.v1.0.2.pdf at 72dpi appears due to the fill adjustment is replaced with the trapping emulation.[src/gxshade1.c 1.20, src/gxshade4.h 1.17, src/gxshade6.c 1.35, src/lib.mak 1.172]
Add support for specifying CVS repository location, which requires a new configuration key, 'gsconf.repodir'.[toolbin/tests/testing.cfg.example 1.5, toolbin/tests/update_specific 1.2]
Script to update baselines for a specific CVS version of Ghostscript. The script requires a new configuration key, 'gsconf.fontdir'.[toolbin/tests/testing.cfg.example 1.4, toolbin/tests/update_specific 1.1]
2004-02-24 19:07 Igor Melichev
A new implementation of shadings, step 31. DETAILS : 1. Removed an undefined macro call (a portability bug). 2. Disabled some unused functions. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.21, src/gxshade4.h 1.16]
2004-02-24 18:57 Igor Melichev
A new implementation of shadings, step 30. DETAILS : 1. Triangle meshes were passed to the rasterizer with no color resolved. It is assumed to be resolved in advance (a bug). 2. Improved external names with adding a scope prefix. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.20, src/gxshade4.h 1.15, src/gxshade6.c 1.34]
2004-02-24 12:12 Igor Melichev
A new implementation of shadings, step 29 - release candidate 1. DETAILS : Switching to the new implementation. It fixes a number of bugs, works 2.5 times faster and produces a better view. Also documented secondary development branches. Bug 687291 "problems in patch_fill". Bug 687310 "Wrong color interpolation with ShadingType 4,5.". EXPECTED DIFFERENCES : 446-01.ps 483-05.ps[src/gxshade4.h 1.14]
2004-02-24 11:57 Igor Melichev
A new implementation of shadings, step 28. DETAILS : Removing debug helpers. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.19, src/gxshade4.h 1.13, src/gxshade6.c 1.33]
2004-02-24 11:50 Igor Melichev
A new implementation of shadings, step 27. DETAILS : It simplifies visual trace commands with the new macros. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.18, src/gxshade6.c 1.32]
2004-02-24 11:43 Igor Melichev
Improving the visual trace macros. DETAILS : It defines a raugh implementation for a temporary trace disabling. EXPECTED DIFFERENCES : None.[src/vdtrace.h 1.12]
2004-02-24 11:08 Igor Melichev
A new implementation of shadings, step 26. DETAILS : This patch changes a disabled code only. It fixes a bug computing ku[3], which missed some wedges, and improves some visual trace commands. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.31]
2004-02-24 09:57 Igor Melichev
A new implementation of shadings, step 25. DETAILS : This patch changes a disabled code only. This change is algorithmically equivalent. During a trianglulation it avoids redundant computation of the color span and the triangle size. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.30]
2004-02-24 09:28 Igor Melichev
A new implementation of shadings, step 24. DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004243.html unintentionally switched on the new code. Now switching it back to the old one. EXPECTED DIFFERENCES : None.[src/gxshade4.h 1.12]
2004-02-24 09:08 Igor Melichev
A new implementation of shadings, step 23. DETAILS : This patch changes a disabled code only. 1. Wedges were missed in triangle_by_4. 2. Improved a debug mode in gxshade4.c . 3. Fixed cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.17, src/gxshade6.c 1.29]
2004-02-24 08:14 Igor Melichev
A new implementation of shadings, step 22. DETAILS : This patch changes a disabled code only. It implements a division of a quadrangle into 4 triangles, like the old code does. It doesn't change the performance and the view appears slightly better. This mode is useful with DIVIDE_BY_PARALLELS 0. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.28]
2004-02-24 07:58 Igor Melichev
A new implementation of shadings, step 21. DETAILS : This patch changes a disabled code only. It implements a division of a triangle into 4 triangles, like the old code does. This appears some slower, but gives a better view when the smooothness is smaller than the color resolution. Minor changes : - Implemented VD_TRACE_DOWN to gxshade6.c; - Changed some visual trace commands; - COLOR_CONTIGUITY specifies a coefficient for divide_triangle_by_parallels. EXPECTED DIFFERENCES : None.[src/gxshade4.h 1.11, src/gxshade6.c 1.27]
Check for local jpeg library source by looking for the jpeglib.h header rather than just the jpeg directory. Also try looking for jpeg-6b if the jpeg fails; this lets us find the source as it unpacks from the upstream tarball. Patch from ESP Ghostscript.[src/configure.ac 1.42]
Add a parameter which prevents the non-standard four element PageSize entry in the InputAttributes from being included. This prevents problems with PostScript programs that examine the InputAttributes entries in an attempt to pick the 'best fit' rather than relying on the setpagedevice logic. Also most 'real' printer devices don't support arbitrary page sizes, so automatic rotation is defeated if the range type page size in included. The option is -dNORANGEPAGESIZE. Bug #629335.[doc/Use.htm 1.101, lib/gs_setpd.ps 1.21]
Add the path to the code directory (gsconf.codedir) for invocation of the update_baseline/update_pdfbaseline.[toolbin/tests/gscheck_pdfwrite.py 1.18, toolbin/tests/gscheck_raster.py 1.9]
Initial implementation of the JPXDecode filter using the JasPer library for decoding the JPEG 2000 data. This version only implements a postscript-level filter; PDF support will follow in another commit. DETAILS: A new FEATURE_DEV, 'jpx.dev', is added to the makefile to enable support. The jasper library must be available to link with in this case. The library is autodetected in the autoconf build, but not yet enabled on other platforms. The implementation leaves a little to be desired. While JasPer is robust, it provides no way to connect its internal stream architecture to ours, so we end up buffering all the data. This seems to be the best we can do without modifying the library. We try to handle data from a number of colorspaces, but the spec is a little vague on what is required. We convert YUV to RGB internally, but do not handle sub-sampled planes.[src/Makefile.in 1.33, src/configure.ac 1.41, src/int.mak 1.124, src/lib.mak 1.171, src/sjpx.c 1.1, src/sjpx.h 1.1, src/zfjpx.c 1.1]
2004-02-22 15:11 Igor Melichev
A new implementation of shadings, step 20. DETAILS : This fixes an unintentional regression in gxshade4.c, which appeared from a recent patch. Also it optimises the access to pis->smoothness. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.16, src/gxshade6.c 1.26]
2004-02-22 14:14 Igor Melichev
A new implementation of shadings, step 19. DETAILS : This change is algorithmically equivalent. It simplifies internal interfaces with the new type quadrangle_patch. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.25]
2004-02-22 13:06 Igor Melichev
A new implementation of shadings, step 18. DETAILS : This change is algorithmically equivalent. It simplifies the interface of fill_triangle_wedge. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.24]
2004-02-22 10:59 Igor Melichev
A new implementation of shadings, step 17. DETAILS : This change is algorithmically equivalent. It simplifies intermodule interfaces with using shading_vertex_t instead a pair of a point and a color. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.15, src/gxshade4.h 1.10, src/gxshade6.c 1.23]
2004-02-22 09:43 Igor Melichev
A new implementation of shadings, step 16. DETAILS : This patch changes a disabled code only. In the disabled code it fixes the bug 687310 "Wrong color interpolation with ShadingType 4,5.". In the old code the interpolation is still done in the color space rather than in the function domain. EXPECTED DIFFERENCES : None.[src/gxshade.c 1.18, src/gxshade.h 1.9, src/gxshade4.c 1.14, src/gxshade4.h 1.9, src/gxshade6.c 1.22, src/lib.mak 1.170]
2004-02-21 18:25 Igor Melichev
A new implementation of shadings, step 15. DETAILS : This patch changes a disabled code only. Optimized the patch decomposition. 1. Triangles are divided along the color gradient. Since the color gradient is vector, actually we divide along the gradient of the Manhattan"s color norm. 2. Rectangles are divided into 2 triangles by the diagonal with smaller color difference. 3. Improved conditions for compiling wedge_buf. 4. Implemented VD_TRACE_TRIANGLE_PATCH. This revision appears faster than the old code NEW_SHADINGS 0 in about 1.4 times. A code optimization is wanted. See "fixme" comments. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.13, src/gxshade4.h 1.8, src/gxshade6.c 1.21]
2004-02-20 15:04 Igor Melichev
A new implementation of shadings, step 14. DETAILS : This patch changes a disabled code only. Optimized the trapping emulation. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.12, src/gxshade4.h 1.7, src/gxshade6.c 1.20]
2004-02-20 13:58 Igor Melichev
A new implementation of shadings, step 13. DETAILS : 1. Aplied the new triangulation to triangle meshes. 2. Enhanced the scope of configuration flags and some structures. 3. Improved visual trace commands. The trapping emulation appears too slow and should be optimized. EXPECTED DIFFERENCES : None.[src/gxshade4.c 1.11, src/gxshade4.h 1.6, src/gxshade6.c 1.19, src/lib.mak 1.169]
2004-02-20 10:53 Igor Melichev
Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.114]
2004-02-20 10:51 Igor Melichev
A new implementation of shadings, step 12. DETAILS : 1. Emulated an interpatch trapping for poorly designed documents - see 'padding', 'interpatch_padding', 'inpatch_wedge'. 2. Improved some debug helpers (TENSOR_SHADING_DEBUG 1). 3. Removed some unused variables. 4. Improved some comments and C-style. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.18]
Fix for 687279 Linker warnings with Visual Studio 6 and .NET 2003. The changes consist of removing the keyword INITINSTANCE from the def files. The DESCRIPTION lines are changed to a comment and put at the beginning of the files.[src/dw32c.def 1.4, src/dwmain16.def 1.2, src/dwmain32.def 1.4, src/dwsetup.def 1.5, src/dwuninst.def 1.5, src/gsdll32.def 1.5]
2004-02-20 00:04 Igor Melichev
A new implementation of shadings, step 11. DETAILS : Simplified wedges with wedge_by_triangles. It makes a big part of the code to be unused with NEW_TENSOR_SHADING 1 QUADRANGLES 0 POLYGON_WEDGES 0. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.17]
2004-02-19 20:05 Igor Melichev
A new implementation of shadings, step 10. DETAILS : 1. Implemented a decomposition by triangles. 2. Applied restrict_color to colors, to avoid lots of pieces then basic color values are significantly out of range. The 483-07 box of 483-05.ps contains such shadings. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.16]
2004-02-19 11:32 Igor Melichev
A new implementation of shadings, step 9. DETAILS : 1. Inserted some visual trace instructions in the old algorithm. 2. Moved configurations macro definitions upper, to use them in the old code. 3. Remaned NEW_TENSOR_SHADING_DEBUG with TENSOR_SHADING_DEBUG. 4. In the new code fixed the wedge color. 5. Improved the decomposition of bended patches. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.15]
2004-02-19 11:21 Igor Melichev
Improving visual trace macros. DETAILS : This patch implements a nesting of trace allowing conditions specified in different modules, and applies it to the filling algorithm. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.113, src/vdtrace.h 1.11]
2004-02-19 07:44 Igor Melichev
Simplifying the filling algorithm, step C22. DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004127.html appears incomplete. This one fixes that. Bug 687306 "CVS head crashes with pkmraw, 300 dpi, with recent changes." EXPECTED DIFFERENCES : None.[src/gxfill.c 1.112]
2004-02-18 15:05 Igor Melichev
A new implementation of shadings, step 8. DETAILS : This patch changes a disabled code only. 1. is_curve_small uses a better thresholds. 2. is_xy_monotonic_by_v was wrong. Replaced with is_bended. 3. Optimized wedge_trap_decompose. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.14]
2004-02-18 15:00 Igor Melichev
Improving the filling algorithm, step D8. DETAILS : Removed floating point arithmetics, which recently appeared by a hack. A rounding is now done slightly different. EXPECTED DIFFERENCES : Normal, 72 dpi : LD.pdf Normal, 300 dpi : 012-01.ps 012-05.ps 013-05.ps 032-01.ps 123-01.ps 123-05.ps 205-01.ps pdfwrite, 72 dpi : LD.pdf pdfwrite, 300 dpi : 123-01.ps 123-05.ps 169-13.ps[src/gxfill.c 1.111, src/lib.mak 1.168]
2004-02-18 14:41 Igor Melichev
Fix: Documented rounding formulas in the character processing. EXPECTED DIFFERENCES : None.[src/fapiufst.c 1.24, src/gxhintn.c 1.43, src/ttfmain.c 1.23]
2004-02-18 09:54 Igor Melichev
Fix (pdfwrite) : Converting an image type 4 into imagemask, a wrong color was written. DETAILS : This problem was discovered with ghostpcl and owlfoo.pcl from Stefan. Thanks to Stefan for detecting it. This fix is kinda hacky. Let it live for a while, because we want to study its consequences before applying more efforts. A right fix should not modify the interpreter graphic state, but we have no a 'const' copy function for gs_state, because gx_gstate_clone shares imager state parts. EXPECTED DIFFERENCES : None.[src/gdevpdfi.c 1.51]
Add '!ifndef'/'endif' around varaious parameters in the makefile for the Borland compiler (bcwin32.mak). This allows the parameters to be specified on the command line without editting the makefile.[src/bcwin32.mak 1.32]
2004-02-17 15:12 Igor Melichev
Fix : MSVC7 wrongly optimizes zpcolor.c . DETAILS : It's an aliasing problem in the optimizer. See comment in code. EXPECTED DIFFERENCES : None.[src/int.mak 1.123, src/zpcolor.c 1.13]
2004-02-16 16:29 Igor Melichev
Improving the filling algorithm, step D7. DETAILS : When filling an individual trapezoid, a shortcut for parallelograms could miss some pixels. When the left boundary rounds to a vertical line and the right one does not, for the right boundary it wrongly applied same zero sampling as for the left one, in spite of the right boundary can cross pixel centers. We realize that the shortcut could improve a view of some parallelograms. But in same time we detected that in alphabet.ps with 72dpi a parallelogram was replaced with a wider one, causing a worse view of the character '#'. So its usefullness is arguable. Both features can't provide simultaneousely due to the device interface can't pass a flag whether an exact coverage is required. Therefore we drop the shortcut. EXPECTED DIFFERENCES : normal 72dpi : 020-01.ps 175-01.ps 1_2001.pdf 289-01.ps 446-01.ps 483-05.ps 86554321.pdf acrobat.pdf ADOBE1-4.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf chess.ps dina3_watermark.pdf kazmir.pdf PixelisAd.pdf RealCities.pdf spec_gs.pdf spec_gv.pdf test.pdf vsem0093.pdf xes2ps-problem.pdf xgfddg.pdf normal 300dpi : 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf adesso3.pdf adesso5.pdf adesso7.pdf AdobeLic.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf besttest.pdf brochurep1.pdf bugsample.pdf ca.pdf CAIB_highres_page4.pdf chess.ps dave.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf file.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf japan.ps kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf kshow_with_grestore.ps loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf ngnews.pdf ngnews1.pdf Openhuis_pdf_zw.pdf pdftops.pdf prfmm.pdf prob.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test.pdf test2.pdf test2a.pdf textsavematrix.pdf type42_glyph_index.ps waterfal.ps xgfddg.pdf xngnews.pdf pdfwrite 72 dpi : 020-01.ps 175-01.ps 1_2001.pdf 446-01.ps 483-05.ps 86554321.pdf acrobat.pdf ADOBE1-4.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf chess.ps kazmir.pdf PixelisAd.pdf RealCities.pdf spec_gs.pdf spec_gv.pdf test.pdf vsem0093.pdf xes2ps-problem.pdf xgfddg.pdf pdfwrite 300 dpi : 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf adesso3.pdf adesso5.pdf adesso7.pdf AdobeLic.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf besttest.pdf brochurep1.pdf bugsample.pdf ca.pdf CAIB_highres_page4.pdf chess.ps dave.pdf DisplayedGood.pdf DisplayedWrong.pdf file.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf japan-.ps japan.ps kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf kshow_with_grestore.ps loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf ngnews.pdf ngnews1.pdf Openhuis_pdf_zw.pdf pdftops.pdf prfmm.pdf prob.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test.pdf test2.pdf test2a.pdf textsavematrix.pdf tpc2.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf xngnews.pdf[src/gxdtfill.h 1.16]
2004-02-16 15:26 Igor Melichev
A new implementation of shadings, step 7. DETAILS : Documenting the current state of the development, because we need to delay the project. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.13]
Adapt makefile support for compiling in zlib to support v1.2.x rather than 1.1.x. Linking to a shared version is unaffected. DETAILS: The zlib source was re-arranged from the 1.1.4 to the 1.2.x releases. While binary compatibility was maintained, and we link just fine to a separately build dynamic zlib, our custom makefile support for compiling in the library source no longer works. Rather than add a 'ZLIB_VERSION' makefile variable and the attendent configuration costs, we've simply migrated completely to the new (much faster) 1.2.x series. 1.2.1 is now the minimum version to be used if you wish to compile zlib as part of Ghostscript.[doc/Make.htm 1.71, src/zlib.mak 1.8]
2004-02-16 13:51 Igor Melichev
Improving the filling algorithm, step D6. DETAILS : The algorithm for for filling an individual trapezoid used a wrong formula when rounding a coordinate to pixel index. An intersection of a trapezoid boundary with a scanline is represented as a rational value, in which the fraction represent a part of an unit of 'fixed'. Computing a pixel index, the fraction was ignored. Due to that the spot sides were biased into about 1/256 pixels. The bias appears important when some trapezoids are fixed with swapped coordinate axes, because the bias appears in an opposite direction to one with unswapped axes. Therefore a decomposition of a shading missed pixels, which fall exactly into the biased boundary, causing a dropout. Here is the analyzis of the old rounding : We must paint pixels with index i such that Xl <= i + 0.5 < Xr The condition is is equivalent to Xl - 0.5 <= i < Xr - 0.5 which is equivalent to (is_integer(Xl - 0.5) ? Xl - 0.5 : ceil(Xl - 0.5)) <= i < (is_integer(Xr - 0.5) ? Xr - 0.5 : floor(Xr - 0.5) + 1) (the last '+1" happens due to the strong comparizon '<') which is equivalent to ceil(Xl - 0.5) <= i < ceil(Xr - 0.5) trap_line represents the intersectiion coordinate as a rational value : Xl = xl + e - fl Xr = xr + e - fr gxdtfill.c computes l.x = x0l + (fixed_half - fixed_epsilon). In our notation it is equal to : xl' := xl + 0.5 - e xr' := xr + 0.5 - e Then xl = xl' - 0.5 + e xr = xr' - 0.5 + e Xl = xl' - 0.5 + 2e - fl Xr = xr' - 0.5 + 2e - fr ceil(xl' - 0.5 + 2e - fl - 0.5) <= i < ceil(xr' - 0.5 + 2e - fr - 0.5) which is equivalent to ceil(xl' + 2e - fl) - 1 <= i < ceil(xr' + 2e - fr) - 1 We have : ceil(xl' + 2e - fl) - 1 == (is_integer(xl' + 2e - fl) ? xl' + 2e - fl - 1 : ceil(xl' + 2e - fl) - 1) == (is_integer(xl' + 2e - fl) ? xl' + 2e - fl - 1 : floor(xl' + 2e - fl)) Since -e <= fl < 0, it is equal to (is_integer(xl' + e) && e == fl ? xl' + 2e - fl - 1 : floor(xl' + 2e - fl)) == (is_integer(xl' + e) && e == fl ? xl' + e - 1 : is_integer(xl' + e) && e != fl ? floor(xl' + 2e - fl) !is_integer(xl' + e) && e != fl ? floor(xl' + 2e - fl) !is_integer(xl' + e) && e == fl ? floor(xl' + 2e - fl)) == (is_integer(xl' + e) && e == fl ? xl' + e - 1 : is_integer(xl' + e) && e != fl ? xl' + e : !is_integer(xl' + e) && e != fl ? floor(xl' + e) !is_integer(xl' + e) && e == fl ? floor(xl' + e)) == (is_integer(xl' + e) && e == fl ? xl' + e - 1 : floor(xl')) And the condition is equivalent to (is_integer(xl' + e) && e == fl ? xl' + e - 1 : floor(xl')) <= i < (is_integer(xr' + e) && e == fr ? xl' + e - 1 : floor(xr')) But the old code computes floor(xl') <= i < floor(xr')) Thus when is_integer(xl' + e) && e == fl, it wrongly shifts the rounded boundary in 1 pixel to the left. EXPECTED DIFFERENCES : Almost all tests render differently. Normal 72 dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf bc_02a01_cal.pdf BEST8-99-Path.fh7.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687207.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf CAT_LOGO.ps ccc.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf doretree.ps Es001-01.pdf escher.ps Faktura.pdf file.pdf file2.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf font_issue.pdf frosch.pdf golfer.eps gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan.ps john_clippedimage.pdf js.pdf kazmir.pdf keyboard.pdf knight.pdf KozukaB-ILEmbed.pdf kshow_with_grestore.ps laballade.pdf LD.pdf LMG-40-7161-RU-DUC-01.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf motor.pdf mspro.pdf muur.eps new_rect_nr.pdf ngnews.pdf ngnews1.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf Page01.pdf pdfopt_bug.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf rotate0.pdf rotate270.pdf S2_Digitalproof-Forum_circles.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps si_tg_brochure.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test.pdf test2.pdf test2a.pdf Testform.v1.0.2.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf two_encodings.ps type2accent.pdf type3xshow.eps type42_glyph_index.ps unihaken-color.pdf vasarely.ps vsem0093.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf normal, 300dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf BEST8-99-Path.fh7.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687156.ps Bug687207.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf ccc.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf doretree.ps Encoding.ps Es001-01.pdf escher.ps Faktura.pdf file.pdf file2.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf font_issue.pdf foo.pdf frosch.pdf golfer.eps gs.anotherfailure.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf GS_Stroke_error.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf InstandardBuildChar.ps Jahr2000.pdf japan.ps john_clippedimage.pdf js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf kshow_with_grestore.ps laballade.pdf LD.pdf LMG-40-7161-RU-DUC-01.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf motor.pdf muur.eps NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf Page01.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf probe3.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf ridt91.eps RodinCIDEmbed.pdf rotate0.pdf rotate180.pdf rotate270.pdf rotate90.pdf S2_Digitalproof-Forum_circles.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps si_tg_brochure.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-hyperref.pdf test.pdf test2.pdf test2a.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type2accent.pdf type3xshow.eps type42_glyph_index.ps unihaken-color.pdf UnusualFontMatrix.ps vasarely.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf pdfwrite 72dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf bc_02a01_cal.pdf BEST8-99-Path.fh7.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687207.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf CAT_LOGO.ps ccc.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf doretree.ps Es001-01.pdf escher.ps Faktura.pdf file.pdf file2.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf font_issue.pdf frosch.pdf golfer.eps gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan.ps john_clippedimage.pdf js.pdf kazmir.pdf keyboard.pdf knight.pdf KozukaB-ILEmbed.pdf kshow_with_grestore.ps laballade.pdf LD.pdf LMG-40-7161-RU-DUC-01.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf motor.pdf mspro.pdf muur.eps new_rect_nr.pdf ngnews.pdf ngnews1.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf Page01.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf ridt91.eps RodinCIDEmbed.pdf rotate0.pdf S2_Digitalproof-Forum_circles.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps si_tg_brochure.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test.pdf test2.pdf test2a.pdf Testform.v1.0.2.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type2accent.pdf type3xshow.eps type42_glyph_index.ps unihaken-color.pdf vasarely.ps vsem0093.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf pdfwrite, 300 dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf BEST8-99-Path.fh7.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687156.ps Bug687207.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf CAT_LOGO.ps ccc.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf doretree.ps Encoding.ps Es001-01.pdf escher.ps Faktura.pdf file.pdf file2.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf font_issue.pdf foo.pdf frosch.pdf golfer.eps gs.anotherfailure.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf GS_Stroke_error.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf InstandardBuildChar.ps Jahr2000.pdf japan.ps john_clippedimage.pdf js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf kshow_with_grestore.ps laballade.pdf LD.pdf LMG-40-7161-RU-DUC-01.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf motor.pdf mspro.pdf muur.eps NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf Page01.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf probe3.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf ridt91.eps RodinCIDEmbed.pdf rotate0.pdf rotate180.pdf rotate270.pdf rotate90.pdf S2_Digitalproof-Forum_circles.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps si_tg_brochure.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-hyperref.pdf test.pdf test2.pdf test2a.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type2accent.pdf type3xshow.eps type42_glyph_index.ps unihaken-color.pdf UnusualFontMatrix.ps vasarely.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf[src/gxdtfill.h 1.15]
2004-02-16 09:47 Igor Melichev
Improving the filling algorithm, step D5. DETAILS : It's a preparation for fixing a problem while filling a single trapezoid. This change improved a debug drawing. EXPECTED DIFFERENCES : None.[src/gxdtfill.h 1.14]
2004-02-16 09:13 Igor Melichev
A new implementation of shadings, step 6. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. 1. Implemented a debug drawer draw_wedge. 2. dbg_nofill was not properly initialized. 3. Removed a debuging hack. 4. removed unused variables. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.12]
2004-02-16 09:10 Igor Melichev
Improving the filling algorithm, step D4. DETAILS : It's a preparation for fixing a problem while filling a single trapezoid. This change is algorithmicaly equivalent. EXPECTED DIFFERENCES : None.[src/gxdtfill.h 1.13]
2004-02-16 08:21 Igor Melichev
Improving the filling algorithm, step D2. DETAILS : It's a preparation for fixing a problem while filling a single trapezoid. This change is algorithmicaly equivalent. It branches out the rectangle case and simplifies it. Some macros are moved by necessity. EXPECTED DIFFERENCES : None.[src/gxdtfill.h 1.12]
Fix for 687294 psdcmyk device does not write resolution correctly to PSD files. This change adds a 'ResolutionInfo structure' into the 'Image Resources' section of the output file. This structure specifies the horizontal and vertical resolution of the image. (Note: Adobe's support of asymetric resolutions is poor.)[src/gdevpsd.c 1.6]
2004-02-15 14:51 Igor Melichev
Fix: Improving the documentation (comments) about the filling algorithm, improved. DETAILS : The prevoius change to the comment appears wrong, i.e. the old expression "x + xf/h + 1" appears correct due to compute_ldx subtracts h from the remainder but doesn't add 1 to the integer part, which is x. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.13]
2004-02-15 11:31 Igor Melichev
A new implementation of shadings, step 5. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. It fixes some dropouts. 1. Improved the documentation (comments). 2. Improved the debug painting with NEW_TENSOR_SHADING_DEBUG. 3. Fixed bugs in the linear equation solver. 4. Improved the wedge generation. 5. Reduced the usage of transpozed coordinates. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.11]
2004-02-15 11:28 Igor Melichev
Fix: Improving the documentation (comments) about the filling algorithm. DETAILS : We believe that the comment about "x, xf" was wrong. Note tha the old expression was "x + xf/h + 1", and we changed it to "x + xf/h". We believe that the new one corresponds to the code. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.12, src/gxdtfill.h 1.11]
2004-02-14 11:57 Igor Melichev
A new implementation of shadings, step 4. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. In the new code wedges were wrong. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.10]
2004-02-14 09:04 Igor Melichev
A new implementation of shadings, step 3. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. In the new code fixed internal wegdes. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.9, src/lib.mak 1.167]
2004-02-14 08:44 Igor Melichev
Fix : Visual trace could miss the current color when reinitialized. EXPECTED DIFFERENCES : None.[src/dwtrace.c 1.6]
Propagate a change from the GS_8_1X branch. AC_CHECK_TYPES takes a comma-sparated list.[src/configure.ac 1.40]
2004-02-13 16:43 Igor Melichev
A new implementation of shadings, step 2. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. In the new code fixed the decomposition except wegdes. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.8, src/lib.mak 1.166]
2004-02-13 08:15 Igor Melichev
pdfwrite : NoEncrypt option by a special customer request, improved. DETAILS : Improving the condition for empty keys. EXPECTED DIFFERENCES : None.[src/gdevpdfo.c 1.28]
2004-02-13 08:08 Igor Melichev
pdfwrite : NoEncrypt option by a special customer request. DETAILS : The implementation isn't fool proof : an inaccurate specification may generate an inconforming document. The specified key is not encrypted in any dictionary. The specification must use an external representation : a name to be prepended with slash, a string to be bracketed, and so on. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.89, src/gdevpdfo.c 1.27, src/gdevpdfp.c 1.37, src/gdevpdfu.c 1.51, src/gdevpdfx.h 1.86]
2004-02-12 16:29 Igor Melichev
Fix : Intel C and Cygwin/gcc compiler warnings. EXPECTED DIFFERENCES : None.[src/gdevpdtc.c 1.33, src/gxcht.c 1.12, src/gxdhtserial.c 1.4, src/gxht.c 1.15, src/gxttfb.c 1.30]
2004-02-12 15:19 Igor Melichev
Improving the filling algorithm, step D1. DETAILS : 1. The 'peak' condition was too weak. Caused minor differences in rasters with dropout prevention. 2. Expanded loop_fill_trap_np in the inner trapezoid loop. This change is algorithmically equivalent. 3. Cleaned the inner loop with moving out the computations if ybot, ytop. This change is algorithmically equivalent. 4. Moved the (ybot < ytop) check outside the trapezoid loop. This change is algorithmically equivalent. 5. Inserted 'const' into loop_fill_trap_np. 6. Inserted the section "Reserved to improve the banding" to simplify experiments with it. EXPECTED DIFFERENCES : 72dpi : 86554321.pdf adesso1.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf CAIB_highres_page4.pdf pstopdf.pdf smdf.90441.102.pdf sports.pdf waterfal.ps 300dpi : Altona.Page_3.2002-09-27.pdf[src/gxfill.c 1.110, src/gxfilltr.h 1.3]
2004-02-12 12:05 Igor Melichev
Fix : Some Intel C compiler warnings. DETAILS : Bug 687292 "General bugs in ghostscript source". "double wxy[2]" was a real bug, but this code fragment never executes with current Ghostscript and GhostPCL interpreters. EXPECTED DIFFERENCES : None.[src/gxfcopy.c 1.41]
2004-02-12 10:28 Igor Melichev
Fix (pdfwrite) : Charproc can change scale before calling setcachedevice. DETAILS : Bug 687290 "pdfwrite generate too large glyphs". To know that CTM changed by a charproc before setcachedevice or setcharwidth, we set identity CTM before entering the charproc. If setcachedevice or setcharwidth decides to fall back to the default implementation, we restore the CTM in there. The condition in gdevpdtt.c 1931 is changed, causing minor differences with Bug687044.ps and muur.eps . We found that a further improvement would be useful for a better handling of a composite font with a Type 3 descendent. Opened the new bug 687298 about this issue. Differences with Bug687044.ps and muur.eps may be related to it. EXPECTED DIFFERENCES : A minor shift of glyphs with pdfwrite : Bug687044.ps muur.eps[src/gdevpdf.c 1.88, src/gdevpdfx.h 1.85, src/gdevpdtt.c 1.73]
2004-02-11 11:20 Igor Melichev
Fix : GS_LIB_DEFAULT was wrong on OpenVMS. DETAILS : Bug 687258 "(VMS) Illustrator 10 eps with spot color crashes ghostscript". EXPECTED DIFFERENCES : None.[src/openvms.mak 1.35]
2004-02-11 11:00 Igor Melichev
A new implementation of shadings, step 1. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. The new code compiles but never tested. EXPECTED DIFFERENCES : None.[src/gxshade6.c 1.7, src/lib.mak 1.165]
Update our copy of the ijs source to the latest cvs source, which includes libtool support for building a shared library version. Closes bug 687278.[ijs/Makefile.am 1.1, ijs/Makefile.in 1.3, ijs/README 1.2, ijs/autogen.sh 1.1, ijs/configure.ac 1.1, ijs/configure.in 1.2, ijs/ijs.c 1.2, ijs/ijs.h 1.2, ijs/ijs.pc.in 1.1, ijs/ijs_client.c 1.2, ijs/ijs_client.h 1.2, ijs/ijs_client_example.c 1.2, ijs/ijs_exec_unix.c 1.2, ijs/ijs_exec_win.c 1.2, ijs/ijs_server.c 1.2, ijs/ijs_server.h 1.2, ijs/ijs_server_example.c 1.2, ijs/ijs_spec.sgml 1.2, ijs/install-sh 1.2, ijs/unistd_.h 1.2]
2004-02-08 17:35 Igor Melichev
Fix: Improving the decision whether the dropout prevention to be applied. DETAILS : 1. The old code applied the dropout prevention if gx_fill_params::adjust = 0. It worked since the latter was set to 0 only for characters. Now we intend to discontinue the fill adjustment with shadings, so the old condition won't be applicable in further revisions. Therefore we reserve the value -1 of gx_fill_params::adjust especially for designating characters with a dropout prevention, and percept it in the filling algorithm (We tried to use new special flag for designeting characters, but it requires an enhancement to the clist language.). 2. The old code has a problem with PaintType 2 fonts : it applied the dropout prevention to strokes. This patch fixes that with checking PaintType in gxtype1.c . EXPECTED DIFFERENCES : A progression with CAT_LOGO.ps due to (2).[src/gxfill.c 1.109, src/gxistate.h 1.20, src/gxtype1.c 1.36, src/zchar42.c 1.15]
2004-02-08 11:29 Igor Melichev
Simplifying the filling algorithm, step C21. DETAILS : Removing the old code DONT_FILTER_SMALL_SEGMENTS 0. EXPECTED DIFFERENCES : None.[src/gx.h 1.42, src/gxfill.c 1.108, src/gxfill.h 1.22, src/gxpflat.c 1.40, src/gzpath.h 1.36]
2004-02-08 10:23 Igor Melichev
Simplifying the filling algorithm, step C20. DETAILS : Removing the old code SCANLINE_USES_ITERATOR 0. EXPECTED DIFFERENCES : None.[src/gx.h 1.41, src/gxfill.c 1.107, src/gxfill.h 1.21, src/gxfillsl.h 1.3, src/gxpcopy.c 1.22, src/gzpath.h 1.35]
2004-02-08 01:46 Igor Melichev
Simplifying the filling algorithm, step C19a. DETAILS : Fixing a comment. EXPECTED DIFFERENCES : None.[src/gxdtfill.h 1.10]
2004-02-08 01:41 Igor Melichev
Simplifying the filling algorithm, step C19. DETAILS : This is an optimization of the trapezoid algorithm : 1. gx_fill_trapezoid_narrow derives a specialization from fill_loop_by_trapezoids__pr. 2. Simplified the GX_FILL_TRAPEZOID template with moving the fill_direct check outside the template. 3. Renamed gx_default_fill_trapezoid_as, gx_default_fill_trapezoid_ns, gx_fill_trapezoid_narrow. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.11, src/gdevddrw.h 1.4, src/gxdtfill.h 1.9, src/gxfilltr.h 1.2]
2004-02-06 11:05 Igor Melichev
Simplifying the filling algorithm, step C18. DETAILS : This is an optimization of the new scanline algorithm. merge_ranges doesnt need to enumerate flattened pieces of monotonic curves. Minor change : renamed "monotonic" into "monotonic_y". EXPECTED DIFFERENCES : None.[src/gxfill.c 1.106, src/gxfill.h 1.20]
2004-02-05 17:59 Igor Melichev
Simplifying the filling algorithm, step C17. DETAILS : Do not filter out short flattened segments. We believe that the old code was not conforming to PLRM due to filtering small segments after flatteingng a curve. We believe that the filtering has 2 purposes : 1. Prevent the filling algorythms from zero length segments; 2. Speed up the filling with reducing the number of vertices in a polygon. The new filling algorithm handles zero length segments with no problem, and the speeding up appears within 1% except for shadings. We believe that the rendering quality is more important. The performance of shadings to be fixed separately. EXPECTED DIFFERENCES : This patch causes rendering differences with almost all of comparefiles : Normal, 72 dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687156.ps bugsample.pdf bulletin.pdf ca.pdf CAIB_highres_page4.pdf ccc.pdf chess.ps chilis_black.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf frosch.pdf golfer.eps gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan-.ps japan.ps js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-setweightvector.ps test.pdf test2.pdf test2a.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps Type11CDevProc.ps Type3stringwidth.ps type42_glyph_index.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps xgfddg.pdf xngnews.pdf Normal, 300dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf CAT_LOGO.ps ccc.pdf chess.ps chilis_black.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf foo.pdf frosch.pdf golfer.eps gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf GS_Stroke_error.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-hyperref.pdf test.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type1-ce1_setcurrentpoint.ps Type3stringwidth.ps type42_glyph_index.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf pdfwrite, 72dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687156.ps bugsample.pdf bulletin.pdf ca.pdf CAIB_highres_page4.pdf ccc.pdf chess.ps chilis_black.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf frosch.pdf golfer.eps gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-setweightvector.ps test.pdf test2.pdf test2a.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps Type11CDevProc.ps Type3stringwidth.ps type42_glyph_index.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps xgfddg.pdf xngnews.pdf pdfwrite, 300dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf ccc.pdf chess.ps chilis_black.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf foo.pdf frosch.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf GS_Stroke_error.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan-.ps japan.ps js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-hyperref.pdf test-setweightvector.ps test.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf[src/gx.h 1.40]
2004-02-05 16:08 Igor Melichev
Simplifying the filling algorithm, step C16. DETAILS : Switching to the new scanline algorithm based on the flattened iterator. Now both the trapezoid and the scanline algorithm use same flattened path. Differences in rasters appears due to 2 reasons : 1. An inprecise expressions used in the old algorithm in gx_curve_x_at_y : the iteration of midpoint_fast accumulates a big rounding error. The new algorithm have smaller error due to 3*log2(N) fraction bits while the coordinate accumulation, where N is the number of flattened segments. 2. The old algorithm used inprecise expressions in pco_monotonize. The new algorithm applies a flattening instead the monotonization. EXPECTED DIFFERENCES : Normal, 72 dpi : 012-09.ps 013-09.ps 020-01.ps 027-05.ps 027-13.ps 045-01.ps 093-01.ps 103-01.ps 118-01.ps 165-01.ps 231-01.ps 233-01.ps 251-01.ps 281-01.ps 289-01.ps 308-04.ps 311-03.ps 442-01.ps 483-01.ps a.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf Bug687207.ps bugsample.pdf chilis_black.pdf DisplayedGood.pdf DisplayedWrong.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps Normal, 300dpi : 012-09.ps 013-09.ps 020-01.ps 027-13.ps 045-01.ps 093-01.ps 103-01.ps 118-01.ps 136-01.ps 165-01.ps 231-01.ps 233-01.ps 251-01.ps 281-01.ps 289-01.ps 442-01.ps 483-01.ps a.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf Bug687207.ps bugsample.pdf chilis_black.pdf chilis_red.pdf DisplayedGood.pdf DisplayedWrong.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps xgfddg.pdf pdfwrite, 72dpi : 012-09.ps 013-09.ps 020-01.ps 027-05.ps 027-13.ps 045-01.ps 093-01.ps 103-01.ps 231-01.ps 233-01.ps 251-01.ps 281-01.ps 308-04.ps 311-03.ps 442-01.ps 483-01.ps 483-05.ps a.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps pdfwrite, 300dpi : 012-09.ps 013-09.ps 020-01.ps 027-13.ps 045-01.ps 093-01.ps 103-01.ps 118-01.ps 136-01.ps 165-01.ps 231-01.ps 233-01.ps 251-01.ps 281-01.ps 442-01.ps 483-01.ps 483-05.ps a.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf Bug687207.ps bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps xgfddg.pdf[src/gx.h 1.39]
2004-02-05 14:39 Igor Melichev
Simplifying the filling algorithm, step C15. DETAILS : This patch changes a disabled code only. The new scanline algorithm performed extra scans within a sampling band. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.105, src/gxfillsl.h 1.2]
2004-02-04 11:42 Igor Melichev
Simplifying the filling algorithm, step C14. DETAILS : Fixing Cygwin/gcc warnings of the previous patch. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.10, src/gxdtfill.h 1.8]
2004-02-04 11:33 Igor Melichev
Simplifying the filling algorithm, step C13. DETAILS : This is a code optimization. It applies templates for generating specialized variants of generic algorithms used for filling a path. Also removed 'assret' which are not longer needed. EXPECTED DIFFERENCES : None.[src/gdevddrw.c 1.9, src/gdevpdtc.c 1.32, src/gxdtfill.h 1.7, src/gxfdrop.c 1.13, src/gxfill.c 1.104, src/gxfill.h 1.19, src/gxfillsl.h 1.1, src/gxfilltr.h 1.1, src/gxfillts.h 1.1, src/lib.mak 1.164]
2004-02-04 10:09 Igor Melichev
Fix (pdfwrite) : provide a compatibility of TEXT_FROM_CHARS to GhostPCL. DETAILS : This is a port of a patch from ghostpcl by Henry Stiles. This btanch never executes with Ghostscript. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.72]
2004-02-02 21:17 Igor Melichev
Allow auto-inline optimization with MSVC. DETAILS : MSVC doesn't assume /Ob2 when /O2 is specified. EXPECTED DIFFERENCES : None.[src/msvccmd.mak 1.14]
2004-02-02 20:24 Alex Cherepanov
Perform sign extension on 64-bit platforms. Partial fix for bug 687029. DETAILS: Genoa test suite considers 64-bit integers to be an error. If we decide to use 32-bit integer arithmetic on any platform this patch should be undone.[lib/gs_ttf.ps 1.36]
2004-02-02 20:14 Igor Melichev
Simplifying the filling algorithm, step C12. DETAILS : This is a code optimization. Some functions are expanded inline. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.103]
2004-02-02 16:25 Igor Melichev
Simplifying the filling algorithm, step C11. DETAILS : This is a code optimization. It reduces the data copying with removing arguments and local variables xlbot, xbot, xltop, xtop, y, y1. Also add_y_line is made inline. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.102]
2004-02-02 14:09 Igor Melichev
Simplifying the filling algorithm, step C10. DETAILS : 1. Scanline algorithm must not apply to spotan device; 2. Removed low useful macro DOUBLE_WRITE_OK. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.101]
2004-02-02 13:53 Igor Melichev
Simplifying the filling algorithm, step C9. DETAILS : This is a code optimization. Removed unuseful computations of a trapeziod widths. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.100]
2004-02-02 12:29 Igor Melichev
Simplifying the filling algorithm, step C8. DETAILS : Reduced outlines for both the trapezoid and the scanline algorithms should be same. This patch fixes that with dropping few rare cases, which never appear with our testbase. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.99]
2004-02-02 11:48 Igor Melichev
Simplifying the filling algorithm, step C7. DETAILS : This is a preparation for removing the coord_near filter from the flattening algorithm. We believe that the the coord_near filter was implemented for two purposes : (1) prevent the filling algorithm from zero-height segments, and (2) speed up the filling with reducing the number of vertices in the polygon. Now the filling algorithms can handle zero length segments due to conformity to gx_flattened_iterator. Thus the reason (1) is not longer important. The skipping of some vertices speeds up in 3% at 600dpi rendering with ppmraw to null file. But sometimes it produces raster distortions, such as an asymmetric raster for symmetric outlines. When we fixed the distortions, the speeding up appears within 0.5%. We decided to remove the coord_near filter, because so small echonony of processor time is less important than the distortions. This patch introduces a new swicth DONT_FILTER_SMALL_SEGMENTS, and make the compilation of coord_near filter to depend on it. EXPECTED DIFFERENCES : None.[src/gx.h 1.38, src/gxfill.c 1.98, src/gxfill.h 1.18, src/gxpflat.c 1.39, src/gzpath.h 1.34]
2004-02-02 08:44 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 14. DETAILS : Elements of pdfmark elements were not encryptrd. Since gs/lib/gs_pdfwr.ps serializes pdfmark elements, we would like to encrypt them before the serialization. However it would require to implement a new PS operator to pass the encription keys from the device to the PDF interpreter. Since this way appears cumbersome, we decided to unserialize data in the device. For doing that we implement a simple parser in pdf_put_composite. EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.50]
[no log message][doc/Release.htm 1.84]
Replace the license header of some of the test scripts with the generic version.[toolbin/tests/check_all.py 1.5, toolbin/tests/check_comments.py 1.3, toolbin/tests/check_dirs.py 1.8, toolbin/tests/check_docrefs.py 1.9, toolbin/tests/check_source.py 1.9, toolbin/tests/gscheck_all.py 1.5, toolbin/tests/gscheck_fuzzypdf.py 1.7, toolbin/tests/gscheck_pdfwrite.py 1.17, toolbin/tests/gscheck_raster.py 1.8, toolbin/tests/gsconf.py 1.10, toolbin/tests/gssum.py 1.6, toolbin/tests/gstestgs.py 1.22, toolbin/tests/gstestutils.py 1.10]
Document that the copyright year needs to be updated in some Windows files for each release.[doc/Release.htm 1.83]
Update copyright date for Windows release to 2004.[src/dwsetup.rc 1.11, src/winint.mak 1.21]
Correct the link to History8.htm.[doc/Readme.htm 1.54]
Fix typo.[doc/Use.htm 1.100]
Change notice in some headers that had been missed during original update to the unified notice.[src/gdevdljm.h 1.8]
Change notice in some headers that had been missed during original update to the unified notice.[src/gdevatx.c 1.9, src/gdevdjet.c 1.11, src/gdevdljm.c 1.11, src/gsovrc.c 1.4, src/gsovrc.h 1.3, src/gxoprect.c 1.5, src/gxoprect.h 1.2]
2004-01-29 09:34 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 13. DETAILS : 1. Disable Encryption version 2 revision 2 with KeyLength > 40 due to an incompatibility to many viewers. 2. Improves the error message format. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.87]
2004-01-28 16:54 Igor Melichev
Simplifying the filling algorithm, step C6. DETAILS : This is a code optimization. It factors out internal constants. The change is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfdrop.c 1.12, src/gxfill.c 1.97, src/gxfill.h 1.17]
2004-01-28 15:08 Igor Melichev
Simplifying the filling algorithm, step C5. DETAILS : This is a code optimization. It simplifies argument lists. The change is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfdrop.c 1.11, src/gxfill.c 1.96, src/gxfill.h 1.16]
2004-01-28 09:05 Igor Melichev
Fix (the new TT interpreter) : A bad pointer enumerated relocating gx_ttfReader. DETAILS : gx_ttfReader::pfont from a global to a local memory. Now we set it to a non-NULL value only during a TT data access, when the garbager is not invoked. EXPECTED DIFFERENCES : None.[src/gstype42.c 1.42, src/gxccman.c 1.24, src/gxttfb.c 1.29, src/gxttfb.h 1.10]
2004-01-27 16:07 Igor Melichev
Fix (TT grid fitting) : A garbager descriptor was wrong. DETAILS : It caused a crash running all comparefiles with ppmraw in a single job. EXPECTED DIFFERENCES : None.[src/gzspotan.h 1.6]
2004-01-27 16:05 Igor Melichev
Fix : Partially restoring the old behavior of the filling algorithm. DETAILS : When we dropped the compatibility with the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004061.html, one case of the flattening condition was not perfect. Sorry for detecting this late. Now we put another condition, which differs from both the old and the last one, but the new one is symmetric and provides lesser distortions. EXPECTED DIFFERENCES : This change causes a massive difference, which may partially undo the difference of the patch mentioned above. Here is a list of expected differences agains the current CVS HEAD : normal, 72dpi : 000040cf.000_60.pdf 001-01.ps 01_001.pdf 020-01.ps 027-09.ps 045-01.ps 093-01.ps 109-01.ps 159.pdf 175-01.ps 251-01.ps 281-01.ps 289-01.ps 335-01.ps 336-01.ps 455690.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso7.pdf adesso8.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf besttest.pdf budget2.pdf budget2_ai87.pdf Bug687044.ps bulletin.pdf ccc.pdf dave.pdf Dave_Barry.pdf Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf Jahr2000.pdf japan.ps js.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf prfmm.pdf prob.pdf pstopdf.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf Svd.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf normal, 300dpi : 289-01.ps a.pdf adesso6.pdf Altona-Testsuite_p2_S_x3.pdf besttest.pdf Bug687044.ps bulletin.pdf BW0696FOLD1FRONT.pdf fonts.pdf HeiseiMinStd.pdf japan.ps js.pdf keyboard.pdf mbb-with-space.ps NIL_0003.pdf pdftops.pdf prob.pdf pstopdfO3.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test_multipage_prob.pdf waterfal.ps womanface.pdf pdfwrite 72 dpi : 000040cf.000_60.pdf 001-01.ps 01_001.pdf 020-01.ps 045-01.ps 093-01.ps 109-01.ps 159.pdf 175-01.ps 251-01.ps 281-01.ps 335-01.ps 336-01.ps 455690.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso7.pdf adesso8.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf besttest.pdf budget2.pdf budget2_ai87.pdf Bug687044.ps bulletin.pdf ccc.pdf dave.pdf Dave_Barry.pdf Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf Jahr2000.pdf japan.ps js.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf prfmm.pdf prob.pdf pstopdf.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf Svd.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf pdfwrite, 300 dpi : a.pdf adesso6.pdf Altona-Testsuite_p2_S_x3.pdf besttest.pdf Bug687044.ps bulletin.pdf BW0696FOLD1FRONT.pdf fonts.pdf HeiseiMinStd.pdf japan.ps js.pdf keyboard.pdf mbb-with-space.ps NIL_0003.pdf pdftops.pdf prob.pdf pstopdfO3.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test_multipage_prob.pdf waterfal.ps womanface.pdf[src/gxpflat.c 1.38]
Pass on the CPPFLAGS settings from the configure script into GCFLAGS. Some users expect to be able to add include paths through the environment this way. Suggestion from Len Makin.[src/Makefile.in 1.32]
2004-01-26 23:51 Igor Melichev
Simplifying the filling algorithm, step C4. DETAILS : In the enabled code this change is algorithmically equivalent. In the disabled code it provides a variable threshold for the 'coord_near' predicate. Doing so because the old scanline algorithm uses a zero threshold. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.95, src/gxfill.h 1.15, src/gxpflat.c 1.37, src/gzpath.h 1.33]
2004-01-26 22:35 Igor Melichev
Updating the ps2pdf documentation.[doc/Ps2pdf.htm 1.64]
2004-01-26 22:16 Igor Melichev
Simplifying the filling algorithm, step C3. DETAILS : The enabled variant of the scanline algorithm was unintentionally modified by a recent patch. Rather the change was equivalent, we prefer to clean it. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.94]
Correct typo -- position of " in example command. Thanks to Ulf-Dietrich Braumann of Leipzig University for this.[doc/Ps2pdf.htm 1.63]
2004-01-26 15:27 Igor Melichev
Simplifying the filling algorithm, step C2. DETAILS : This change modifies a disabled code only. It fixes a bug discovered with chilis_black.pdf . EXPECTED DIFFERENCES : None.[src/gxfill.c 1.93]
2004-01-26 13:20 Igor Melichev
Simplifying the filling algorithm, step C1. DETAILS : This starts a neqw series about the scanline algorithm. The purpose is to use same numeric method as in the trapezoid algorithm. This change modifies a disabled code only. 1. Defines new switch SCANLINE_USES_ITERATOR in gx.h . 2. Replaces curve_cursor with gx_flattened_iterator in the scanline algorithm. 3. Provides same Y-list contents as for the trapezoid algorithm. EXPECTED DIFFERENCES : None.[src/gx.h 1.37, src/gxfill.c 1.92, src/gxfill.h 1.14, src/gxpcopy.c 1.21, src/gzpath.h 1.32]
2004-01-26 13:13 Igor Melichev
Fix : gx_flattened_iterator::last_filtered1_i could left uninitialized. DETAILS : It was a bug, which our testbase did not detect. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.91, src/gxpflat.c 1.36, src/gzpath.h 1.31]
2004-01-26 11:15 Igor Melichev
Simplifying the filling algorithm, step B10, final in this series. DETAILS : Oops, the previous patch appears not final in B series. This one is. It removes an obsolete code from gxpcopy.c . EXPECTED DIFFERENCES : None.[src/gxpcopy.c 1.20]
2004-01-25 14:23 Igor Melichev
Simplifying the filling algorithm, step B9, final in this series. DETAILS : It finally removes macros, which are not longer useful. It doesn't change the algorithm. EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.35]
2004-01-25 13:55 Igor Melichev
Simplifying the filling algorithm, step B8. DETAILS : It finally drops the compatibility to the old code, making the result to get the maximal regularity. Minor change : improved a comment. EXPECTED DIFFERENCES : Normal, 72 dpi : 000040cf.000_60.pdf 001-01.ps 01_001.pdf 020-01.ps 027-09.ps 045-01.ps 093-01.ps 109-01.ps 159.pdf 175-01.ps 251-01.ps 281-01.ps 289-01.ps 335-01.ps 336-01.ps 455690.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso7.pdf adesso8.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf besttest.pdf budget2.pdf budget2_ai87.pdf Bug687044.ps bulletin.pdf ccc.pdf dave.pdf Dave_Barry.pdf Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf Jahr2000.pdf japan.ps js.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf prfmm.pdf prob.pdf pstopdf.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf Svd.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf pdfwrite, 72dpi : 000040cf.000_60.pdf 001-01.ps 01_001.pdf 020-01.ps 045-01.ps 093-01.ps 109-01.ps 159.pdf 175-01.ps 251-01.ps 281-01.ps 335-01.ps 336-01.ps 455690.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso7.pdf adesso8.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf besttest.pdf budget2.pdf budget2_ai87.pdf Bug687044.ps bulletin.pdf ccc.pdf dave.pdf Dave_Barry.pdf Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf Jahr2000.pdf japan.ps js.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf prfmm.pdf prob.pdf pstopdf.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf Svd.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf normal, 300 dpi : 289-01.ps a.pdf adesso6.pdf Altona-Testsuite_p2_S_x3.pdf besttest.pdf Bug687044.ps bulletin.pdf BW0696FOLD1FRONT.pdf fonts.pdf HeiseiMinStd.pdf japan.ps js.pdf keyboard.pdf mbb-with-space.ps NIL_0003.pdf pdftops.pdf prob.pdf pstopdfO3.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps sports.pdf test_multipage_prob.pdf waterfal.ps womanface.pdf pdfwrite, 300 dpi : a.pdf adesso6.pdf Altona-Testsuite_p2_S_x3.pdf besttest.pdf Bug687044.ps bulletin.pdf BW0696FOLD1FRONT.pdf fonts.pdf HeiseiMinStd.pdf japan.ps js.pdf keyboard.pdf mbb-with-space.ps NIL_0003.pdf pdftops.pdf prob.pdf pstopdfO3.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test_multipage_prob.pdf waterfal.ps womanface.pdf[src/gxpflat.c 1.34]
2004-01-25 11:49 Igor Melichev
Simplifying the filling algorithm, step B7. DETAILS : 1. Removed FLATTENED_ITERATOR_HEAVY_SELFTEST 0 because it is unuseful. 2. Simplified gx_flattened_iterator__next_filtered. This change is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.33]
2004-01-25 11:21 Igor Melichev
Simplifying the filling algorithm, step B6. DETAILS : The previous patch left some rudinents, removing them now : 1. Switch off the self-testing. 2. Remove gx_check_nearly_collinear. 3. Removed the CURVED_TRAPEZOID_FILL0_COMPATIBLE 0 section from gx_flattened_iterator__prev_filtered because it can't provide the backscan consistency. EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.32]
Fix for Bug 687255 pcl output shifted to bottom of page. Correct the order of the PCL commands at the start of page for the ljet devices. DETAILS: This problem surfaced when a previous fix 686815 was made. That fix corrected a line of code which was setting the page seize in the output file. With the correct page size being specified in the output file, there were some side effects. Setting the page size resets several other items, including the starting page X and Y offsets. The fix for this problem consists of simply moving the setting of the page size three lines earlier in the file. Now the page size is set prior to the page X and Y offsets, which are set as part of this line: fputs(page_init, prn_stream);[src/gdevdljm.c 1.10]
2004-01-24 10:45 Igor Melichev
Simplifying the filling algorithm, step B5. DETAILS : 1. Removed the 'filtered2' subclass of gx_flattened_iterator; 2. Renamed the 'filtered1' subclass to 'filtered'. 3. Removed CURVED_TRAPEZOID_FILL_HEAVY_TEST. 4. Removed the CURVED_TRAPEZOID_FILL0_COMPATIBLE 0 section from gx_flattened_iterator__prev_filtered because it can't provide the backscan consistency. 5. Made other configuration flags to be local for gxpflat.c . EXPECTED DIFFERENCES : None.[src/gx.h 1.36, src/gxfill.c 1.90, src/gxpflat.c 1.31, src/gzpath.h 1.30]
Add check for missing raster image before getting the date of the raster. If raster is missing, run update_***baseline script to generate it since the file must be new since the last regression run. Bug 687245.[toolbin/tests/gscheck_pdfwrite.py 1.16, toolbin/tests/gscheck_raster.py 1.7]
2004-01-23 16:46 Igor Melichev
Removed the obsolete configuration switches NEW_TT_INTERPRETER and TT_GRID_FITTING. DETAILS : It doesn't change the algorithm. EXPECTED DIFFERENCES : None.[src/gsfont.c 1.31, src/gsfont.h 1.10, src/gstext.c 1.16, src/gstype42.c 1.41, src/gx.h 1.35, src/gxccache.c 1.29, src/gxccman.c 1.23, src/gxchar.c 1.39, src/gxfcache.h 1.25, src/gxfont42.h 1.19, src/gxtext.h 1.14, src/gxttfb.c 1.28, src/zchar42.c 1.14, src/zusparam.c 1.12]
2004-01-23 16:41 Igor Melichev
Fix (the new TT interpreter) : st_gs_text_enum_max_ptrs was wrong. DETAILS : This doesn't change the algorithm because this constant is never used. EXPECTED DIFFERENCES : None.[src/gxtext.h 1.13]
2004-01-23 16:35 Igor Melichev
Fix (the new TT interpreter) : A bad pointer enumerated relocating gs_text_enum_s. DETAILS : gs_text_enum_s::pair pointed to an array element, rather than to to an object start. Improving text_enum_enum_ptrs and text_enum_reloc_ptrs with a special processing of this pointer, being similat to one used in font_dir_enum_ptrs. EXPECTED DIFFERENCES : None.[src/gstext.c 1.15, src/gxfcache.h 1.24, src/lib.mak 1.163]
2004-01-23 14:05 Igor Melichev
Simplifying the filling algorithm, step B4. DETAILS : Removed old configuration flags from gxfill.c . It doesn't change the algorithm. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.89]
2004-01-23 13:25 Igor Melichev
Simplifying the filling algorithm, step B3. DETAILS : 1. Removed the disabled code MERGE_COLLINEAR_SEGMENTS 0 2. Removed the disabled code CURVED_TRAPEZOID_FILL 0 3. Removed the dependence on TT_GRID_FITTING from gxfill.c . EXPECTED DIFFERENCES : None.[src/gx.h 1.34, src/gxfdrop.c 1.10, src/gxfill.c 1.88, src/gxfill.h 1.13, src/gxpath.h 1.12, src/gxpcopy.c 1.19, src/gxpflat.c 1.30, src/gzpath.h 1.29]
2004-01-23 12:35 Igor Melichev
Simplifying the filling algorithm, step B2. DETAILS : This patch disables the MERGE_COLLINEAR_SEGMENTS section. It was an old unuseful optimization, which we decided to cancel. For more information see the log message of the previous patch. EXPECTED DIFFERENCES : Normal, 72dpi : 014-13.ps 027-09.ps 036-01.ps 045-01.ps 083-13.ps 175-01.ps 1_2001.pdf 245-01.ps 255-01.ps 268-04.ps 268-05.ps 281-01.ps 298-09.ps 321-09.ps 477-03.ps 86554321.pdf a.pdf acrobat.pdf adesso5.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf besttest.pdf brochurep1.pdf bugsample.pdf ca.pdf CAIB_highres_page4.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf dave.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf mbb-with-space.ps messenger16.pdf NECPNTD.pdf prob.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf Svd.pdf tiger.eps time1.pdf vasarely.ps waterfal.ps womanface.pdf xgfddg.pdf Normal, 300dpi : Almost ALL FILES RENDER DIFFERENTLY. 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-06.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf acrobat.pdf adesso1.pdf adesso3.pdf adesso5.pdf adesso7.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf brochurep1.pdf budget2.pdf bug-gstest.pdf bugsample.pdf bulletin.pdf CAIB_highres_page4.pdf CAT_LOGO.ps chess.ps chilis_black.pdf chstudy.pdf dave.pdf DisplayedGood.pdf DisplayedWrong.pdf Faktura.pdf file.pdf fonts.pdf fonttest.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf p2b-100.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf rotate90.pdf S2_Digitalproof-Forum_x3k.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test.pdf test2.pdf test2a.pdf TextRize.pdf textsavematrix.pdf tiger.eps type2accent.pdf waterfal.ps wrapper-gs7.pdf xgfddg.pdf xngnews.pdf pdfwrite, 72dpi : 012-09.ps 013-09.ps 014-13.ps 027-09.ps 036-01.ps 045-01.ps 083-09.ps 083-13.ps 175-01.ps 1_2001.pdf 205-05.ps 205-09.ps 245-01.ps 255-01.ps 268-04.ps 268-05.ps 281-01.ps 477-03.ps 86554321.pdf a.pdf acrobat.pdf adesso5.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf besttest.pdf brochurep1.pdf Bug687044.ps bugsample.pdf ca.pdf CAIB_highres_page4.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf dave.pdf fonttest.pdf golfer.eps H00216q.pdf HeiseiMinStd.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf mbb-with-space.ps messenger16.pdf NECPNTD.pdf prob.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf Svd.pdf tiger.eps time1.pdf tpc2.ps waterfal.ps womanface.pdf xgfddg.pdf pdfwrite, 300dpi : Almost ALL FILES RENDER DIFFERENTLY. 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-06.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf acrobat.pdf adesso1.pdf adesso3.pdf adesso5.pdf adesso7.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf brochurep1.pdf budget2.pdf bug-gstest.pdf Bug687044.ps bugsample.pdf bulletin.pdf CAIB_highres_page4.pdf chess.ps chilis_black.pdf chstudy.pdf dave.pdf DisplayedGood.pdf DisplayedWrong.pdf Faktura.pdf file.pdf fonts.pdf fonttest.pdf golfer.eps gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf p2b-100.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test.pdf test2.pdf test2a.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps type2accent.pdf waterfal.ps wrapper-gs7.pdf xgfddg.pdf xngnews.pdf[src/gx.h 1.33]
2004-01-23 10:05 Igor Melichev
Simplifying the filling algorithm, step B1. DETAILS : This starts a new sequence of patches to the filling algorithm. It's goal is a further simplification. We deetected that MERGE_COLLINEAR_SEGMENTS 1 section is an old optimization, which speeds up in 1.3% and complicates the code in 30%. Besides that, it causes inprecise results with the dropout prevention. At last, the name "MERGE_COLLINEAR_SEGMENTS" doesn't reflect its effect : actually it merges segments nearly parallwel to coordinate axis, which may be unlimitedly long and have an unlimited angle. Therefore we believe that this optimization is not well defined, appears unuseful, and to be cancelled. This patch is a preparation for removing the MERGE_COLLINEAR_SEGMENTS section. We made this switch global and we bracketed more code sections, which appear unuseful without MERGE_COLLINEAR_SEGMENTS. This patch almost is a change to a disabled code. But the change to gxfill.c ln 1238,1241 goes to the enabled code and appears algorithmically equivalent : with MERGE_COLLINEAR_SEGMENTS 1 this branch is equivalent to noop. EXPECTED DIFFERENCES : None.[src/gx.h 1.32, src/gxfill.c 1.87, src/gxpflat.c 1.29]
2004-01-22 11:36 Igor Melichev
Fix : A bug in ttfmain.c caused a heap damage. DETAILS : Bug 687254 "writing pcl segfaults". EXPECTED DIFFERENCES : None with comparefiles.[src/ttfmain.c 1.22]
2004-01-22 09:22 Igor Melichev
Fix : pco_accurate didn't work for curves with zero derivative. DETAILS : Bug 687266 "Accurate curves may be inaccurate.". EXPECTED DIFFERENCES : None, because normally PS doesn't use "true .setaccuratecurves". Testing with "true .setaccuratecurves", got no difference with -r72. Thus our testbase doesn't contain interesting curves.[src/gxpcopy.c 1.18]
Create a new dynamic header 'gconfigd.h' for non-platform-specific defines. Variables like GS_LIB_DEFAULT which were previously tacked onto the end of gconfig.h have been moved to the new header. This change is necessary to pass the default path for the persistent cache from the makefile. DETAILS: The persistent cache is implemented in the gp layer, but previously it was illegal to access gconfig.h from code inside the graphics library, it the sense that the build would fail. This is because of the crazy way operator definitions are collected in dev files before they are consolidated in gconfig.h. We don't want to use gconfigv.h because that header is platform-specific is generated by different code on every platform. Therefore, while this isn't a real fix for gconfig.h circular inclusion issue, a new header is reasonably motivated.[src/gp_unix_cache.c 1.2, src/gs.mak 1.25, src/gscdef.c 1.42, src/iconf.c 1.7, src/int.mak 1.122, src/lib.mak 1.162, src/unix-aux.mak 1.12]
2004-01-21 13:55 Igor Melichev
Fix : Don't apply pco_accurate when filling a path. DETAILS : When a path is is being stroked, it first converts to the stroke outline, and pco_accurate is being applied. When the stroke outline is being filled, pco_accurate was applied at second time with no useful reason. When it fills a character, pco_accurate disturbs the hinted outline. Thus it must not apply with 'fill' in any case. EXPECTED DIFFERENCES : None, because normally PS doesn't use "true .setaccuratecurves". Testing with "true .setaccuratecurves", almost all tests render differently due to characters, and we believe it's a progression.[src/gxfill.c 1.86]
2004-01-21 13:38 Igor Melichev
Fix : The dropout prevetion did not work with "true .setaccuratecurves". DETAILS : Bug 687265 "adjust_point_to_tangent goes out the bbox". EXPECTED DIFFERENCES : None, because normally PS doesn't use "true .setaccuratecurves".[src/gxpcopy.c 1.17]
2004-01-21 10:17 Igor Melichev
Fix (pdfwrite) : Type 3 characters were missed in the Widths array. DETAILS : Bug 687242 "ghostscript generates incorrect pdf file". A wrong character index was used passing characters to adjust_first_last_char, causing the domain of the Widths array be smaller than necessary. EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.52]
Replace a fixed-filename tempfile fopen with gp_open_scratch_file() for improved robustness in the pnga device. Part of the fix for bug 687243. DETAILS: This is an experimental device to preserve pdf transparency into a png rasterization and is distinct from the pngalpha device. I doesn't actually work for me and so may be suffering from bit rot; however the change compiles and should be correct.[src/gdevpnga.c 1.8]
Some additional clarification on the new pdfwrite encryption user parameters.[doc/Ps2pdf.htm 1.62]
Improve wording and html formatting of recent documentation additions.[doc/News.htm 1.142, doc/Ps2pdf.htm 1.61]
2004-01-20 15:08 Igor Melichev
Fix : The PCL interpreter doesn't provide pattern streams (continued). DETAILS : 1. Restored the PATTERN_STREAM_ACCUMULATION 0 code from gdevpdfv.c revision 1.27. It provides a conversion of a pattern tile into a PDF pattern object. 2. Passed have_pattern_streams to corresponding parts of pdfwrite. 3. Added a check for have_pattern_streams into zpcolor.c . It is useful for debugging PS interpreter with passing have_pattern_streams=false to gs_state_set_client. With PS interpreter the new code never executes (unless one changes the call to gs_state_set_client). EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.46, src/gdevpdfg.h 1.29, src/gdevpdfv.c 1.33, src/int.mak 1.121, src/zpcolor.c 1.12]
Correct a typo in the previous commit.[src/gp_unifs.c 1.17]
Save the original filename template for use in the error message when mkstemp() fails. According to the man page mkstemp() can clobber the contents of fname if it does not succeed. Part of the fix for bug 687243.[src/gp_unifs.c 1.16]
Remove some very old scripts which contain /tmp races, a security risk should someone actually try to use them. Part of the fix for bug 687243.[lib/pj-gs.sh 1.4, lib/sysvlp.sh 1.4]
2004-01-19 20:15 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 12. DETAILS : With no encryption strings in the Info dictionary got excessive brackets. Bug 687263 "Invalid producer / author / creator fields in PDF". EXPECTED DIFFERENCES : None.[src/gdevpdfu.c 1.49]
2004-01-19 16:52 Igor Melichev
Fix (PDF interpreter) : CropBox computed wrongly. DETAILS : Bug 687244 "wrong interpretation of negative mediabox coordinates". The bug title appears incorrect. Actually the problem is caused by negative CropBox coordinates. .pdfshowpage_Install translates the coordinate system to provide positive coordinates, but pdfshowpage_finish did not account the translation when writing the CropBox. Therefore it the resulting CropBox was inconsistent with the painting when the source CropBox uses negative coordinates. EXPECTED DIFFERENCES : A progression with vtm2k.pdf .[lib/pdf_main.ps 1.84]
2004-01-19 12:32 Igor Melichev
pdfwrite : Merge redundant images (continued). DETAILS : Bug 687224 "large pdf file size". The patch http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003988.html appears incomplete, because it works only with << /EncodeColorImages false >> setdistillerparams The problem happens due to Decode arrays considered always unequal. This patch : 1. Implemets cos_array_equal. 2. Applies it properly to subobjects (particularly to Decode). 3. Fixes the function cos_dict_equal - it was asymmetric. 4. Improves the error processing while object comparizon. EXPECTED DIFFERENCES : None in rasters, some PDFs become shorter.[src/gdevpdfo.c 1.26]
2004-01-19 09:41 Igor Melichev
Fix : The PCL interpreter doesn't provide pattern streams. DETAILS : gx_pattern_cache_lookup falied when called by the PCL interpreter because the PCL interpreter doesn't provide high level pattern streams. Actially the compatibility of the graphics library to the PCL interpreter was broken since gsptype1.c revision 1.16. This patch introdices a new argument for the function gs_state_set_client. Using the argument, a client tells to the graphics library whether the client provides pattern streams. If not, the graphics librery emulates the old behavior based on raster parretns only. The new flag gs_imager_state::have_pattern_streams stores the compatibility mode. We would prefer it to be a member of the graphics library instance, but the instance is not implemented yet. Storing it to gs_imager_state may cause some undeserable effects, especially when a device creates a temporary graphic state for an internal use (the clist device is an example). We assume that none of devices provides pattern streams, and this assumption should be reasonable for current applications. The mechanizm for generating patters streams is still coded specifically to the PS interpreter in pattern_paint_prepare in zpcolor.c . This solution to be considered as a temporary one. We should refactor it into 2 parts : one specific for the PS interpreter, and another one being common for all applications, which should be a part of the graphics library. This patch had passed the regression test with the PS interpreter, but it was not tested with the PCL interpreter. Debugging it with PCL to be a next step. EXPECTED DIFFERENCES : None.[src/gsistate.c 1.9, src/gsptype1.c 1.18, src/gsstate.c 1.23, src/gxistate.h 1.19, src/gxstate.h 1.9, src/zgstate.c 1.9]
Fix for "687252 subfiledecode errors on includes greater than the size of a uint". In spite of the bug name, the problem is not related to the actual size of the subfile or to the size of a uint. The actual problem is a missing required parameter: EODCount. However Adobe once again ignores the missing parameter and what is specified in the PRLM-3rd. DETAILS: The given test file has a SubFileDecode filter without the required EODCount parameter. Ghostscript is rejecting the test file because the parameter is not defined. The RangeCheck error message is the result of the following piece of code in zfilter.c: if ((code = dict_int_param(op, "EODCount", 0, max_int, -1, &count)) < 0) return code; This sets a default value of -1 for EODCount and then checks it against the range 0 to max_int. Thus when EODCount is not found we get the rangecheck since -1 is outside the allowed range. In spite of the fact that the EODCount is a required parameter, Adobe Distiller 6.0, my CP1700PS printer, and CPSI 3010.105 print this file without complaint. This fix changes the default value to 0 to match Adobe and adds a comment explaining why the code differs from the spec.[src/zfilter.c 1.10]
2004-01-16 12:36 Igor Melichev
Fix (type 1 hinter) : Wrong outline with a huge scale. DETAILS : An arithmetic error happened when scaling a glyph to a huge size (about 100000 pixels), causing a wrong outline. Actually some coordinate values were replaced with zeros. Thanks to Jeong Kim for detecting that. The bug was detected with -r1500 with the test file of the bug 686975 "Black box when converting to tiff". Note that the bug report is wrong : it says that the document with -r150 is bad and -r1500 is good. Comparing rasters with Adobe we concluded exactly vise versa : -r150 was compatible and -r1500 was incompatible. After this patch both resolutions are compatible to Adobe. Probably the user won't like them due to a bug in the document : it paints a huge glyph, which is a hundred times bigger than the page size. The document needs a fix. EXPECTED DIFFERENCES : None with comparefiles.[src/gxhintn.c 1.42]
2004-01-16 09:47 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 11. DETAILS : Improving a PDF 1.3 parameter conformity check. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.86]
2004-01-16 09:24 Igor Melichev
Documenting new features of gs8.30 . DETAILS : This inserts some new reference points in the documentation. Maybe someone will like to restructurize it.[doc/Language.htm 1.83, doc/News.htm 1.141, doc/Ps2pdf.htm 1.60, doc/Use.htm 1.99]
Fix for 687247 x11 device fails with CMYK on 8bit display. DETAILS: Inside gxcmap.c, the handling of color mapping for most devices is either halftoned or direct. However the x11 device when in 8 bit mode, and possibly other 256 color devices, use a slightly different path. First the color is processed in direct mode. If a color is not in the palatte and halftoning is required, then gx_no_color_index is returned as a color value. Then the color is processed as being halftoned. However this last path was dropped from CMYK colors with revision 8.0.[src/gxcmap.c 1.18]
2004-01-16 02:31 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 10 - beta release. DETAILS : This provides the related documentation. EXPECTED DIFFERENCES : None.[doc/Ps2pdf.htm 1.59]
2004-01-16 02:11 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 9. DETAILS : This fixes the key length problem with << /V 2 /R 3 >> . With << /V 2 /R 2 >> the patched version is still incompatible to Adobe when Length is not 40, but it appears compatible to XPDF. This revision can go to beta. Use << /V 2 /R 2 /Length 40 >> or << /V 2 /R 3 /Length not40 >> - they both should work. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.85]
2004-01-16 02:02 Igor Melichev
Fix (PDF interpreter) Bug in encryption revision 3. DETAILS : It wrongly generated the encryption key with << /V 2 /R 3 >> . With << /V 2 /R 3 >> the patched version is compatible to Adobe. With << /V 2 /R 2 >> the patched version is still incompatible to Adobe when Length is not 40, but it appears compatible to XPDF. EXPECTED DIFFERENCES : None.[lib/pdf_sec.ps 1.13]
2004-01-15 21:44 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 8. DETAILS : This fixes minor problems with parameter consistency. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.84]
Add an RCS Id line to the documentation stylesheet. There's no reason to exempt it.[doc/gs.css 1.3, toolbin/tests/check_source.py 1.8]
Add the Freetype Licence text to the exemptions list for RCS Id lines.[toolbin/tests/check_source.py 1.7]
Add gp_unix_cache.c to the developer documentation's file listing.[doc/Develop.htm 1.130]
2004-01-15 16:08 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 7. DETAILS : The previous patch wrote a dubugging stub. Removing it now. Also improving the log messages because this revision appears better than was explained. It works fine with 40 bits keys and with 128 bits keys. With other key lengthes it creates PDFs that GS can open with either user or owner password, but Adobe Reader 6 doesn't open them, reporting a wrong password. That's a problem though. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.83]
2004-01-15 15:02 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 6. DETAILS : 1. Provide pdfwrite device parameters for encryption revision 3 (PDF 1.5). 2. Check them for consistency and provide reasonable defaults. 3. Provide the encryption version 2 revision 3 (i.e. 48-128 bits keys). It works fine with 40 bits keys. With longer keys it creates PDFs that GS can open with either user or owner password, but Adobe Reader 6 doesn't open them, reporting a wrong password. That's a problem though. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.82, src/gdevpdfp.c 1.36, src/gdevpdfx.h 1.84]
2004-01-15 10:09 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 5. DETAILS : 1. Encrypt strings in CIDSystemInfo. 2. Provide a parent object id writing a cos object. 3. Encrypt strings serializing a cos object. All comparefiles are now passed. EXPECTED DIFFERENCES : None.[src/devs.mak 1.107, src/gdevpdf.c 1.81, src/gdevpdfc.c 1.46, src/gdevpdfo.c 1.25, src/gdevpdfo.h 1.18, src/gdevpdfu.c 1.48, src/gdevpdfx.h 1.83, src/gdevpdtf.c 1.34, src/gdevpdti.c 1.27, src/gdevpdtw.c 1.27, src/gdevpdtw.h 1.4]
Initial commit of the persistent cache implementation. This version supports only the *nix platform and does not include any eviction logic. Also currently the cache directory and empty 'gs_cache' index file must be created manually. DETAILS: Two new calls have been added to the gp layer: gp_cache_insert() and gp_cache_query(). These take a byte buffer as a key under which another buffer can be stored or recalled. In addition to the key, buffers are filed by 'type' which provides a separate namespace for each kind of data. These types should be one of the GP_CACHE_TYPE_* defines in gp.h. The query call takes a callback for allocating the buffer to be filled. Thus, all memory management for the key and value buffers is handled by the client and the query returns the data (if any) within a single call. A pair of postscript test operators, .pcacheinsert and .pcachequery are provided in zmisc.c, however they are disabled by default to prevent access to the cache by malicious postscript programs. They operate only with the 'test' type, so a denial-of-service attack is the only real risk; however we anticipate all access will be from C code. Compile with the DEBUG_CACHE preprocessor symbol to enable these. Improvements and implementations for other platforms are to follow.[src/Makefile.in 1.31, src/gp.h 1.27, src/gp_dvx.c 1.11, src/gp_iwatc.c 1.17, src/gp_mac.c 1.15, src/gp_mswin.c 1.23, src/gp_os2.c 1.30, src/gp_os9.c 1.12, src/gp_unix.c 1.13, src/gp_unix_cache.c 1.1, src/gp_vms.c 1.37, src/gs.mak 1.24, src/unix-aux.mak 1.11, src/zmisc.c 1.6]
2004-01-14 18:05 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 4. DETAILS : It fixes problems with encrypting strings in Indexed color spaces. Strings are not encrypted yet. All comparefiles are now passed except korea.ps . EXPECTED DIFFERENCES : None.[src/devs.mak 1.106, src/gdevpdfc.c 1.45]
2004-01-14 16:04 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 3. DETAILS : It fixes problems with encryption of streams. Strings are not encrypted yet (this may affect some color spaces). Most of Genoa tests now passed. EXPECTED DIFFERENCES : None.[src/gdevpdfj.c 1.29, src/gdevpdfu.c 1.47, src/gdevpdfx.h 1.82, src/gdevpdtb.c 1.23, src/gdevpdti.c 1.26, src/gdevpdtw.c 1.26]
2004-01-14 14:07 Alex Cherepanov
Check for hypot() availability on the configure step, fix the hypot() replacement macro, and deal with MSVC specially. Fix bug 687238.[src/Makefile.in 1.30, src/configure.ac 1.39, src/math_.h 1.6]
2004-01-14 13:45 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 2. DETAILS : It implements the encryption of most PDF streams. Strings are not done yet. It can process 001-01.ps, but there are problems with other files. EXPECTED DIFFERENCES : None.[src/devs.mak 1.105, src/gdevpdf.c 1.80, src/gdevpdfo.c 1.24, src/gdevpdfu.c 1.46, src/gdevpdfx.h 1.81, src/gdevpdti.c 1.25, src/sarc4.c 1.10, src/sarc4.h 1.6]
2004-01-14 07:50 Igor Melichev
pdfwrite : Implementing the PDF 1.4 encryption, step 1. DETAILS : This defines new pdfwrite device parameters OwnerPassword, UserPassword, KeyLength, Permissions, and outputs the Encrypt dictionary if OwnerPassword is specified. PDF data are not encrypted yet. EXPECTED DIFFERENCES : None.[src/devs.mak 1.104, src/gdevpdf.c 1.79, src/gdevpdfp.c 1.35, src/gdevpdfx.h 1.80, src/sarc4.c 1.9, src/sarc4.h 1.5]
Fix to prevent setdistillerparams from erasing the page device or reset the page device parameters. Fixes bugs 563287 and 607425. DETAILS: The .putdeviceparamsonly function defined in gs_setpd.ps is designed to set device properties without clearing or resetting the pagedevice. Both code snippets execute as expected with this change. While the 563287 bug report mentions an attached file, it does not appear to exist anywhere (any more) unless it refers to the little code snippet. Expected Differences: none. Only one of the regression test files, PT.ps, invokes setdistillerparams and this invocation doesn't trip over the problem since distiller params are set before painting anything.[lib/gs_pdfwr.ps 1.37]
2004-01-13 14:03 Igor Melichev
pdfwrite : Implementing the file ID. DETAILS : File ID will be used in PDF encryption. See comment in pdf_compute_fileID. A new function s_MD5E_make_stream is defined to simplify internal interfaces. I'm not sure about the trick "s->strm = s" in s_MD5E_make_stream. Want an approval. EXPECTED DIFFERENCES : None.[src/devs.mak 1.103, src/gdevpdf.c 1.78, src/gdevpdfx.h 1.79, src/lib.mak 1.161, src/smd5.c 1.6, src/smd5.h 1.5]
2004-01-13 07:28 Igor Melichev
Fix (pdfwrite) : Cygwin/gcc compiler warnings.[src/gdevpdfd.c 1.36, src/gdevpdfo.c 1.23]
2004-01-13 07:28 Igor Melichev
Fix (pdfwrite) : Adobe glitches with a small FontMatrix. DETAILS : Bug 687207 "PS file incorrectly converted to PDF". Actually the PDF was fine but Adobe has a precision problem with small FontMatrix. This patch adjusts the FontMatrix of a Type 3 font to a reasonable interval. EXPECTED DIFFERENCES : None with old comparefiles.[src/gdevpdte.c 1.51, src/gdevpdtt.c 1.71, src/gdevpdtt.h 1.21]
2004-01-13 05:32 Igor Melichev
Fixing a punctuation inaccuracy in documentation.[doc/Language.htm 1.82, doc/Use.htm 1.98]
Fix problems with the "image" device when the palette is an 8-bit gray palette (uses the image8 device with num_components == 1). Since the DeviceN changes, changing num_components requires also setting the gray_index value appropriately. Also the rgb to color mapping function did not allow for num_components == 1 and used uninitialized values for the green and blue comonents. Fixes bugs 458261, 686909 and 687204. DETAILS: The gray_index value was being left at GX_CINFO_COMP_NO_INDEX, so the gx_device_has_color macro indicated a color device. This means that when the gs_initialize_wordimagedevice function changed the num_components value to 1, the gray_index was incorrect (should be 0 for a gray shade device). Also the mem_mapped_map_rgb_color function didn't check for num_components == 1, thus using uninitialized cv[1] and cv[2] values and getting incorrect palette selections. Also I optimized the single component case a bit as well as an "early out" for both color and monochrome when diff == 0 (can't get any better than a perfect match). I guess 8-bit monochrome image devices haven't been used much. Expected Differences: none. (we don't test ps2epsi in the regression suite).[src/gdevmem.c 1.7, src/gsdevmem.c 1.5]
Clarify wording in the updated GridFitTT documentation.[doc/Language.htm 1.81, doc/Use.htm 1.97]
Clarify wording and correct some spelling errors in a recent documentation change.[doc/Ps2pdf.htm 1.58]
2004-01-12 14:35 Igor Melichev
Fix (pdfwrite) : A misprint in the previous patch. DETAILS : Don't use the previous revision of gdevpdf.c - it's wrong.[src/gdevpdf.c 1.77]
2004-01-12 14:28 Igor Melichev
pdfwrite : Merge redundant images. DETAILS : Bug 687224 "large pdf file size". With this change pdfwrite compares images for equality and merges same images into a single XObject, except for inline images. A new pdfwrite device parameter MaxInlineImageSize controls inline images. See gs\doc\Ps2pdf.htm . Use it to disable inline images if the source document contains multiple redundant small images. A new vitrtual function cos_object_t::cos_procs->equal is implemented for object comparizon. But the current implementation is restricted with current needs. Particularly it doesn't implement cos arrays, and assumes equal stream segmentation for equal streams. To be improved someday. Note that an image is copied to temporary file before a comparizon. If the image appears redundant, the current implementation sometimes doesn't release the space consumed in the temporary file. Therefore the disk must have enough space for storing all copies. We could improve this using a smarter method than cos_stream_release_pieces, because an image can interlive only with same image of an alternative compression. To be improved someday. EXPECTED DIFFERENCES : None in rasters, some PDFs become shorter.[doc/Ps2pdf.htm 1.57, src/gdevpdf.c 1.76, src/gdevpdfb.c 1.21, src/gdevpdfg.h 1.28, src/gdevpdfi.c 1.50, src/gdevpdfj.c 1.28, src/gdevpdfo.c 1.22, src/gdevpdfo.h 1.17, src/gdevpdfp.c 1.34, src/gdevpdfu.c 1.45, src/gdevpdfx.h 1.78]
2004-01-11 13:53 Igor Melichev
Fix (pdfwrite) : A mangled CFF was written when an Encoding uses 256 glyphs. DETAILS : Bug 687217 "pdfwrite erases a certain type1 font when I used 'space' character" Thanks to Inoue Koich and to Mr. Hirata for the useful information in the Comment #4 of 687217. The reason was an old "NYI" : /* * The count of encoded characters is only a single byte, so we * have to use a supplement for the last character. */ /****** NYI ******/ This patch implements that. EXPECTED DIFFERENCES : None with old compartefiles. mbb-with-space.ps to be added to comparefiles.[src/gdevpsf2.c 1.30]
2004-01-11 11:21 Igor Melichev
Fix : removed dependence on bands in the filling algorithm. DETAILS : Bug 687222 "Raster depends on bands". This patch fixes a known dependence, but doesn't include an attempt to find or fix all possible dependences. It copmutes a next evaluation point over the top band boundary as it would be without a banding, store it into line_list::y_break, and use in proper places of fill_loop_by_trapezoids and fill_loop_by_scan_lines. EXPECTED DIFFERENCES : normal, 72dpi -dMaxBitmap=10000 : None. normal, 72dpi -dMaxBitmap=30000000 : None. normal, 300dpi -dMaxBitmap=10000 : 012-09.ps 036-01.ps 123-05.ps 175-01.ps 226-01.ps 231-01.ps motor.pdf Openhuis_pdf_zw.pdf normal, 300dpi -dMaxBitmap=30000000 : Openhuis_pdf_zw.pdf pdfwrite was not tested.[src/gxfill.c 1.85, src/gxfill.h 1.12]
2004-01-10 18:00 Igor Melichev
Fix (pdfwrite) : Mark copied font's glyph names when reclaiming memory. DETAILS : Bug 687187 "pdfwrite can duplicate glyphs embedding a font". If a font is freed and then reloaded, the glyph names could get different name indices, if the garbager freed the names before the second loading of the font. As the result, the copied font could embed duplicated charstrings. EXPECTED DIFFERENCES : None.[src/gxfcopy.c 1.40]
2004-01-10 12:24 Igor Melichev
Fix (pdfwrite) : Improving heuristics in the compression chooser. DETAILS : Gradients' area was wrongly computed. Fixing it and adjust thresholds to comply with the new computation. Bug 687169 "(pdfwrite) : An imperfect compression choice with dina3_watermark.pdf". Processing comparefiles, with this patch pdfwrite chooses a compression closer to the original document. I noticed 3 tests differing from source : Fixed_Original.pdf loremIpsum.pdf S2_Digitalproof-Forum_x3k.pdf In all 3 tests the images are like a photo, so DCT is the right choice rather than the original Flate or LZW. EXPECTED DIFFERENCES : After pdfwrite the following tests generate a different raster due to DCT/Flate changes : adesso2.pdf adesso5.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf BEST8-99-Path.fh7.pdf besttest.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf Faktura.pdf Fixed_Original.pdf foo.pdf H00216q.pdf kazmir.pdf loremIpsum.pdf MagicEye.pdf Original.pdf S2_Digitalproof-Forum_x3k.pdf si_tg_brochure.pdf test.pdf All them generate a shorter PDF.[src/gdevpdfj.c 1.27, src/gdevpsds.c 1.10]
2004-01-10 12:12 Igor Melichev
Fix (pdfwrite) : A big stack consumption writing a CFF with many glyphs. DETAILS : This is a continuation of the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003887.html . The test file of the Bug 686875 contains a Type 1 font with 1280 glyphs, which overflowed tables in the CFF writer. Now we provide a dynamic allocation of the tables. Bugs 687212, 687233, 687212. The table size for CID fonts are still hardcoded. We believe that they must not be big because with CID fonts glyph names are not used. EXPECTED DIFFERENCES : None.[src/gdevpsf.h 1.26, src/gdevpsf2.c 1.29]
2004-01-09 14:27 Igor Melichev
Fix : Improving vdtrace macros. DETAILS : This fixes the bug 687216 "syntactical problems with vd_* macros", and implements a reading of the view parameters from an ini file. It allows to adjust the view without editing GS sources. The ini file is intentionally made global for all GS installations to simplify their comparizon. EXPECTED DIFFERENCES : None.[src/dwtrace.c 1.5, src/vdtrace.h 1.10]
2004-01-09 13:40 Igor Melichev
Fix : Some of Sun ONE Studio 7 and Cygwin/gcc compiler warnings. DETAILS : Bug 687234 "warnings on Solaris (ghostscript-8.13)" EXPECTED DIFFERENCES : None.[src/devs.mak 1.102, src/gdevpdtc.c 1.31, src/gdevpdtt.c 1.70, src/gxpcopy.c 1.16, src/zfapi.c 1.51]
2004-01-09 13:02 Igor Melichev
Fix (pdfwrite) : Empty clip was written into a charproc. DETAILS : See comment in gdevpdtt.c . Bug 687239 "tiling bug in pdfwrite". This patch also improves a comment in gdevpdti.c . EXPECTED DIFFERENCES : None.[src/gdevpdti.c 1.24, src/gdevpdtt.c 1.69]
2004-01-08 14:02 Igor Melichev
Implementing a True Type grid fitting, step 12, final. DETAILS : This patch switches on the new grid fitter, and provides related changes to the documentation. Minor change : fixed Cygwin/gcc compiler warnings in gzspotan.c . EXPECTED DIFFERENCES : All True type fonts render differently. They present in the following tests : 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf budget2_ai87.pdf bugsample.pdf Faktura.pdf fonts.pdf ICPconcept.pdf keyboard.pdf MagicEye.pdf ngnews.pdf ngnews1.pdf S2_Digitalproof-Forum_x3k.pdf test_multipage_prob.pdf Testform.v1.0.2.pdf xngnews.pdf japan.ps japan-.ps korea.ps MyTest5.ps MyTest6.ps Type11CDevProc.ps type42_glyph_index.ps[src/gx.h 1.31, src/gzspotan.c 1.8, doc/Language.htm 1.80, doc/Use.htm 1.96]
Unequivocally include stdlib.h in echogs.c to avoid a warning on the Sun ONE Studio 7 compiler as reported in bug 687234. DETAILS: The code in echogs.c calls exit() which is defined in stdlib.h. However it was not including that header (except) on VMS because of portability concerns, resulting in the reported 'implicit function definition' warning. The echogs program must be available before genarch runs and the std.h-based portability headers are available, so wide build support for this code is important. However, such platforms are now very old and comments elsewhere in the code suggest that any compiler supporting ANSI prototypes as we now require will also have a stdlib.h that defines exit(). If this change causes a problem, #ifdef code similar to what was used in gp_unix.c can be used instead.[src/echogs.c 1.7]
2004-01-07 11:12 Igor Melichev
Implementing a True Type grid fitting, step 11. DETAILS : This patch changes a disabled code only. It's a furter improvement if the hint generator and the hinter. 1. Improved comments about "overall" hints. 2. Implemented the "autohinting" flag, which tells that alignment zones to be guessed from the hint orientation. 3. Implemented a hint orientation for horizontal stems. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.41, src/gxhintn.h 1.19, src/gxttfb.c 1.27]
Fix a typo in the 64-bit type selection logic. Bug 687237.[src/configure.ac 1.38]
2004-01-06 13:32 Igor Melichev
Implementing a True Type grid fitting, step 10. DETAILS : This patch changes a disabled code only. It fixes minor problems with hint generation : 1. Implemented an "overall" hint, which designates an outer side of a glyph, being nearly parallel to a coordinate axis. It aligns a stem end rather than stem sides, and simulates top/bottom alignment zones. This branch appears low useful and was not enabled. Maybe will remove it later. 2. Change to gxhintn.c is algorithmically equivalent. 3. The default value of GritFitTT is changed to 2, because we can't to provide a compatibility of the autohinted glyph size to the TT interpreter. 4. Improved hint_by_tangent : some slower but a better choice. EXPECTED DIFFERENCES : None.[src/gsfont.c 1.30, src/gxhintn.c 1.40, src/gxhintn.h 1.18, src/gxttfb.c 1.26, src/gzspotan.c 1.7, src/gzspotan.h 1.5]
Fix some warnings reported by the Sun One Studio 7 compiler (and others). Bug 687228.[src/devs.mak 1.101, src/gdevdevn.c 1.13, src/gdevpdfc.c 1.44, src/gdevpdtb.c 1.22, src/gdevpsu.c 1.16, src/gp_unifn.c 1.16, src/gsht.c 1.18, src/gxcmap.c 1.17, src/int.mak 1.120, src/lib.mak 1.160, src/zfapi.c 1.50, src/zfile.c 1.40]
Correct a typo in the checks for stdint fixed-size types. This did not materially affect the behavior of the configure script. Bug 687235.[src/configure.ac 1.37]
Bump the development branch version to 8.30 now that the stable branch has been released as 8.13 and update the date stamp.[doc/News.htm 1.140, lib/gs_init.ps 1.104, src/gscdef.c 1.41, src/version.mak 1.69]
2004-01-05 19:15 Alex Cherepanov
Transliterate '\0' character in PDF names to "BnZr" instead of '?' to reduce the chance of name collision. DETAILS: TeX generates Type 3 fonts with single character glyph names equal to the character codes, i.e. /Encoding [(\000) cvn (\001) cvn ... /? ...] . PDF writer used to transliterate '\0' to '?' because #00 escape is invalid. This conflicts with /? glyph name, which also occurs in the same font. Fix bug 687232.[src/gdevpdfu.c 1.44]
2004-01-05 15:11 Igor Melichev
Implementing a True Type grid fitting, step 9. DETAILS : This patch changes a disabled code only. It fixes minor problems with hing generation. Now the TT grid fitting is working with TextAlphaBits=1, but some improvements still would be useful. TextAlphaBits=1 is not tested yet. EXPECTED DIFFERENCES : None.[src/gxttfb.c 1.25]
2004-01-05 13:05 Igor Melichev
Fix : Removed gx_curve_split due to inprecise implementation. DETAILS : The implemetation of gx_curve_split w3as inprecise. Bug 687177 "gx_curve_split disturbs the bounding box". Removing it because it is not longer in use. EXPECTED DIFFERENCES : None.[src/gxpcopy.c 1.15, src/gzpath.h 1.28]
2004-01-05 12:52 Igor Melichev
Implementing a True Type grid fitting, step 8. DETAILS : 1. Renamed monotonize_internal to gx_curve_monotonize. 2. Allowed the curved trapezoid algorithm for non-characters. 2 fragments changed for this purpose : passed all_bands to intersect_al and removed the restriction in gxfill.c ln 482. This causes minor differences in rasters listed below. 3. Introduced false_stub for better readability. This change is algorithmically equivalent. 4. Improved 2 cases in scan_contour with p.monotonic check. The old code was wrong, but our testbase doesn't have such cases in characters. Discovered with (2). 5. In gxttfb.c applied a curve monotonization after decoding a True Type glyph. It allows to apply Type 1 hints to non-monotonic stems. This change currently is disabled. 6. Added some initializations to quiet the compiler warnings. EXPECTED DIFFERENCES : normal 72dpi : tiger.eps normal 300dpi Es001-01.pdf shading_prob_800.ps type3xshow.eps pdfwrite 72dpi : 027-09.ps pdfwrite 300dpi : 123-05.ps Es001-01.pdf type3xshow.eps None.[src/gxfill.c 1.84, src/gxpcopy.c 1.14, src/gxttfb.c 1.24, src/gzpath.h 1.27]
Fix for fonts being displayed using .notdef character (empty boxes or other appearance). While the test file doesn't follow the PDF 1.3 or later manual recommendations for providing a [1,0] cmap for an embedded symbolic TT font, Adobe Acrobat Reader can display these characters. When the 'post' table doesn't provide the glyphs required by the /Differences list, try another cmap [3,0] to get the correct glyph (names and glyph #'s). Bug #686959 for customer #1060. DETAILS: The Adobe PDF 1.4 Reference Manual has some "hints" for producing portable PDF's, but as far as reading PDF's that don't follow these hints, all that is said (in section 5.5.5, p.333) is: Note: Some popular TrueType font programs contain incorrect encoding information. Implementations of TrueType font interpreters have evolved heuristics for dealing with such problems; those heuristics are not described here. For maximum portability, only well-formed TrueType font programs should be used in PDF files. The approach of trusting the 'post' table unless the glyphs given do not include glyphs that are mentioned in the 'prebuilt_encoding' (Differences), is a heuristic that works for this file and doesn't interfere with any other PDF's in the regression test. The thing about heuristics is that the 'intelligence' they embody is no better than the understanding of the best solution, so this may crop up again later (but we hope not). Note that simply using the 00030000 cmap [3,0] format causes the regression file 'test_multipage_prob.pdf' to fail with some .notdef characters.[lib/gs_ttf.ps 1.35]
2004-01-04 19:59 Igor Melichev
Fix : monotonize_internal didn't work properly. DETAILS : We believe that the new code ever gives monotonic segments, rather than the old one does not - see Bug 687210 "a bug in monotonize_internal". The new code sometimes gives slightly different segments, because the old code applies an incorrect rounding. This causes minor differences in rasters. EXPECTED DIFFERENCES : normal, 72dpi a.pdf ai2.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf normal, 300dpi 093-01.ps a.pdf ai2.pdf Altona.Page_3.2002-09-27.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf pdfwrite, 72dpi : a.pdf ai2.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf pdfwrite, 300dpi : 093-01.ps 483-05.ps a.pdf ai2.pdf Altona.Page_3.2002-09-27.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf 289-01.ps was not tested because it fails.[src/gxpcopy.c 1.13]
2004-01-04 06:12 Igor Melichev
Fix : Trapezoid algorithm could cause topology distortions (continued 2). DETAILS : This is a continuation of the recent patch. This one provides more stability to numeric errors. This patch brings 3 improvements : 1. the error proportion formula is now applied in all cases (one of them was missed by the previous patch). 2. since the intersection point isn't equal to AL_X_AT_Y value, a special care is taken in the dropout prevention code. 3. To provide (2), moved the assignments to x_current, x_next. EXPECTED DIFFERENCES : mormal, 72dpi : 169-13.ps 244-01.ps 86554321.pdf mormal, 300dpi : 012-01.ps 013-01.ps 014-13.ps 032-01.ps 034-01.ps 123-01.ps 123-05.ps 169-13.ps pdfwrite, 72dpi : 102-01.ps 205-13.ps 244-01.ps 86554321.pdf waterfal.ps pdfwrite, 300dpi : 032-01.ps 123-01.ps 123-05.ps 169-13.ps 205-01.ps 205-13.ps 222-13.ps 307-13.ps 289-01.ps was not tested because it fails.[src/gxfdrop.c 1.9, src/gxfill.c 1.83]
2004-01-04 05:37 Alex Cherepanov
Remove spurious stack adjustment that caused /unmatchedmark when the font was loaded from Resource/Fonts/ . Fix bug 687220.[lib/gs_fonts.ps 1.46]
Correct a line ending problem.[src/gp_macio.c 1.33]
2004-01-03 17:50 Igor Melichev
Fix : Trapezoid algorithm could cause topology distortions (continued). DETAILS : This is a continuation of the recent patch. This one provides a better stability to numeric errors : the point bias is inversedly poroportional to the line slope. EXPECTED DIFFERENCES : mormal, 72dpi : None. mormal, 300dpi : 123-05.ps 205-05.ps pdfwrite, 72dpi : None. pdfwrite, 300dpi : None. 289-01.ps was not tested because it fails.[src/gxfill.c 1.82]
2004-01-03 12:34 Igor Melichev
Implementing a True Type grid fitting, step 7. DETAILS : This patch changes a disabled code only. It implements the enhanced logics for the user parameter GridFitTT, and provides TT grid fitting by both coordinates. GridFitTT is documented in gxttfb.c : + /* gs_currentgridfittt values (binary) : + 00 - no grid fitting; + 01 - Grid fit with TT interpreter; On failure warn and render unhinted. + 10 - Interpret in the design grid and then autohint. + 11 - Grid fit with TT interpreter; On failure render autohinted. + */ Changes to gs/doc to be done after the new code is enabled. EXPECTED DIFFERENCES : None.[src/gsfont.c 1.29, src/gxfcache.h 1.23, src/gxttfb.c 1.23, src/zusparam.c 1.11]
2004-01-03 10:38 Igor Melichev
Fix : Trapezoid algorithm could cause topology distortions. DETAILS : There were 2 types of possible distortions : inversed or self-intersecting trapezoids, and overlapping trapezoids. Rather they are pretty rare (and a consequtive pixel miscoverage are extremily rare), they break the topology analyzis with the spotan device. The distortion happen due to inprecize computations of line intersections. The coordinate of the intersection is represented in 'fixed', which can't be precise in most cases. Therefore the intersection point appear slightly shifted. The harmful thing was a different shift of the same point for each of the intersecting lines. This patch brings 2 improvements : 1. Intersecting 2 lines, assign same X to both. A special care is taken about vertical lines. 2. After intersections are computed, we check whether the coordinates appear in a wrong order by X. If so, we fix it with computing the average coordinate and assigning it to all lines. This must give a correct topology with a small processor time expense. Monor change : fixed some Cygwin/gcc warnings. EXPECTED DIFFERENCES : mormal, 72dpi : 123-01.ps 222-01.ps 281-01.ps 327-01.ps mormal, 300dpi : 012-01.ps 013-01.ps 014-13.ps 032-01.ps 083-01.ps 083-05.ps 103-01.ps 118-01.ps 123-01.ps 169-13.ps 205-01.ps 205-05.ps 289-01.ps 298-01.ps 307-13.ps 321-01.ps adesso1.pdf motor.pdf pdfwrite, 72dpi : 102-01.ps 169-13.ps 205-13.ps 222-13.ps 244-01.ps 281-01.ps 298-01.ps 308-04.ps 321-01.ps 321-05.ps 327-01.ps waterfal.ps 205-13.ps pdfwrite, 300dpi : 012-01.ps 012-05.ps 013-01.ps 014-13.ps 027-09.ps 083-13.ps 102-01.ps 123-01.ps 123-05.ps 169-13.ps 205-01.ps 205-13.ps 222-13.ps 307-01.ps 307-07.ps 307-13.ps 289-01.ps was not tested because it fails.[src/gxfill.c 1.81]
Fix: The (more or less undocumented) superexec operator is supposed to allow "readonly" directories to be amended. Bug #674421.[src/zgeneric.c 1.7]
Remove spurious ^M (ctrl-M == <cr>) characters from the source -- probably caused by a Windows user performing an update from a file that was not correctly recognized as DOS vs. UNIX line endings by cvs.[src/idict.c 1.10]
2004-01-02 18:02 Igor Melichev
Implementing a True Type grid fitting, step 6. DETAILS : In the enabled code this change is algorithmically equivalent : generalized an argument of gx_path__check_curves, and fixed a design box, wich was not used. In the disabled code it computes a reasonable flattness for the stem recognition and exclused an unuseful (and harmful) path copying. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.80, src/gxpath.h 1.11, src/gxpcopy.c 1.12, src/gxttfb.c 1.22, src/ttfmain.c 1.21]
2004-01-02 13:15 Igor Melichev
Fix : A GCC compiler error.[src/gxfont42.h 1.18]
2004-01-02 13:02 Igor Melichev
Implementing a True Type grid fitting, step 5. DETAILS : In the enabled code this change is algorithmically equivalent : just moved some TT outliner data definitions and refactored ttfOutliner__Outline. In the disabled code it fixes numerous problems in the TT grid fitting (by the X axis only). Now it looks working for small characters. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.79, src/gxhintn.c 1.39, src/gxttfb.c 1.21, src/gzspotan.c 1.6, src/gzspotan.h 1.4, src/ttfmain.c 1.20, src/ttfoutl.h 1.13]
2004-01-01 17:01 Igor Melichev
Implementing a True Type grid fitting, step 4. DETAILS : This patch changes a disabled code only. It's a trial implementation of a TT grid fitting (by the X axis only). EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.38, src/gxhintn.h 1.17, src/gxttfb.c 1.20, src/gzspotan.c 1.5, src/gzspotan.h 1.3, src/lib.mak 1.159]
Add a paragraph to the license statement listing the additional requirements of the Freetype License.[LICENSE 1.3]
Add the text of the Freetype license and references to the freetype project to clarify our compilance. The new truetype bytecode interpreter is based in part of code made available as part of Freetype 1.[doc/Develop.htm 1.129, doc/FTL.txt 1.2, doc/Language.htm 1.79]
2003-12-31 11:12 Igor Melichev
Fix : The character oversampling condition was wrong. DETAILS : I can't guess why it was done depending on path. It looks wrong and gives a different result when recomputed from type1execchar when the path is reset. Also penum->current_font to be used rather that pgs->font due to composite fonts. Bug 687209 "assertion failure when open postscript file". EXPECTED DIFFERENCES : None with TextAlphaBits=1.[src/gxchar.c 1.38]
2003-12-31 06:13 Igor Melichev
Fix (pdfwrite) : Write a smaller Widths array. DETAILS : Bug 687186 "(pdfwrite) Embedding a Type 3 font FirstChar is always 0". EXPECTED DIFFERENCES : None.[src/gdevpdtf.c 1.33, src/gdevpdti.c 1.23]
2003-12-31 05:20 Igor Melichev
Fix (pdfwrite) : Pattern resource was not added to Resources of a pattern object. DETAILS : This is a partial fix for the bug 687196 "Incorrect PDF produced from Adobe test file pattyp1.ps". A pattern resource was referred in a pattern procedure (of another pattern) but was not listed in Resources of the pattern object. EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.45]
2003-12-30 17:55 Igor Melichev
Fix (pdfwrite) : Color space resource was not added to Resources of a pattern object. DETAILS : Bug 687206 "Could not find colorspace". A color space resource was referred in a pattern procedure but was not listed in Resources of the pattern object. EXPECTED DIFFERENCES : None.[src/gdevpdfc.c 1.43]
2003-12-30 17:53 Igor Melichev
Fix (pdfwrite) : Wrote an invalid text matrix. DETAILS : While fixing the bug 687206 "Could not find colorspace", we discovered a problem with comparefiles/tpc2.ps : "1 0 0 1 0 1.#INF Tm" was written. The effect was indeterministic due to an access outside an array. This patch fixes that. EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.50]
2003-12-30 11:50 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 24, final. DETAILS : This patch switches on the new algorithm. With comparefiles on Zeon 3.06 the curved algorithm appears in 0.6% slower. Will be fixed with upgrading the scanline algorithm with gx_flattened_iterator. EXPECTED DIFFERENCES : -r300 chilis_black.pdf has a minor difference in raster.[src/gx.h 1.30]
2003-12-30 08:25 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 23. DETAILS : This patch is a code optimization. EXPECTED DIFFERENCES : None.[src/gx.h 1.29, src/gxfill.c 1.78, src/gxpflat.c 1.28, src/gzpath.h 1.26]
2003-12-29 15:56 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 22. DETAILS : This patch changes a disabled code only. It optimizes the contour scanner with reducing a data copying. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.77]
2003-12-29 04:35 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 21. DETAILS : This patch changes a disabled code only. It fixes some problems discovered with -r300 and switches off the self-testing. EXPECTED DIFFERENCES : None.[src/gx.h 1.28, src/gxfill.c 1.76]
2003-12-29 04:18 Igor Melichev
Raster depended on the band size (a partial fix). DETAILS : The old code used the Y coordinate of a top boundary of a band as a basis for computing a sampling factor of sloped lines. Therefore sloped lines generated "stairs" with a dependence of the phase on the band coordinate. This patch removes that dependence. Therefore the new banded raster appears closer to the unbanded raster. But the banded raster still can be different. We don't intend to fix it now. We did only a simplest part, which is neccessary for the current development needs. This patch also causes some differences, which are not related to the banding. This happens due to bands and clip boxes come to the filling algorithm in same data field. The dependence on the clip box is dropped as well. Particularly it affects shadings, especially radial ones. EXPECTED DIFFERENCES : ppmraw -r72 -dMaxBitmap=30000000 : 1_2001.pdf ppmraw -r72 -dMaxBitmap=10000 : 1_2001.pdf test.pdf ppmraw -r300 -dMaxBitmap=10000 : 012-05.ps 013-05.ps 014-05.ps 015-05.ps 027-13.ps 032-01.ps 034-01.ps 036-01.ps 083-05.ps 123-05.ps 123-09.ps 150-01.ps 169-05.ps 175-01.ps 1_2001.pdf 205-05.ps 205-09.ps 220-01.ps 226-01.ps 231-01.ps 245-07.ps 307-07.ps 86554321.pdf adesso8.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf BEST8-99-Path.fh7.pdf Bug687044.ps BW0696FOLD1FRONT.pdf ca.pdf colorcir.ps DisplayedGood.pdf DisplayedWrong.pdf doretree.ps file2.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf knight.pdf messenger.pdf messenger16.pdf Openhuis_pdf_zw.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps test.pdf ppmraw -r300 -dMaxBitmap=30000000 : 1_2001.pdf 205-05.ps 86554321.pdf adesso8.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf BEST8-99-Path.fh7.pdf Bug687044.ps BW0696FOLD1FRONT.pdf gs6.0-dragon.pdf Openhuis_pdf_zw.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps test.pdf Other modes were not tested. pdfwrite may have a slightly different differences due to the page size rounding. 289-01.ps was not tested because it fails.[src/gxfill.c 1.75]
2003-12-28 13:37 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 20. DETAILS : This patch changes a disabled code only. It removes a roudiment of a temporary solution with a late computation of the bounding box. Debugged with -r300 165-01.ps . EXPECTED DIFFERENCES : None.[src/gxfill.c 1.74]
2003-12-28 12:57 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 19. DETAILS : This patch changes a disabled code only. It fixes an unitialized variable. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.73]
2003-12-28 12:23 Igor Melichev
Fix : The dropout prevention code could render an occasional raster. DETAILS : We discovered that the old filling algorithm has a non-well-defined behavior when painting a group of contacting vertical stems with dropout prevention. The result of the old code appears depending on the order of lines in the X list. However when vertical lines have same X coordinate, their order was occasional, and the resulting raster appears deterministically occasional. A new section in gxfill.c near line 1629 fixes that, see comment in there. Another included change to a disabled code brings the curved trapezoid algorithm closer to the uncurved one. It fixes 2 minor problems with horizontal lines. EXPECTED DIFFERENCES : This patch causes a minor difference in some rasters, which we consider as progressions due to lesser dropouts. (Well, it is arguable whether the old feature is a dropout at all, but we'd like to have a well defined raster with no dependence on unimportant things such as which contour point is choosen for the starting point). Nornal, 72dpi : bulletin.pdf waterfal.ps womanface.pdf Nornal, 300dpi : None. pdfwrite, 72dpi : bulletin.pdf womanface.pdf pdfwrite, 300dpi : Not tested.[src/gxfill.c 1.72]
2003-12-28 08:15 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 17. DETAILS : This patch changes a disabled code only. It implements the banding to the curved trapezoid algorithm. With this patch with ppmraw with 72 dpi only 3 rasters left different from the old code : KozukaB-ILEmbed.pdf (1 pixel differs) RodinCIDEmbed.pdf (3 pixels differ) womanface.pdf (9 pixels differ) So now the new algorithm is almost working. An useful improvement would be to divide big curves on-fly (it should be pretty simple with subclassing the gx_flattened_iterator and regenerating the next curve part from entire curve by the part index), and to replace curve_cursor with gx_flattened_iterator in the scanline algorithm. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.71]
2003-12-27 16:58 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 16. DETAILS : In the enabled code this patch fixes the vd_get_dc syntax, which was unintentionally broken by the previous patch. This change is algorithmically equivalent. In the disabled code it fixes dropout problems with the curved trapezoid algorithm. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.70]
Fix missing semicolons inserted by previous commit that prevented compilation. EXPECTED DIFFERENCES: Now it will compile, but since the previous commit was untested, there may be other algorithmic problems that result in differences.[src/gxfill.c 1.69]
2003-12-27 09:14 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 15. DETAILS : In the enabled code this patch : 1. Refactors add_y_line into 3 functions. 2. Restructurizes end_x_line. 3. Changes the prototype of add_y_list. 4. Implements a new visual trace switch 'F'. 5. Removes 'notes' from gx_flattened_iterator. This change is algorithmically equivalent. In the disabled code it allows non-monotonic curves in the trapezoid algorithm. EXPECTED DIFFERENCES : None.[src/gx.h 1.27, src/gxfill.c 1.68, src/gxpflat.c 1.27, src/gxfill.h 1.11, src/gzpath.h 1.25]
Correct a typo in the maintainer-clean target in the legacy unix makefiles. Thanks to William Bader for catching this.[src/unix-gcc.mak 1.44, src/unixansi.mak 1.35]
Move the documentation on handling Unicode high level text into Drivers.htm which is a developer document instead of Devices.htm which is intended for users.[doc/Devices.htm 1.73, doc/Drivers.htm 1.44]
Still more regressions that produced incorrect (different than 8.12) rotations. Regressions include 541_623.pdf and others that had Rotate != 0. DETAILS: Previous patch detected automatic rotation cases, but missed rotation cases when Orientation == 1 or == 3.[src/zmedia2.c 1.15]
Resolve regression differences caused by rotated page sizes being picked instead of non-rotated in some cases. Seen with 1_pct_50_bang.pdf and others. DETAILS: The 'rotate' variable was input to the 'make_adjustment_matrix' function, but the matrix could be rotated even when rotate==0. Instead bias the best_mismatch value when the matrix is rotated (pmat->xx == 0).[src/zmedia2.c 1.14]
Add a newline at the end of a file. Remove a duplicate semicolon at the end of statement.[src/gxistate.h 1.18, src/zchar1.c 1.35]
Fix yet another long standing bug in 'match_page_size' logic that could result in the wrong (too small) media being selected due to comparison of signed difference versus absolute difference.[src/zmedia2.c 1.13]
A pair of fixes to the PDF rebuild logic. The fix in pdf_main.ps corrects a problem that ws creatd with the PDF 1.5 parser changes. The fix in pdf_rbld.ps corrects an unbalanced stack. This was not fatal but did leave the string (trailer) on the stack after rebuilding some PDF files.[lib/pdf_main.ps 1.83, lib/pdf_rbld.ps 1.6]
Fix setpagedevice problems introduced with previous commit detected by the regression tests, including 070-01.ps and many others. Also give priority to lower value slots (match_key.value.intval) DETAILS: If there was a match that didn't set a new value in 'best_mismatch' (less than the original 'LARGE' value), the match_key would be left at 'null', causing PolicyReport to be executed. The Genoa tests use PolicyReport to leave a value on the stack that eventually signals 'FAIL' since the count is greater than expected. This latest change makes sure that a valid key gets set even when the best_mismatch value is not relevant. The lower number slot (%MediaSource) is given priority in the case of a tie between best_mismatch and mbest.[src/zmedia2.c 1.12]
2003-12-18 14:58 Igor Melichev
Fix (pdfwrite) : A temporary workaround for limitcheck writing a CFF with many glyphs. DETAILS : The test file of the Bug 686875 contains a Type 1 font with 1280 glyphs, which overflowed tables in the CFF writer. This patch increases the limitation, but a limitation still presents. Will improve it someday. Issued a new bug 687212 about that. EXPECTED DIFFERENCES : None.[src/gdevpsf.h 1.25, src/gdevpsf2.c 1.28]
2003-12-18 13:23 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 14. DETAILS : This patch changes a disabled code only. Before this patch the backward iterator works fine, but we are unhappy of its complexity. Rather it passed the full testing with comparefiles, a theoretical proof of its correctness is too hard. Also it highly depends on the old code in MERGE_COLLINEAR_SEGMENTS section, which doesnt look as a well defined code. Therefore we went back to the implementation based on a bitmask. It represents which points were filtered out while the forward iteration. It consumes some bigger memory (488 bytes per active line), but we believe that the C stack consupmtion is still lesser than one in the Type 1 hinter. Now we bring both implementations into a single revision, and define a configuration macro FLATTENED_ITERATOR_BACKSCAN for switching between them. The KISS principle strongly votes for the bitmask implementation. This patch also renamed CHECK_BACKSCAN_CONSISTENCY with FLATTENED_ITERATOR_SELFTEST for a better structurization, and removed some low useful comments. EXPECTED DIFFERENCES : None.[src/gx.h 1.26, src/gxfill.c 1.67, src/gxpflat.c 1.26, src/gzpath.h 1.24]
2003-12-17 15:36 Igor Melichev
Fix : Fixed a comment syntax and removed unused variables. EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.25]
2003-12-17 15:27 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 13. DETAILS : This patch changes a disabled code only. It allows gx_flattened_iterator__prev_filtered2 to run from any segment riched by gx_flattened_iterator__next_filtered2. The old code could only from the last curve segment. Also implemented a testing procedure for it. EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.24, src/gzpath.h 1.23]
Add "pa4" page size requested by a user. This is the intersection of a4 and letter page size, i.e., a4 width and letter length. Bug #553187.[lib/gs_statd.ps 1.14]
Remove warnings and reversion to 'int' which could cause wrong decision for PageSize match.[src/zmedia2.c 1.11]
Fix InputAttributes initialization to have the default page size in slot 0, and all page sizes known in statusdict/.pagetypenames included with the 'fit any' pagesize range last. Fixes bug #617077 and other files that expect slot 0 to be a valid 2 element PageSize corresponding to the default. DETAILS: As noted, "real" printer devices such as laserjets, and inkjets should set up their own InputAttributes dictionaries that do not include the 'range' type page size. If the page size is not an exact match (off by less than 5 points), then the page size range will take priority. This is in a non-standard area of Ghostscript, but must be preserved for those that want exact PageSize such as for generating raster images of a specific dimension. If the range page size is present, then automatic rotation will not be used. If a PageSize is present in both orientations, such as [612 792] and [792 612], then priorty will be given to the slot that matches without automatic rotation. EXPECTED DIFFERENCES: Hopefully, none.[lib/gs_setpd.ps 1.20, lib/gs_statd.ps 1.13, src/zmedia2.c 1.10]
2003-12-17 02:29 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 12. DETAILS : This patch changes a disabled code only. It provide a tolerance to a bug in monotonize_internal. See comment in code. There is an error in the log message of the previous patch. It should read : "The compilation mode CURVED_TRAPEZOID_FILL0_COMPATIBLE 0 is not completed." EXPECTED DIFFERENCES : None.[src/gxfill.c 1.66]
2003-12-16 22:29 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 11. DETAILS : This patch contains a minor change to the enabled code, and a big change to the disabled code. The change to the enabled code only inserts some new fields into gx_flattened_iterator, actually defining a subclass. The enabled code doesn't use them, but provides some initialization. The change to disabled code defines a backward iterator for filtered flattened curve segments. Actually we define two ones : gx_flattened_iterator__prev_filtered1 - filters points with 'coords_near' gx_flattened_iterator__prev_filtered2 - filters points with 'coords_near' and 'gx_check_nearly_collinear'. The forward and the backward iterators are made to enumerate same points, which the old does while flatteining a curve. The old code has a lot of anomalies, therefore the backward iterators appear very coplicated. We're planning to drop the compatibility and simplify the iterators after the curved trapezoid algorithm passes the compatibility test. The compilation mode CURVED_TRAPEZOID_FILL0_COMPATIBLE 1 is not completed. Do not use it with this revision. EXPECTED DIFFERENCES : None.[src/gx.h 1.25, src/gxfill.c 1.65, src/gxfill.h 1.10, src/gxpflat.c 1.23, src/gzpath.h 1.22]
2003-12-14 22:32 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 10. DETAILS : This patch changes a disabled code only. It removes CURVED_TRAPEZOID_FILL_SCANS_BACK because we decided to make this feature permanent. EXPECTED DIFFERENCES : None.[src/gx.h 1.24, src/gxfill.c 1.64, src/gxfill.h 1.9, src/gxpflat.c 1.22, src/gzpath.h 1.21]
This is the first pass at the changes to support the PDF 1.5 revisions to the PDF format. DETAILS: The PDF 1.5 revision to the PDF specification contains two major additions to the format of a PDF document. Objects can be encoded in compressed data streams called and object streams. Xref tables were also changed to allow the identification of objects in object streams and also to allow the compression of xref tables. Together these changes reduced the size of the PDF 1.5 specification from 13.5 MB (PDF 1.4 version) to 8.7 MB (PDF 1.5 version). pdf_main.ps and pdf_rbld.ps - The changes in these modules were for the support of compressed XRef tables. The major part of these changes consist of the refactoring of readxref into pieces. One piece identifies the old format versus compressed XRef tables. A second piece supports the reading of old format XRef tables. The procedure readpdf15xref was added to read compressed XRef tables. A new larray called ObjectStream was added for identifying the location of objects which are inside a compressed object stream. The changes for the addition of ObjectStream also affect pdf_base.ps. pdf_base.ps - The procedures resolveR and resolved? had to be extended to support the presence of the objectstream type. A new procedure called resolveobjectstream was added for resolving objects inside of object streams. The code listing below has two versions of the resolveobjectstream procedure. I want to keep a record of both versions of this procedure in CVS. The first version is theoretically more robust than the second. It unpacks and processes objects from an object stream one at a time. To insure that this occurs, it creates a string of the exact size of an object and then unpacks and processes the object. However it is also very slow. Processing of a test document (PDF 1.5 spec.) with this routine is 4 times slower than processing a version of the PDF 1.5 spec. which does not use object streams. The second version of the procedure unpacks the entire object stream and then processes each object. Thus any problem which occurs with one object could, in theory, affect another object. The second version is much faster. There is about a 4% penalty for processing the compressed version of the PDF 1.5 spec. After the initial check in, the first version of resolveobjecstream will be removed unless some need is found for its robustness.[lib/pdf_rbld.ps 1.5]
This is the first pass at the changes to support the PDF 1.5 revisions to the PDF format. DETAILS: The PDF 1.5 revision to the PDF specification contains two major additions to the format of a PDF document. Objects can be encoded in compressed data streams called and object streams. Xref tables were also changed to allow the identification of objects in object streams and also to allow the compression of xref tables. Together these changes reduced the size of the PDF 1.5 specification from 13.5 MB (PDF 1.4 version) to 8.7 MB (PDF 1.5 version). pdf_main.ps and pdf_rbld.ps - The changes in these modules were for the support of compressed XRef tables. The major part of these changes consist of the refactoring of readxref into pieces. One piece identifies the old format versus compressed XRef tables. A second piece supports the reading of old format XRef tables. The procedure readpdf15xref was added to read compressed XRef tables. A new larray called ObjectStream was added for identifying the location of objects which are inside a compressed object stream. The changes for the addition of ObjectStream also affect pdf_base.ps. pdf_base.ps - The procedures resolveR and resolved? had to be extended to support the presence of the objectstream type. A new procedure called resolveobjectstream was added for resolving objects inside of object streams. The code listing below has two versions of the resolveobjectstream procedure. I want to keep a record of both versions of this procedure in CVS. The first version is theoretically more robust than the second. It unpacks and processes objects from an object stream one at a time. To insure that this occurs. It creates a string of the exact size of an object and then unpacks and processes the object. However it is also very slow. Processing of a test document (PDF 1.5 spec.) with this routine is 4 times slower than processing a version of the PDF 1.5 spec. which does not use object streams. The second version of the procedure unpacks the entire object stream and then processes each object. Thus any problem which occurs with one object could, in theory, affect another object. The second version is much faster. There is about a 4% penalty for processing the compressed version of the PDF 1.5 spec. After the initial check in, the first version of resolveobjecstream will be removed unless some need is found for its robustness.[lib/pdf_base.ps 1.40, lib/pdf_main.ps 1.82]
2003-12-14 01:07 Alex Cherepanov
Fix MSVC debug targets: add explicit makefile specification. Fix bug 687205. DETAILS: Debug targets have always been broken on Windows because nmake by default looks for "MAKEFILE" and fails. Until recently, the default target was built without the -O2 flag and could be used for debugging. This patch adds the correct filename explicitly to the debug target so it can be used instead.[src/msvc32.mak 1.52]
Fix a premature closedevice leading to a SEGV when a setpagedevice follows a setdevice with the only reference to the device in the graphics state. Bug #687204 detected with ps2epsi.ps. DETAILS: the ps2epsi.ps sets an image device, then does a .setsafe which uses setpagedevice to set .LockSafetyParams. Eventually setpagedevice results in a call to gs_setdevice_no_init, but the reference count to the current device is 1 so even though the device is not being changed, the device was being closed (which freed the buffer and line pointers). Usually the currentdevice reference count is > 1 since there is more than one gstate containing a pointer to the device. This has been broken since 8.10 when version 1.19 was released with some changes to device finalization. Note that ps2epsi.ps is extremely fragile and still doesn't work with examples/alphabet.ps after the patch (due to the "clear cleardictstack alphabetsave restore" logic at the end. This patch is ONLY for the SEGV. IMO, ps2epsi really is a mess and needs to be scrapped and designed properly.[src/gsdevice.c 1.20]
Link to History8.htm in the list of history files. Patch from Alexei Podtelez.[doc/Readme.htm 1.53]
2003-12-12 02:16 Alex Cherepanov
Split an expression in two because MSVC 6.00.8168.0 cannot compile it in -O2 mode, enabled in GS 8.12 by default. MSVC 6 with Service Pack 3 doesn't require this work around.[src/idict.c 1.9]
Properly remove jbig2.dev from the FEATURE_DEVS list in the autoconf build when stdint_h is not available. Works around bug 687007.[src/configure.ac 1.36]
Fix .gethalftone to prevent /undefinedresource or other error from being left in the $error dict. Seen with UnusualFontMatrix.ps when running under startjob encapsulation. DETAILS: Internal procedures like .gethalftone that want to use stopped but don't propagate the error up should use .internalstopped since this doesn't set /newerror in $error. The file mentioned has a 'quit' following the showpage which when running under job encapsulation (false 0 startjob) is redefined to do 'stop'. This means that the /newerror flag in $error was being seen when the 'stop' after the showpage was executed.[lib/gs_init.ps 1.103]
2003-12-11 18:15 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 9. DETAILS : This change is algorithmically equivalent. It implements an iterator of filtered flattened curve segments with gx_flattened_iterator__next_filtered2, and the old behavior is now implemented with it. EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.21, src/gzpath.h 1.20]
2003-12-11 13:48 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 8. DETAILS : Renamed FLATTENED_CURVE_ITERATOR0_COMPATIBLE, because it doesn't longer reflect its semantics. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.63, src/gx.h 1.23, src/gxfill.h 1.8, src/gxpflat.c 1.20, src/gzpath.h 1.19]
2003-12-11 13:33 Igor Melichev
Fix : The flattening algorithm inaccurately filtered points. Bug 687154 "Bugs in gx_flatten_sample". DETAILS : The old algorithm has 2 problems, which persist since March 20, 2000 or later : 1. When points buffer overflows, it doesn't filter the next point with MERGE_COLLINEAR_SEGMENTS. 2. With sn_not_first the first point was duplicated, and the last one was missed. This patch fixes both problems. EXPECTED DIFFERENCES : This patch causes differences flattening long curves. 311-03.ps and 205-13.ps at 300dpi demonstrate a strong progression. Other differences should be progressions as well. normal, 72dpi: 012-09.ps 013-09.ps 093-01.ps 289-01.ps CIDembedded.pdf 300dpi : 012-09.ps 013-09.ps 014-09.ps 015-09.ps 032-07.ps 035-07.ps 083-05.ps 083-09.ps 093-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 289-01.ps 298-09.ps 311-03.ps 321-09.ps KozukaB-ILEmbed.pdf RodinCIDEmbed.pdf shading_prob_800.ps Svd.pdf pdfwrite, 72dpi : 083-09.ps 083-13.ps 093-01.ps 205-13.ps 308-04.ps CIDembedded.pdf pdfwrite, 300dpi : 012-09.ps 013-09.ps 014-09.ps 015-09.ps 032-07.ps 035-07.ps 083-05.ps 083-09.ps 083-13.ps 093-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 308-04.ps 311-03.ps acrobat.pdf alphabet.ps Bug687044.ps KozukaB-ILEmbed.pdf RodinCIDEmbed.pdf shading_prob_800.ps Svd.pdf UnusualFontMatrix.ps was not tested because the current HEAD fails with it.[src/gxpflat.c 1.19]
2003-12-11 09:53 Igor Melichev
Removed an obsolete code FLATTENED_CURVE_ITERATOR 0. DETAILS : The FLATTENED_CURVE_ITERATOR 0 code is not longer in use. It was disabled since November 25 2003. This patch completely removes it. EXPECTED DIFFERENCES : None.[src/gx.h 1.22, src/gxpflat.c 1.18, src/gzpath.h 1.18]
Fix setpagedevice so that the Default Halftone is used. Fixes bug #687199. DETAILS: Use .setdefaulthalftone rather than .setdefaultscreen so that setpagedevice picks up the correct Halftone setting. This was detected when trying to use 'stocht.ps' to set a Default Halftone that is the stochastic threshold array, which worked only if page size didn't change or other setpagedevice setting was made.[lib/gs_setpd.ps 1.19]
Remove the CC_LEAF alternate compiler definition. This basically exists to pass -fomit-frame-pointer (or equivalent) on a few (two) files where it's unequivocably safe. This strikes us as premature optimization. It was also causing problems with the profile build under gcc because of a quoting problems with the argument list the makefile passes to itself through this define. Closes bug 687182.[src/Makefile.in 1.29, src/bcwin32.mak 1.31, src/dvx-gcc.mak 1.25, src/gs.mak 1.23, src/int.mak 1.119, src/lib.mak 1.158, src/macos-mcp.mak 1.24, src/macosx.mak 1.22, src/msvccmd.mak 1.13, src/openvms.mak 1.34, src/openvms.mmk 1.28, src/os2.mak 1.36, src/ugcclib.mak 1.27, src/unix-end.mak 1.6, src/unix-gcc.mak 1.43, src/unixansi.mak 1.34, src/watcw32.mak 1.28, src/wccommon.mak 1.8]
In the autoconf build, only pass -O2 if the compiler is detected to be gcc. Fall back to trying the POSIX -O in other cases. The trial compile was not detecting that this option does not work correctly on the Solaris compilers. Problem report from Nelson Beebe, closes bug 687198.[src/configure.ac 1.35]
Fix incorrect handling of the '\' escape character in the filenameforall implementation on Windwows. Fixes bug #687151. Also fix logic in the .scanfontdir that relied on the incorrect filenameforall implementation. DETAILS: The previous NT filenameforall implementation did not translate the template string to be used by the FindFirstFile Windows call. This meant that the template was being passed the '\' escape characters which were not correctly handled by the OS call. Also testing -sFONTPATH=\Winnt\Fonts showed that this was also broken in gs_fonts.ps since it didn't duplicate the '\' characters for the template to filenameforall. Note that other gp_* implementations of file enumeration don't seem to handle escapes such as gp_unifs.c. The gp_macio.c doesn't do anything, and the gp_dosfe.c (deprecated) seems totally broken. The gp_os2.c appears to be a clone of the gp_ntfs.c, so should be fixed. About the only version that seems to be handling the '\' character according to the PLRM is gp_vms.c (can you believe that?). Thanks to Alex Cherepanov and Igor Melichev for contributing.[lib/gs_fonts.ps 1.45, src/gp_ntfs.c 1.22]
2003-12-10 14:27 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 7. DETAILS : This change is syntactically equivalent. It replaces gx_flattened_curve_iterator to a shorter identifier, because we intend to define a subclass with a name suffix. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.62, src/gxpflat.c 1.17, src/gzpath.h 1.17]
2003-12-10 14:23 Igor Melichev
Fix: A prototype for memcpy was missed. DETAILS : It was inserted into lib.mak but did not into gxpflat.c . EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.16]
2003-12-10 13:41 Igor Melichev
Simplify the filtering of points while flattening a curve. DETAILS : This change is algorithmically equivalent due to algebraic laws. Thesis : (coord_near(x2, x0) && coords_in_order(x0, x1, x2)) implies coord_near(x2, x1). Proof: case 1: x0 >= x1 >= x2 ==> abs(x2 - x1) <= abs(x2 - x0); case 2: x0 >= x1 >= x2 ==> abs(x2 - x1) <= abs(x2 - x0); Therefore coord_near(x2, x1) doesn't need to check and has been removed. Same for Y. Then merged 2 branches with '||' because they appear same. The performance slightly increases, and the behavior is easier to understand. EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.15]
Add the new stdint_.h compatibitily header to the file roadmap.[doc/Develop.htm 1.128]
Add a new compatibility header, stdint_.h. All the code previously in std.h and stdpre.h that tried to make these types universally available has been moved to the new compatibility header as per policy.[src/lib.mak 1.157, src/sjbig2.c 1.5, src/sjbig2.h 1.4, src/std.h 1.11, src/stdint_.h 1.1, src/stdpre.h 1.22, src/ttfsfnt.h 1.6]
Bump version numbers after the 8.12 release.[doc/News.htm 1.139, lib/gs_init.ps 1.102, src/gscdef.c 1.40, src/version.mak 1.68]
2003-12-09 17:25 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 6. DETAILS : This change modifies a disabled code, and includes a minor change to the enabled code, which should be algorithmically equivalent. In the enabled code factored out the new function add_y_line_aux. This patch fixes the dropout problem in CURVED_TRAPEZOID_FILL 1. The problem was unprocessed horizontal segments of curves. Now we create a new temporary horizontal line for each horizontal segment of a curve, and add it to the Y list. Then it immediately goes to H list, and then processed and freed. Due to the modification of the Y list during the main trapezoid loop (which did not happen before) the cycle commented with /* Move newly active lines from y to x list. */ is improved with providing a consistency of local copies of the Y list pointers. Good tests for this stuff present in a.pdf . With this patch with ppmraw 72dpi it renders equal to with CURVED_TRAPEZOID_FILL 0 code. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.61, src/gxpflat.c 1.14, src/gzpath.h 1.16]
2003-12-09 17:23 Igor Melichev
Generalize the trapezoid filling algorithm for curves, step 5. DETAILS : This change modifies a disabled code only. This patch provides more compatibility of the CURVED_TRAPEZOID_FILL & FLATTENED_CURVE_ITERATOR0_COMPATIBLE build to the old code. Doing it with implementing the new function gx_flattened_curve_iterator__prev. We're not planning to pass this function to production because it slows down. Only reason is to simplify testing with exact comparison of results of the old and the new code. The macro CURVED_TRAPEZOID_FILL_SCANS_BACK helps to remove it later. A new field skip_points is inserted into active_line_s for same purpose. While enumerating curve segments in a backward order, it helps to skip same division points as the old code does in the forward order. This thing consumes too much RAM. It won't go to production. One problem is left unsolved. While flattening a curve, it can generate a horizontal segment. It must be passed to h-list for dropout prevention. It is not done yet. This problem causes a dropout in a Chinese glyph in a.pdf with ppmraw 72 dpi. For a while we don't apply CURVED_TRAPEZOID_FILL for non-characters. The reason is that pco_monotonize works imprecisely. Will improve someday. Most characters are free of non-monotonic curves, but we notices a number of such in Genoa tests and in other files. The fragment INTERTRAP_STEM_BUG is an attempt to improve a serif suppression while dropout prevention. The coded condition isn't perfect. It is disabled. A better way would be to depend on Y projection contiguity, checking sect->y0, sect->y1. Keeping it to simplify further experimenting. EXPECTED DIFFERENCES : None.[src/gx.h 1.21, src/gxfdrop.c 1.8, src/gxfill.c 1.60, src/gxfill.h 1.7, src/gxpflat.c 1.13, src/gzpath.h 1.15, src/lib.mak 1.156]
2003-12-09 17:21 Igor Melichev
Unwinding the last patch because it was committed with a wrong log message.[src/gx.h 1.20, src/gxfdrop.c 1.7, src/gxfill.c 1.59, src/gxfill.h 1.6, src/gxpflat.c 1.12, src/gzpath.h 1.14]
2003-12-09 16:48 Igor Melichev
ERRONEUS COMMITMENT - do not use this revision.[src/lib.mak 1.155]
2003-12-09 16:42 Igor Melichev
ERRONEUS COMMITMENT - do not use this revision.[src/lib.mak 1.154]
2003-12-09 16:12 Igor Melichev
ERRONEUS COMMITMENT - do not use this revision.[src/gx.h 1.19, src/gxfdrop.c 1.6, src/gxfill.c 1.58, src/gxfill.h 1.5, src/gxpflat.c 1.11, src/gzpath.h 1.13, src/lib.mak 1.153]
2003-12-09 15:59 Igor Melichev
Fix (pdfwrite) : Type 1,2 composite glyphs could point to wrong subglyphs. DETAILS : This is a continuation of the recent patch for Bug 687172 "Jaggies appearing for some characters". The old code converted subglyph names to char codes with the font's Encoding. However arguments of 'seac' command always encode glyphs by StandardEncoding. If the fon't Encoding specifies different codes, the result was wrong. Since the font copying routine uses gs_glyph values taken from the global interpreter's space (see gsccode.h), which are PS name indices, it needs to convert a glyph name string to a name index. Before now we had no support for this. To provide it we add a new graphics library callback gs_font_dir::global_glyph_code. A recommendation for PCL interpreter : if it is called with pdfwrite, zfont_global_glyph_code to be implemented. Maybe an implementation with gs_c_known_encode helps. There exists a connected minor problem (PS interpreter only), which this patch doesn't fix. If a font is freed and then reloaded, the glyph names can get different name indices, if a garbager is invoked and freed the names before the second loading. As the result, the copied font can embed duplicated glyph definitions (charstrings). It can't give an invalid PDF, but it's size may increase. Hopely this case is rare. Opening a new bug 687187 about this. EXPECTED DIFFERENCES : None with comparefiles.[src/gsfont.c 1.28, src/gxfcache.h 1.22, src/gxfcopy.c 1.39, src/lib.mak 1.152, src/zfont.c 1.10]
This is the second stable release in the 8.1x series. It contains numerous bug fixes; other highlights include improved font rendering and colorspace handling, and unicode text support for high-level devices.
The following bug numbers were open at the time of the last release:
405501, 414947, 430175, 446344, 456692, 458261, 458780, 463688, 465936, 487460, 487953, 493348, 509829, 526099, 526491, 530011, 535366, 535932, 542629, 553187, 555072, 558151, 563287, 572865, 578865, 592160, 592837, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 626295, 628110, 629335, 634036, 634358, 645316, 651644, 656414, 667301, 669654, 674241, 674417, 674418, 677324, 677383, 677430, 680301, 681469, 685335, 686747, 686750, 686752, 686778, 686816, 686819, 686824, 686833, 686834, 686841, 686842, 686843, 686850, 686852, 686853, 686860, 686863, 686865, 686867, 686873, 686877, 686889, 686892, 686896, 686897, 686902, 686904, 686909, 686919, 686930, 686933, 686936, 686937, 686938, 686944, 686946, 686949, 686951, 686954, 686956, 686957, 686958, 686959, 686963, 686975, 686980, 686996, 686999, 687007, 687011, 687012, 687013, 687014, 687020, 687021, 687029, 687038, 687039, 687050, 687059, 687063, 687066, 687072, 687079, 687084, 687085, 687086, 687088, 687090, 687093, 687095, 687102, 687105, 687108, 687110, 687114, 687120, 687123, 687125, 687137, 687142, 687145, 687146, 687151, 687154, 687157, 687163, 687168, 687169, 687171, 687172, 687173, 687174, 687177, 687181, 687182, 687184, 687185, 687186, 687187, 687189, 687190, 687191.
Type 1 font hints are no longer applied to charpaths. This is generally an improvement, but will generate a different outline from previously.
A new virtual functions can_handle_hl_color() is required for high-level devices derived from gx_device_vector.
The library client api now propagates device_close errors to the return value of gsapi_exit().
Correct a long standing problem that caused non-optimized builds with MSVC on Windows. The default TDEBUG was 1, which circumvented a change made to msvccmd.mak to enable /O2 for MSVC_VERSION != 5. Note that with MSVC 6 Service Pack 3 is required to avoid an INTERNAL COMPILER ERROR when compiling src/idict.c.[src/msvc32.mak 1.51]
Correct some inconsistent line endings.[src/stdio_.h 1.10, src/ttfsfnt.h 1.5]
Updated release notes and change history for the 8.12 release.[doc/Changes.htm 1.49, doc/Details.htm 1.8, doc/Details8.htm 1.4, doc/History8.htm 1.8, doc/News.htm 1.138]
Update documentation with release version and date.[doc/API.htm 1.41, doc/Bug-form.htm 1.39, doc/Bug-info.htm 1.38, doc/C-style.htm 1.45, doc/Commprod.htm 1.30, doc/Copying.htm 1.29, doc/DLL.htm 1.33, doc/Deprecated.htm 1.10, doc/Details8.htm 1.3, doc/Develop.htm 1.127, doc/Devices.htm 1.72, doc/Drivers.htm 1.43, doc/Fonts.htm 1.39, doc/Helpers.htm 1.33, doc/History1.htm 1.29, doc/History2.htm 1.29, doc/History3.htm 1.29, doc/History4.htm 1.29, doc/History5.htm 1.31, doc/History6.htm 1.46, doc/History7.htm 1.34, doc/History8.htm 1.7, doc/Htmstyle.htm 1.34, doc/Install.htm 1.44, doc/Issues.htm 1.39, doc/Language.htm 1.78, doc/Lib.htm 1.32, doc/Maintain.htm 1.40, doc/Make.htm 1.70, doc/New-user.htm 1.49, doc/Projects.htm 1.56, doc/Ps-style.htm 1.27, doc/Ps2epsi.htm 1.31, doc/Ps2pdf.htm 1.56, doc/Psfiles.htm 1.50, doc/Readme.htm 1.52, doc/Release.htm 1.82, doc/Source.htm 1.29, doc/Tester.htm 1.29, doc/Testing.htm 1.23, doc/Unix-lpr.htm 1.29, doc/Use.htm 1.95, doc/Xfonts.htm 1.29, doc/gs-vms.hlp 1.28, man/dvipdf.1 1.27, man/font2c.1 1.27, man/gs.1 1.28, man/gslp.1 1.27, man/gsnd.1 1.27, man/pdf2dsc.1 1.26, man/pdf2ps.1 1.28, man/pdfopt.1 1.26, man/pf2afm.1 1.27, man/pfbtopfa.1 1.28, man/printafm.1 1.27, man/ps2ascii.1 1.26, man/ps2epsi.1 1.25, man/ps2pdf.1 1.32, man/ps2pdfwr.1 1.31, man/ps2ps.1 1.34, man/wftopfa.1 1.27]
Update date, product name and open bug list for release.[doc/News.htm 1.137, src/gscdef.c 1.39, src/version.mak 1.67]
Add the experimental spot analysis source files to the developer file roadmap.[doc/Develop.htm 1.126]
2003-12-07 16:17 Igor Melichev
Generalize the trapezoid fillling algorithm for curves, step 4. DETAILS : This change modifies a disabled code only. The comment /* Likely a bug in the !CURVED_TRAPEZOID_FILL code. */ is now removed because it is wrong. The function process_h_list performs that check perfectly. EXPECTED DIFFERENCES : None.[src/gxfdrop.c 1.5]
Respect the new regression differences section header when writing out the split changelogs. The previous change only added the header to the detection section.[toolbin/split_changelog.py 1.7]
Also split changelog entries on the new "EXPECTED DIFFERENCES:" header.[toolbin/split_changelog.py 1.6]
In the autoconf build, add the general cflags generated by the configure script to the definition the the definition of CCAUX. This works around a problem building on cygwin. DETAILS: Older versions of cygwin do not provide stdint.h but do define some of the types in sys/types.h. More recent versions do provide the header but also define them by inclusion in sys/types.h. This caused a problem with the 'fixup' code we added in response to bug 687162 which defined the missing half of the types if stdint.h was not detected by the configure script. In versions of cygwin that do provide stdint.h, most files compile as expected, but genconf.c is compiled with the alternate CCAUX compiler definition and was not receiving the -DHAVE_STDINT_H argument from configure, causing a type conflict between the complete set of stdint types pulled in by sys/types.h and the platform-specific fixup set included when stdint.h is supposedly not available. Adding the GCFLAGS line to the definition of CCAUX works around the problem and has little potential to confuse the build in the future. A similar change made to unix-gcc.mak would need to document the -DHAVE_STDINT_H option for cygwin. I felt this was unecessarily excessive; we already recommend the autoconf build on systems that can support it.[src/Makefile.in 1.28]
2003-12-04 16:57 Igor Melichev
Fix : (type 1 hinter) Invalid contours with <=2 segments caused an infinite loop. DETAILS : Provided a workaround. EXPECTED DIFFERENCES : None.[src/gxhintn.c 1.37]
2003-12-04 16:19 Igor Melichev
Generalize the trapezoid fillling algorithm for curves, step 3. DETAILS : Improved the CURVED_TRAPEZOID_FILL & FLATTENED_CURVE_ITERATOR0_COMPATIBLE build. This change modifies a disabled code only. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.57, src/gxpflat.c 1.10, src/gzpath.h 1.12]
Minor spelling and grammar corrections.[doc/Devices.htm 1.71]
2003-12-04 13:52 Igor Melichev
Document the new feature "Unicode support for high level devices".[doc/Devices.htm 1.70]
2003-12-04 12:35 Igor Melichev
Fix : Cygwin/gcc compiler claimed possibly uninitialized variables. EXPECTED DIFFERENCES : None.[src/gdevdevn.c 1.12, src/gdevp14.c 1.20, src/gdevpdfm.c 1.34, src/gdevpdtc.c 1.30, src/gdevpdtf.c 1.32, src/gdevpdtt.c 1.68, src/gdevplnx.c 1.7, src/gdevprn.c 1.14, src/gdevps.c 1.38, src/gpmisc.c 1.22, src/gsalloc.c 1.20, src/gscie.c 1.14, src/gsfont.c 1.27, src/gxclpath.c 1.19, src/gxclrast.c 1.27, src/gxfcopy.c 1.38, src/gxfill.c 1.56, src/gximono.c 1.11, src/gxstroke.c 1.10, src/iscan.c 1.16, src/ttfmain.c 1.19, src/ttinterp.c 1.11, src/zdscpars.c 1.16, src/zht2.c 1.11]
2003-12-04 11:09 Igor Melichev
Generalize the trapezoid fillling algorithm for curves, step 2. DETAILS : 1. Factored out the function gx_check_nearly_collinear_inline. This change is algorithmically equivalent. 2. Improved the FLATTENED_CURVE_ITERATOR0_COMPATIBLE build. This change modifies a disabled code only. EXPECTED DIFFERENCES : None.[src/gx.h 1.18, src/gxfdrop.c 1.4, src/gxfill.c 1.55, src/gxfill.h 1.4, src/gxpflat.c 1.9, src/gzpath.h 1.11]
2003-12-04 10:10 Igor Melichev
Fix : misprints in lib.mak . DETAILS : Some dependencies were missed. EXPECTED DIFFERENCES : None.[src/lib.mak 1.151]
2003-12-04 10:07 Igor Melichev
Fix : an access to uninitialized data in zbfont.c . DETAILS : Type 11 fonts got an occasional indeterministic data to pdata->Encoding, which were inaccurately checked for r_size() <= 256. We're keeping the check "r_size(pfe) <= 256" for backward compatibility, rather we're unclear about it's purpose. It shouldn't be harmful. EXPECTED DIFFERENCES : I did not detected any on Windows, but I believe that the old code was indeterministic.[src/zbfont.c 1.26]
2003-12-04 10:01 Igor Melichev
Fix : an access to uninitialized data in gxcpath.c . DETAILS : pcpath->path_list was not reset when it is replaced with a rectangle and freed. Bug 687178 "Infinite loop in ialloc_validate_memory". EXPECTED DIFFERENCES : I did not detected any on Windows, but I believe that the old code was indeterministic.[src/gxcpath.c 1.11]
2003-12-04 09:46 Igor Melichev
Fix (pdfwrite) : Type 1 subglyphs don't need Encoding entries. DETAILS : A new comment added to gxfcopy.c explains the change : /* No need to add subglyphs to the Encoding because they always are taken from StandardEncoding (See the Type 1 spec about 'seac'). Attempt to add them to the encoding can cause a conflict, if the encoding specifies different glyphs for these char codes (See the bug #687172). */ EXPECTED DIFFERENCES : pdfwrite progression with comparefiles\Bug687044.ps[src/gxfcopy.c 1.37]
2003-12-04 09:37 Igor Melichev
Fix (type 1 hinter) : sbw was wrongly accounted with FontBBox over 4095 units. DETAILS : Side bearing and width was accounted before import_shift is adjusted to FontBBox. Bug 687156 "some characters shifted higher in acrobat4 generated eps". Besides that, it prevents a fixed overflow when FontBBox is zero and glyph coordinates are big. Bug 687175 "(type 1 hinter) A fixed overflow can happen". This patch removes import_shift and the dependence on FontBBox. Instead that it dynamically reduces the number of fraction bits in transformation matrices during the glyph import. Minor change : removed some obsolete comments. EXPECTED DIFFERENCES : None.[src/gstype1.c 1.30, src/gstype2.c 1.33, src/gxhintn.c 1.36, src/gxhintn.h 1.16]
2003-12-04 03:51 Alex Cherepanov
Add new files; make all lists separated with comma and terminated with a period.[doc/Develop.htm 1.125]
2003-12-03 22:31 Alex Cherepanov
Add double-inclusion protection to errors.h to pacify the regression test and rename double-inclusion protection variable in ierrors.h for the naming consistency.[src/errors.h 1.9, src/ierrors.h 1.2]
Cygwin defines unsigned size-specific types with a u_ prefix in sys/types.h in analogy with MSVC. Use these instead of the generic int types when defining the stdint.h size-specific types. Patch from Alex Cherpanov. Fixes bug 687162.[src/stdpre.h 1.21]
Add stdint fixed-length integer typedefs for cygwin. Apparently this platform defines the signed versions in sys/types.h so we need only define the unsigned versions. After a patch by Alex Cherpanov, bug 687162.[src/stdpre.h 1.20]
Typedef uint64_t from 'unsigned __int64' on win32. From Alex Cherpanov's patch for bug 687162.[src/stdpre.h 1.19]
2003-11-27 22:32 Alex Cherepanov
Add support to pnm images with max_pixel_value < (1<<depth)-1 Fix bug 687139.[toolbin/tests/fuzzy.c 1.13]
Remove the search for long long / int64_t from genarch entirely. Neither of these types is portable C as genarch must be, and nothing in Ghostscript actually requires as 64-bit type, so the feature is inessential. (We do use a 64 bit type for gx_color_index but that's passed through a separate define.) Bug 687161.[src/genarch.c 1.8, src/std.h 1.10]
2003-11-25 15:32 Igor Melichev
Fix (pdfwrite) : A fixed overflow in setup_image_compression. DETAILS : Bug 687164 "(pdfwrite) dina3_watermark.pdf generates a 293Meg PDF". The bug persists since Sun Apr 30 01:26:41 2000 UTC. EXPECTED DIFFERENCES : The re-distilled dina3_watermark.pdf renders differently due to DCT compression applied.[src/gdevpsdi.c 1.26]
2003-11-25 08:34 Igor Melichev
Fix : A misspelled TRAPEZIOD. DETAILS : The change is syntatctically equivalent. Note that log messages of recent patches still keep the misspelled word. EXPECTED DIFFERENCES : None.[src/gx.h 1.17, src/gxfdrop.c 1.3, src/gxfdrop.h 1.4, src/gxfill.c 1.54, src/gxfill.h 1.3, src/gxpath.h 1.10, src/gxpcopy.c 1.11, src/gzspotan.c 1.4]
2003-11-25 00:21 Igor Melichev
Generailze the trapezoid fillling algorithm for curves, step 1. The new code is disabled with CURVED_TRAPEZIOD_FILL 0 in gx.h . DETAILS : This patch slightly changes the enabled code with adding more arguments to process_h_lists and end_x_line, and with renaming gx_flatten_sample and gx_path_is_monotonic. The new arguments are not used with CURVED_TRAPEZIOD_FILL 0. With CURVED_TRAPEZIOD_FILL 1 the trapezoid filling algorithm doesn't need to faltten the path in advance, and should work faster due to smaller number of segment allocations. Instead the generating of flattened segments and storing them to RAM it breaks curves into pieces on-fly with help of the gx_flattened_curve_iterator. Meanwhile it needs "small" curves. To provide that we generalized gx_path_is_monotonic to gx_path__check_curves, and gx_path_add_monotonized to gx_path_copy_reducing(..., pco_small_curves). Minor changes : - Fixed the vd_curve macro; - improved vdtrace calls in gxpflat.c; - Moved the FLATTENED_CURVE_ITERATOR definition to gx.h . EXPECTED DIFFERENCES : None.[src/gx.h 1.16, src/gxfdrop.c 1.2, src/gxfdrop.h 1.3, src/gxfill.c 1.53, src/gxfill.h 1.2, src/gxpath.h 1.9, src/gxpcopy.c 1.10, src/gxpflat.c 1.8, src/gzpath.h 1.10, src/vdtrace.h 1.9]
2003-11-24 14:50 Igor Melichev
Fix : Simplify the filling algorithm (step 12). DETAILS : The previous patch http://www.ghostscript.com/pipermail/gs-cvs/2003-November/date.html is buggy. This patch fixes that. EXPECTED DIFFERENCES : Should fix regressions which could appear on 2003-11-24.[src/gxfill.c 1.52]
2003-11-23 18:44 Igor Melichev
Fix : Simplify the filling algorithm (step 11). DETAILS : Factored out a line intersection function. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.51]
2003-11-23 10:16 Igor Melichev
[Log message beg] Fix : Adding gs/Resource/Decoding/Latin1, which is used by FAPI/UFST with Intellifont fonts. EXPECTED DIFFERENCES : None.[Resource/Decoding/Latin1 1.1, lib/gs_stres.ps 1.7]
Previous change assumed that all platforms have 'long long' type, but MSVC doesn't have this. Use int64_t as set by stdpre.h instead. DETAILS: Tested on Windows MSVC and linux/gcc, but we need to test portability on other platforms like HP-UX, AIX, and VMS.[src/genarch.c 1.7]
Update indented preprocessor lines in code imported from Freetype to put the '#' in the initial column, in accordance with the (slightly more portable) Ghostscript convention.[src/ttinterp.c 1.10, src/ttobjs.h 1.5, src/tttables.h 1.2, src/tttype.h 1.2]
Add a fallback definition of the common fixed-sized stdint types based on the type sizes in the generated arch.h header. This should improve the portability of uses of these types within the Ghostscript source. DETAILS: This new code in std.h does not superceed the in stdint.h and similar platform- dependent includes in stdpre, it merely provides a fallback. stdpre.h now defines STDINT_TYPES_DEFINED if it has done so; the std.h code is only activated if this preprocessor symbol is not set. This change does not help with the portability of compiling jbig2dec directly as part of the Ghostscript build system since that code as a separate library includes no headers from the Ghostscript tree.[src/genarch.c 1.6, src/std.h 1.9, src/stdpre.h 1.18]
Fix for 687020 and 687146. The pdfwrite device is incorrectly converting CalRGB color spaces into ICC color spaces. Fix #1. Details: As Raph pointed out in the Wednesday's support call, there are actually two problems. 1. We were not correctly recognizing that we can use a CalRGB color space for the output. This patch corrects this problem. One of the tests in that process was assuming an incorrect ordering to the transforms. This fix corrects this problem. 2. The ICC color space which is being created is not equivalent to the original CalRGB color space. This results in differing colors between the original file and the output PDF file. This problem is still open. Note: I am leaving these bug reports still open since problem 2 is still open.[src/gdevpdfc.c 1.42]
2003-11-20 23:01 Igor Melichev
Factoring out the iterator for flattened curve segments. DETAILS : The new code is marked with FLATTENED_CURVE_ITERATOR defined in gzpath.h. It defines gx_flattened_curve_iterator for using in the True Type grid fitting. The old code has bugs in the MERGE_COLLINEAR_SEGMENTS section. An uneven behavior happened near the 'points' buffer boundary and with the last but one point : some points were not skipped when they should. For a while we keep a compatibility of the new code to the old one. This patch : 1. Defines of the gx_flattened_curve_iterator. 2. Emulates of the old code with gx_flattened_curve_iterator. 3. Provides a compatibility to the old code bugs with FLATTENED_CURVE_ITERATOR0_COMPATIBLE. 4. Improves a debug printing in the old code, to allow a trace comparizon with the new one. 5. Improves an old comment "Fast check for n == 3" ('n' was not explained). 6. Saves stack space when gx_flatten_sample recurses. 7. Inserts a 'const' into vdtrace.* . EXPECTED DIFFERENCES : None.[src/gxpflat.c 1.7, src/gzpath.h 1.9, src/lib.mak 1.150, src/vdtrace.c 1.8, src/vdtrace.h 1.8]
2003-11-20 20:52 Alex Cherepanov
Restore v.1.2 rolled back by mistake. Partial fix for bug 687029[src/ttfsfnt.h 1.4]
Add prefix headers for the MacOS build to define DEBUG for the appropriate targets. Bug 686844.[src/macgenmcpxml.sh 1.11, src/macos_carbon_d_pre.h 1.1, src/macos_classic_d_pre.h 1.1]
Replace non-standard #if DEBUG lines with #ifdef DEBUG. Discovered in fixing bug 686844.[src/igc.h 1.7]
Replace non-standard #if DEBUG lines with #ifdef DEBUG. Discovered in fixing bug 686844.[src/igc.c 1.12]
2003-11-20 07:53 Igor Melichev
Implementing a True Type grid fitting, step 3. DETAILS : The new code is disabled with TT_GRID_FITTING 0 in gx.h . This patch improves the stem recognizer and fixes the "#if DEBUG" error. EXPECTED DIFFERENCES : None.[src/gzspotan.c 1.3]
Add some basic instructions for creating an IDE project file for the example API client code. Bug 669654.[doc/API.htm 1.40]
Link to the MacOS example client from the API documentation, along with the others.[doc/API.htm 1.39]
Replace the code that removes the additional CFLAGS added by the AC_PROG_CC autoconf macro. Closes bug 687150. DETAILS: On linux with gcc, AC_PROG_CC adds '-g -O2' to the general CFLAGS. This was overriding the -O we add in Makefile.in, and the bug complains that this confuses gdb because of code re-organization. This change also means we no longer include full debug symbols in the normal build. I don't consider this an improvement personally, but will bow to the traditionalists. Note that 'strip' still reduces the size of the executable by 20%, so it's still worth running if you're concerned about install-size.[src/configure.ac 1.34]
2003-11-19 13:09 Igor Melichev
Fix : The last change to ttfsfnt.h doesn't compile on Linux and has been undone. DETAILS : The wrong patch is http://www.ghostscript.com/pipermail/gs-cvs/2003-November/003765.html[src/ttfsfnt.h 1.3]
Fix for 687131 Incorrect rendering for type 1 images when Interpolate == true. DETAILS: The user has a custom device which uses more than 32 bits per pixel and also uses gx_default_copy_colort. This fix extends that routine to handle pixels sizes beyond 32 bits.[src/gdevdbit.c 1.10]
Enhancement for bug 687148. Add 12 and 16 bits to the possible number of bits per component for the bit devices.[src/gdevbit.c 1.9]
2003-11-18 16:35 Alex Cherepanov
Replace non-portable types with ISO/IEC 988:1999 exact-size types. Partial fix for bug 687029[src/ttfsfnt.h 1.2]
2003-11-18 13:24 Igor Melichev
Implementing a True Type grid fitting, step 2. DETAILS : The new code is disabled with TT_GRID_FITTING 0 in gx.h . This patch fixes memory management problems and implements a trial stem recognizer. EXPECTED DIFFERENCES : None.[src/gxttfb.c 1.19, src/gzspotan.c 1.2, src/gzspotan.h 1.2, src/lib.mak 1.149]
Correct the documentation for the possible values of color_info.depth to include values greater than 32 bits. The documentation problem was found by the user while investigating 687131.[doc/Drivers.htm 1.42]
Fix the logic that conditionally disables interpolation. The previous only worked if the max_gray was set to the same as max_color, but the macro dci_std_color_max_gray set max_gray to 0 if the number of components was > 1. Detected with bug #687147 for customer #750.[src/gxiscale.c 1.8]
2003-11-17 16:42 Igor Melichev
Implementing a True Type grid fitting, step 1. DETAILS : It's an initial commitment. It is not completed, but we need to store changes to lib.mak . The new code is disabled with TT_GRID_FITTING 0 in gx.h . EXPECTED DIFFERENCES : None.[src/gsfont.c 1.26, src/gx.h 1.15, src/gxfcache.h 1.21, src/gxfdrop.h 1.2, src/gxfill.c 1.50, src/gxttfb.c 1.18, src/gzspotan.c 1.1, src/gzspotan.h 1.1, src/lib.mak 1.148]
2003-11-17 15:46 Igor Melichev
Fix (pdfwrite) : Numeric errors appeared writing an UCR. DETAILS : The old code wrote UCR (undercolor removal) functions with mapping 0 to 0.00392, causing a solid black to convert to a non-solid color with pkmraw device. The fix reduces the sample range to [0:254] and generates an appropriate Decode array. Bug 687109 "PDF-->pkmraw: 0 0 0 RG isn't solid:. Bug 687138 "pdfwrite is adding poor UCR functions to output files". EXPECTED DIFFERENCES : This patch causes multiple differences with pdfwrite->pkmraw. The change to pdfwrite definitely is a progression, but it discovers a new bug 687146 "(pdfwrite) CalRGB wrongly converts to ICCBased". We did not check which differences are coused by the new bug. Will see after the bug is fixed. Updating the baseline should be fine for entire list. 0.pdf 01_001.pdf 033-52-5873.pdf 159.pdf 246-01.ps 477-03.ps 477-04.ps 477-05.ps 86554321.pdf a.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf ADOBE1-4.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf brochurep1.pdf bulletin.pdf CAT_LOGO.ps ccc.pdf chstudy.pdf dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf Es001-01.pdf Faktura.pdf file.pdf Fixed_Original.pdf foo.pdf frosch.pdf gs.anotherfailure.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf H00216q.pdf ICPconcept.pdf InstandardBuildChar.ps Jahr2000.pdf japan-.ps japan.ps js.pdf kazmir.pdf korea.ps LD.pdf little.guy.pdf loremIpsum.pdf MagicEye.pdf map.pdf messenger.pdf messenger16.pdf motor.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf non-sepqxd2distiller.pdf Page01.pdf pdftops.pdf PixelisAd.pdf prob.pdf QA_Inv.pdf rf1025.pdf rotate0.pdf rotate180.pdf rotate270.pdf rotate90.pdf S2_Digitalproof-Forum_x3k.pdf si_tg_brochure.pdf smdf.90441.102.pdf sports.pdf Svd.pdf test.pdf test3.pdf Testform.v1.0.2.pdf TextRize.pdf Type11CDevProc.ps type42_glyph_index.ps unihaken-color.pdf vsem0093.pdf Vu989qfj.pdf xgfddg.pdf xngnews.pdf pdfwrite->pkmraw 300dpi : 0.pdf 01_001.pdf 033-52-5873.pdf 159.pdf 1_pct_50_bang.pdf 246-01.ps 477-03.ps 477-04.ps 477-05.ps 86554321.pdf a.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf ADOBE1-4.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf brochurep1.pdf bulletin.pdf CAT_LOGO.ps ccc.pdf chstudy.pdf dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf Es001-01.pdf Faktura.pdf file.pdf Fixed_Original.pdf foo.pdf frosch.pdf gs.anotherfailure.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf H00216q.pdf ICPconcept.pdf InstandardBuildChar.ps Jahr2000.pdf japan-.ps japan.ps js.pdf kazmir.pdf korea.ps LD.pdf little.guy.pdf loremIpsum.pdf MagicEye.pdf map.pdf messenger.pdf messenger16.pdf motor.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf non-sepqxd2distiller.pdf Page01.pdf pdftops.pdf PixelisAd.pdf prob.pdf QA_Inv.pdf rf1025.pdf S2_Digitalproof-Forum_x3k.pdf si_tg_brochure.pdf smdf.90441.102.pdf sports.pdf Svd.pdf test.pdf test3.pdf Testform.v1.0.2.pdf TextRize.pdf tpc2.ps type1-ce1_setcurrentpoint.ps Type11CDevProc.ps type42_glyph_index.ps unihaken-color.pdf vsem0093.pdf Vu989qfj.pdf xgfddg.pdf xngnews.pdf[src/gdevpdfg.c 1.44]
2003-11-14 18:59 Alex Cherepanov
JAWS PDF generator encodes empty stream as jaws_empty[]. The stream declares that the data block length is zero but zlib routines regard a zero length data block to be an error. Check for this case and return EOF without calling zlib. Fix bug 686779 from the customer 131[src/lib.mak 1.147, src/szlibd.c 1.6]
First attempt to add information requested by Igor to identify when the basline was set for a particular 'DIFFER' case. Bug #687142.[toolbin/tests/gscheck_pdfwrite.py 1.15, toolbin/tests/gscheck_raster.py 1.6]
2003-11-13 22:41 Igor Melichev
Fix : Add double inclusion protection to the True Type interpreter bridge modules. DETAILS : They follow FreeType's C-style as other modules branched from FreeType. EXPECTED DIFFERENCES : None.[src/ttconf.h 1.2, src/ttmisc.h 1.2]
2003-11-13 22:27 Igor Melichev
Fix : The first clip path list element sometimes got an empty path. DETAILS : This continues fixing the bug 686885 "bad paths in pdf". If !pcpath->path_valid, we convert the pcpath->rect_list to a path, storing it into the clip path list element. EXPECTED DIFFERENCES : pdfwrite progressions : 1_2001.pdf Altona-Testsuite_p2_S_x3.pdf (I'm sorry, in http://www.ghostscript.com/pipermail/gs-cvs/2003-November/003751.html a difference with Altona-Testsuite_p2_S_x3.pdf was misidentified as a progression. Rather that raster looks better, it differs more from Adobe. With this patch the raster is closer to Adobe)[src/gxcpath.c 1.10]
Fix: Adobe Acrobat Reader ignores an empty path when setting the clip path. Bug #687136. DETAILS: We never encountered this problem in a 'real' file, but one of Raph's test files showed the difference in the way our PDF interpreter handled an zero area path to setting clipping versus the way Adobe does. Igor tested CPSI and determined that PostScript results in a zero area clipping box, but Acrobat Reader works differently, so the patch detects a zero area path and does not change the clipping path in that case. The details of the determination of 0 area is commented here: pathbbox % get the path bounding box 3 -1 roll % roll to get upper and lower Y coordinates together sub abs % form absolute delta Y of path bbox 3 1 roll % roll upper and lower X coordinates to TOS sub abs % form absolute delta X of path bbox add % sum abs delta X and abs delta Y 0 ne % if it is non-zero, then perform the clip/eoclip[lib/pdf_ops.ps 1.33]
2003-11-13 15:19 Igor Melichev
Fix (pdfwrite) : Transfer function was not checked for identity. DETAILS : Bug 687124 "Large PDF file created from Quark with EPS's within", A document defines a transfer function { {} exec {} exec }, which was not recognized as identity, causing an image downsampling to be rejected. Improved pdf_update_transfer with checking for identity transfer. EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.43]
2003-11-12 19:58 Alex Cherepanov
Default to empty string when there's no /ID in the trailer and issue a warning because the key is required for encrypted files. Fix bug 687135[lib/pdf_sec.ps 1.12]
2003-11-12 14:29 Igor Melichev
Fix (pdfwrite) : Write high level clipping paths. DETAILS : This includes the "Preliminary patch for preserving clip path lists-bug686885" by Raph (gxcpath.c, gzcpath.h), and a simple algorithm for writing it to PDF (gdevpdfd.c). Now it writes entire list whenever clipping path is changed. A diserable optimization is to avoid writing redundant elements. For doing that we would like to have an id and a 'changed' flag in gx_path_s. Bug 686885 "bad paths in pdf". EXPECTED DIFFERENCES : This patch discovers a problem in PDF interpreter with re-distilled 1_2001.pdf . The problem is tracked as a new bug 687136 . Other expected differences are pdfwrite progressions : pdfwrite 72 dpi : 027-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 083-01.ps 102-01.ps 109-01.ps 169-01.ps 1_2001.pdf 205-01.ps 222-01.ps 298-01.ps 321-01.ps Altona-Testsuite_p2_S_x3.pdf BEST8-99-Path.fh7.pdf H00216q.pdf Openhuis_pdf_zw.pdf PixelisAd.pdf test.pdf pdfwrite 300 dpi : 027-01.ps 027-09.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 083-01.ps 102-01.ps 109-01.ps 169-01.ps 169-09.ps 1_2001.pdf 205-01.ps 222-01.ps 222-09.ps 298-01.ps 298-09.ps 307-07.ps 316-07.ps 321-01.ps 321-09.ps Altona-Testsuite_p2_S_x3.pdf BEST8-99-Path.fh7.pdf H00216q.pdf Openhuis_pdf_zw.pdf PixelisAd.pdf shading_prob_800.ps test.pdf[src/gdevpdfd.c 1.35, src/gxcpath.c 1.9, src/gzcpath.h 1.5]
2003-11-11 12:16 Alex Cherepanov
Use [/XYZ null null null] as a default destination following the Distiller example. The old destination was clearly wrong because it positioned the bottom of the page on the top of the screen, effectively displaying the next page. Fix bug 687129[src/gdevpdfm.c 1.33]
2003-11-11 11:23 Igor Melichev
Fix : ..includecolorspace caused an abnormal recursion. DETAILS : 1. With -dNOSUBSTDEVICECOLORS the procedure ..includecolorspace called setcolorspace, which recursively called ..includecolorspace . This recursion would be infinit unless an ocasional error in a stopped context terminates it. We replace setcolorspace with _setcolorspace_nosub to avoid the recursion. This fixes the bug 687134 "-dNOSUBSTDEVICECOLORS causes text to disappear". 2. An optimization done with a new dictionary ..page_default_spaces, which now keeps up to 3 global flags for Default* color spaces, to reflect whether they were included into a current page. It prevents redundant calls to _setcolorspace_nosub, .includecolorspace from ..includecolorspace . 3. Moved .PurgeDict to gs_init.ps because now it is called from showpage, copypage . 4. Added a name argument to .includecolorspace and passed it through a set of functions in the graphics library and pdfwrite. Before that Default* color spaces were included into the PDF output with wrong resource names. 5. Minor change : fixed a procedure header comment in gs_devcs.ps . EXPECTED DIFFERENCES : None, because the nightly regression doesn't test -dNOSUBSTDEVICECOLORS .[src/gdevdflt.c 1.15, src/gdevnfwd.c 1.14, src/gdevpdfc.c 1.41, src/gdevpdfg.h 1.27, src/gdevpdfv.c 1.32, src/gscolor2.c 1.17, src/gscolor2.h 1.9, src/gxdevcli.h 1.20, src/zcolor.c 1.17, lib/gs_ciddc.ps 1.13, lib/gs_devcs.ps 1.6, lib/gs_init.ps 1.101]
Continuation on the fix for 687101, Crash in GC on some PDF files. This change adds comments to GS procedures for the imager state structure. These comments Were added to prevent confusion about the handling of the effective transfer pointers.[src/gsistate.c 1.8]
2003-11-10 16:55 Igor Melichev
Fix (type 1 hinter) : Hints were not applied to the last segment of a Type 2 glyph. DETAILS : Due to Type 2 glyphs have no explicit closepath, the last contour was not added to the contours list. It caused its last segment got type=closepath instead type=oncurve, and was skipped from grid fitting. Bug 687119 "(pdfwrite) different raster if Helvetica is embedded". EXPECTED DIFFERENCES : Normal, 72dpi : 455690.pdf acrobat.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf bugsample.pdf bulletin.pdf ca.pdf CIDembedded.pdf dave.pdf Fixed_Original.pdf font_issue.pdf HeiseiMinStd.pdf KozukaB-ILEmbed.pdf Openhuis_pdf_zw.pdf Original.pdf PixelisAd.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test.pdf time1.pdf vsem0093.pdf pdfwrite, 72dpi : 033-52-5873.pdf 093-01.ps 455690.pdf 86554321.pdf aaon97_p7.pdf acrobat.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf Bug687044.ps bugsample.pdf bulletin.pdf ca.pdf chess.ps chstudy.pdf CIDembedded.pdf dave.pdf Fixed_Original.pdf font_issue.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf kazmir.pdf knight.pdf KozukaB-ILEmbed.pdf laballade.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf PixelisAd.pdf prob.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test-setweightvector.ps test.pdf test2.pdf test2a.pdf time1.pdf tpc2.ps vsem0093.pdf Normal, 300dpi : 455690.pdf 86554321.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf bugsample.pdf bulletin.pdf ca.pdf CIDembedded.pdf dave.pdf Fixed_Original.pdf font_issue.pdf HeiseiMinStd.pdf KozukaB-ILEmbed.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf PixelisAd.pdf QuickNews_Nov22.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test.pdf time1.pdf type2accent.pdf vsem0093.pdf pdfwrite, 300dpi : 033-52-5873.pdf 093-01.ps 455690.pdf 86554321.pdf aaon97_p7.pdf acrobat.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf bla.ps Bug687044.ps bugsample.pdf bulletin.pdf ca.pdf chess.ps chstudy.pdf CIDembedded.pdf dave.pdf Fixed_Original.pdf fonttest.pdf font_issue.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf kazmir.pdf knight.pdf KozukaB-ILEmbed.pdf laballade.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf pdfopt_bug.pdf PixelisAd.pdf prob.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test-setweightvector.ps test.pdf test2.pdf test2a.pdf time1.pdf tpc2.ps type2accent.pdf vsem0093.pdf[src/gxhintn.c 1.35]
2003-11-10 13:34 Igor Melichev
Fix : Refer new source modules from Develop.htm .[doc/Develop.htm 1.124]
Add and option for specifying banded/noband. The current version actually uses 1 to specify banding and 0 to specify no banding. This is the optional fourth parameter.[toolbin/tests/make_two_versions 1.12]
2003-11-07 04:40 Alex Cherepanov
Restore the invariant: effective_transfer always points to the transfer functions in the graphic state or halftone. Old code briefly left effective_transfer pointing to garbage, which caused relocation of garbage pointers and crash if GC happened at the right time. Fix bug 687101[src/gscolor.c 1.12, src/gscolor1.c 1.9]
Fix for 686796 tiffg4 device and incorrect halftone frequency. This eliminates a problem with not choosing the best halftone cell size when more than one possible cell size has the exact angle requested. DETAILS: Previously the logic for determing the size of the halftone cells used the product of the error in frequency times the error in the angle as the metric for determing the best cell size. For many common angles, 0, 45, 90, etc., this results in an angle error of zero. This then gave a value of zero for the metric no matter what the frequency error. The result was that in many cases we ignored cell sizes that gave a better frequency match. The fix revies the metric to choose a cell size which is closest (geometrically) to the ideal cell size.[src/gshtscr.c 1.14]
Correct spelling and wording.[doc/Use.htm 1.94]
2003-11-03 02:39 Alex Cherepanov
Initialize cc->pair field for the external fonts, forgotten during the switch to new TrueType interpreter (NEW_TT_INTERPRETER). Fix bug 687116[src/gxccache.c 1.28]
2003-11-01 13:18 Igor Melichev
Fix (font resource machinery) : Dont try reloading fonts if the platform has no native fonts. DETAILS : This change suppresses redundant messages "Cant find (or cant open) font file xxx.". EXPECTED DIFFERENCES : None.[lib/gs_fonts.ps 1.44]
2003-11-01 04:43 Alex Cherepanov
Following the PDF spec ignore "/Encrypt null" entry in the trailer. Fix bug 687117 DETAILS: This patch is not an equivalent transformation because knownoget returns false when the key value is null.[lib/pdf_main.ps 1.81]
2003-10-31 22:12 Igor Melichev
Fix (font resource machinery) : Provide correct font names for graphics library. DETAILS : The old code passed names of substitutes rather than font names referred by a document. This patch fixes that with adding a special ney entry /.Alias to the font dictionary. Besides that, multiple problems are fixed in gs_fonts.ps, some of them appeared before the repository was created. Lising them here : 1. Several comments about stack layout in procedure headers were wrong since the repository was created. We repaired some of them, but possibly not all. 2. The old code assumed that SubstituteFont adds a name to the stack rather than replaces it. See comment inserted into .dofindfont . The patch for the bug 637424 (Revision 1.24, Nov 21, 2002) broken the old behavior and left multiple rudiments in code. Now we restore the old functionality, and make SubstututeFont to be compartible with CPSI, which replaces a name. 3. Now we define fonts for all aliases in the aliasing/substituting chain. Not sure it is better than defining only the final one, but the pre-repository code did so, and was unintentionaly broken by multiple patches. 4. .stdsubstfont dropped some aliases with no strong reason. Restoring the old behavior. 5. .tryloadfont damaged the stack balance. It was not visible due to (4). 6. We use a hack to provide the main functionality. See comment in .aliasfont . A complete solution is too hard. 7. Inserted auxiliary comments about the stack layout. This change fixes the bugs 687047 "fonts renamed in resulting pdf file" 687111 "Quality of output wth gs8.11 for pdfwrite device is faded as compared to gs6.12" EXPECTED DIFFERENCES : MANY OF pdfwrite TESTS RENDER DIFFERENTLY due to the font substitution had changed. Now pdfwrite does not embed /NimbusMonL-Regu, but recognize its alias Courier as a standard font name. 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ats-3-5-99.pdf bc_02a01_cal.pdf brochurep1.pdf bug-gstest.pdf ca.pdf ccc.pdf chess.ps colorcir.ps Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps foo.pdf frosch.pdf GS_Stroke_error.pdf H00216q.pdf Jahr2000.pdf js.pdf kazmir.pdf LD.pdf messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf p2b-100.pdf pdftops.pdf prfmm.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf RealCities.pdf rf1025.pdf smdf.90441.102.pdf Svd.pdf test3.pdf TextRize.pdf textsavematrix.pdf two_encodings.ps Vu989qfj.pdf waterfal.ps xgfddg.pdf xngnews.pdf[src/zbfont.c 1.25, lib/gs_fonts.ps 1.43, doc/Use.htm 1.93]
2003-10-30 14:56 Igor Melichev
Fix (dropout prevention) : The expression for choosing a pixel to paint with narrow trapesoids was wrong (An improved revision). DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003721.html appears wrong. Now fixing it. EXPECTED DIFFERENCES : The massive difference in text rendering, which appeared after the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003721.html now should disappear. Only expected difference from the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003719.html (see its log message) should persist.[src/gxdtfill.h 1.6]
2003-10-30 12:56 Igor Melichev
Fix : Simplify the filling algorithm (step 10). DETAILS : Factored out fill_trap_or_rect. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.49]
2003-10-30 11:39 Igor Melichev
Fix : Simplify the filling algorithm (step 8). DETAILS : Don't create active line copies, because now the X list doesn't change. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.48]
2003-10-30 11:02 Igor Melichev
Fix : Simplify the filling algorithm (step 7). DETAILS : Removed some unused functions. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.47]
2003-10-30 10:45 Igor Melichev
Fix : Simplify the filling algorithm (step 6). DETAILS : This patch includes 2 changes : 1. Removed the "out of order lines patch". We believe that now it never happens. 2. A code restructurization. Moved the line intersection routine outside the main loop. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.46]
2003-10-30 09:33 Igor Melichev
Fix : Simplify the filling algorithm (step 5). DETAILS : Divided gxfill.c into 2 modules. Moved the dropout prevention code to the new module gxfdrop.c . This change should be algorithmically equivalent. Minor change : 1. Removed the ll_ptr type definition. IMO it is not fully conforming to C-style.htm . 2. Removed free variables from INSIDE_PATH_P and made it be of the module scope. EXPECTED DIFFERENCES : None.[src/gxfdrop.c 1.1, src/gxfdrop.h 1.1, src/gxfill.c 1.45, src/gxfill.h 1.1, src/lib.mak 1.146]
2003-10-30 07:55 Igor Melichev
Fix : Simplify the filling algorithm (step 4). DETAILS : 1. Restructirases some if statements to remove redundant code fragments. 2. Eliminated a low useful macros AL_DX, AL_DY. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.44]
2003-10-30 06:34 Alex Cherepanov
Correct a typo in source leading to failure of form selection for PCL printers. (contributed by Jim Bandy) Fix bug 686815[src/gdevdljm.c 1.9]
2003-10-29 17:43 Igor Melichev
Fix : Simplify the filling algorithm (step 2). DETAILS : 1. The new function fill_trap_slanted fgactored out from the trapezoid algorithm to simplify the code of the latter. 2. Simplified argument lists of dropout prevention functions. 3. Moved helper function definitions before calls to allow inline optimizations. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.43]
2003-10-29 15:58 Igor Melichev
Fix : Simplify the filling algorithm (step 2). DETAILS : This change removes the obsolete code PSEUDO_RASTERIZATION 0. It should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.42]
2003-10-29 14:57 Igor Melichev
Fix : Simplify the filling algorithm (step 1). DETAILS : This change divides the X-cycle of the trapezoid algorithm into 2 passes. The new function move_al_by_y is the second pass. It should be algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxfill.c 1.41]
2003-10-28 14:44 Igor Melichev
Fix (dropout prevention) : The expression for choosing a pixel to paint with narrow trapesoids was wrong. The old code sometimes unreasonably shifted stems in 1 pixel. EXPECTED DIFFERENCES : A massive difference in text rendering. ALMOST ALL comparefiles RENDER DIFFERENTLY.[src/gxdtfill.h 1.5, src/gxfill.c 1.40]
2003-10-28 14:42 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 21, final). DETAILS : This patch switches on the new TT interpreter and updates the documentation. EXPECTED DIFFERENCES : Massive difference in rendering TT fonts : 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf budget2_ai87.pdf bugsample.pdf Faktura.pdf fonts.pdf ICPconcept.pdf japan-.ps japan.ps keyboard.pdf korea.ps MagicEye.pdf MyTest5.ps MyTest6.ps S2_Digitalproof-Forum_x3k.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf Type11CDevProc.ps type42_glyph_index.ps[src/gx.h 1.14, doc/Develop.htm 1.123, doc/Language.htm 1.77, doc/Projects.htm 1.55, doc/Use.htm 1.92]
2003-10-27 10:45 Igor Melichev
Reclaim global memory in the beginning of the interpreter finalization (continued). DETAILS : Fixes the bug 687100 gswin32 -h crashes. EXPECTED DIFFERENCES : None.[src/imain.c 1.37]
2003-10-27 09:04 Igor Melichev
Fix : Removing the PDF Widths project from Project.htm . DETAILS : The issue was closed with pdf_font.ps Revision 1.57. Thanks to Alex Cherepanov. EXPECTED DIFFERENCES : None.[doc/Projects.htm 1.54]
2003-10-27 08:02 Igor Melichev
Fix (garbager) : The back pointer validity constraint was wrong. DETAILS : Bug 687021 "A crash in memory manager" Here is what happens : A big chunk is allocated by i_alloc_struct_array. Later a part of the array is released. Then another object is allocated in the released area. Then the object is being relocated. The old validity constraint in igc_reloc_struct_ptr assumed that the object is in a chunk of the standard size. However it is not. The check fails, and gs_exit() is called. The latter calls vm_reclaim and falls into an infinite recursion and crashes. This patch enhances the constraint for instandard (big) chunks. Unfortunately their sizes can't easy obtain from igc_reloc_struct_ptr, therefore the new check only works for pointers to same chunk. A new field (DEBUG=1 only) is inserted into gc_state_s to access the chunk from igc_reloc_struct_ptr. We're not happy of this solution, but there is no idea how to improve it. EXPECTED DIFFERENCES : With -Z? the old code failed with pdfwrite->ppmraw with the following tests : 040-01.ps 091-01.ps 110-01.ps 282-01.ps Altona.Page_3.2002-09-27.pdf (crash) The new code doesn't fail with -Z? . Nightly regression doesn't test -Z? .[src/igc.c 1.11, src/igc.h 1.6]
2003-10-26 00:52 Alex Cherepanov
Apply oforce to every element of MediaBox and CropBox arrays. Fix bug 687035 from customer 831[lib/pdf_base.ps 1.39, lib/pdf_main.ps 1.80]
Some minor clean up for the makefiles: 1. Correct lines that should start with tabs. 2. Clear some lines which only contain spaces.[src/bcwin32.mak 1.30, src/dvx-gcc.mak 1.24, src/macos-mcp.mak 1.23, src/macosx.mak 1.21, src/msvc32.mak 1.50, src/msvclib.mak 1.25, src/msvctail.mak 1.10, src/openvms.mak 1.33, src/os2.mak 1.35, src/ugcclib.mak 1.26, src/unixansi.mak 1.33]
2003-10-23 17:45 Igor Melichev
Fix (PDF interpreter) : Shared CID font descriptors did not work properly. DETAILS : When a CID font descriptor is shared with several CID font resources, must create several font objects with different CIDToGIDMap, DW, DW2 taken from CID font resource dictionaries. The old code created a single font object with one randomly chosen CIDToGIDMap, making some glyphs inaccessible, and glyphs could misplace. New procedures adjustCIDType0, adjustCIDType2 are added into the adjustfont dictionary, so that now CID fonts are processed in same way as fonts. Bug 687048 "fonts not rendered correctly". Besides that, the old code on pdf_font.ps created a CDevProc for processing DW[2], but it was not properly added to the font dictionary and was not executed. The new code fixes that. This issue causes rendering differences. [end quote] EXPECTED DIFFERENCES : This patch causes progressions in PDF interpreter : raster, 72dpi : ICPconcept.pdf Testform.v1.0.2.pdf raster, 300dpi : Altona.Page_3.2002-09-27.pdf ICPconcept.pdf Testform.v1.0.2.pdf pdfwrite->raster, 72dpi : Altona.Page_3.2002-09-27.pdf ICPconcept.pdf japan-.ps japan.ps Testform.v1.0.2.pdf Type11CDevProc.ps pdfwrite->raster, 300dpi : Altona.Page_3.2002-09-27.pdf ICPconcept.pdf japan-.ps japan.ps korea.ps shading_prob_800.ps Testform.v1.0.2.pdf Type11CDevProc.ps[lib/pdf_font.ps 1.59]
2003-10-23 10:46 Igor Melichev
Fix (pdfwrite) : Restrict Tj offsets. DETAILS : Acrobat reader 4.0c, 5.0 can't handle big offsets. Bug 687089 "Displaced characters in PDF". EXPECTED DIFFERENCES : None.[src/gdevpdts.c 1.27]
2003-10-23 09:56 Igor Melichev
Fix (pdfwrite) : MSVC compiler warning. EXPECTED DIFFERENCES : None.[src/gdevpdte.c 1.49]
2003-10-23 09:49 Igor Melichev
Fix (pdfwrite) : Optimize pdf_make_text_glyphs_table_unencoded. DETAILS : This change is algorithmically equivalent. The new code isn't faster, because the new function gs_c_decode still needs an optimization, but the latter is simple. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.67, src/gdevpdtt.h 1.20, src/gscencs.c 1.7, src/gscencs.h 1.5]
2003-10-23 09:04 Igor Melichev
Fix : ColorSpace resource files define global resources. DETAILS : This is an optimisation issue. EXPECTED DIFFERENCES : None.[Resource/ColorSpace/DefaultCMYK 1.2, Resource/ColorSpace/DefaultGray 1.2, Resource/ColorSpace/DefaultRGB 1.2]
Always install all the available resource categories (directories) on unix, in place of the earlier hard-wired list. Closes bug 687092.[src/unixinst.mak 1.34]
Add the new ColorSpace directory to the list of installed resource categories. This is the quick fix version of the resolution for Bug 687092.[src/unixinst.mak 1.33]
Fix for 687099 Rebulding XREF leaves 1 object on the stack. The bug title is erroneous. All PDF files were leaving one item, a zero, on the stack. The problem was caused by an incorrect definition of pdfemptycount.[lib/pdf_main.ps 1.79]
file gslibctx.c was initially added on branch gslibctx.[src/gslibctx.c 1.1]
file gslibctx.h was initially added on branch gslibctx.[src/gslibctx.h 1.1]
Change the name of the switch NOSUBDEVICECOLORS to NOSUBSTDEVICECOLORS. This was done to prevent confusion about being read as 'No subdevice colors'.[doc/Use.htm 1.91, lib/gs_devcs.ps 1.5, lib/gs_init.ps 1.100]
2003-10-22 13:11 Igor Melichev
Fix (pdfwrite) : Provide an extended encoding for glyphshow. DETAILS : It fixes the problem 1 described in the bug 687087 "pdfwrite : A mangled /trademark glyph" : the glyph was converted to outline. In the test document a glyphshow uses a glyph outside the font's Encoding. Now we find a known Postscript encoding containing the glyph, and encode the glyph with it. Glyphs with unknown names still convert to outlines. EXPECTED DIFFERENCES : pdfwrite progressions : 136-01.ps 244-01.ps The document tpc2.ps of the bug 687087.[src/devs.mak 1.100, src/gdevpdtc.c 1.29, src/gdevpdte.c 1.48, src/gdevpdtt.c 1.66, src/gdevpdtt.h 1.19]
Update a call to map_rgb_color() to use the new encode_color() with a component array argument. Partial resolution of Bug 686981. DETAILS: This resolves the compiliation problem that was the substance of the original report. However, there is further code rot to be corrected as the driver fails in use with '/undefined in --get--'.[src/gdevcgm.c 1.9]
2003-10-22 11:22 Alex Cherepanov
Restore standard functionality of bind operator in DELAYBIND mode after .bindnow . Simplify the implementation logic and document the changes. Fix bug 686746 DETAILS: The fix is based on the patch from Piotr Strzelczyk but selects the bind definition at run time following the old implementation to avoids errors when the differed bind operator is bound in.[lib/gs_ll3.ps 1.20, doc/Language.htm 1.76, lib/gs_init.ps 1.99, lib/ps2ascii.ps 1.8]
Make a sentence fragment a clause.[doc/Drivers.htm 1.41]
2003-10-22 08:55 Alex Cherepanov
Dereference indirect objects during conversion from PDF form XObject to PostScript form. Minimize dictionary copying. Fix bug 686953.[lib/pdf_draw.ps 1.79]
2003-10-22 07:07 Igor Melichev
Fix (PDF interpreter) : Annotations, outlines and links pointing to non-existing pages caused a failure with -dDOPDFMARKS. Patch from Leon Bottou. DETAILS : Bug 686839 "Patch to ignore pdf errors in outlines and links" A followup form Leon Bottou : [beg quote] I found several pdf files with damaged or incorrect annotations (outlines, links) pointing to non existing pages or even pointing to nodes of incorrect type When using the pdf interpreter with -dDOPDFMARKS, such errors cause an execution error in the pdf interpreter The attached patch ignores such errors. The assumption is that it is better to produce botched pdfmarks than producing an error message and be unable to process the file. [end quote] EXPECTED DIFFERENCES : None.[lib/pdf_main.ps 1.78]
2003-10-21 15:02 Igor Melichev
Fix (pdfwrite) : Refactor pdf_obtain_font_resource. DETAILS : This change is algorithmically equivalent. It's a preparation for fixing the problem 1 described in the bug 687087 "pdfwrite : A mangled /trademark glyph" EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.65]
Complete the replacement for fname_size described in the previous commit. Part of fixing bug 686981.[src/gdevcgm.c 1.8]
Replace a non-standard local filename length define with gp_file_name_sizeof.[src/devs.mak 1.99, src/gdevcgm.c 1.7]
2003-10-21 11:54 Alex Cherepanov
Fix compiler warnings. Include gpmisc.h when needed. Fix bug 687006.[src/gp_dosfs.c 1.16, src/gp_macio.c 1.32, src/gp_ntfs.c 1.21, src/gp_unifn.c 1.15, src/gp_vms.c 1.36, src/int.mak 1.118, src/lib.mak 1.145, src/macos-mcp.mak 1.22, src/openvms.mak 1.32, src/openvms.mmk 1.27, src/stdio_.h 1.9, src/winplat.mak 1.5, src/zfile.c 1.39]
2003-10-21 11:20 Alex Cherepanov
Issue a path construction command after accumulation of 500 values to prevent operand stack overflow. Fix bug 687016[src/gdevps.c 1.37]
2003-10-21 10:06 Igor Melichev
Fix : Disable the grid fitting while charproc accumulation (continued). DETAILS : 1. If a charproc of a Type 3 font uses another Type 3 font, and the latter converts to raster, the grid fitting was erroneusly disabled while its charproc accumulation. Not sure that this case can happen, but we like to clean up. 2. An optimization to process_plain_text is algorithmically equivalent. It is not related to charprocs though. EXPECTED DIFFERENCES : None with comparefiles.[src/gdevpdte.c 1.47, src/gdevpdti.c 1.22]
2003-10-21 08:05 Igor Melichev
Fix : Add newly defined resource files to static resources. EXPECTED DIFFERENCES : None.[lib/gs_stres.ps 1.6]
2003-10-21 07:50 Igor Melichev
Fix : Some Cygwin/gcc compiler warnings. EXPECTED DIFFERENCES : None.[src/gdevpdfg.c 1.42, src/gdevpdtt.c 1.64, src/gxhintn.c 1.34, src/gxtype1.c 1.35, src/interp.c 1.17, src/isave.c 1.9, src/iscan.c 1.15, src/zfapi.c 1.49, src/zfont.c 1.9, src/devs.mak 1.98, src/icid.h 1.7, src/isave.h 1.6]
2003-10-21 01:43 Igor Melichev
Fix : Disable the grid fitting while charproc accumulation. DETAILS : This is a partial (minor) fix for the bug 687087 "pdfwrite : A mangled /trademark glyph". The glyph looks fine but still converts to outline. This change works for pdfwrite only. It changes several files in the graphics library, but other devices should percept this change as algorithmically equivalent. The core of the change is explained in the comment inserted into gdevpdtt.c : if (pdev->font3 != 0) { /* A text operation happens while accumulating a charproc. This is a case when source document uses a Type 3 font, which's charproc uses another font. Since the text operation is handled by the device, the font isn't converting to a raster (i.e. to a bitmap font). Disable the grid fitting for the convertion to get a proper outlines, because the viewer resolution is not known during the accumulation. Note we set identity CTM in pdf_text_set_cache for the accumilation, and therefore the font may look too small while the source charproc interpretation. The document tpc2.ps of the bug 687087 is an example. */ penum->device_disabled_grid_fitting = true; } It is implemented with defining the new field device_disabled_grid_fitting into gs_text_enum_common. Minor changes : 1. In gs_type1_state_s renamed charpath_flag to no_grid_fitting. We believe the new name reflects the semantics better. Several function prototypes changed the argument name. 2. decompose_matrix in gxttfb.c changed the prototype, and disables the TT grid fitting for very small fonts. (We consider it as a minor change, because currently this portion is disabled with NEW_TT_INTERPRETER 0 in gx.h). 3. A problem discovered in t1_hinter__set_mapping that impedes implementing a grid-fitting disabling for small Type 1,2,11 fonts. A comment is inserted into gxhintn.c about that. Very samll glyphs can be mangled diring a rasterization, but the mangling isn't visible in raster with such small sizes. Therefore the problem isn't important. EXPECTED DIFFERENCES : None with comparefiles. The test file tpc2.ps of the bug 687073 doesn't cause a mangled glyph, rather the glyph still converts to outline.[src/gdevpdte.c 1.46, src/gdevpdtt.c 1.63, src/gstext.c 1.14, src/gstype1.c 1.29, src/gstype1.h 1.9, src/gstype2.c 1.32, src/gxfcopy.c 1.36, src/gxhintn.c 1.33, src/gxhintn.h 1.15, src/gxtext.h 1.12, src/gxttfb.c 1.17, src/gxtype1.c 1.34, src/gxtype1.h 1.18, src/zchar1.c 1.34]
2003-10-20 12:06 Alex Cherepanov
Don't cache glyphs with a suspect bounding box. The patch tests for (urx!=0 && llx==urx) || (ury!=0 && lly==ury) but suggestions of a better test are allways welcome. Fix bug 687015 from customer 440[lib/pdf_font.ps 1.58]
2003-10-19 17:48 Alex Cherepanov
Return correct /DeviceGray color space from currentcolorspace operator inside PaintProc of the uncolored pattern and cache device (bug 627169). Use igs->color_space to track the current color space. Fix bug 687080 from customer 710. DETAILS: The problem in bug 687080 is definitely a conflict about the current color space while the PaintProc is being executed. There are two color space indicators: pgs->color_space and igs->colorspace. Most of the time these two agree and there is no problem. However during pattern accumulation pgs->color_space has been temporarily changed from a pattern color space to DeviceGray. This causes a problem when the currentcmyk operator is called. Currently, before this fix, it calls currentcolor which returns a DeviceGray color. Then a color to CMYK routine is called based upon the color space being a pattern color space. This then fails since it has the wrong input color values. The fix looks at the current color space, in pgs->color_space, and is special casing DeviceGray. The fix should work better than the current logic. The only problem area would likely be if we have other 'temporary' color spaces besides DeviceGray. I do not know of any and the current logic would also fail.[src/int.mak 1.117, src/zcolor.c 1.16]
Fix: Pattern color spaces that used save/restore within the PaintProc would result in infinite looping with high level devices such as the pdfwrite device since the restore cleared the pattern cache so that after the restore, the pattern PaintProc would need to be executed again. Bug #687052 for customer #411. DETAILS: The 'is_dummy' flag in the pattern cache indicates that the cache entry does not contain bitmap or tile bits, but rather is just a placeholder for the pattern 'id'. The patch does not delete entries for pattern color spaces that have is_dummy != 0. The pdfwrite device creates all pattern cache entries as dummies. This change does not result in any regression and, of course, prevents the infinite looping.[src/gxpcmap.c 1.11]
2003-10-16 20:42 Igor Melichev
Fix (pdfwrite) : Fonts used in a charproc were not added to Resources of some pages. DETAILS : Bug 687073 "cannot convert a ps file to pdf" Changes : 1. Added gx_device_pdf::font3 to access the Type 3 font while a charproc stream accumulation. 2. Provided saving it to the substream context stack. 3. Provided resource id for Type 3 font resources (were zeros). 4. The new function pdf_used_charproc_fonts sets where_used to charproc fonts, allowing to write them to page Resources. 5. A minor cleanup of comments. EXPECTED DIFFERENCES : None.[src/gdevpdf.c 1.75, src/gdevpdfx.h 1.77, src/gdevpdte.c 1.45, src/gdevpdtf.h 1.21, src/gdevpdti.c 1.21, src/gdevpdts.c 1.26, src/gdevpdtt.c 1.62, src/gdevpdtx.h 1.2]
2003-10-16 13:37 Igor Melichev
Fix (pdfwrite) : The font copying routine was inprecise. DETAILS : 1. Obtaining a glyph metrics, the font copying rutine scaled it with UnitsPerEm and back, loosing a precision. It caused an inprecise values for glyph width and side bearing in the font copy, and implied slightly shifted glyphs when PDF is rasterised. Inserted a compensation in the rounding expressions. 2. compare_glyphs sometimes compared a TT glyph with 0th glyph, and made a wrong decision that fonts can't merge. With some documents the PDF output becomes shorter. EXPECTED DIFFERENCES : pdfwrite, 72dpi: keyboard.pdf korea.ps MagicEye.pdf type42_glyph_index.ps pdfwrite, 300dpi : 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Faktura.pdf ICPconcept.pdf keyboard.pdf korea.ps MagicEye.pdf type42_glyph_index.ps In adesso7.pdf, adesso8.pdf a TT font renders some worse, but it's unfortunate. With the new TT interpreter and -dGridFitTT=1 it renders fine.[src/gdevpsft.c 1.31, src/gstype42.c 1.40, src/gxfcopy.c 1.35]
2003-10-16 12:33 Igor Melichev
Reclaim global memory in the beginning of the interpreter finalization. DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003664.html was incomplete. EXPECTED DIFFERENCES : Revisions after the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003664.html can crash or write an incomplete PDF. Now fixed.[src/imain.c 1.36]
When Glyph names data is not available for a TrueType Format 2.0 font, rangecheck error occured. It was due to an attempt to get the data even when it is not available. Now when no name data is available, /postnames is defined as an empty array and the glyph won't get a name attached. Fixes Bug#686961.[lib/gs_ttf.ps 1.34]
2003-10-16 11:15 Alex Cherepanov
Fix error recovery code for PDF image; pop the operand of image operator restored by the standard PS error recovery. Fix bug 687081 from customer 770.[lib/pdf_draw.ps 1.78]
2003-10-15 15:36 Igor Melichev
Fix (pdfwrite) : Resources were prematurely freed, causing pending pointers. DETAILS : Debugged with 473-01.ps (was a crash in ialloc_validate_object). EXPECTED DIFFERENCES : 473-01.ps shouldn't crash pdfwrite.[src/gdevpdf.c 1.74]
2003-10-15 15:35 Igor Melichev
Fix (pdfwrite) : Don't recompute FontBBox for CID font subsets. DETAILS : It's an optimization, which is important with the new TT interpreter. The new TT interpreter copies TT structures into internal structures. With CID fonts it'a a big memory consumtion. Also now it runs faster. EXPECTED DIFFERENCES : None.[src/gdevpdtd.c 1.15]
2003-10-15 11:34 Igor Melichev
Fix : A minor code cleanup in zfont42.c . DETAILS : The condition for missing a glyph was too weak, rather it never went out. EXPECTED DIFFERENCES : None.[src/zfont42.c 1.17]
2003-10-15 11:29 Igor Melichev
Fix (pdfwrite) : A bug in memory descriptor. DETAILS : The bug caused a crash re-distilling the keyboard.pdf . EXPECTED DIFFERENCES : Should fix the pdfwrite crash with keyboard.pdf.[src/gsstruct.h 1.17, src/gxfcopy.c 1.34]
2003-10-15 08:53 Igor Melichev
Reclaim global memory in the beginning of the interpreter finalization. DETAILS : This is a partial fix for the bug 687071 "Default vmthreshold isn't sufficient for pdfwrite". The pdfwrite device may need significant space in global memory to allocate compression filters while the device finalization. EXPECTED DIFFERENCES : With this patch the following test crashes : gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=z:\cur.pdf comparefiles/keyboard.pdf -c quit It looks as a wrong memory allocation or a descriptor. I don't delay commit, because it's another problem to be worked out separately, and the problem isn't massive.[src/imain.c 1.35, src/interp.c 1.16, src/interp.h 1.6]
Change the name of NOSUBCOLORSPACES to NOSUBDEVICECOLORS. DETAILS: In a code review for the NOSUBCOLORSPACES switch, Igor suggested changing the name to KEEPDEVICECOLORS. I still prefer NOSUB instead of KEEP. Basically I prefer that switches which stop an action begin with NO. However changing COLORSPACES to DEVICECOLORS is a definite improvement since COLORSPACES is overly general and thus inaccurate. The only color spaces which are substituted are the device colors.[doc/Use.htm 1.90, lib/gs_devcs.ps 1.4, lib/gs_init.ps 1.98]
Add new header file src/gdevdevn.h to doc/Develop.htm.[doc/Develop.htm 1.122]
2003-10-15 00:03 Igor Melichev
Fix (True Type font loader) : 'glyf' and 'loca' were loaded emulating a CID font with True Type, causing an unuseful huge memory consumtion. DETAILS : My old patch about the font emulation was incomplete. This patch fixes that. EXPECTED DIFFERENCES : None.[lib/gs_ttf.ps 1.33]
2003-10-14 20:37 Igor Melichev
Fix (pdfwrite) : Resources were prematurely freed, causing duplicated objects in the output. DETAILS : Bug 687078 "pdfwrite duplicates page resources". pdf_store_page_resources releases page resources, but they may be used in next pages. Due to that such resources may be duplicated in the output file. EXPECTED DIFFERENCES : None.[src/gdevpdfc.c 1.40, src/gdevpdfu.c 1.43]
2003-10-14 15:00 Igor Melichev
Fix (pdfwrite) : Applying .includecolorspace to insert "default" color spaces. DETAILS : This completes the fix for the bug 687054 "pdfwrite should include DefaultGray, DefaultRGB, DefaultCMYK". The "default" color space resources are being included only if all 3 conditions are satisfied : 1. -dUseCIEColor is set; 2. -dNOSUBCOLORSPACES is set; 3. The source document defines the resource. If the document doesn't define the resource, but the user wants to include it, the document to be prepended with currentglobal true setglobal /DefaultGray /ColorSpace 2 copy findresource exch defineresource pop /DefaultRGB /ColorSpace 2 copy findresource exch defineresource pop /DefaultCMYK /ColorSpace 2 copy findresource exch defineresource pop setglobal and the resources must be available in gs/Resource/ColorSpace. This patch removes the "default" color space resources from gs_ll3.ps, assuming they are added to gs/Resource/ColorSpace. This is done to obtain the proper result of resourcestatus. EXPECTED DIFFERENCES : None.[lib/gs_devcs.ps 1.3, lib/gs_ll3.ps 1.19]
2003-10-14 14:58 Igor Melichev
Initial commit for ColorSpace resources.[Resource/ColorSpace/DefaultCMYK 1.1, Resource/ColorSpace/DefaultGray 1.1, Resource/ColorSpace/DefaultRGB 1.1]
2003-10-14 12:53 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 20). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch is a minor code cleanup. EXPECTED DIFFERENCES : None.[src/gxccache.c 1.27, src/gxttfb.c 1.16, src/ttfmain.c 1.18]
2003-10-14 12:43 Igor Melichev
Define a new special operator .includecolorspace and new device virtual function include_color_space. Implement the latter for pdfwrite. DETAILS : This is a partial fix for Bug 687054 "pdfwrite should include DefaultGray, DefaultRGB, DefaultCMYK". This stuff provides a writing, but currently it is never called by gs/lib/* . A documentation is placed into a comment in gscolor2.c . EXPECTED DIFFERENCES : None.[src/gdevbbox.c 1.15, src/gdevdflt.c 1.14, src/gdevnfwd.c 1.13, src/gdevpdf.c 1.73, src/gdevpdfd.c 1.34, src/gdevpdfv.c 1.31, src/gdevpdfx.h 1.76, src/gdevrops.c 1.9, src/gscolor2.c 1.16, src/gscolor2.h 1.8, src/gxclip.c 1.12, src/gxclip2.c 1.9, src/gxclipm.c 1.11, src/gxclist.c 1.12, src/gxdevcli.h 1.19, src/gxdevice.h 1.14, src/zcolor.c 1.15]
2003-10-14 10:15 Igor Melichev
Fix (PDF interpreter) : Adjust the currentpoint saved back into TextMatrix so that it does not include the effect of TextRise. DETAILS : Bug 686837 "PDF with subscript rendered wrong" Patch from Raph Levien. Here is analyzis from Raph Levien : [beg quote] the test file is using PDF's Ts operator to adjust the "text rise", exactly as shown in section 5.2.6 "Text Rise" of the PDF manual (3rd ed). Ghostscript's rendering is incorrect because the "settextposition" function (in pdf_ops.ps) updates the TextMatrix using the current point after showing the text. However, this point already contains the effect of TextRise. Then, the next time settextmatrix is invoked, it applies TextMatrix, followed by a second TextRise. The patch below simply reverses the effect of TextRise before setting TextMatrix. I believe that the correct invariant is that "settextposition" followed by "settextstate" should result in (0, 0) being the current point in the resulting CTM. I argue that the patch fulfills the invariant, as follows. Let the current point be (x, y), relative to TextSaveMatrix. Then, settextposition sets the translate portion of TextMatrix to (x, y - TextRise). Then, settextmatrix (as invoked from settextstate) applies TextMatrix followed by TextRise, for a net translation of (x, y). Query: is this reasoning still valid for arbitary rotations and scales in TextMatrix (as set by Tm)? It seems so to me, but I believe testing is required to establish this definitively. [end quote] I've tested it with comparefiles and found no differences. EXPECTED DIFFERENCES : None.[lib/pdf_ops.ps 1.32]
2003-10-14 09:16 Igor Melichev
Fix (resource machinery) : A bug in resourceforall. DETAILS : Bug 687004 "bug in gs_res.ps (6.52, 7.07 and 8.11)". Patch from Ferdinand Oeinck. EXPECTED DIFFERENCES : None.[lib/gs_res.ps 1.36]
2003-10-14 09:14 Igor Melichev
Fix (Type 1 interpreter) : Provide a tolerance to a missed subglyph. DETAILS : Bug 595760 "Fix for buggy font subsets". EXPECTED DIFFERENCES : None.[src/gxfcopy.c 1.33, src/gxfont1.h 1.12, src/gxtype1.c 1.33, src/zchar1.c 1.33, src/zfcid0.c 1.21]
2003-10-13 19:10 Igor Melichev
Fix (FAPI/FreeType) : Upgrading to Free Type 2.1.5 . DETAILS : A minor change in a type name. Patch from Robert Seretny. EXPECTED DIFFERENCES : None.[src/fapi_ft.c 1.12]
2003-10-13 15:06 Igor Melichev
Fix (color space serialization) : Removing a constraint to the Sd function dimension. DETAILS : The implementation used an unreasonable constraint, which restricted a number of color components. Now the constraint is removed. EXPECTED DIFFERENCES : Fixes the recent regression with Altona.Page_3.2002-09-27.pdf .[src/gsfunc0.c 1.13]
2003-10-13 12:16 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 19). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch applies the design grid to emulate an infinite resolution with GridFitTT=0. Removed changes to ttinterp.c that were inserted to that purpose. The old code literally implemented the Raph's idea to disable the pixel rounding in the TT interpreter. Such implementation appears not good due to a rounding may apper implicitly while coordinate computations with low level TT operations. The new code requires lesser changes to the TT inprepreter and needs lesser number of cases to represent the infinite resolution : same code works for GridFitTT=0 and for charpath. Also optimized MoveGlyphOutline because now it is called more frequent. EXPECTED DIFFERENCES : None.[src/gxccache.c 1.26, src/gxttfb.c 1.15, src/ttfmain.c 1.17, src/ttfoutl.h 1.12, src/ttinterp.c 1.9]
2003-10-12 19:09 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 18). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch is an optimization : it avoids an extra glyph data copying, and simplifies a memory descriptor. EXPECTED DIFFERENCES : None.[src/gxttfb.c 1.14, src/ttfmain.c 1.16, src/ttfmemd.c 1.6, src/ttfoutl.h 1.11]
2003-10-10 07:08 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 17). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes a problem with zero size fonts. EXPECTED DIFFERENCES : None.[src/gxccache.c 1.25, src/gxccman.c 1.22, src/gxfcache.h 1.20]
Fix for 687055 pdfwrite should not fail with <</ProcessColorModel /DeviceN>> setpagedevice. This change adds support for the DeviceN process color model to the pdfwrite device. The DeviceN process color model is treated like the DeviceCMYK process color model except for the name.[src/gdevpdf.c 1.72, src/gdevpdfp.c 1.33]
2003-10-09 20:29 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 16). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes a bug in character transformation matrix, and sets the default value for GridFitTT to false. EXPECTED DIFFERENCES : None.[src/gsfont.c 1.25, src/gxccman.c 1.21]
2003-10-09 19:19 Igor Melichev
fuzzy.c : Implementing a ne option -c to switch on/off the reporting of coordinates of differences.[toolbin/tests/fuzzy.c 1.12]
2003-10-09 14:56 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 15). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch provides non-grid-fitted outlines with charpath. For a better readability renamed various variables ralated to that. EXPECTED DIFFERENCES : None.[src/gstype42.c 1.39, src/gxccache.c 1.24, src/gxccman.c 1.20, src/gxchar.c 1.37, src/gxfcache.h 1.19, src/gxttfb.c 1.13, src/gxttfb.h 1.9, src/ttfmain.c 1.15, src/ttfoutl.h 1.10, src/ttinterp.c 1.8]
2003-10-09 12:51 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 14). DETAILS : This patch removes obsolete comments. It is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxccman.c 1.19, src/gxttfb.c 1.12, src/ttfmain.c 1.14]
2003-10-09 00:13 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 13). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch implements a new user parameter GridFitTT. A change to documentation isn't supplied because this code is disabled by NEW_TT_INTERPRETER 0. Here is definition : GridFitTT=1 forces the TT interpreter to perform a grid fitting. If a font initialization program uses patented instrictions, the font renders without a grid fitting, and a warning is printed to stderr. If a font initialization program doesn't use patented instrictions, and some glyphs of the font uses patented instructions, the glyphs renders without a grid fitting, and a warning is printed to stderr. If a font initialization program doesn't use patented instrictions, and a glyph of the font doesn't use patented instructions, the glyph renders with grid fitting, and no warning is printed. Note that some font may mix both grid-fitted and non-grid-fitted glyphs. GridFitTT=0 forces the TT interpreter to skip the grid fitting. The warning about "patented" font is not printed. The user parameter can be set by the new command line option -dGridFitTT=x, where x is 0 or 1. EXPECTED DIFFERENCES : None.[lib/gs_init.ps 1.97, src/gsfont.c 1.24, src/gsfont.h 1.9, src/gxccman.c 1.18, src/gxfcache.h 1.18, src/gxttfb.c 1.11, src/gxttfb.h 1.8, src/icontext.c 1.17, src/ttfmain.c 1.13, src/ttfoutl.h 1.9, src/ttinterp.c 1.7, src/zusparam.c 1.10]
2003-10-08 22:07 Igor Melichev
fuzzy.c : Implement a reporting of coordinates of different pixels.[toolbin/tests/fuzzy.c 1.11]
2003-10-08 18:53 Igor Melichev
Fix : Propagating return code from gs_main_finit to GSDLL API (continued). DETAILS : The previous patch is incomplete. This one fixes that.[src/dmmain.c 1.3, src/dpmain.c 1.11, src/dwmain.c 1.15, src/dwmainc.c 1.17, src/dxmain.c 1.12, src/dxmainc.c 1.9, src/gsdll.c 1.11]
2003-10-08 17:18 Igor Melichev
Propagating return code from gs_main_finit to GSDLL API. THIS IS INCOMPATIBLE CHANGE : the API had changed a prototype. A close_device method can terminate with an error, which was not delivered to clients. It is especially important with pdfwrite, which performs a big work in close_device. Now clients can know about the error checking the return code of the gsapi_exit function. See examples in doc/API.htm .[doc/API.htm 1.38, src/dpmain.c 1.10, src/dwmain.c 1.14, src/dwmainc.c 1.16, src/gsexit.h 1.9, src/iapi.c 1.10, src/imain.c 1.34, src/imain.h 1.8]
2003-10-08 14:19 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 12). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch dalays the "patented" exception until a patented method is called. EXPECTED DIFFERENCES : None.[src/ttfmain.c 1.12, src/ttinterp.c 1.6]
2003-10-08 13:54 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 11). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes a bug in phantom points' coordinates (debugged with test_multipage_prob.pdf). Reset_CodeRange is removed because it duplicates Clear_CodeRange. EXPECTED DIFFERENCES : None.[src/gxccman.c 1.17, src/gxttfb.c 1.10, src/ttfmain.c 1.11, src/ttobjs.c 1.6, src/ttobjs.h 1.4]
2003-10-08 11:43 Alex Cherepanov
Contrary to the published spec (up to v.1.5) Acrobat Distiller 3.01 for Mac can use /Identity instead of a tint transform function in /Separation color space. Extend our PDF interpreter to cover this case. Fix bug 687068.[lib/pdf_draw.ps 1.77]
2003-10-08 11:34 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 10). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch implements a proper grid fitting and AlignToPixels. EXPECTED DIFFERENCES : None.[src/gstype42.c 1.38, src/gxccman.c 1.16, src/gxttfb.c 1.9, src/gxttfb.h 1.7, src/lib.mak 1.144, src/ttfmain.c 1.10, src/ttfoutl.h 1.8]
2003-10-07 20:02 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 9). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch removes a dynamic biffer from ttfOutliner__BuildGlyphOutline, and the macro wagOffset. ttfFont::ttf_memory is moved to ttfInterpreter::ttf_memory. EXPECTED DIFFERENCES : None.[src/gxttfb.c 1.8, src/ttfmain.c 1.9, src/ttfmemd.c 1.5, src/ttfoutl.h 1.7, src/ttinterp.c 1.5, src/ttload.c 1.4, src/ttobjs.c 1.5]
2003-10-07 15:26 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 8). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch implements a single instance of the TT interpreter shared for all TT font instances. EXPECTED DIFFERENCES : None.[src/gsfont.c 1.23, src/gstype42.c 1.37, src/gxccman.c 1.15, src/gxttfb.c 1.7, src/ttfmain.c 1.8, src/gxfcache.h 1.17, src/gxttfb.h 1.6, src/lib.mak 1.143, src/ttfmemd.c 1.4, src/ttfmemd.h 1.3, src/ttfoutl.h 1.6, src/ttinterp.c 1.4, src/ttobjs.c 1.4, src/ttobjs.h 1.3]
This is part of the fix for 687055. This change splits the DeviceN parameter handling. The SeparationOrder parameter handling is split into a separate routine. DETAILS: The DeviceN parameter SeparationOrder is used to select which separations are to be included in the output. This parameter is not appropriate for high level devices like pdfwrite. The pdfwrite device does not attempt to separate its output into separations. However the pdfwrite device does use its process color model colors for specifying output colors in some backup cases. If a separation were missing then the it would create an incorrect output color. By splitting out the SeparationOrder parameter we can still use common routines for pdfwrite and other DeviceN output devices.[src/gdevdevn.c 1.11, src/gdevdevn.h 1.2]
2003-10-06 19:08 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 7). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes more problems with error codes, which could appear with high level devices. EXPECTED DIFFERENCES : None.[src/gdevpdtd.c 1.14, src/ttfmain.c 1.7, src/ttobjs.c 1.3]
2003-10-06 16:43 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 6). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes more problems with error codes. All comparefiles now run fine. Rasters were checked with 72dpi. TT glyphs appear in right places, but sometimes a hinted raster looks worse than the old (unhinted) one. An example is Faktura.pdf . To be analyzed. EXPECTED DIFFERENCES : None.[src/gxttfb.c 1.6, src/ttfmain.c 1.6]
2003-10-06 16:42 Igor Melichev
Fix (pdfwrite) : A bug convertinging a CID to a glyph index. DETAILS : This portion of code works only while computing a FontBBox for a font subset. EXPECTED DIFFERENCES : None.[src/gstype42.c 1.36]
2003-10-06 12:20 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 5). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes some problems with error codes. All comparefiles now run with no failure (rasters not checked yet). EXPECTED DIFFERENCES : None. With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent.[src/gxccman.c 1.14, src/gxttfb.c 1.5, src/gxttfb.h 1.5, src/ttfmain.c 1.5, src/ttinterp.c 1.3, src/ttload.c 1.3]
2003-10-06 11:38 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 4). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes problems with memory management. EXPECTED DIFFERENCES : None. With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent.[src/gsfont.c 1.22, src/gxccman.c 1.13, src/gxfcache.h 1.16, src/gxttfb.c 1.4, src/gxttfb.h 1.4, src/ttfmain.c 1.4, src/ttfmemd.c 1.3, src/ttfoutl.h 1.5, src/ttinterp.c 1.2, src/ttload.c 1.2, src/ttobjs.c 1.2, src/ttobjs.h 1.2]
2003-10-06 08:34 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 3). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch propagates error codes from the new True Type interpreter, and fixes some minor bugs. EXPECTED DIFFERENCES : None. With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent.[src/gstype42.c 1.35, src/gxccache.c 1.23, src/gxccman.c 1.12, src/gxchar.c 1.36, src/gxfcache.h 1.15, src/gxfont42.h 1.17, src/gxttfb.c 1.3, src/gxttfb.h 1.3, src/ttfmain.c 1.3, src/ttfoutl.h 1.4]
2003-10-02 15:30 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter (step 2). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. With NEW_TT_INTERPRETER 1 the TT interpreter is now attached and passed a simple test (2210 glyphshow) with \WINDOWS\Fonts\mingliu.ttc, which is a Dynalab font. The TT error processing isn't completed. It may cause a crash. EXPECTED DIFFERENCES : None.[src/gstype42.c 1.34, src/gxttfb.c 1.2, src/gxttfb.h 1.2, src/lib.mak 1.142, src/ttfmain.c 1.2, src/ttfoutl.h 1.3]
2003-10-02 11:48 Igor Melichev
Implementing a bridge to the True Type bytecode interpreter. DETAILS : A new switch NEW_TT_INTERPRETER in gx.h disabled the new code. The new code is incomplete (see a "stub" in gstype42.c) and insufficiently debugged. This patch provides necessary data transfer to places, in which the True Type bytecode interpreter must be called. EXPECTED DIFFERENCES : None.[src/gstext.c 1.13, src/gstype42.c 1.33, src/gx.h 1.13, src/gxccache.c 1.22, src/gxccman.c 1.11, src/gxchar.c 1.35, src/gxfcache.h 1.14, src/gxfont42.h 1.16, src/gxttfb.c 1.1, src/ttfmemd.c 1.2, src/zchar42.c 1.13, src/gxtext.h 1.11, src/gxttfb.h 1.1, src/lib.mak 1.141, src/ttfmemd.h 1.2, src/ttfoutl.h 1.2]
2003-10-02 10:15 Igor Melichev
Fix : Removing the dependence on graphic state from font cache rutines. DETAILS : This change is algorithmically equivalent. EXPECTED DIFFERENCES : None.[src/gxccache.c 1.21, src/gxccman.c 1.10, src/gxchar.c 1.34, src/gxfcache.h 1.13]
2003-10-02 09:59 Igor Melichev
Fix : Characters were cached mixing alpha bits numbers (continued). DETAILS : The previous patch appears incomplete. EXPECTED DIFFERENCES : None (the nightly regression doesn't test alpha bits).[src/gxccache.c 1.20, src/gxccman.c 1.9, src/gxfcache.h 1.12]
2003-10-02 08:51 Igor Melichev
Fix : Characters were cached mixing alpha bits numbers. DETAILS : This bug only has an effect when same font renders to devices with different alpha bits. It can cause rendering a cached charascter with a wrong size (devided or multiplied by 1<<alpha_bits). EXPECTED DIFFERENCES : None (the nightly regression doesn't test alpha bits).[src/gxccache.c 1.19, src/gxchar.c 1.33, src/gxfcache.h 1.11]
Move the various device fields associated with the DeviceN process color model into a common structure. This allows common routines to be used to support DeviceN process color model features on different devices. The src/gdevdevn.h file was added to define common fields and structures. The first application of this code is for 687055 - Adding support for the DeviceN process color model to the pdfwrite device.[src/devs.mak 1.97, src/gdevdevn.c 1.10, src/gdevdevn.h 1.1]
Fix two bugs in testdiff that work around missing baselines.[toolbin/tests/testdiff 1.4]
2003-10-01 13:44 Igor Melichev
Initial commit for a reduced True Type bytecode interpreter. DETAILS : The True Type bytecode interpreter is branched from the Free Type 1 project. Patented algorithms have been removed. Now it compiles with Ghostscript, but it is never called. EXPECTED DIFFERENCES : None.[src/lib.mak 1.140, src/ttcalc.c 1.1, src/ttcalc.h 1.1, src/ttcommon.h 1.1, src/ttconf.h 1.1, src/ttconfig.h 1.1, src/ttfinp.c 1.1, src/ttfinp.h 1.1, src/ttfmain.c 1.1, src/ttfmemd.c 1.1, src/ttfmemd.h 1.1, src/ttfoutl.h 1.1, src/ttfsfnt.h 1.1, src/ttinterp.c 1.1, src/ttinterp.h 1.1, src/ttload.c 1.1, src/ttload.h 1.1, src/ttmisc.h 1.1, src/ttobjs.c 1.1, src/ttobjs.h 1.1, src/tttables.h 1.1, src/tttype.h 1.1, src/tttypes.h 1.1]
2003-09-30 15:16 Alex Cherepanov
Handle missing /BitsPerComponent key case. Fix bug 687956.[lib/pdf_draw.ps 1.76]
2003-09-30 11:00 Igor Melichev
Fix (pdfwrite) : Don't use Tj when real width is smaller than 1% of Widths. DETAILS : This is a workaround for the bug 687051 "freehand patterns cause incorrect result". See comment in code. Our workaround is hewristical. To get a strongly guaranteed result a bug to be reported to Freehand, which sets a wrong character size with setcachedevice : the setcachedevice arguments appear 144 times bigger when the actual glyph size. After converting to PDF it causes too big numeric errors in a PDF viewer. Adobe Distiller converts this text into a paintings of individual glyphs, loosing the text features, and enlarging the uncompressed output. The Adobe's method appears acceptable with this document because the text actually represents a texture, and the text features (Encoding, etc.) appears unimportant. We can't implement the Adobe's method because we have no idea how to recognize in pdfwrite the case of a Type 3 font represents a texture. Users may want to apply an idiom recognition in PS level for that texture, to convert it into a regular images for a better coordinate precision. The ideom approach is independent to this patch, and we believe that both things can work togeter. EXPECTED DIFFERENCES : None.[src/gdevpdts.c 1.25]
2003-09-29 20:32 Alex Cherepanov
Fix calculation of the area where path segments can mark the current band. Old code skipped segments above the page boundary regardless of the line width. Fixes bug 686788 from customer 710. DETAILS: The area is calculated now as [y - expansion.y, y + height + expansion.y] for every band. Beware of FOR_RECTS_NO_ERROR loop silently updating y and height.[src/gxclpath.c 1.18]
2003-09-29 13:41 Igor Melichev
Fix (pdfwrite) : Don't synchronize graphic state before exiting a charproc. DETAILS : The problem discovered with the test document of the bug 687051 "freehand patterns cause incorrect result". It wrote an excessive clipping path at the end of charproc. This patch doesn't close the bug, because there is another problem (with Type 3 character placement) in there. EXPECTED DIFFERENCES : None.[src/gdevpdtt.c 1.61]
2003-09-28 19:54 Alex Cherepanov
Convert input values to the traditional Lab range when input color space of ICC profile is Lab. Before conversion all colors were rendered 100 times darker, i.e. almost black. Fixes bug 600288 from customer 150.[src/gsicc.c 1.12]
2003-09-25 21:23 Igor Melichev
Fix (pdfwrite) : Inline images mangled charproc stream. DETAILS : The problem discovered with the test document of the bug 687051 "freehand patterns cause incorrect result". The problem happened due to pdf_copy_data can't handle the case when the target file of the source cos_write_stream object is same as the target file for the copying. Implementing a new funtion pdf_copy_data_safe for this case. This patch doesn't close the bug, because there is another problem (with Type 3 character placement) in there. EXPECTED DIFFERENCES : None.[src/gdevpdfo.c 1.21, src/gdevpdfu.c 1.42, src/gdevpdfx.h 1.75]
Correct a typo in the 'make so' target link line. This also allows the Solaris linker to ignore the option, allowing the link to complete on that platform. Thanks to Bob T. for pointing out the issue. Partial fix for bug 686865. DETAILS: I don't know if this was originally a typo or if GNU ld's options have changed. However, the manpage for my version (2.14.90.0.6) clearly states the syntax is -soname=foo.[src/unix-dll.mak 1.10]
2003-09-18 13:20 Igor Melichev
Fix : Fonts with zero FontBBox were not anti-aliased. DETAILS : Bug 687036 "gs 8.11 does not anti-alias type 3 bitmap fonts". The bug appeared in gxchar.c revision 1.21. EXPECTED DIFFERENCES : None, because the test tool doesn't test TextAlphaBits > 1.[src/gxchar.c 1.32]
2003-09-16 13:54 Igor Melichev
Fix : A bug in compare_glyphs. DETAILS : This fixex the crash with illustrator5.ps mentioned in the bug #687044 "strange elements with text". It appears a 1 year old bug. The behavior could be indeterministic. EXPECTED DIFFERENCES : None.[src/gxfcopy.c 1.32]
2003-09-16 12:11 Igor Melichev
Fix (pdfwrite) : Don't write a clipping path with setcharwidth. DETAILS : This is a partial fix for the bug #687044 "strange elements with text". See big comments added to gdevpdfg.c . Minor changes : 1. Removed an unsafe cast to gs_state * in gdevpdfg.c with defing a new graphics library function gs_currentscreenphase_pis. 2. Provided a safety with a cast to gs_show_enum * in gdevpdtt.c . 3. defined a new graphics library function gx_get_clip_path_id . EXPECTED DIFFERENCES : A progression in pdfwrite with 238-01.ps .[src/gdevpdfg.c 1.41, src/gdevpdtt.c 1.60, src/gsht.c 1.17, src/gsstate.c 1.22, src/gxistate.h 1.17, src/gxstate.h 1.8]
2003-09-16 10:02 Igor Melichev
Don't apply Type 1 hinting to charpath. THIS IS AN INCOMPATIBLE CHANGE : charpath now creates a different outline than before. DETAILS : Adobe doesn't hint charpath. Not sure why GS did. This change makes GS to be closer to Adobe and partially fixes the bug 687044 "strange elements with text". Note that 'charpath fill' never was equal to 'show'. Neither the old hinter, nor the new hinter, nor any combination of them in the pair ('charpath', 'show') give same result. This happens because 'fill' uses the "center pixel inside" rule, but 'show' uses a different one. With the new hinter 'show' performs a spot topology analyzis during the rasterization. This rule doesn't belong to the class of rules, which can be explained in terms "a part of pixel inside". Thus, since "same" or "closer" result isn't possible, the criterion for the choice must lie in another space. I believe that the "Adobe compatibility" is the right one. Besides that, Ghostscript PDF imperpreter emulates the text rendering modes 1,5,6 with 'charpath stroke', and with the hinted charpath the results look strange. EXPECTED DIFFERENCES : pdfwrite + ppmraw 72pdi : 017-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 034-01.ps 045-01.ps 093-01.ps 220-01.ps 327-01.ps 334-01.ps 335-01.ps 336-01.ps alphabet.ps bugsample.pdf PixelisAd.pdf ridt91.eps pdfwrite + ppmraw 300pdi : 017-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 034-01.ps 045-01.ps 093-01.ps 220-01.ps 327-01.ps 334-01.ps 335-01.ps 336-01.ps alphabet.ps bugsample.pdf PixelisAd.pdf ridt91.eps ppmraw 72pdi : 027-01.ps 027-05.ps 027-09.ps 027-13.ps 034-01.ps 220-01.ps alphabet.ps bugsample.pdf PixelisAd.pdf ridt91.eps ppmraw 300pdi : 027-01.ps 027-05.ps 027-09.ps 027-13.ps 034-01.ps 220-01.ps alphabet.ps bugsample.pdf PixelisAd.pdf ridt91.eps two_encodings.ps[src/gxtype1.c 1.32]
Remove extra carriage returns (^M) at the end of some lines.[lib/pdf_draw.ps 1.75]
2003-09-15 20:05 Alex Cherepanov
Following PLRM, set identity initial matrix for non-forwarding nulldevice. Fix bug 687041[src/gdevnfwd.c 1.12]
2003-09-15 17:11 Igor Melichev
Fix (pdfwrite) : Write color commands to charprocs which don't call setcachedevice[2]. DETAILS : This is a partial fix for the bug #687044 "strange elements with text". Minor change : Removed a duplicated instruction from gdevpdtt.c . This patch doesn't cause a difference with our test base.[src/gdevpdti.c 1.20, src/gdevpdtt.c 1.59]
2003-09-15 10:04 Igor Melichev
Fix : A bug in the new code of gs_rectfill (gsdps1.c Revision 1.9).[src/gsdps1.c 1.10]
Fix: Prevent crash caused by dsc_copy_string not stopping at the end of a string occasionally. Fixes bug 687045 "Crash while parsing long %%DocumentProcessColor line". Report (atend) in the trailer as being unknown. Recognise %%DocumentProcessColors and %%DocumentCustomColors in the trailer. Allocate colour details using the correct allocator so they will be freed correctly.[src/dscparse.c 1.14]
Provide a means for disabling color space substitution. DETAILS: Ghostscript supports substituting CIE and ICC color spaces for DeviceGray DeviceRGB, and DeviceCMYK color spaces. This is part of the support for the UseCIEColor feature in PostScript. This substitution is done inside the PostScript code in lib/gs_devcs.ps. The recent improvements to the pdfwrite device mean that the interpreter's color space and color values are now passed to the output file. Since the color space substitution is done prior to passing the color space to the interpreter, the original color space is lost if UseCIEColor is set. This change provides a means to prevent the substitution. Thus the original color space is passed to the interpreter and on to the output file for pdfwrite.[doc/Use.htm 1.89, lib/gs_devcs.ps 1.2, lib/gs_init.ps 1.96]
2003-09-11 21:12 Igor Melichev
pdfwrite : Implement CDevProc handling for CIDFontType 2. DETAILS : It defines a new gs_text_process return value TEXT_PROCESS_CDEVPROC, which allows a device to request a special interpreter callout for executing CDevProc. The processing is some tricky : we apply zchar_set_cache to prepare interpreter stacks, and hook its results in pte->procs->set_cache . This patch handles CDevProc only for CIDFontType 2. Other font types should be a separate patch. This patch causes progressions in pdfwrite : japan.ps Type11CDevProc.ps[src/gdevpdtc.c 1.28, src/gdevpdte.c 1.44, src/gdevpdtt.c 1.58, src/gdevpdtt.h 1.18, src/gstext.h 1.9, src/gxfont.h 1.21, src/int.mak 1.116, src/zchar.c 1.12, src/zchar1.c 1.32, src/zchar42.c 1.12, src/zchar42.h 1.1]
2003-09-11 20:43 Igor Melichev
Fix (pdfwrite) : A part of CID text was missed after a font change.[src/gdevpdtc.c 1.27]
2003-09-11 16:34 Alex Cherepanov
Ignore system-defined FILENAME_MAX when it is too small. HP-UX 11i 11.11 incorrectly defines FILENAME_MAX as 14. Fix bug 687030 from customer 1060[src/gp_unifs.c 1.15]
2003-09-11 11:14 Igor Melichev
Fix (pdfwrite) : Stream content of ICC color space was missed. It seems a very old bug...[src/gdevpdfo.c 1.20]
2003-09-10 12:01 Igor Melichev
Fix (pdfwrite) : Improving text colors. DETAILS : 1. Check the color and clip change after each callout (gdevpdtt.c). Fixes the bug 686822 "Wrong PDF from kshow with grestore". 2. Don't write color into charprocs of bitmap fonts. 3. Skip writing a process color imaging a cached bitmap character. The old code wrote redundant "0 g" commands. This patch causes progressions in pdfwrite : 093-01.ps 165-01.ps 244-01.ps kshow_with_grestore.ps[src/gdevpdfb.c 1.20, src/gdevpdtt.c 1.57]
2003-09-10 08:01 Igor Melichev
Fix (pdfwrite) : Image XObject was not added into pattern's Resources. DETAILS : Bug 687028 "ps2pdf for makepattern creates PDF unreadable by Acrobat Reader".[src/gdevpdfj.c 1.26]
2003-09-09 20:35 Igor Melichev
pdfwrite : Apply the color space serialization for color space comparizon (continued). DETAILS : Fixes redundant Pattern color space objects. Bug 687022 "pdfwrite : Redundant color space objects" Also fixed a bug in gx_serialize_Pattern.[src/gdevpdfc.c 1.39, src/gdevpdfg.c 1.40, src/gdevpdfg.h 1.26, src/gdevpdfv.c 1.30, src/gspcolor.c 1.12]
2003-09-09 19:30 Igor Melichev
pdfwrite : A minor code cleanup. DETAILS : 'sclose' is inserted for a conformity, rather it has no effect in this case. The "fixme" comment is removed because it appears wrong. If the color space is new, it needs a complete serialization for storing the data to PDF resource. We can't delay the serialization because the life time of the original color space may exceed before the next comparizon happens. Contrary, if the color space is not new, it also needs a complete serialization for a full comparison, to know whether it is same color space. Thus, a complete serialization is required in any case.[src/gdevpdfc.c 1.38]
2003-09-09 16:03 Igor Melichev
pdfwrite : Apply the color space serialization for color space comparizon. DETAILS : Fixes the bug 687022 "pdfwrite : Redundant color space objects"[src/devs.mak 1.96, src/gdevpdfc.c 1.37, src/gdevpdfg.h 1.25]
2003-09-09 15:54 Igor Melichev
Implementing a serialization for color spaces and functions (continued 2). DETAILS : Fixes a bug in gs_function_Sd_serialize, fn_common_serialize.[src/gsfunc.c 1.9, src/gsfunc0.c 1.12]
2003-09-09 14:25 Igor Melichev
Implementing a serialization for color spaces and functions (continued). DETAILS : This stuff will be used by high level devices for comparing color spaces. A serialization will. be used because we need to compare color spaces, which's life times don't intersect. This patch only defines new functions but never calls them. Regressions should not appear. A draft implementation for the functions is provided. A debugging of them will be a separate issue.[src/gscie.h 1.13, src/gscscie.c 1.10, src/gsicc.c 1.11, src/gspcolor.c 1.11, src/lib.mak 1.139]
2003-09-09 12:44 Igor Melichev
Implementing a serialization for color spaces and functions. DETAILS : This stuff will be used by high level devices for comparing color spaces. A serialization will. be used because we need to compare color spaces, which's life times don't intersect. This patch only defines new functions but never calls them. Regressions should not appear. A draft implementation for the functions is provided. A debugging of them will be a separate issue.[src/gscdevn.c 1.15, src/gscdevn.h 1.8, src/gscolor2.c 1.15, src/gscpixel.c 1.9, src/gscscie.c 1.9, src/gscsepr.c 1.22, src/gscspace.c 1.10, src/gsfunc.c 1.8, src/gsfunc.h 1.9, src/gsfunc0.c 1.11, src/gsfunc3.c 1.16, src/gsfunc4.c 1.14, src/gxcspace.h 1.10, src/gxfunc.h 1.8, src/lib.mak 1.138]
2003-09-08 13:30 Igor Melichev
Fix : Cygwin/gcc compiler warnings.[src/gdevdgbr.c 1.11, src/gstrans.c 1.18]
2003-09-08 13:19 Igor Melichev
Fix : Impproving the coordinate precision in function fill_rectangle_hl_color. DETAILS : It fixes the coordinate precision in the recent patch. With pdfwrite the following files become better (closer to the old code) : 213-01.ps 255-01.ps 270-01.ps 442-01.ps[src/gdevdflt.c 1.13, src/gdevnfwd.c 1.11, src/gdevpdfd.c 1.33, src/gsdps1.c 1.9, src/gspaint.c 1.8, src/gxdevcli.h 1.18]
2003-09-08 12:06 Igor Melichev
Fix : Cygwin/gcc compiler warnings. DETAILS : The change to zbfont.c may cause a progression on low endian platforms.[src/gdevpdfc.c 1.36, src/gxcldev.h 1.13, src/gxcpath.c 1.8, src/lib.mak 1.137, src/zbfont.c 1.24, src/ztrans.c 1.21]
2003-09-08 11:45 Igor Melichev
Defining a new device virtual function fill_rectangle_hl_color. This fuction is used to implement gs_rectfill and gs_fillpage with a high level color handling. DETAILS : The old device virtual function fill_rectangle has no way to pass a high level color. Therefore high level devices always used process colors with rectfill and fillpage. See gxdevcli.h for the definition of the new function. The new function is used to implement gs_rectfill and gs_fillpage in pdfwrite. gs_rectfill and gs_fillpage are modified to provide the new logics. gdevpdfd.c is reorganised with factoring out some common code parts. Fixes the bug #687024 "rectfill doesn't pass high level colors to device". This patch causes a MINOR DIFFERENCE in color in all Genoa tests with pdfwrite : a gray rectangle in the header gets a sligtly different gray value. Besides that, the following files render few differently due to coordinate rounding in pdfwrite : 245-13.ps 442-01.ps[src/gdevbbox.c 1.14, src/gdevdflt.c 1.12, src/gdevnfwd.c 1.10, src/gdevpdf.c 1.71, src/gdevpdfd.c 1.32, src/gdevpdfx.h 1.74, src/gdevrops.c 1.8, src/gsdps1.c 1.8, src/gspaint.c 1.7, src/gxclip.c 1.11, src/gxclip2.c 1.8, src/gxclipm.c 1.10, src/gxclist.c 1.11, src/gxdevcli.h 1.17, src/gxdevice.h 1.13, src/gxhldevc.c 1.3, src/gxhldevc.h 1.4, src/lib.mak 1.136]
Add gxhldevc.c and gxhldevc.h to the file list.[doc/Develop.htm 1.121]
VMS fix from Forrest Cahoon.[src/gp_vms.c 1.35]
2003-09-04 14:51 Igor Melichev
Removing rudiments of the old hinter (step 5). DETAILS : Removed an unused variable.[src/gxtype1.c 1.31]
2003-09-04 14:31 Igor Melichev
Removing rudiments of the old hinter (step 4).[src/gxop1.h 1.7]
2003-09-04 14:28 Igor Melichev
Removing rudiments of the old hinter (step 3). DETAILS : The structure gs_op1_state stored an unused data and now removed. The change to gstype2.c ln 262-279 is not algorithmically equivalent. The old code erroneusely called closepath in some cases. It produced a small dirt in rendering. Due to that, this patch causes progressions in rendering : 72pdi : bugsample.pdf PixelisAd.pdf RodinCIDEmbed.pdf 300dpi : bugsample.pdf PixelisAd.pdf[src/gdevpsfx.c 1.24, src/gstype1.c 1.28, src/gstype2.c 1.31, src/gxop1.h 1.6, src/gxtype1.c 1.30, src/gxtype1.h 1.17, src/lib.mak 1.135]
2003-09-04 12:10 Igor Melichev
Fix : Removing obsolete linker statements from Win32 linkage definitions (an addition 2). DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-September/003574.html was wrong. Now fixed.[src/dwsetup.def 1.4, src/dwuninst.def 1.4, src/msvc32.mak 1.49]
2003-09-04 11:30 Igor Melichev
Fix (the new type 1 hinter) : Slightly sloped stems were wrongly grid-fitted. DETAILS : It shifted a stem pole to central coordinate of the stem. Unsloped stems are insencitive, but sloped ones got a wrong placement. Fixes the bug 687018 "Shift in glyph position/bbox using new font renderer". This patch causes differences in rendering : 72pdi : 033-52-5873.pdf alphabet.ps bulletin.pdf fonttest.pdf HeiseiMinStd.pdf Openhuis_pdf_zw.pdf ridt91.eps Svd.pdf 300dpi : 033-52-5873.pdf 045-01.ps 455690.pdf 86554321.pdf aaon97_p7.pdf adesso6.pdf ai2.pdf bulletin.pdf fonttest.pdf HeiseiMinStd.pdf LD.pdf Openhuis_pdf_zw.pdf prob.pdf ridt91.eps RodinCIDEmbed.pdf Svd.pdf The baseline to be updated.[src/gxhintn.c 1.32]
Committing in . OpenVMS patches Modified Files: gs/src/gp_vms.c gs/src/openvms.mmk gs/src/vms_x_fix.h ----------------------------------------------------------------------[src/gp_vms.c 1.34, src/openvms.mmk 1.26, src/vms_x_fix.h 1.7]
2003-09-03 20:31 Igor Melichev
Fix : Removing obsolete linker statements from Win32 linkage definitions (an addition).[src/dwsetup.def 1.3, src/dwuninst.def 1.3, src/msvc32.mak 1.48]
2003-09-03 20:27 Igor Melichev
Removing rudiments of the old hinter (step 3, final).[src/gxhint1.c 1.7, src/gxhint2.c 1.8, src/gxhint3.c 1.9]
2003-09-03 20:21 Igor Melichev
Removing rudiments of the old hinter (step 2). DETAILS : This patch removes rudiments of the old hinter, which were enclosed with "#ifdef KEEP_OLD_HINTER", and removes gxhint1.c, gxhint2.c gxhint3.c from makefiles.[src/gstype2.c 1.30, src/gxtype1.c 1.29, src/gxtype1.h 1.16, src/lib.mak 1.134]
Make run_nightly retry sending mail every 5 seconds.[toolbin/tests/run_nightly 1.20]
Rename the client header errors.h to ierrors.h. This is more consistent with iapi.h, and reduces the risk of a namespace conflict. The old errors.h header is still available, and simply includes ierrors.h for compatibility. This file is marked as deprecated and will be removed in a future release. This change is in response to a spurious report of a namespace conflict on MacOS in bug 686966.[doc/API.htm 1.37, doc/C-style.htm 1.44, doc/Develop.htm 1.120, src/dmmain.c 1.2, src/dpmain.c 1.9, src/dwmain.c 1.13, src/dwmainc.c 1.15, src/dxmain.c 1.11, src/dxmainc.c 1.8, src/errors.h 1.8, src/fapi_ft.c 1.11, src/fapiufst.c 1.23, src/gs.c 1.11, src/gsdll.c 1.10, src/gsiomacres.c 1.5, src/ialloc.c 1.6, src/iapi.c 1.9, src/iapi.h 1.12, src/ibnum.c 1.7, src/iccfont.c 1.8, src/icontext.c 1.16, src/idict.c 1.8, src/idparam.c 1.8, src/ierrors.h 1.1, src/igc.c 1.10, src/igstate.h 1.8, src/iinit.c 1.9, src/ilocate.c 1.9, src/imain.c 1.33, src/imainarg.c 1.31, src/iname.c 1.7, src/inobtokn.c 1.5, src/int.mak 1.115, src/interp.c 1.15, src/iparam.c 1.9, src/iplugin.c 1.4, src/ireclaim.c 1.7, src/isave.c 1.8, src/iscan.c 1.14, src/iscanbin.c 1.13, src/iscannum.c 1.7, src/istack.c 1.6, src/iutil.c 1.9, src/iutil2.c 1.6, src/macos-fw.mak 1.7, src/opcheck.h 1.6, src/oper.h 1.6, src/os2.mak 1.34, src/zcid.c 1.8, src/zfile1.c 1.11, src/ziodev.c 1.13]
2003-09-02 22:50 Igor Melichev
pdfwrite : Implementing a high level color handling (a 3d improvement). DETAILS : This fixes the problem with 477-03.ps described in the bug #687023.[src/gdevpdfc.c 1.35]
2003-09-02 21:57 Igor Melichev
pdfwrite : Implementing a high level color handling (a 2nd improvement). DETAILS : This fixes a minor bug in the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003560.html : use process color when gx_hld_get_color_space_and_ccolor returns an unknown result. This change should not change behavior because this case currently never happens.[src/gdevpdfg.c 1.39]
Propagate CFLAGS and LDFLAGS values set in the environment when configure is run to the autoconf top-level makefile. Unlike passing the same values to make, the values are added to the generated arguments and act supplementally. Closes bug 686943.[src/Makefile.in 1.27]
2003-09-02 15:47 Igor Melichev
pdfwrite : Implementing a high level color handling (an improvement). DETAILS : This fixes bugs in the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003560.html : 1. pdf_cs_Pattern_uncolored_hl wrote a wrong base space of a Pattern space. It fixes a failure with 245-01.ps . 2. Improving the approximation in pdf_write_ccolor.[src/gdevpdfc.c 1.34, src/gdevpdfg.c 1.38]
2003-09-02 10:17 Igor Melichev
Removing rudiments of the old hinter (step 1). DETAILS : This patch encloses rudiments of the old hinter with "#ifdef KEEP_OLD_HINTER", where KEEP_OLD_HINTER is undefined. This change is algorithmically equivalent, because the new hinter worked instead the old one. Only exception is the change to gstype1.c ln 370 : the condition t1_hinter__is_x_fitting(h) is waeker than the old pcis->fh.use_x_hints, because the new hinter applies an X-grid fitting with a slightly sloped transforms. The change to gdevpsfx.c define local arrays for storing hints. The old code used the old hinter structures, which appear too heavy for the need of gdevpsfx.c .[src/gdevpsfx.c 1.23, src/gstype1.c 1.27, src/gstype2.c 1.29, src/gxhint1.c 1.6, src/gxhint2.c 1.7, src/gxhint3.c 1.8, src/gxhintn.c 1.31, src/gxhintn.h 1.14, src/gxtype1.c 1.28, src/gxtype1.h 1.15]
Add 'extern "C"' protection to iapi.h for inclusion in C++ clients. Closes bug 686990.[src/iapi.h 1.11]
Fix for 686948 Dotted lines messing in PDF. Draw all line cap types for zero line lengths. Previously only rounded caps were drawn. DETAILS: This is a (minor) revision to a the previous fix from Jeong for this problem. For those people who do not remember, this problem involves a dashed line with a zero line length for the imaged (pen down) part of the dashed line. Ghostscript currently calls this a degenerate situation and does nothing except for round line caps. Jeong had previously proposed changing the test to any line cap except butt caps. Jeong removed this proposal after testing and finding that Adobe Acrobat drew thin line segments even for butt line caps. This proposal simply removes the test for line cap type completely. It does still leaves a test for dot length = 0. The routine already contains code for using adjacent line segments to determine a 'direction' for zero length segments. Testing with both butt and square line caps and with on axis and diagonal lines produces results comparable to Adobe Acrobat. (Acrobat is not consistent with segment widths for the butt joints.)[src/gxstroke.c 1.9]
When a PDF file has an embedded TrueType font with wrong 'name' table entry, /findname procedure in gs_ttf.ps throwed a rangecheck error. Now it just returns 'false' as an output instead of making rangecheck error. Bug# 686903.[lib/gs_ttf.ps 1.32]
2003-08-28 19:42 Igor Melichev
pdfwrite : Implementing a high level color handling. DETAILS : pdfwrite now passes colors identically except minor problems, which should be fixed soon : 1. rectfill still converts colors. This happens because gs_rectfill calls dev_proc(pdev,fill_rectangle), which doesn't pass device color. Therefore high level color is not available for pdfwrite. This is an architectural problem which requires a hard decision. 2. Some documents (gs.anotherfailure.pdf is an example) generate too many color space objects to the output PDF. Requires an optimization. 3. 477-03.ps embeds a color space that can't write to PDF due to PDF limitations. Process colors are written into PDF. 4. Few tests cause significant difference in colors : 0.pdf (yellow background) MagicEye.pdf (yellow background) Fixed_Original.pdf Testform.v1.0.2.pdf (a gray rectangle disappears) To be analyzed.[src/devs.mak 1.95, src/gdevpdfc.c 1.33, src/gdevpdfd.c 1.31, src/gdevpdfg.c 1.37, src/gdevpdfg.h 1.24, src/gdevpdfv.c 1.29, src/gdevpdtw.c 1.25, src/gdevpsdf.h 1.20, src/gdevpsdu.c 1.20, src/gxhldevc.c 1.2, src/gxhldevc.h 1.3]
2003-08-28 10:18 Igor Melichev
Fix : Removing obsolete linker statements from Win32 likage definitions.[src/dw32c.def 1.3, src/dwmain32.def 1.3, src/gsdll32.def 1.4]
2003-08-26 21:08 Igor Melichev
Fixing all MSVC compiler warnings (icclib).[icclib/icc.c 1.9]
2003-08-26 20:54 Igor Melichev
Fixing all MSVC compiler warnings (Release build).[src/gxclipm.c 1.9]
2003-08-26 15:38 Igor Melichev
Fixing all MSVC compiler warnings.[src/gdevpsdu.c 1.19, src/gdevupd.c 1.13, src/gsciemap.c 1.15, src/gswts.c 1.5, src/gxclrect.c 1.6, src/gxdda.h 1.5, src/gxshade.c 1.17, src/gxstroke.c 1.8, src/sdcparam.c 1.6]
2003-08-26 12:37 Igor Melichev
A preparation for high level color handling in vector devices. THIS IS INCOMPATIBLE CHANGE for devices derived from gx_device_vector. Now they must implement the new virtual function can_handle_hl_color. A simplest impementation compatible to the old behavior is to return false. DETAILS : The new code uses the new functions gx_hld_save_color and gx_hld_saved_color_equal instead the old gx_saved_color_update. This allows devices to know when the client color changes and to generate the appropriate output. This affects pdfwrite, pswrite, epswrite, pxlmono and pxlcolor devices. However the devices still write device colors to output. An implementation of writing the client color in pdfwrite, pswrite, epswrite will be the next improvement. Since a big part of color code is shared with pxlmono and pxlcolor, we need a switch for checking whether the device can handle high level colors. For this purpose we add a new virtual function can_handle_hl_color to gx_device_vector_procs. Currently all implementation of this function return false, and all devices still write process colors. A minor change : psdf_setfillcolor and psdf_setstrokecolor are removed because they were never called.[src/gdevpdfd.c 1.30, src/gdevpdfg.c 1.36, src/gdevpdfg.h 1.23, src/gdevpdfx.h 1.73, src/gdevpdtt.c 1.56, src/gdevps.c 1.36, src/gdevpsdf.h 1.19, src/gdevpsdu.c 1.18, src/gdevpx.c 1.14, src/gdevvec.c 1.20, src/gdevvec.h 1.12, src/gsdcolor.h 1.12, src/gxdcolor.c 1.12, src/gxhldevc.h 1.2, src/lib.mak 1.133]
Fix decimal value of NoView annotation flag in annotvisible logic. Fixes bug #687010. DETAILS: On page 493 of the PDF 1.4 reference, NoView is specified as bit position 6, which would seem to correspond to the old value of 64. However, for some reason Adobe counts its bit positions starting at 1, so the actual numeric value is 2^(bit pos - 1), or 32.[lib/pdf_draw.ps 1.74]
Re-enable tempfile creation with empty string prefix - was disabled as part of tempfile prefix_is_simple checking patch.[src/zfile.c 1.38]
2003-08-21 14:55 Igor Melichev
Fixing some Cygwin/gcc warnings.[src/gdevdgbr.c 1.10, src/gdevepsc.c 1.10, src/gdevmrun.c 1.5, src/gdevpdtw.c 1.24, src/gspath.c 1.8, src/gstype1.c 1.26, src/gstype1.h 1.8, src/gxcmap.c 1.16, src/gxcpath.c 1.7, src/gxhintn.c 1.30, src/gxpath.h 1.8, src/gzacpath.h 1.6, src/ifont2.h 1.6]
2003-08-21 14:25 Igor Melichev
Removing the obsolete code DROPOUT_PREVENTION 0. DETAILS : The macros PSEUDO_RASTERIZATION, ADJUST_SERIF, CHECK_SPOT_CONTIGUITY are left for further developmant. We intend to convert the filling algorithm into a template like we did with gxdtfill.h . The goal is to generate several instances of the algorithm optimized for different cases : a non-character fill (with the path adjustment and with no dropout prevention), character fill (with no path adjustment and with dropout prevention), and spot topology analyzis for autohinting (no adjustment, no dropout prevention, store trapezoids into a special storage). The ADJUST_SERIF code probably will die after True Type hinter is done.[src/gdevddrw.c 1.8, src/gdevddrw.h 1.3, src/gx.h 1.12, src/gxccache.c 1.18, src/gxchar.c 1.31, src/gxfill.c 1.39, src/gxpcopy.c 1.9, src/gxpflat.c 1.6, src/zchar42.c 1.11]
2003-08-21 13:47 Igor Melichev
Removing the obsolete code NEW_TYPE1_HINTER 0 from the character renderer. DETAILS : A small part of the old Type 1 hinter is still called from gdevpsfx.c for converting Type 1 font to Type 2. gdevpsfx.c to be ported to the new Type 1 hinter and then the old hinter (gxhint1.c, gxhint2.c, gxhint3.c) to be completely removed.[src/gstype1.c 1.25, src/gstype2.c 1.28, src/gx.h 1.11, src/gxtype1.c 1.27, src/gxtype1.h 1.14]
2003-08-20 19:53 Igor Melichev
Removing the obsolete code PATTERN_STREAM_ACCUMULATION 0 .[src/gdevpdf.c 1.70, src/gdevpdfi.c 1.49, src/gdevpdfm.c 1.32, src/gdevpdfv.c 1.28, src/gdevpdfx.h 1.72, src/gdevpdti.c 1.19, src/gsptype1.c 1.17, src/gx.h 1.10, src/gxpcmap.c 1.10, src/gxpcolor.h 1.9, src/zpcolor.c 1.11]
2003-08-20 17:58 Igor Melichev
Removing the obsolete code NEW_COMBINE_PATH 0 .[src/gp_dosfs.c 1.15, src/gp_iwatc.c 1.16, src/gp_macio.c 1.31, src/gp_ntfs.c 1.20, src/gp.h 1.26, src/gp_os2.c 1.29, src/gp_unifn.c 1.14, src/gp_unifs.c 1.14, src/gp_vms.c 1.33, src/icontext.c 1.15, src/icstate.h 1.12, src/imainarg.c 1.30, src/zfile.c 1.37, src/zfile1.c 1.10, lib/gs_ciddc.ps 1.12, lib/gs_fonts.ps 1.42, lib/gs_init.ps 1.95, lib/gs_res.ps 1.35]
2003-08-19 20:20 Alex Cherepanov
Cygwin wants X11 libraries in the order Xt SM ICE Xext X11 but autoconf generated them in the order SM ICE Xt Xext X11. Restore pre-autoconf order.[src/configure.ac 1.33]
Raise the limit on interpreter memory to 1GB for regression testing. This larger value is required to process the ai2.pdf test file with pdfwrite at the default (720 dpi) resolution.[toolbin/tests/gstestgs.py 1.21]
This commit is part of extending support for high level colors to high level devices. In general, additions have been made to the device colors to include the high level color values used to create the device color. A flag was also added to indicate if the color information (in dev_color->ccolor) is valid. There are also two files being added to provide support for saving and comparing the high level color information.[src/devs.mak 1.94, src/gdevbbox.c 1.13, src/gdevdbit.c 1.9, src/gdevpdfb.c 1.19, src/gdevpdfd.c 1.29, src/gdevpdfg.c 1.35, src/gdevpdfi.c 1.48, src/gdevpdfv.c 1.27, src/gdevpdtt.c 1.55, src/gdevplnx.c 1.6, src/gdevps.c 1.35, src/gdevpx.c 1.13, src/gdevvec.c 1.19, src/gsciemap.c 1.14, src/gscolor.c 1.11, src/gscsepr.c 1.21, src/gsdcolor.h 1.11, src/gslib.c 1.12, src/gspcolor.c 1.10, src/gsptype2.c 1.13, src/gsptype2.h 1.8, src/gxacpath.c 1.9, src/gxcmap.c 1.15, src/gxdcolor.c 1.11, src/gxhldevc.c 1.1, src/gxhldevc.h 1.1, src/gxi12bit.c 1.6, src/gxicolor.c 1.9, src/gxifast.c 1.9, src/gximage3.c 1.12, src/gxipixel.c 1.9, src/gxpcmap.c 1.9, src/lib.mak 1.132]
Fix for 686998 syntax error in findxref for customer 580. The given test file does not have 'startxref' on its own line. This is a violation of the PDF spec. However Adobe Acrobat accepts the file. This fix adds a check for this case and prints a warning message. File processing then continues. DETAILS: This fix also includes moving the findxref inside of a stopped context check in case any other problems are encountered while searching for the xref table. If a problem is now found during findxref, the xref rebuild logic will be called.[lib/pdf_main.ps 1.77, lib/pdf_rbld.ps 1.4]
The invocation "./configure; make install" wasn't working because the install target doesn't create the "standard directories", in particular obj/. This patch simply adds the STDDIRS dependency to the install-exec target, parallel to the existing std target, which is the default chosen from a simple "make" invocation.[src/unixinst.mak 1.32]
Fix non-conformance of "startjob" if password check fails. Previously, the "quit" operator in systemdict was masked by a definition of /quit as /stop in userdict, even if startjob failed due to password check or other reason.[lib/gs_lev2.ps 1.30]
Bump the version number post-release.[doc/News.htm 1.136, lib/gs_init.ps 1.94, src/gscdef.c 1.38, src/version.mak 1.66]
Protect a Carbon-only call in the MacOS code. This was preventing linking in the Classic shlib build.[src/gp_macio.c 1.30]
Add some more CMap files that have been encountered in files recently submitted as bugs. Newer versions of some of the ETen CMap group are also provided.[Resource/CMap/ETHK-B5-H 1.1, Resource/CMap/ETHK-B5-V 1.1, Resource/CMap/ETen-B5-H 1.2, Resource/CMap/ETen-B5-UCS2 1.1, Resource/CMap/ETen-B5-V 1.2, Resource/CMap/ETenms-B5-H 1.1, Resource/CMap/ETenms-B5-V 1.1]
Add the jbig2dec source directory to the Windows Release instructions.[doc/Release.htm 1.81]
Ghostscript 8.11 is the first stable release since 8.00, building on the features in the 8.10 beta, and with numerous additional fixes and improvements. In particular, font rendering is greatly improved (thanks to Igor Melichev's new hinting code), PDF 1.4 transparency rendering is much more likely to be correct, and there is better support for CID font substitution. Processing of incorrect and broken PDF files is also improved, including files corrupted xref tables and non-ASCII font names. Many other smaller fixes are included.
Users may want to experiment with the new -dAlignToPixels=0 setting, which enables subpixel positioning for antialiased font rendering.
The following bugs.ghostscript.com numbers were open at the time of this release:
405501, 406273, 414947, 430175, 446344, 456692, 458261, 458775, 458780, 459647, 463688, 465936, 487460, 487953, 493348, 509829, 526099, 526491, 530011, 535366, 535932, 542629, 553187, 555072, 558151, 558435, 563287, 572865, 578865, 592160, 592837, 595760, 600288, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 624515, 626295, 628110, 629335, 634036, 634358, 636210, 645316, 651644, 656414, 656510, 664484, 667301, 669654, 674241, 674417, 674418, 677324, 677383, 677430, 680301, 681469, 684778, 684866, 685335, 686746, 686747, 686750, 686752, 686765, 686770, 686778, 686779, 686782, 686788, 686789, 686796, 686803, 686813, 686815, 686816, 686817, 686819, 686822, 686824, 686833, 686834, 686837, 686839, 686841, 686842, 686843, 686844, 686845, 686850, 686852, 686853, 686860, 686863, 686865, 686867, 686873, 686877, 686883, 686885, 686889, 686892, 686896, 686897, 686902, 686903, 686904, 686908, 686909, 686919, 686930, 686931, 686933, 686936, 686937, 686938, 686943, 686944, 686946, 686947, 686948, 686949, 686950, 686951, 686952, 686953, 686954, 686956, 686957, 686958, 686959, 686961, 686963, 686966, 686975, 686978, 686980, 686981, 686990, 686996, 686998, 686999, 687000.
The mechanism for locating resources has changed since 8.00. See the usage documentation for details of the new mechanism.
Ghostscript now runs in save level 1 by default, which has changed since 8.10. Jobservers will need to use the -dNOOUTERSAVE option to restore the old behavior.
Correct the release date in the documentation footer and increment the version number for release.[doc/API.htm 1.36, doc/Bug-form.htm 1.38, doc/Bug-info.htm 1.37, doc/C-style.htm 1.43, doc/Commprod.htm 1.29, doc/Copying.htm 1.28, doc/DLL.htm 1.32, doc/Deprecated.htm 1.9, doc/Develop.htm 1.119, doc/Devices.htm 1.69, doc/Drivers.htm 1.40, doc/Fonts.htm 1.38, doc/Helpers.htm 1.32, doc/History1.htm 1.28, doc/History2.htm 1.28, doc/History3.htm 1.28, doc/History4.htm 1.28, doc/History5.htm 1.30, doc/History6.htm 1.45, doc/History7.htm 1.33, doc/History8.htm 1.5, doc/Htmstyle.htm 1.33, doc/Install.htm 1.43, doc/Issues.htm 1.38, doc/Language.htm 1.75, doc/Lib.htm 1.31, doc/Maintain.htm 1.39, doc/Make.htm 1.69, doc/New-user.htm 1.48, doc/Projects.htm 1.53, doc/Ps-style.htm 1.26, doc/Ps2epsi.htm 1.30, doc/Ps2pdf.htm 1.55, doc/Psfiles.htm 1.49, doc/Readme.htm 1.51, doc/Source.htm 1.28, doc/Tester.htm 1.28, doc/Testing.htm 1.22, doc/Unix-lpr.htm 1.28, doc/Use.htm 1.88, doc/Xfonts.htm 1.28, doc/gs-vms.hlp 1.27]
Bump the release date for Ghostscript 8.11.[doc/News.htm 1.134, doc/Release.htm 1.80, man/dvipdf.1 1.26, man/font2c.1 1.26, man/gs.1 1.27, man/gslp.1 1.26, man/gsnd.1 1.26, man/pdf2dsc.1 1.25, man/pdf2ps.1 1.27, man/pdfopt.1 1.25, man/pf2afm.1 1.26, man/pfbtopfa.1 1.27, man/printafm.1 1.26, man/ps2ascii.1 1.25, man/ps2epsi.1 1.24, man/ps2pdf.1 1.31, man/ps2pdfwr.1 1.30, man/ps2ps.1 1.33, man/wftopfa.1 1.26, src/version.mak 1.65]
Document testing.cfg as well as testing.cfg.example.[doc/Testing.htm 1.21]
Cleans up the behavior of the .tempfile operator, primarily making it consistent across all the platforms, ensuring that the TMPDIR and TEMP environment variables are effective, the system temp directory is used when these are not specified, and the permissions for tempfile creation work as expected (allowed in the simple case, but closing off potential vulnerabilities in other cases. Intended as a final fix for bug #686922. DETAILS: 1. The permissions behavior of .tempfile is changed so that simple prefixes are always allowed, absolute pathname prefixes are checked using the PermitFileWriting logic, and other cases are disallowed. In particular, it is no longer possible to specify temp prefixes relative to the current directory, or as subdirectories of the standard temp directory. Both such cases are potential security holes, and are probably not useful in any real application. 2. The meaning of gp_open_scratch_file() is made more consistent across the platforms. In particular, it is now the clear responsibility of this function to add the appropriate temp directory. As such, gp_gettmpdir() is no longer exported in the public gp.h interface (gpmisc.h is intended only for the convenience of gp_ implementations). 3. On VMS, gp_open_scratch_file() didn't previously add the temporary directory pathname. Now it does. 4. On Windows, gp_open_scratch_file()'s behavior was somewhat inconsistent, calling GetTempPath() only when the length of the TMPDIR or TEMP environment variables overflowed the buffer provided. It now additionally uses GetTempPath() in the cases where these environment variables are not set. 5. Since gp_open_scratch_file() now takes responsibility for determining the temporary directory, ztempfile() no longer attempts to do this.[doc/Language.htm 1.74, src/gp.h 1.25, src/gp_mswin.c 1.22, src/gp_vms.c 1.32, src/gpmisc.h 1.12, src/lib.mak 1.131, src/zfile.c 1.36]
Convert ASCII range font names found during the FONTPATH scanning to simole ASCII aliases (original Unicode names preserved). Fixes bug 686861 for customer 131. DETAILS: This is an interim patch that establishes the alias in the ASCII code range if (and only if) the high byte of ALL characters in the name are NULL (\000). The future improved implementation would be to add a UTF-8 fontname when the TTF font has the name in Unicode. This would allow simple PostScript applications that use the 8-bit character name to work as this patch does.[lib/gs_fonts.ps 1.41]
Pass path across grestore using base "identity" coordinates to prevent limitcheck errors. The upath operator returns coordinates in the current user space, but these are no longer valid across a CTM change such as "grestore" or "setgstate" causes. Fixes SF bug #687001 for customers 580 and 590. DETAILS: The patch gets the upath using identity user space, then stuffs it into the graphics state after the grestore in the same identity space restoring the CTM of the grestore after the uappend. Both grestore_nopath and setgstate are modified. These could probably be refactored later to share PS code, but the value is minimal (IMO). Interesting that this hadn't turned up before, but two customers tripped over this recently.[lib/pdf_ops.ps 1.31]
Fixes two pointers to freed objects that were left dangling in the PDF 1.4 transparency logic. Fixes bug #686994. DETAILS: With some test files, saved graphics states had held on to pointers to the device filter stack that had already been freed by a gs_pop_device_filter() call. These dangling pointers can cause garbage collection corruption. This patch introduces reference counting discipline to these pointers so that the dfilter_stack objects are not actually freed until the last reference is dropped. A similar but simpler argument applies to the pdf14_ctx object in the pdf14_device. This patch simply sets the pointer to NULL when freeing the context.[src/gdevp14.c 1.19, src/gsdfilt.c 1.8, src/gsdfilt.h 1.9, src/gsstate.c 1.21, src/gzstate.h 1.9]
Correct a typo in the previous commit.[src/gp_macio.c 1.29]
Remove redunant prototypes from gp_mac.h and modernise the implementation of gp_open_scratch_file on MacOS to match the updated prototype in gp.h. Also adds some limit checking in that implementation. Note that gp_mac.h is now empty. I've left it in the build in expectation of future usefulness.[src/gp_mac.h 1.5, src/gp_macio.c 1.28]
Update DSC parser to latest version from GSview. DETAILS: Recognise MacBinary or AppleSingle files and process the data fork only, similar to DOS EPS files. Handle DCS2 files that contravene the spec by putting the TIFF preview between the composite and the separations. Recognise CMYK and RGB names if separations are renamed using epstool.[src/dscparse.c 1.13, src/dscparse.h 1.12]
Fix make files and portability layer to compile on Borland 5.5 freeware compiler.[src/bcwin32.mak 1.29, src/unistd_.h 1.9, src/winint.mak 1.20]
Include time.h and sys/time.h on Intel compiler as requested by Duraid Madina. Fix bug 686984[src/time_.h 1.7]
Update non-DLL version to support visual tracer. Fix bug 686993[src/dwdll.c 1.6, src/dwnodll.c 1.5, src/msvc32.mak 1.47]
Fix portability issues: add a portable header for sscanf() and use specific handle HDROP instead of generic HANDLE.[src/dwimg.c 1.9, src/winint.mak 1.19]
Don't rely on MS linker merging global variables defined multiple times.[src/dwtrace.h 1.5]
Update GS icon file by re-saving it in MSVC 6. Old icon file was incompatible with OpenWatcom resource compiler.[src/gswin.icx 1.2]
Remove comma from the linker command line because the following indirect file contains keyword-value pairs, not a list of values.[src/watcw32.mak 1.27]
OpenWatcom doesn't define LPRGBQUAD. Add the corresponding typedef. Partial fix for 686816[src/windows_.h 1.5]
Add the headers ($Id: $ line and copyright notices).[toolbin/genfontmap.ps 1.2]
Fix : The condition for empty environment string was wrong in ztempfile. Bug 686922 "no default temp dir"[src/zfile.c 1.35]
Fix (pdfwrite) : The default implementation of stringwidth is incompatible with Type 3 font processing. DETAILS : With Type 3 fonts the default implementation of stringwidth renders characters to PS cache, causing them to convert to bitmaps in further rendering. This patch implements stringwidth with Type 3 fonts inside pdfwrite, allowing the charproc accumulation during stringwidth. Bug 686992 "Duplicated characters in Arabian Type 3".[src/gdevpdte.c 1.43, src/gdevpdtt.c 1.54, src/gxchar.c 1.30, src/gxchar.h 1.14]
Correct offsets into .bigstring (broken when string size changed from 1000).[lib/gs_frsd.ps 1.8]
Fix (pdfwrite) : Don't write OP into charprocs. DETAILS : Bug 686986 "Could not find the extended graphic state ..." error[src/gdevpdfg.c 1.34]
Fix (pdfwrite) : Check a run out charstring while converting Type 1 font into Type2. DETAILS : 1. Compare the instruction pointer with the charstring end address (gdevpsfx.c). 2. Error codes were not propagated. Bug 686985 "pdfwriter segfaults converting a charstring".[src/gdevpdtb.c 1.21, src/gdevpsf2.c 1.27, src/gdevpsfx.c 1.22]
Fix for Bug 686991 Memory leak in CET test file 12-07.ps. DETAILS: A pointer to a free object was found while running the CET with the memory allocation test switches (-Z@?$). The free object was a color space and the pointer was inside a gs_image_enum_common structure. The situation occurs when an error is found in the data source for for an image. The actual cause was that the image enum common structure should have also been released. Note: The data source checking is the only place that has this problem. After the data source checking, the image enum common structure pointer is placed into an image enum structure. Errors that are detected after that point call gx_image_cleanup which handles all of the data in the image enum structure including the image enum common structure.[src/zimage.c 1.12]
Adjust internal string lengths to allow for long path/filenames such as for Resource paths. OS limits may be shorter than the 8192 length allowed for after this changes, but now interpreter internals won't cause a failure. Customer 590 found this with a long GenericResourceDir. Bug #686989. DETAILS: While 8192 is also arbitrary, now all strings used for path/filenames are the same and probably long enough for a while. Also I made all the string lengths used for file copy operations be the same 64000 bytes (they were highly inconsistent).[lib/gs_cidcm.ps 1.11, lib/gs_diskn.ps 1.5, lib/gs_fntem.ps 1.7, lib/gs_fonts.ps 1.40, lib/gs_frsd.ps 1.7, lib/gs_pdfwr.ps 1.36, lib/gs_pfile.ps 1.5, lib/gs_res.ps 1.34, lib/gs_resst.ps 1.3, lib/gs_statd.ps 1.12, lib/gslp.ps 1.6, lib/pdf_main.ps 1.76, lib/pphs.ps 1.6, lib/wftopfa.ps 1.5]
Add a utility to create a Fontmap format file after forcing a scan of all FONTPATH directories. The created Fontmap file will contain direct links to all fonts found, so that subsequent runs of Ghostscript that use this Fontmap won't need to perform the time consuming scan of the FONTPATH.[toolbin/genfontmap.ps 1.1]
Fix (pdfwrite) : Widths were computed wrongly with Type 3 fonts. DETAILS : 1. With glyphshow process_text_modify_width called pdf_char_widths with GS_NO_CHAR. 2. In pdf_char_widths an index for real_widths array was wrong (2 times smaller) with Type 3. 3. Now we write Widths as reals, improving the precision. Now the precision isn't smaller than 1/100, rather the old code looses all significant digits when a width is smaller than 1. A better way would be re-scaling the font, but currently we don't see a strong need for that. Bug 686988 "test-setweightvector.ps wrongly converts to PDF". This patch fixes the test-setweightvector.ps problem and improves glyph positions in Altona.Page_3.2002-09-27.pdf .[src/gdevpdte.c 1.42, src/gdevpdtw.c 1.23]
Allocate larger buffer for generated charstrings. Old allocation was insufficient for gray block characters. (Unicode 2591, 2592, 2593). Fix bug 686987.[lib/bdftops.ps 1.7]
Disable the legacy macstdio device in the default Codewarrior build. It conflicts with and is obsoleted by the modern Metrowerks Standard Library and our default Carbon build, which most users are now using.[src/macos-mcp.mak 1.21]
Remove an unused local variable[src/gdevpdtw.c 1.22]
Fix incorrect line endings.[src/gdevpdtw.c 1.21]
Document adding the jbig2dec source to the source release.[doc/Release.htm 1.79]
Fix (pdfwrite) : Providing an access to the original font matrix via a special font dictionary key /.OrigFont (part 2). DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003482.html was buggy. This patch corrects it and fixes the 2003-08-02 regression with two_encodings.ps .[src/gdevpdtt.c 1.53, src/zbfont.c 1.23]
Fix (pdfwrite) : A workaround for Type 3 fonts with instandard BuildChar. DETAILS : Bug 686982 "Wrong characters in PDF".[src/gdevpdti.c 1.18, src/gsccode.h 1.12, src/zbfont.c 1.22]
Fix (pdfwrite) : xshow, xyshow array index was wrong. DETAILS : Bug 686976 "type3 fonts are mangled in pdf conversion", but the problem was more general than Type3.[src/gdevpdtc.c 1.26, src/gdevpdte.c 1.41]
Fix (pdfwrite) : gs_copied_can_copy_glyphs used glyph names instead glyph indices with Type 42. DETAILS : This change is a continuation of the glyph/glyph_index cleanup started in http://www.ghostscript.com/pipermail/gs-cvs/2003-June/003354.html . Bug 686983 "TT fonts converted to type3".[src/gxfcopy.c 1.31]
Fix (pdfwrite) : Providing an access to the original font matrix via a special font dictionary key /.OrigFont . DETAILS : The new key is implementation specific and should not affect regular documents. It works for the case when a font is copied like this : /x findfont dup length dict copy /y exch definefont - it points from the copy to the original font. This change fixes Ghostscript Bug 686970 "Overlapping characters" and causes a progression with 455690.pdf with pdfwrite. A long ago Peter L. Deutsch and me discussed the heuristic in pdf_font_orig_matrix/font_orig_scale. I was aware of its limitations, but I followed Peter's authority. Now we get a real case that it can't handle, and therefore I take the responsibility for the different approach. -igor.[lib/gs_fonts.ps 1.39, src/gdevpdtt.c 1.52, src/gsfont.c 1.21, src/gxfont.h 1.20, src/zbfont.c 1.21]
Update News.htm with current open bugs and incompatible changes.[doc/News.htm 1.133]
Remove a redundant dependency definition.[src/lib.mak 1.130]
Set release dates on the documenation.[doc/News.htm 1.132, man/dvipdf.1 1.25, man/font2c.1 1.25, man/gs.1 1.26, man/gslp.1 1.25, man/gsnd.1 1.25, man/pdf2dsc.1 1.24, man/pdf2ps.1 1.26, man/pdfopt.1 1.24, man/pf2afm.1 1.25, man/pfbtopfa.1 1.26, man/printafm.1 1.25, man/ps2ascii.1 1.24, man/ps2epsi.1 1.23, man/ps2pdf.1 1.30, man/ps2pdfwr.1 1.29, man/ps2ps.1 1.32, man/wftopfa.1 1.25]
Update release date for stable 8.11 release.[doc/News.htm 1.131, src/gscdef.c 1.37, src/version.mak 1.64]
Create a table that decides whether the glyph index belongs to [WinAnsiEncoding, StandardEncoding, MacExpertEncoding], or SymbolEncoding, or none of them. Use this table instead of searching the encoding vectors for every glyph. Fix bug 686929[doc/Develop.htm 1.118, src/devs.mak 1.93, src/gdevpdtv.c 1.1, src/gdevpdtv.h 1.1, src/gdevpdtw.c 1.20, toolbin/encs2c.ps 1.4]
Fix (the new Type 1 hinter) : Accent was misplaced in composite Type 2 glyphs. DETAILS : Bug 686971 "Characters with accents problem". Expected progressions : Altona.Page_3.2002-09-27.pdf Svd.pdf[src/gstype2.c 1.27, src/gxhintn.c 1.29]
Document the .bindnow operator and the need to rebind bind to .bind after calling it with -dDELAYBIND. Closes bug 633299.[doc/Language.htm 1.73, doc/Use.htm 1.87]
Remove superfluous 'save pop' from .setpdfwrite definition since gs_init.ps now performs the outer level save which addresses the font loading issue .setpdfwrite was solving.[lib/gs_pdfwr.ps 1.35]
Add -dNOOUTERSAVE when -c false 0 startjob pop is used to set up a job server environment so that Genoa tests will operate as if under a job server and so that global VM will be restored when Genoa tests check the exitserver operation.[toolbin/tests/gstestgs.py 1.20]
Add an initial outermost save unless -dNOOUTERSAVE option is specified. Fixes Bug #686972 and others that were closed with the instructions to use -c "save pop" prior to the file. DETAILS: The initial save is needed for several ProcSets from Adobe applications and those of other vendors that expect objects in global VM to be retained after a restore that would otherwise remove objects in global VM defined after the corresponding save. This kept recurring because several ProcSets from Adobe, Quark and others expect to run under a job server. The -dNOOUTERSAVE is needed for backward compatibility and for those that want to run under a job server and want global VM to be restored between jobs (as expected under a job server). Note that the save object is discarded so that it cannot be used to restore to the state prior to .setsafe and thus circumvent security when -dNOSAFER is used and .setsafe or .locksafe is subsequently used to go to SAFE mode.[doc/Use.htm 1.86, lib/gs_init.ps 1.93]
Properly handle the absence of a parameter dictionary in the JBIG2Decode filter implementation. Closes bug 686979. DETAILS: Filter implementations can be called with <source> <paramdict> or just with <source> on the stack. Previously our jbig2 decode filter only supported the former. This went undetected because previous files we'd encountered from the CVISION and Adobe encoders included a /JBIG2Globals filter parameter even if it was empty. The file submitted with the bug has no filter params at all for the JBIG2Decode stream. It identifies itself as having been generated by CVISION Technologies' PDFCompressor 2.0.[src/zfjbig2.c 1.3]
Correct capitalization of the -d parameter in the IJS examples.[doc/Devices.htm 1.68]
Correct a problem which was created when the SeparationOrder parameter was implemented. The usual symptom was an uninitialized value left in the cyan component for a gray color space.[src/gdevdevn.c 1.9]
Build fix of the jbig2 makefile. OOur portable (v)snprintf implementation is in snprintf.c, notvsnprintf.c. Reported in but 686966.[src/jbig2.mak 1.6]
Record that .buildnativefontmap has been run even if .getnativefonts returns false (unimplemented). This was causing an endless loop if a font was not found as dofindfont tried to call the native font enumeration code over and over.[lib/gs_fonts.ps 1.38]
Fix a SEGV that could occur during 'shfill' if a GC occurred between the .buildhading and the .shfill internal operators. DETAILS: The DataSource sub-structure that is part of the shading_mesh_params was not being traced, so that memory pointed to by elements of that structure would be prematurely freed. This was detected running files produced by libGL2ps that turned an Open GL rendering into LOTS of shapes to be filled with Gouraud triangles.[src/gsshade.c 1.9, src/gsshade.h 1.7, src/gsstruct.h 1.16]
Fix security issue with .setnativefontmapbuilt. Procedures that change the systemdict must be execute-only so the .forceput cannot be extracted and used to change other parameters. Thanks to Russell Lang for this.[lib/gs_fonts.ps 1.37]
Since globaldict isn't always available and userdict is subject to save/restore, keep /.nativefontmapbuilt in systemdict, with an accompanying procedure to set its value since systemdict is read-only from the normal runlevel.[lib/gs_fonts.ps 1.36]
Record whether the .buildnativefontmap has been run as a boolean under the key /.nativefontmapbuilt in userdict, instead of the array hack used previously. A better choice would be globaldict which is less susceptible to save/restore but this is a language level 2 feature and not defined with gs_fonts.ps is run.[lib/gs_fonts.ps 1.35]
More transparency fixes: set color space when computing /BC in soft-mask transparency groups. Implement /TR transfer function in soft-mask groups.[lib/pdf_draw.ps 1.73, src/gdevp14.c 1.18]
Enable native font enumeration by default. This change also corrects some flaws in the search logic. Like with the FONTPATH directory scanning, .buildnativefontmap will only be called the first time a font cannot be found. However, it can still be run manually to update the in-memory Fontmap. DETAILS: To record that .buildnativefontmap has been run, we define /.nativefontmapbuilt as an array containing a single element, either 'true' or 'false'. We use an array to avoid local vs. global issues when the value is set during the call to .buildnativefontmap.[lib/gs_fonts.ps 1.34]
More transparency fixes: fix broken remapping of Separation and DeviceN colorspaces in PDF 1.4 mode. Convert background color for soft mask groups to DeviceGray colorspace using PostScript code (currentgray).[lib/pdf_draw.ps 1.72, src/gdevp14.c 1.17, src/ztrans.c 1.20]
Draws the alpha plane of PDF 1.4 SMask images as a soft masked group.[lib/pdf_draw.ps 1.71]
Speed up native font enumeration on MacOS by caching the results of parsing the FOND resource table. Also return paths of the from '%macresource%path:to:file#POST' for resource files without FOND tables, on the assumption these are LWFN files. The font loading machinery doesn't yet support such paths, and they are simply skipped without being added to the in-memory font map.[src/gp_macio.c 1.27]
Rename reftable to fond_table, etc. to avoid confusion with postscript references.[src/gp_macio.c 1.26]
Improve native font enumeration on MacOS. This feature is still not enabled. DETAILS: There are six different api calls to open a resource file on MacOS Carbon, all of various provenance and history. We were using FSOpenResourceFile() in our FOND parsing code because it will open the data fork of .dfont files or the resource fork of resource font files. Very convenient. However, it fails for some common font files with broken resource maps. Therefore we now fall back to FSpOpenResFile() which only tries the resource fork, but can handle the broken maps, if the first attempt fails. I've not encountered any .dfont files with broken resource maps; they're a recent phenomenon so we should be safe there. Also contains changes to skip the FOND parsing for .ttf and .otf filenames, to ask for 'Local' instead of 'Global' fonts in the enumerator (the difference is unclear) and changes to use the Carbon headers in the Carbon build.[src/gp_macio.c 1.25]
Read a PostScript embedded ICC input profile into a bytestring (.bigstring) rather than a temp file. This is faster and doesn't leave the temp file laying around. Bug #686926 for Artifex customer #1110. DETAILS: Since we don't know the size of the bytestring needed to invoke .bigstring, we read the ICC profile data into an array of 64,000 byte strings, then create the bytestring and fill it with putinterval. This bytestring then becomes the source for a ReusableStreamDecode filter which is a seekable filter. We'd like to have simply used SubFileDecode filter and ASCIIHexDecode as the source for ReusableStreamDecode, but this only works if SubFileDecode has a count.[lib/gs_icc.ps 1.10]
Exclude NT file attributes when building zip file of sources.[doc/Release.htm 1.78]
Have configure define DONT_HAVE_JMEMSYS_H is appropriate, is support of the eventual generation of gconfig_.h by the configure script rather than unix-aux.mak.[src/configure.ac 1.32]
Added casts to remove some warning messages from MSVC. Partial fix for bug #686592.[src/gdevdevn.c 1.8, src/gdevpsd.c 1.5]
Comment out the #define for the DUMP_TO_PNG debug mode (it will need make file changes to compile correctly since png.h may not be on standard include paths.[src/gdevp14.c 1.16]
First batch of transparency improvments. With these changes, ChineseOpera.ai and a number of other files using soft mask groups should render correctly.[src/gdevp14.c 1.15, src/gstrans.c 1.17, src/gxblend.c 1.5]
A code clarity change only. Make the value of 1-input stitching function more explicit in the degenerate case.[src/gsfunc3.c 1.15]
Update version information and links to the web and bts sites, after a patch from Ambrose Li. Bug 686939.[doc/Bug-info.htm 1.36, doc/New-user.htm 1.47]
Generate the list of X11 libraries we need to link to in configure. Previously this was hardwired, but some systems do require the addition of the X_PRE_LIBS and X_EXTRA_LIBS discovered by the configure macro. Closes bug 686938.[src/Makefile.in 1.26, src/configure.ac 1.31]
Prevent divide by zero when invalid Bounds arrays are encountered. Earlier we allowed invalid Bounds to be compatible with Adobe, but did not supply a non-zero denominator value. Fix required for ChineseOpera.ai[src/gsfunc3.c 1.14]
Recognize the 0.3 source release jbig2dec.[src/configure.ac 1.30]
Improve a comment in the generated gconfig_.h on unix.[src/unix-aux.mak 1.10]
Add some casts to prevent excessive warnings when compiling C fonts with MSVC 6. This only affects the syntax of the generated fonts.[lib/font2c.ps 1.6]
Fix: Cygwin/gcc warnings. DETAILS : One of them actually was a bug in the recent patch.[src/gxtype1.c 1.26, src/zchar1.c 1.31]
pdfwrite : Improving the font metrics handling. DETAILS : 1. Metrics, Metrics2 was ignored for CID fonts; 2. usematrix was ignored; 3. v-vector was erroneusely scaled down in 1000 for TT fonts; 4. glyph_info mixed WMode 0 1nd 1 in some cases. This patch is a partial fix for the bug #686947 "rotated japanese chars". A complete fix should include a handling of CDevProc. This patch causes an unexpected progression of pdfwrite with keyboard.pdf at any resolution, and a minor difference with 093-01.ps at 300dpi.[src/gdevpdtc.c 1.25, src/gdevpdte.c 1.40, src/gdevpdtt.c 1.51, src/gstype42.c 1.32, src/gxfcopy.c 1.30, src/gxtype1.c 1.25, src/ichar1.h 1.10, src/int.mak 1.114, src/zchar1.c 1.30, src/zfcid1.c 1.18]
Fixing a C++ style comment in fapi_ft.c.[src/fapi_ft.c 1.10]
Don't redefine _Windows, since msvctail.mak passes it on the command line. Fixes a warning under MSVC reported by Igor Melichev.[src/iapi.h 1.10]
Use 'fontname' instead of 'name' as an argument to gp_enumerate_fonts_next() to avoid a warning on MSVC. Thanks to Igor for pointing out the issue.[src/gp.h 1.24, src/gp_dvx.c 1.10, src/gp_iwatc.c 1.15, src/gp_macio.c 1.24, src/gp_mswin.c 1.21, src/gp_os2.c 1.28, src/gp_os9.c 1.11, src/gp_unix.c 1.12, src/gp_vms.c 1.31, src/zfontenum.c 1.3]
Add dmmain.c to the list of (platform-specific) source files exempt from the C++ comment policy.[toolbin/tests/check_comments.py 1.2]
Remove some C++ style comments.[src/gsiomacres.c 1.4]
Remove some C++ style comments and correct formatting.[src/zfontenum.c 1.2]
Add zfontenum.c to the file listing in the documentation.[doc/Develop.htm 1.117]
Fix (pdfwrite) : Enlarge font resource arrays on demand. DETAILS : The patch fixes CID fonts that provide a lesser CIDCount than CIDs used in a document. Rather PS requires to print CID=0, we need to provide a bigger CIDCount since we don't re-encode the text. The text should look fine if the viewer application substitutes the font. Fixes the pdfwrite regression with 401-01.ps, which caused a segfault on Linux. Thanks to Ray Johnston for the fault analyzis.[src/gdevpdtc.c 1.24, src/gdevpdtf.c 1.31, src/gdevpdtf.h 1.20]
Implement C++ style comment checking. Partially fixes bug #538033.[toolbin/tests/check_comments.py 1.1]
Require python2.2 now, since the new C++ style comment checking requires it.[toolbin/tests/check_all.py 1.4, toolbin/tests/check_dirs.py 1.7, toolbin/tests/check_docrefs.py 1.8, toolbin/tests/check_source.py 1.6, toolbin/tests/dump_testdb 1.5, toolbin/tests/get_baselines 1.2, toolbin/tests/gscheck_all.py 1.4, toolbin/tests/gscheck_fuzzypdf.py 1.6, toolbin/tests/gscheck_pdfwrite.py 1.14, toolbin/tests/gscheck_raster.py 1.5, toolbin/tests/make_testdb 1.11, toolbin/tests/make_two_pdfversions 1.7, toolbin/tests/make_two_versions 1.11, toolbin/tests/revert_baseline 1.11, toolbin/tests/revert_pdfbaseline 1.9, toolbin/tests/run_nightly 1.19, toolbin/tests/run_regression 1.12, toolbin/tests/testdiff 1.3, toolbin/tests/update_baseline 1.12, toolbin/tests/update_pdfbaseline 1.8]
Initial check in of the native font enumeration mechanism with an implementation for MacOS. The code is currently disabled pending resolution of bugs regarding some font files. DETAILS: This adds a trio of gp_enumerate_fonts calls which implement an interator for querying the native operating system for font files. This is essentially required to make use of the support for reading resource-based font collection files on MacOS since there is no convenient way to construct a Fontmap by hand. Thus our initial implementation focusses there and only stubs are provided on other platforms. However, it would generally be a useful feature on any system that provides such services. An iterator object is created with gp_enumerate_fonts_init() and released with gp_enumerate_fonts_free(). Between these calls, each font is returned by a successive call to gp_enumerate_fonts_next() as a pair of C strings giving the access path and reported font name. On MacOS these are implemented using the FMFontIterator API from Carbon. Unfortunately, while this returns font names and files, it does not provide details about the resource internals so we must open the file and extract the resource id corresponding to the font itself. It also is not always possible to obtain the correct postscript name from the OS call. Connection is made to postscript through the .getnativefonts operator, implemented in zfontenum.c. I handles the interation and places the results on the stack as an array of two element arrays, each representing the name and path as postscript strings. New code in gs_fonts.ps calls this and adds the entries to the fontmap after first calling .findfontname on each path to verify accessibility and in case the reported font name is unreliable. This is implemented as the .buildnativefontmap procedure, which is called by the font location logic if a requested font is not found in the Fontmap. Caveats: This can be a very expensive operation, so like the FONTPATH directory scanning it should probably only happen once in a given session, instead of every time a font isn't found. The macos implementation could also be considerably streamlined.[lib/gs_fonts.ps 1.33, src/gp.h 1.23, src/gp_dvx.c 1.9, src/gp_iwatc.c 1.14, src/gp_macio.c 1.23, src/gp_mswin.c 1.20, src/gp_os2.c 1.27, src/gp_os9.c 1.10, src/gp_unix.c 1.11, src/gp_vms.c 1.30, src/int.mak 1.113, src/zfontenum.c 1.1]
Apparently Metrowerks CodeWarrior defines _WINDOWS_ instead of the normal __WINDOWS__. Support both for determining the calling conventions of the client api. Problem reported by Des Courtney as bug 686934.[src/iapi.h 1.9]
Add the new get_baselines script to the regression test documentation.[doc/Testing.htm 1.20]
Fix (Type 1 hinter) : -dAlignToPixels=0 was ignored with -dNOCACHE. DETAILS : Now we pass the oversampling scale and the number of subpixels to the Type 1 hinter in separate parameters. The old interface was wrong when alpha buffer is installed with -dNOCACHE. The patch cause difference in rendering with -dTextAlphaBits=2,4. These cases are not tested by the regression test tool. Minor changes : - fixed C-style in gxhintn.c; - removed "const gs_log2_scale_point no_scale = {0, 0}" to simplify calls to gs_type1_interp_init.[src/gdevpsfx.c 1.21, src/gstype1.c 1.24, src/gstype1.h 1.7, src/gstype2.c 1.26, src/gxfcopy.c 1.29, src/gxhintn.c 1.28, src/gxhintn.h 1.13, src/gxtype1.c 1.24, src/gxtype1.h 1.13, src/zchar1.c 1.29]
Report upgraded baselines in the last 24 hours. Closes bug #654532.[toolbin/tests/get_baselines 1.1, toolbin/tests/gscheck_raster.py 1.4, toolbin/tests/run_nightly 1.18, toolbin/tests/testing.cfg.example 1.3]
Change the release instructions to refer to GPL Ghostscript rather than GNU Ghostscript. We're no longer part of the GNU project. Closes bug 686913.[doc/Release.htm 1.77]
Document passing -DGX_COLOR_INDEX_TYPE in unixansi.mak in response to the confusion reported in bug 686876.[src/unixansi.mak 1.32]
Correct a bug with zero-length files in .findfontvalue, used by .findfonttype and .findfontname.[lib/gs_fonts.ps 1.32, lib/gs_ttf.ps 1.31]
Document the need to set /OutputFile to a valid filename before calling 'setdevice' with the pdfwrite device. Closes bug 686784.[doc/Language.htm 1.72]
Fix : merge Adobe Glyph List to gs/Resource/Decoding/Unicode.[Resource/Decoding/Unicode 1.3]
Fix premature increment of a nested string counter. Skip white space characters before '(' on 0 level.[src/geninit.c 1.8]
Include default font map into compiled initialization files but use it only if the default font map file fails to open at run time. Fix bug 414985.[lib/Fontmap 1.2, lib/gs_fonts.ps 1.31, doc/Make.htm 1.68]
Fix a typo in a comment.[lib/gs_stres.ps 1.5]
Fix for 686927 Bug in implementation of .hsb2rgb (gs_cspace.ps). This is a bug report, fix, and a test file from Heiko Oberdiek. I love it when the bug reporter also includes an analysis, a fix and a test file. The problem was an error in the calculations for an HSB (hue, saturation, brightness) color to RGB when the hue was 1. The only change that I made in Heiko's fix was to change a few more comments.[lib/gs_cspace.ps 1.6]
PDF fonts can have different widths assigned to character codes corresponding to the same glyph. There is no equivalent feature in PostScript. In this case we define a new entry in CharString dictionary, and change Encoding vector and Metrics accordingly. Currently the font adjustment is applied to Type1, MMType1, and TrueType font resources as defined in adjustfonttypes dictionary. Fixes bug 623292[lib/pdf_font.ps 1.57, lib/pdf_ops.ps 1.30]
Don't oversample characters for rendering in non-pure color. Search the character cache for the exact match -- don't do routine downsampling. Move cached image depth calculations to compute_glyph_raster_params(). Fix downsampling depth calculation although it is not expected to be used in normal operation. Leave the downsampling code intact because it is also used for error recovery. Fix bug 570772 from customer 1.[src/gxccache.c 1.17, src/gxccman.c 1.8, src/gxchar.c 1.29]
Fix : Improving an error message.[src/imain.c 1.32]
Fix : gs/Resource/Decoding/Unicode contained wrong codes for Cyrillic and Herbrew.[Resource/Decoding/Unicode 1.2]
Fix (pdfwrite) : pdev->black and pdev->white were not set when ProcessColorModel changes. Bug 686921 "/ProcessColorModel /DeviceCMYK causes black page".[src/gdevpdfg.c 1.33]
Fix (pdfwrite) : Improving the condition for writing ToUnicode CMap for simple fonts.[src/gdevpdte.c 1.39, src/gdevpdtw.c 1.19]
Fix : Remove LONG_MIN from gxfill.c for a better portability.[src/gxfill.c 1.38]
Give the explicit maximum buffer size in bytes. Suggestion by Ray re bug 686925.[doc/API.htm 1.35, doc/DLL.htm 1.31]
Document the 64 KB length limit on input data passed through the gsapi_run_string* and gsdll_run_cont() calls. Fixes bug 686925.[doc/API.htm 1.34, doc/DLL.htm 1.30]
Remove <limit.h> inclusions as it defines types that conflict with our std*.h on HPUX and probably other systems. Fix for bug 686920. Also correct the copyright dates for gxhintn.c. DETAILS: limits.h was defining ushort on HPUX which conflicts with the definition imported in stdpre.h. There are two approaches within our portability framework: don't use these defines, or make them part of the output from genarch. Since there's only one use in the code (for MIN_LONG) I simply defined it at the top of the file. The test used should work on all 2's complement systems and would probably fail miserably on anything else. It was the most portable define I could come up with. A less assuming variant ((long)(ARCH_MAX_ULONG>>1)+1) also works but generates a warning about the overflow. genarch.c could of course test a variety of candidates and look for the rollover. We could also switch to autoconf for provisioning the whole set of defines. This was chosen as the simplest fix for the time.[src/gxfill.c 1.37, src/gxhintn.c 1.27]
Declare zimage_data_setup() as private to match its prototype. Corrects a warning on the HPUX native compiler.[src/zimage.c 1.11]
Fix (pdfwrite) : FontMatrix was wrong when a standard font is used with various encodings. DETAILS : The core of the change is one in pdf_font_std_alloc. Others provide information for it. Bug 686917 "bad type1 font handling in pdfwriter".[src/gdevpdtb.c 1.20, src/gdevpdtd.c 1.13, src/gdevpdtf.c 1.30, src/gdevpdtt.c 1.50, src/gxfcopy.c 1.28, src/gdevpdtb.h 1.9, src/gdevpdtf.h 1.19, src/gxfcopy.h 1.9]
Windows 2000 driver includes PJL into %%BeginFeature block. Identify this from the operand stack pattern: countdictstack lucas mark and fail the feature request. Fix bug 686916[lib/gs_init.ps 1.92]
Use single '%' in a comment.[lib/gs_stres.ps 1.4]
Activate DSC parser only after all prologue files are read to prevent spurious comments starting with '%%' from disturbing the parser.[lib/gs_pdfwr.ps 1.34]
Fix mis-identificaion of every DSC-conforming file as EPS.[src/gdevpdfp.c 1.32]
Add a paragraph documenting current page orientation options, document limitations on ps2pdf options, and show a work-around. Fixes bug 592930[doc/Ps2pdf.htm 1.54]
pdfwrite : Generate ToUnicode CMaps for CID fonts. DETAILS : This patch must not affect any rendering. The main change is in gdevpdtc.c and zbfont.c . Minor changes : - removed an debug code (#if TEST_UNICODE_SUPPORT, #if 0 in gdevpdtc.c); - Propagated error code in gdevpdf.c . Bug 686887 "Searchable pdf".[src/gdevpdf.c 1.69, src/gdevpdtc.c 1.23, src/gdevpdte.c 1.38, src/zbfont.c 1.20]
Fix (type 1 hinter) : Don't apply alignment zone to horizontal stems when the shift is bigger than half pixel. DETAILS : Fixes a problem with comparefiles/font_issue.pdf . This patch causes minor differences in rendering of multiple files : 72dpi : 027-09.ps bulletin.pdf chess.ps CIDembedded.pdf fonttest.pdf Svd.pdf test.pdf 300dpi : 01_001.pdf 027-05.ps 027-09.ps 033-52-5873.pdf 045-01.ps 093-01.ps 136-01.ps 154-01.ps 158-01.ps 159.pdf 165-01.ps 1_pct_50_bang.pdf 231-01.ps 233-01.ps 251-01.ps 268-03.ps 268-05.ps 281-01.ps 327-01.ps 450-01.ps 455690.pdf 541.pdf 541_623.pdf 86554321.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf besttest.pdf brochurep1.pdf bug-gstest.pdf bugsample.pdf bulletin.pdf ccc.pdf chess.ps CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf fonttest.pdf frosch.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf H00216q.pdf js.pdf kazmir.pdf KozukaB-ILEmbed.pdf laballade.pdf LD.pdf narrow_font.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf RealCities.pdf rf1025.pdf ridt91.eps RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf smdf.90441.102.pdf Svd.pdf test.pdf test2.pdf test2a.pdf textsavematrix.pdf time1.pdf vsem0093.pdf waterfal.ps xgfddg.pdf xngnews.pdf[src/gxhintn.c 1.26]
Clarify a comment.[src/macos-mcp.mak 1.20]
Implementing the text rendering mode 3 with graphics library to allowing PDF interpreter with pdfwrite to pass invisible text (continued). DETAILS : 2 files were missed from the previous patch. Adding them now.[src/gsstate.c 1.20, src/gxistate.h 1.16]
Implementing the text rendering mode 3 with graphics library to allowing PDF interpreter with pdfwrite to pass invisible text. DETAILS : This patch improves the text rendering mode 3 only. Other text modes stay like they were - implemented with charpath in pdf_ops.ps (to be improved someday). We process invisible text with TEXT_DO_NONE, adding an additional check to op_show_restore in zchar.c . We would like to implement a new mode TEXT_DO_INVISIBLE, but we don't want to do so deep change without a strong neccessity. It can be subject of a further improvement. With this patch stringwidth won't work with text rendering mode 3. We never use this combination. TEXT_DO_INVISIBLE could work for it. Bug 686914 "pdfwrite does not preserve invisible text".[src/gdevpdte.c 1.37, src/gdevpdtt.c 1.49, src/gsstate.h 1.9, src/gstext.c 1.12, src/int.mak 1.112, src/zchar.c 1.11, src/zgstate.c 1.8, lib/pdf_ops.ps 1.29]
Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong (3nd attempt). DETAILS : This patch defines a compatible workaround for fonts that use ce1_setcurrentpoint in an illegal way. See comments in code.[src/gdevpsfx.c 1.20, src/gxhintn.c 1.25]
Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong (2nd attempt). DETAILS : The previous patch appears wrong. This patch unwinds the change to gdevpsfx.c and fixes ce1_setcurrentpoint in the new Type1 hinter.[src/gdevpsfx.c 1.19, src/gxhintn.c 1.24]
Fix : Errors in a comment documenting gs_glyph.[src/gsccode.h 1.11]
Print out modified file names and versions when generating the html changelog. Update the current versions of Changes.html and Details.html as an example.[doc/Changes.htm 1.47, doc/Details.htm 1.6]
Print out modified filenames and versions when generating the html changelog.[toolbin/split_changelog.py 1.5]
Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong.[src/gdevpsfx.c 1.18, src/gstype1.c 1.23]
Edited to reflect new capabilities of Bugzilla and current bug reporting practices.[doc/Bug-form.htm 1.37]
Change links from SourceForge bug tracker, http://sourceforge.net/bugs/?group_id=1897 to Ghostscript Bugzilla, http://bugs.ghostscript.com Fix bug #686888[doc/Bug-info.htm 1.35, doc/Make.htm 1.67]
Add hyperlinks to Ghostscript Bugzilla bug entries.[doc/Devices.htm 1.67, doc/Issues.htm 1.37, doc/Projects.htm 1.52]
Permit explicit specification of /GDBytes equal to 0 for incrementally downloadable CIDFonts. Fixes bug 686890 from customer 131. DETAILS: Incrementally downloadable CIDFont has GlyphDirectory key. According to PLRM3 p. 376 "The binary data section of a CIDFont with a GlyphDirectory entry does not need a charstring offset table or charstrings; if present, they will be ignored". PLRM3 says nothing about GDBytes entry but it seems logical that the entry is no longer needed when the structure it describes is ignored. Old code used 0 as a default GDBytes value but required explicit specification to be > 0. New code permits explicit 0 value because "Acrobat PDFMaker 5.0 for Word" generates it.[src/zfcid.c 1.14]
Fix : Removing an unused code.[src/gdevbit.c 1.8]
Fix : Completing the extended semantics of gs_glyph. DETAILS : The extended semantics was introduced with the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-June/003354.html That patch appears incomplete. Hopely this one completes it. Also it fixes the bug #686910, which was not detected with comparefiles.[src/zfont42.c 1.16]
pdfwrite : Write Encoding for True Type fonts. DETAILS : See comment in code.[src/gdevpdtt.c 1.48]
Fix (PDF interpreter) : Account Encoding while building CharStrings for TrueType fonts. DETAILS : If an Encoding is specified with a symbolic TrueType font, its character names to be used for generating CharStrings. The old code uses SymbolEncoding instead, missing some characters. Fixes the bug 686912 "PDF interpreter problem with True Type & Encoding".[lib/gs_ttf.ps 1.30, lib/pdf_font.ps 1.56]
Fix (pdfwrite) : Convert Type 0 fonts with multiple CID font descendents into Type 0 fonts with single CID font descendents (the part 3). DETAILS : At last we got a non-degenerate test for multiple CID font descendents and could debug this stuff with a real document. This patch mixes several changes : - In some cases CIDFontType 2 fonts wrongly computed glyph indices ignoring GlyphDirectory. The new function z11_glyph_info works for it. - The text decomposition in gdevpdtc.c mixed font indices of various font descendents. - font->procs.get_glyph_info sometimes received glyph indices instead glyph names or CIDs. This happened with subglyphs of a CIDFontType 2 glyph. This patch improves the semantics of gs_glyph with distinguishing CIDs and GIDs with a new tag in the 2nd high order bit. The new macro GS_MAX_GLYPH_INDEX and related stuff works for it. - gdevpdtd.c tried to compute CID font features using glyph names, which don't exist in this case. Replaced with CIDs. - In gdevtrac.c a wrong glyph space was specified enumerating glyphs (a minor change, since gdevtrac.c is almost an example). - Fixed a compiler warning in gdevdevn.c . Working on this patch, we can see rudiments in pdfwrite code, which are inherited from pre-8.00 code (before stable font copies are implemented), which to be fixed someday : - subset_glyphs arguments in gdevpsft.c looks always NULL and probably to be removed; - COPY_GLYPH_BY_INDEX is now obsolete and to be removed; - glyph enumeration procedures (*enumerate_glyph*) sometimes retrieve a wrong tag in gs_glyph values. The new macro GS_GLYPH_TAG works against it, rather an improvement to enumeration procedures would be useful. The patch is debugged with korea.ps from the bug #686894. After this change the embedded composite font with 2 CIDFontType 2 descendents is correctly decomposed into 2 Type 0 fonts with single descendents (the old (gs8.10) code converts it into a Type 3 with outlines). The generated PDF satisfies the PDF specification and Ghostscript can handle it. Meanwhile Acrobat Reader 4,5,6 fails with it. It appears an old known problem : if a Type 42 font and a CIDFontType 2 with a non-standard CMap appear in same PDF document, Acrobat Reader fails. We believe it's a bug in Acrobat reader, because if we modify the document with removing portions of text so that only one of the 2 fonts is really used, Acrobat Reader renders it fine. It fails only when both things are really used for rendering. A workaround for this problem to do separately.[src/gdevdevn.c 1.7, src/gdevpdtc.c 1.22, src/gdevpdtd.c 1.12, src/gdevpdtf.c 1.29, src/gdevpdtt.c 1.47, src/gdevpsf.h 1.24, src/gdevpsft.c 1.30, src/gdevpsfu.c 1.11, src/gdevtrac.c 1.5, src/gsccode.h 1.10, src/gstype42.c 1.31, src/gxfcopy.c 1.27, src/gxfont42.h 1.15, src/zfcid1.c 1.17, src/zfont42.c 1.15]
Process encryption dictionary after reading all parts of xref. Old code resolved encryption dictionary after reading the latest part of xref only and returned null instead of the dictionary for some files. Fixes bug 686907 from customer 1060.[lib/pdf_main.ps 1.75]
pdfwrite : Don't add subset prefix when a font doesn't embeed. Ghostscript Bug 686893 NeverEmbed for Japanese CID fonts doesn't work correctly Patch from Koji Nakamaru.[src/gdevpdtf.c 1.28]
Fix for 686785 segfault with PDF 1.4. The PDF interpreter was calling PDF 1.4 transparency features (begin_trasnparency_group) even though the alpha involved was 1.0. THe fix is to set a flag when the need for transparency is done at the start of a page and then testing it when transparency may be needed durng the page.[lib/pdf_draw.ps 1.70, lib/pdf_main.ps 1.74]
This fix corrects a recursion loop that exists with PDF form objects with a transparency group.[lib/pdf_draw.ps 1.69]
Count 1st page objects as shared objects. This is the 1st version that generates files compatible with AR5 used as a browser plug-in. Earlier versions of Acrobat ignore malformed hint tables. All versions ignore the tables when they read the file from disk. Fixes bug 592841[lib/pdfopt.ps 1.20]
pdfwrite : Glyph indices were wrongly computed with copied FontType 11. Ghostscript Bug 686894 "Corrupted CMap".[src/gxfcopy.c 1.26]
Add standard banner and (unnecessary) double include protection to satisfy policy tests.[src/macos_carbon_pre.h 1.2]
Correct listing of MacOS platform-specific source files.[doc/Develop.htm 1.116]
Previous commit was from a bad version of the file (prior to a local correction in a different directory). This fix is the correct fix for embedded fonts that have Length 0 for customer #590.[lib/pdf_font.ps 1.55]
Some PDF files have embedded fonts with Length == 0. These should default to the same handling as when there is no embedded font. Fix for customer #590.[lib/pdf_font.ps 1.54]
Add an example library client for MacOS, comparable to dxmain and dwmain for other platforms. This implementation is specific to Metrowerk CodeWarrior, relying on the MSL/SIOUX stdio implementation for the interactive window. No project file support at the moment. Code contributed by Nigel Hathaway.[src/dmmain.c 1.1, src/dmmain.r 1.1]
Add a prefix header file for the MacOS Carbon build to enable target-specific settings. DETAILS: Metrowerks CodeWarrior doesn't really have an equivalent of the -D commandline option to set CPP defines at compile time. This makes it difficult to set target-specific #ifdef's, for example the __CARBON__ switches used in the MacOS support code. The closest thing offered is a hook in the project file for a 'prefix' header file that will be prepended to each source file as it is fed to the preprocessor. We add such a file for the carbon build, and enable it in the project file xml. The conditional in macgenmcpxml.sh is a direct comparison for the Ghostscript carbon shlib name, which is excessively brittle. Something like perl's =~ /carbon/i on the target name would be preferable, but I couldn't figure out how to do that reliably in sh.[src/macgenmcpxml.sh 1.10, src/macos_carbon_pre.h 1.1]
Check for a valid filter name before trying to parse jbig2 global context streams. Fixes bug 686829. DETAILS: The expansion of abbreviated filter names and check for supported filters was happening after the special-case handling of JBIG2Decode parameters, resulting is an '/undefined in /.jbig2makeglobalctx' error if Ghostscript was compiled without jbig2 support, rather than the usual 'Unable to process' warnings for files containing JBIG2Decode data.[lib/pdf_base.ps 1.38]
Remove spurious '-c' options to install. Closes bug 686895.[ijs/Makefile.in 1.2]
Initialize current color value as null when pattern color space is set. Fixes bug 686805[src/zpcolor.c 1.10]
Fix : Don't fail when GlyphNames2Unicode can't be provided for a CID font.[lib/gs_fntem.ps 1.6]
A pair of fixes for Bug 686791 Device bitcmyk produces wrong output The bitcmyk device produce the wrong output if GrayValues=8. In this case the pixel size is 32 bits. The encode_color procedure was sign extending the MSB into the upper 32 bits of 64 bit gx_color_indexes. The fix in gdevbit.c prevents this from happening. The fix in gdevm32.c makes it so that it does not matter. I am including both for completeness. The bitcmyk device should not produce garbage in the remaining bits. Thus the first fix. However there may be other devices with this problem so I am including the fix in gdevm32.c. There was a recent report from an AIX system with a similar problem[src/gdevbit.c 1.7, src/gdevm32.c 1.5]
Provide a trial support for converting a text to Unicode.[lib/gs_cidfn.ps 1.27, lib/gs_fntem.ps 1.5, lib/gs_fonts.ps 1.30, lib/gs_pdfwr.ps 1.33, src/gdevpdtc.c 1.21, src/zbfont.c 1.19]
Stream 'position' was not update correctly under some conditions. Fixes Bug #686859 for customer #600. DETAILS: The stream position was not updated if the buffer was emptied by sgets, which then called to spgetcc. The latter would reset the read pointers needed in order to account for the empty buffer.[src/stream.c 1.22]
pdfwrite : Convert Type 0 fonts with multiple CID font descendents into Type 0 fonts with single CID font descendents (part 2). DETAILS : The previous patch appears wrong for the case when same CID font is used with different CMaps. Creating multiple Type 0 fonts for this case, assigning them a composite font name with CMap name. Minor changes : - a compiler warning in gdevpdfv.c . - a wrong error code was returned from zfcid0.c .[src/gdevpdfv.c 1.26, src/gdevpdtc.c 1.20, src/gdevpdtf.c 1.27, src/gdevpdtf.h 1.18, src/gdevpdtt.c 1.46, src/gdevpdtt.h 1.17, src/zfcid0.c 1.20]
Double-equals ('==') for string comparison is not portable shell. Thanks to Nelson Beebe for pointing out the issue.[src/configure.ac 1.29]
Fix : Removed a debug hack.[src/gsfcmap1.c 1.6]
PDF Forms that contained indirect objects need to be resolved prior to processing with 'execform'. Bug #686884 for customer #150.[lib/pdf_draw.ps 1.68]
Fix (pdfwrite) : Convert Type 0 fonts with multiple CID font descendents into Type 0 fonts with single CID font descendents. DETAILS : Bug 686869 "Rasterized characters". Our testbase doesn't test this case. Rather the test file for 686869 contains a font with 2 CID descendents, it actually uses only the 1st descendent, so it's not a complete test. The new code fails with 401-01.ps . This test file is buggy and requires a special workaround, which should be a separate patch. The main change is gdevpdtc.c, gdevpdtf.h . Minor changes : - added a new argument to a set of CMap management functions to access a submap corresponding to a specified font index; - gs_cmap_init now reserves so many gs_id numbers, as many fonts it refer; - removed some unused variables (gdevpdfm.c, gdevpdfv.c, gdevpdtb.c).[src/gdevpdfm.c 1.31, src/gdevpdfv.c 1.25, src/gdevpdtb.c 1.19, src/gdevpdtc.c 1.19, src/gdevpdtf.c 1.26, src/gdevpdtf.h 1.17, src/gdevpdtt.c 1.45, src/gdevpdtt.h 1.16, src/gdevpdtw.c 1.18, src/gdevpdtw.h 1.3, src/gdevpsf.h 1.23, src/gdevpsfm.c 1.14, src/gsfcmap.c 1.22, src/gxfcmap.h 1.15, src/zcidtest.c 1.3]
Fix (pdfwrite) : Removing the 'vdata' argument to simplify internal interfaces. DETAILS : This change is algorithmically equivalent. Note that 'size' argument is replaced with 'bsize', which now passes the buffer size rather than text size. Added some dynamical checks to ensure the buffer size is enough.[src/gdevpdtc.c 1.18, src/gdevpdte.c 1.36, src/gdevpdtt.c 1.44, src/gdevpdtt.h 1.15]
Bump version number after the 8.10 release.[doc/News.htm 1.130, lib/gs_init.ps 1.91, src/gscdef.c 1.36, src/version.mak 1.63]
The 8.10 release is an incremental release from 8.00. It contains some fairly substantial reworking of important modules, most notably in the font rendering. Because of the extent of the changes, we're labelling this as a beta release. It should be quite usable, but it hasn't been as thoroughly wrung out as our production releases.
The major new feature improved font rendering by Igor Melichev. The new font renderer prevents dropouts intelligently rather than relying on "fill_adjust" (which has the side effect of making the font bolder).
In addition, pdfwrite continues to evolve and improve. Most patterns and type 3 fonts are now output as high-level objects rather than being rasterized.
This is our first release with support for JBIG2 encoded images, using our jbig2dec library. This decoder is not yet complete, but successfully decodes many PDF files containing JBIG2 images.
This release also contains an important security fix. If you are using Ghostscript in a security-critical application, we recommend you upgrade now.
Finally, we include the usual bug fixes and improvements. Please exercise this release thoroughly, so we can make the next release rock-solid.
The following bugs.ghostscript.com numbers were open at the time of this release:
405501, 406273, 414947, 414985, 430175, 446344, 456692, 458261, 458775, 458780, 459647, 463688, 465936, 487460, 487953, 493348, 505429, 509829, 526099, 526491, 530011, 535366, 535752, 535932, 538033, 542629, 553187, 555072, 558151, 558435, 563287, 570772, 572865, 578838, 578865, 592160, 592837, 592841, 592930, 595760, 600288, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 621267, 623292, 624515, 626059, 626295, 628110, 629335, 633299, 634036, 634358, 636210, 637850, 645316, 651644, 654532, 656414, 656510, 664484, 667301, 669654, 674241, 674390, 674417, 674418, 677324, 677383, 677430, 677573, 680301, 681469, 684778, 684866, 685335, 686746, 686747, 686750, 686752, 686768, 686770, 686777, 686778, 686779, 686782, 686784, 686785, 686788, 686789, 686791, 686796, 686803, 686805, 686813, 686815, 686816, 686817, 686819, 686821, 686822, 686823, 686824, 686827, 686829, 686833, 686834, 686837, 686839, 686841, 686842, 686843, 686844, 686845, 686850, 686852, 686853, 686859, 686860, 686861, 686863, 686865, 686867, 686869, 686871, 686873, 686876, 686877, 686878, 686880, 686881.
The mechanism for locating resources has changed. See the usage documentation for details of the new mechanism.
Correct additional header dependency errors.
Update changelog and history files for the 8.10 release. DETAILS: Turned out I'd forgotten to modify makehist.tcl to handle the new changelog format, so the merge of News and Changes into History8.htm was done manually. Fortunately this is much simpler now. We will also need a separate 'detailed history' file in which to archive the Details documents before the next release. N.B. those trying to regenerate this: the gs8_00 tag was accidentally modified in April, so the date-from-tag filtering recommended in the release instructions does not work for this diff. Instead the xml changelong was generated with hand-picked dates: cvs2cl.pl --xml --utc -T --follow trunk --usermap authors \ --log-opts "-d'2002-11-21<2003-06-21'" -f doc/changelog.xml
Some browsers don't like '--' in the body of an html comment.
Add a missing header dependency. DETAILS: Our wrapper header memory_.h includes std.h, as most of them do, but this dependency was not marked, causing a build error with a parallel make. It began compiling the sjbig2.c before genarch was complete.
Our bug tracker is now at ghostscript.com.
Add release notes written by Raph Levien.
Update open bug list for release.
Add a missing dependendency definition.
Propagate version number and release date to the documentation.
Update libpng version to reflect the current release.
Update version number and date for 8.10 release.
Document the location of the jbig2dec releases on sourceforge in the build documentation.
Bump the 'known-good' versions for the jbig2 makefile to include the 0.3 release.
Include an RCS Id line in the generated html changelog files.
2003-05-20 13:46 Alex Cherepanov
Work around 64K limit in a few probable places. Fixes bug 611727
2003-05-20 12:46 Igor Melichev
Fix (pdfwrite) : Merge the Encoding of the 'complete' font copy when merging fonts. DETAILS : "PPI-ProPag 2.6.1.4 (archivePg)" creates multiple font copies with reduced encodings (we believe it is poorly designed), and we merge the copies back to a single font. Doing so the Encoding was not merged for the "complete" font copy. The patch fixes that. Bug 686875 Missing characters with -dSubsetFonts=false
2003-05-20 09:10 Igor Melichev
Fix (pdfwrite) : 'loca' was wrong in some cases embedding a TT font subset. DETAILS : By TT spec, when a TT font uses indexToLocFormat==0, glyph offsets in 'glyf' must be even. The old code doesn't take care about the glyph alignment while converting a font from indexToLocFormat==1 to indexToLocFormat==0. This patch inserts padding bytes into 'glyf' to align glyph offsets with indexToLocFormat==0. Bug 686868 "Missing characters".
Add a warning message if the rebuilding logic found two or more objects with the same object numbers and the same generation numbers.
1. Ignore data after %%EOF whicl scanning for objects or trailer. 2. Allow objects with duplicate object and generation numbers. 3. Change heuristic for finding the trailer dictionary. DETAILS: The previous testing had on the rebuild facility had verified that all test files ran without apparent problems. However a full check of the files in the regression test suite has found three cases of the output images not matching between the normal PDF processing and the rebuild processing. 1. Many real life PDF files contain garbage after the final %%EOF marker. Ghostscript has known about and tolerated this situation for some time. I found a test case (adesso6.pdf) in which the repair logic was finding what it considered a valid object in this garbage. The revisions determine the location of the last %%EOF and form a count of the data left in the file after the %%EOF. This count is used to exclude this data from the object scanning and the trailer location scanning. 2. A test case was found in which two objects were found to have the same object number and revision number. By my reading of the PDF spec, the newer object should have a higher revision number. However the object scanner was changed to accept the last such object as the desired one. Most PDF editors (at least Adobe) put updated objects at the end of the file. 3. A test case was found in which a Linearized PDF file had been edited and a new xref list and trailer dictionary were placed at the end of the file. The heuristic for finding the trailer dictionary was changed to check the specified location of the 'first' xref list. If this location is in the first half of the file, then the start of the file is searched for the first trailer. Otherwise the end of the file is searched for the last trailer. With these three changes, all of the PDF files in the regression test suite produce matching results using either the normal PDF processing or the rebuild procedures.
The TrueType font loading was quite a bit slower than it should be. This optimized font loader is up to ten times faster. Fixes bug #686851. DETAILS: Analysis of the time spent during TT font loading led to two problem areas. The first was that the cmap array was built inefficiently when their was a large glyph range, that had large holes was built with a loop that called a PostScript function 'putglyph' to fill unused areas with .notdef (glyph ID 0). The revision pre-fills the 'glyphs' array with .notdef from a static array pre-filled with 1024 zeroes. The second problem was the code that built the encoding using the 'post' table. This code had a 'repeat' loop to find the name from the start of the glyphNames section of the 'post' table for each named glyph in the encoding. By creating a temporary cross reference, only one pass through the names is made.
2003-05-18 05:03 Alex Cherepanov
PostScript is a trademark and requires BiCapitalization.
Security fixes. Add detection of %pipe% device when in SAFER mode. Also fix detection of 'renamefile' to prevent rename from a file that is not on the PermitFileControl list.
Fix to prevent Windows function from creating file names like (xxx/\\yyy). If there is a trailing path sep, GetTempFileName needs it to be \, not /. Also remove extraneous ^M from previous commit.
Correct the implementation of the new file_name_combine operators for MacOS. Details: The parent directory reference prefix is '::' rather than ':'. Also, a path that begins with the ':' directory separator is a relative path from the current working directory. The more substantive change is in the implementation on gp_check_root(), intended to return the 'root' prefix of a path, if any. The previous implementation returned the location of the first patch separator, causing initialization to fail when attempting to determine if GenericResourceDir ends in a directory separator in gs_res.c. Absolute paths are not a well defined concept on Classic MacOS. In that case we just return 0, as if no path were ever absolute. This likely causes other problems not addressed here. In the Carbon build, we make use of the FSGetVolumeInfo() call to enumerate all mounted volumes, attempting to match each one. This call returns a 16-bit char unicode name for each volume which we make no attempt to convert to whatever 8-bit encoding ghostscript might receive the path in orginally; however we do match the lower 8 bits for the first 256 characters, which works well enough for English volume names. Note that this patch only provides support for MacOS-style paths with ':' as a separator. The Metrowerks Standard Library also accepts unix-style paths and on MacOS X users will expect to be able to use them. Support will need to be extended to include this.
2003-05-16 12:55 Alex Cherepanov
Fix uninitialized variable in gp_open_scratch_file() when the temporary file prefix is an absolute path. Fixes bug 686874
2003-05-16 12:48 Alex Cherepanov
Disable binary encoding. PDF doesn't use binary encoding and may contain characters in the range 128 to 159 in names. Fixes bug 686866
2003-05-16 12:41 Alex Cherepanov
Wild core returned sometimes as an error code from pdf_image_end_image_data() caused unexpected PS error and a low level stacks dump. Fixes bug 686870.
Added new PS source file lib/pdf_rbld.ps. This module contains procedures for rebuilding damaged PDF files.
Added new PS source file lib/pdf_rbld.ps. This module contains procedures for rebuilding damaged PDF files.
This is a set of routines for attempting to recover PDF files which have been mangled by EOL conversions. This is a facility which Adobe Acrobat has and thus we need to duplicate. DETAILS: THE PROBLEM: The basic problem is that PDF files contain 'xref tables' which are really object location indexes which contain the absolute position of objects in a file. If a file is changed by converting the type of EOLs then the file size is changed and the xref data is no longer valid. In many cases, Acrobat can rebuild these files. It is not always possible to always rebuild files. If the files contain binary data which contains line feed or new line characters then the binary data may be mangled and cannot be rebuilt. We need to be able to duplicate Acrobat's ability for rebuilding files. (Note: In theory one can get more and more sophisticated about rebuilding files. The techniques used in this code are quite simple but effective.) THE BASIC SOLUTION: The solution to this problem consists of several pieces. The first piece was to modify the pdf interpreter's internal representation of the xref data. The xref data is stored into two larrays. The larray Generations contains the object's generation number. This was not changed. The larray Objects contained the location of the xref entry in the file. This was set initially by the readxref routine. Since the xref entry data is not valid (for mangled files) this was not useful. Objects was changed to contain the actual location of the object in the file. This actually eliminates one step in the process. Previously when an object was referenced, the location of the xref entry in the file was obtained from Objects and then the xref entry was read to determine the actual location of the desired object. The second part of the process was to put .internal_stopped trapping around the two usages of readxref to catch any failures of that routine. An error message is printed and we then try to rebuild the locations of the objects and find the proper trailer dictionary. The third part of the process is to locate the objects in the file. This is done by a simple scan of the file looking for lines beginning with x y obj where x is a object number and y is object generation number and obj is the text 'obj'. In theory this simple strategy can be confused by binary data but with over 156 files tested, no problems were found. The fourth part of the process is to locate the appropriate 'trailer' dictionary. There is a trailer dictionary with each xref list. In theory there can be many trailer dictionaries in a file. The only desired trailer dictionary is the one associated with the 'first' xref list. Unfortunately since we cannot count on the location information in a mangled file, following the xref links is problematic. The solution used is simple. For Linearized pdf files, we find the first (at the front of the file) trailer dictionary otherwise we use the last trailer dictionary in the file. This simple method works for the 151 known good files (see testing below) and all five known bad files. Included are diffs for the changes and the new file lib/pdf_rbld.ps. The only change in the src directory was the addition of pdf_rbld.ps to the int.mak file. TESTING: There have been two sets of test run on this code. The first set consists of running 151 pdf files from our regression test suite. These files are not mangled. However by disabling the normal readxref routine, the new code was exercised. All 151 pdf files were displayed correctly. The second set of tests consists of actual problem files. I was able to locate five files that we have been sent that have been mangled. file name Ghostscript Acrobat 5.0.5 1003.pdf okay okay cm_test.pdf okay okay precon.pdf okay fail ServletReport.pdf fail fail dauben.pdf fail fail As expected, not all files can be recovered. I was pleased that, for this small sample, we did better than Acrobat.
Revised fix for 686872 token operator sometimes leaves extra data on stack. With some strings, the token operator can leave extra data on the stack. In the test case, the token operator is generating a syntaxerror. The error is expected. However the token operator is leaving 3 items on the stack. It should only leave one: The original string. This fix corrects the problem. DETAILS: The problem was found while developing the xref data recovery facility which uses the token operator to scan PDF files (including binary data). The fix consists of simply recording the operator stack level at the start of the string processing and restoring it if an error occurs. The revision to the fix consists of using the 'pop' macro to modify the o_stack pointer instead of directly setting the pointer.
2003-05-15 18:46 Alex Cherepanov
Fix negative shift count in operator << . On 80x86 processors the shift argument is implicitely masked by 31. Fixes bug #686743.
Add the psd (Photoshop raster) output devices to the default autoconf build.
Log message: For the pngalpha device, set the default background color to white in the bKGD chunk. Add an option -dBackgroundColor=16#RRGGBB to explicitly set the background color. This is needed by a common web browser that doesn't correctly support PNG with alpha transparency. DETAILS: Programs that don't fully support alpha transparency let libpng convert an RGBA image to RGB. The background color used is either provided by the program, or in the bKGD chunk, or it falls back to gray. MSIE was defaulting to a gray background which is not commonly used on web pages. By writing a white bKGD chunk, PNG files will display correctly against a white background in MSIE. If a solid color for a web page background is used with <body bgcolor="#CCCC00">, then PNG images appearing on that page would need to be created with -dBackgroundColor=16#CCCC00. For textured background there is no hope. Microsoft needs to fix Internet Explorer.
Fix for 686872 token operator sometimes leaves extra data on stack. With some strings, the token operator can leave extra data on the stack. In the test case, the token operator is generating a syntaxerror. The error is expected. However the token operator is leaving 3 items on the stack. It should only leave one: The original string. This fix corrects the problem. DETAILS: The problem was found while developing the xref data recovery facility which uses the token operator to scan PDF files (including binary data). The fix consists of simply recording the operator stack level at the start of the string processing and restoring it if an error occurs.
2003-05-14 13:36 Alex Cherepanov
Following PDF spec make MatrixA equal to WhitePoint of CalGray color space. To avoud clipping set the max values of RangeLMN to the corresponding values of WhitePoint. Fixes bug 686749
2003-05-12 12:21 Igor Melichev
Fix : margin_set::y was not initialized starting a fill (2nd attempt). DETAILS : The previous patch caused differences in rendering, and therefore it's log message appers wrong. Actually the uninitialized variable caused an indeterministic behavior, and the previous patch fixed it. Meanwhile the initial value appears not good for the case then the bottom of a character may cause a dropout. This patch improves that case. Expecting minor differences rendering the following files at 72dpi : 01_001.pdf 136-01.ps 165-01.ps 455690.pdf 86554321.pdf aaon97_p7.pdf ccc.pdf chess.ps CIDembedded.pdf LD.pdf messenger.pdf messenger16.pdf QuickNews_Nov22.pdf RodinCIDEmbed.pdf xgfddg.pdf
2003-05-11 13:59 Alex Cherepanov
Linearized PDF hints are rewritten as following: (1) added shared object hint table (2) added padding after every per-page entry in hint tables (3) changed the values of some entries Fixed a PS error in PDF files with empty /Contents array. Added a check for encrypted PDF. Fixes bug #611694. DETAILS: There are still many things to improve: (1) detection of 1st page objects and shared objects yelds different result from Adobe Acrobat. (2) no optional hint tables are generated (3) encrypted PDF is not supported The optimizer was tested on all PDF files of our test suite. It fails on: (1) all encrypted files (2) 000040cf.000_60.pdf because of bad entries in 12 0 obj (3) test_multipage_prob.pdf because one of the font names contains a character recognized as a binary token
2003-05-11 13:33 Alex Cherepanov
Add missing quote to an error message.
Replace generic always-on debug printfs with if_debugN() calls. To get the old behavior, pass -Zs to the debug build.
Correct a cut-and-paste error in FEATURE_DEVS.
Workaround to clean up after a PaintProc which leaves additional garbage on the operator stack. Fixes bug #686855.
Add the standard copyright banner and $Id line to the new changelog script.
Add recent new files to the developer documentation.
2003-05-08 11:04 Igor Melichev
Fix (type 1 hinter) : Overshoot thresholds were wrongly computed with TextAlphaBits > 1.
When enumerating files on Windows, do not return directory names. Partial fix for Bug 686853 filenameforall enumerates directory items.
2003-05-08 09:57 Igor Melichev
Fix : margin_set::y was not initialized starting a fill. DETAILS : It could indereministically execute some code in start_margin_set, but the code appears idle in this case because margin_set::margin_list == NULL. Therefore it could not cause an indeterministic result. Therefore this patch is an equivalent change, which is useful to simplify the job for code validation tools.
2003-05-08 08:16 Igor Melichev
Fix : gx_path::procs was not initialized in some cases.
2003-05-08 04:23 Igor Melichev
pdfwrite : Don't write colors to charproc. DETAILS : Bug 686856 "PDF interpreter : /undefined in --setgray--". Rather Acrobat Reader ingonre colors in charprocs, we should not write them, because it is not conforming. Expecting differences with pdfwrite with the tests : adesso8.pdf grayalph.ps
Fix for 686857 bitcmyk has problems with -dBITS=2. This fix corrects a problem with the halftone calculations if the number of bits per component is more than one and the process color model is subtractive. DETAILS: This problem was caused by a change (1.2) to src/gxdevndi.c src/gxdevndi.c Modified gx_render_device_DeviceN to always perform the conversion from color component intensity values to halftone levels in an additive sense, if the gray_colorspace operand is true. This is necessary for compatibility with the pre-DeviceN code. However the change only worked for max_value = 1. This is the typical case of 1 bit halftoning. The fix works for any value of max_value.
Add some Document structuring commands to improve conformance. Thanks to HF Nordhaug for submitting these.
Prefer the more modern __VMS platform define for including inttypes.h.
Include inttypes.h on VMS. This provides the stdint types needed by jbig2dec, at least on OpenVMS. After a patch from Jouk Jansen.
2003-05-06 20:50 Alex Cherepanov
dumphint is a new utility to print (to stdout) linearized PDF hint tables in an easy-to-read form. The following deviations from the published specification has been observed in PDF files produced by Acrobat suite of products. (1) /P (page offset hint table) key in hint stream dictionary has never been generated by Adobe products. It is no longer required in PDF 1.5. (2) Per-page items 4 and 5 of the page offset hint table start from 1st page, not 2nd page as the spec claims. (3) All array entries start from the new byte boundary.
Committing in . jbig2 support for OpenVMS using MMK Modified Files: gs/src/jbig2.mak gs/src/openvms.mmk ----------------------------------------------------------------------
2003-05-06 10:05 Igor Melichev
pdfwrite : Don't convert type 1 patterns and type 3 fonts to rasters. DETAILS : Expecting differences with pdfwrite with the tests : H:\AuxFiles\CompareFiles\012-09.ps 013-09.ps 014-09.ps 015-09.ps 017-01.ps 020-01.ps 027-13.ps 031-05.ps 032-07.ps 034-10.ps 035-07.ps 045-01.ps 083-09.ps 103-01.ps 118-01.ps 123-09.ps 136-01.ps 148-16.ps 149-05.ps 165-01.ps 169-09.ps 176-01.ps 192-01.ps 205-09.ps 212-01.ps 213-01.ps 214-01.ps 220-07.ps 222-09.ps 226-01.ps 231-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 269-01.ps 270-01.ps 281-01.ps 296-01.ps 297-01.ps 298-09.ps 303-01.ps 307-07.ps 310-04.ps 311-03.ps 321-09.ps 327-01.ps 334-01.ps 335-01.ps 336-01.ps adesso8.pdf grayalph.ps mspro.pdf Popafinalrep.pdf prob1.pdf Testform.v1.0.2.pdf xes2ps-problem.pdf
2003-05-06 08:50 Igor Melichev
Fix (pdfwrite) : Pattern phase was wrongly computed for pattern stream accumulation (2nd attempt).
2003-05-06 03:51 Igor Melichev
Fix (pdfwrite) : Pattern phase was wrongly computed for pattern stream accumulation.
2003-05-05 12:57 Igor Melichev
Free Type Integration : commit an improved bridge. DETAILS : This commit corresponds to Free Type revision http://www.graham.asher.btinternet.co.uk/artifex19.zip http://www.graham.asher.btinternet.co.uk/artifex19.txt . Note that it includes fixes opposite the current Free Type CVS. The file ftwinfnt.h is missed in the zip, taken from an older version. Rather the release note reads that all test files are passed except 2 ones, we noticed failures running 01_001.pdf, 401-01.ps, Altona.Page_3.2002-09-27.pdf, fonts.pdf (infinite loop), H00216q.pdf, HeiseiMinStd.pdf, keyboard.pdf, test_multipage_prob.pdf (crash), Also the character 'R' in 0.pdf renders wrongly. Systematical testing was not done yet.
2003-05-05 11:53 Igor Melichev
Fix : Add the static resource gs/Decoding/StandardEncoding .
2003-05-05 11:50 Igor Melichev
Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .
2003-05-05 09:08 Igor Melichev
Fix (file_name_combine) : Check .tempfile permissions. DETAILS : The temporary directory is allowed for creating temporary files without specifying a special permission. However when the prefix argument of .tempfile is an absolute path, the permission is checked for it. Minor change : On Windows gp_open_scratch_file now calls gp_gettmpdir, making the logic closer to one on Unix. The call to GetTempPath is left for backward compatibility (when the environment specify TMP but no TEMP).
2003-05-04 22:01 Igor Melichev
Fix (AlignToPixels) : Provide a better stem contrast. DETAILS : Minor changes : 1. Alignment with AlingToPixels=1 was wrong (gxhintn.c ln 1370). 2. The debug graphic output wrongly drew integral pixels.
Correct a programming error that prevented macos native font loading from working under Metrowerks Codewarrior. DETAILS: Integers were being read by |-ing together the results of successive fgetc() calls within a single expression. Binary or doesn't have a specific order of evaluation in C so while gcc read the bytes in the correct order Metrowerks was re-ordering the first two reads resulting in a byte-swap error. The new code uses fread() followed by reordering based on array index.
2003-05-04 10:19 Igor Melichev
Fix (AlignToPixels) : Rounding formulas for glyph positions were wrong.
2003-04-30 20:02 Igor Melichev
Fix : FONTPATH was broken with lib/gs_fonts.ps revisions 1.17 and 1.25 .
If reopening the display device fails after setting the callback, display an error message. Allocate the large display bitmap using a low level allocator to avoid exceeding the memory limit of the previously used device stable memory allocator. Fixes bugs 686836 "-r doesn't work" and duplicate 686838 "Ghostscript doesn't do anything". DETAILS: The display memory device and the raster including line pointers was allocated using the stable allocator of the display device. This had a limit of 1Mbyte, which was exceeded when the resolution was greater then 114dpi. This would cause subsequent allocations to fail, but it appears that nothing else tried to use this allocator after the display device. The display device was changed to allocate the line pointers separately to allow the raster to be allocated in special memory, e.g. video memory or shared memory. This caused the subsequent allocation of the line pointers to fail when resolution exceeded 114dpi. The modified code now allocates the raster with gs_alloc_byte_array_immovable, which allocates directly from the C heap, not subject to any memory limit apart from the overall -K limit if specified, and is not subject to garbage collection. The normal allocator now has sufficient memory to allocate the line pointers without problem. The raster pointer is removed from the pointers that are enumerated during garbage collection.
Add a an option to disable the use of and embedded BeginICCProfile in PostScript. The option is -dNOPSICC. Documentation is also added for the option.
Enable jbig2 support in the default windows build. The jbig2dec source is now required.
Add the bbox device to the default macos shlib build. Bug 686811.
Log Message: This is the fix for 686798 /typecheck in --setcolorspace-- with -sDEVICE=x11cmyk. This fix increases the stack checking while sampling tint transform functions. It also makes the error handling more robust for invalid tint transforms. DETAILS: It is sad to say but this is a bug that we have seen before, several times. Ray and I fixed this problem at the last code fest in September. However that fix did not make its way into CVS. The cause of this problem is that certain proc sets from Adobe violate the PLRM. In the test file, the proc set is from Adobe Photoshop Version 5.5. The proce set contains tint transform functions which violate the specification in two different ways. In one case, the tint transform function changes stack values outside of the given color value. This is used as a test to see if the interpreter supports the given duotone color space. If so then the proc set creates a color space with a tint transform which is unbalanced in its stack usage. This could cause a stack overflow/underflow during sampling of the tint transform. Adobe apparently assumes that this tint transform is never executed since the function starts with the name /NeverReached. The fix involves checking the stack depth after each execution of the tint transform function and verifying that it matches the correct position given the number of function inputs and outputs. If so then the stack is returned to its original position and the sampling is aborted. Changes in lib/gs_sepr.ps make the tint transform sampling logic more robust in case the tint transform modifies the top of the stack. (This occurs in this case since the tint transform is actually popping extra items off of the stack.) We also create a dummy tint transform function if sampling fails. The later was done to prevent the /typecheck error and give pdfwrite something with which to work.
2003-04-26 18:28 Alex Cherepanov
Fix scanline size calculations and channel mix-up.
2003-04-26 17:05 Igor Melichev
Complete the set of Adobe CMaps.
2003-04-26 04:52 Alex Cherepanov
Following PDF 1.4, chapter 4.6.2 pattern is instantiated in the graphic state harvested at the beginning of the pattern's parent content stream. This patch fixes PS graphic state parameters only. PDF specific parameters are still inherited from the current graphic state. Bug #686834 DETAILS: PS makepattern operator saves only PS graphic state for later use in PaintProc. GS PDF interpreter implements PDF graphic state as a stack of dictionaries. We should save full PDF graphic state and set it manually during execution of PaintProc.
Fix ASCII85Decode filter to match Adobe's when strings that are not multiples of four are padded with other than zero. Tested against CPSI for exact match. Also overflow error detection added to conform to the PLRM and CPSI. Fixes bug #686840.
Add processing of %%BeginICCProfile DSC section for (some) EPS file, notably Adobe Photoshop. Final part of fix for bug 686797. DETAILS: The change to gs_pdfwr.ps was due to the fact that it did not properly balance the stack. The method of trying /N 4 + /DeviceCMYK, then /N 3 + /DeviceRGB, finally /N 1 + /DeviceGray is a *hack* that could be avoided if we knew what color space the ICC profile expected. Since .seticcspace fails if /N doesn't match what is in the profile, this seems like a reasonable hack.
Get rid of some dead code (left over from cut+paste)
The DeviceN merge broke the command line -dUseCIEColor option. This patch restores basic CMYK color conversion when -dUseCIEColor is set. Partial solution to bug #686797.
Remove some debug printouts.
2003-04-22 13:52 Igor Melichev
Applying the generic stream accumulation method to /BP pdfmark. DETAILS: This is an equivalent change.
2003-04-21 15:39 Igor Melichev
A preparation for non-convert PatternType 1 to rasters with pdfwrite. DETAILS: The patch defines a new device virtual function pattern_manage, and a default implementation for it. The purpose is to inform the device about pattern accumulation and to bypass the installation of gx_device_pattern_accum when the device can handle the pattern command stream. The new code is temporary disabled with PATTERN_STREAM_ACCUMULATION 0 macro defined in gx.h . When it is 0, the new device virtual function is provided but never called. The behavior should not change. The rest of this log message describes PATTERN_STREAM_ACCUMULATION 1. In this mode pdfwrite doesn't convert PatternType 1 to rasters. It creates good PDFs at least with 012-09.ps and 269-01.ps (these are very complicated cases with patterns inside charprocs and patterns), but there are problems when rasterizing the resulting PDFs with GS. (A new bug 686834 issued for tracking this problem). When a pattern stream is handled by the device, we can't create a proper content of gx_color_tile. However we need a correct content if the pattern is used for rasterization of an object which the device can't handle at the high level. An example is pdf14 device during a PDF re-distillation, which handles transparency. Another example is a conversion of composite fonts, which have multiple CID descendents - pdfwrite still converts such fonts to raster fonts. Since a proper contents may be needed for gx_device_color, we define a new flag gx_color_tile::is_dummy, and account it in gx_pattern_cache_lookup. Thus, if the current device is cache device installed for the font conversion, the tiles with is_dummy == true are being be dismissed. Vice versa, tiles with is_dummy == false are being dismissed when current device is pdfwrite. We do not move parts of zpcolor.c code to gx_default_pattern_manage, because we don't see a proper place for it to be compatible to the FEATURE_DEVS configurability. Instead that, we implement a branching inside gsptype1.c and zpcolor.c . If more branches will be necessary in future, this to be improved with moving code fragments to specific implementations of pattern_manage, together with improving the FEATURE_DEVS modularity. Delaying this reorganization until a strong reason appears. NOTE: The patch extends the device interface with gs_pattern1_instance_t. Minor Changes : 1. Fixed some MSVC warnings. 2. gx_pattern_alloc_cache passed a wrong client ID to memory manager. 3. Skipped some unuseful graphic state parameters while a contents substream accumulation.
In the display device, store the line pointers separately from the bits, so that the bits can be placed in special memory (e.g. allocated in video memory). Fixes Bug 686780 display_memalloc() asks for too much memory.
2003-04-18 18:19 Igor Melichev
Fix (pdfwrite) : Applying a generic resource writing method to charprocs. DETAILS: pdf_write_resource_objects does it fine after a small change to pdf_begin_data_stream. This patch must not change any behawior except the PDF object writing sequence. Minor Changes : 1. Removed rudiments of a dead development branch. 2. Generalized pdf_enter_substream and pdf_begin_data_stream .
Calling the gsapi polling function from the Macintosh gp_check_interrupts function voilates the layering of the interpreter over the graphics library. Therefore we isolate the offending code to a separate module 'macpoll.dev' in a fashion analogous to the mspoll feature dev available on the windows build. Enable this by default in the CodeWarrior build. Partial fix for Bug 686810. After a patch by Russell Lang.
Use different output file names for the Classic and Carbon MacOS shlib targets. Closes bug 686818.
2003-04-18 14:16 Igor Melichev
Complete the set of Adobe CMaps.
Call the gsapi polling function from the Macintosh gp_check_interrupts function. Partial fix for Bug 686810 "CHECK_INTERRUPTS should allow shorter worst-case abort".
Call the gsapi polling function during the main interpreter loop timeslice code. This allows a client to abort the interpreter when running "{} loop". Fixes Bug 686810 "CHECK_INTERRUPTS should allow shorter worst-case abort". DETAILS: PostScript which executed an infinite loop could not be stopped by the gsapi client. The time slice code in the main interpreter loop is executed once for every 32767 passes through the interpreter loop. Within the time slice code we now call the polling function and if the return value is non-zero, we set code to gs_error_interrupt to cause the interpreter to exit. This was not a client bug (as far as I know). The original request was from Zoltan Biro.
Remove a C99 snprintf() call. In this case the length is limited by the format string.
Remove two non-library files from the jbig2 makefile.
Added documentation of UseWTS user parameter.
Define HAVE_STDINT_H in stdpre.h on MacOS. Required for a clean compile under CodeWarrior. DETAILS: The jbig2dec library and headers require some of the C99 types. We've made sure those are available, but the mechanism depended on either passing -DHAVE_STDINT_H on the commandline or windows-specific typedefs. Since there's no convenient way pass single defines through codewarrior that would be seen by both the jbig2dec and the gs sources, we add a platform-specific define to headers in each codebase.
Enable jbig2 support in the MacOS CodeWarrior build, and add the local library source to the search path. jbig2dec is now required for this build.
Protect some defines that conflict with constants in stdint.h.
Correct some typos.
Add a license paragraph for the Resource directory asserting the AFPL with an exception for the Adobe-owned CMap files.
Test the optimization compiler flag '-O2' before using it since some vendor compilers have different syntax. DETAILS: This is really just a quick fix; it doesn't check flags for the debug or profile builds. A full solution would also try known options based on the compiler being used. It's not fair to just disable optimization if -O2 doesn't work.
JBIG2 code in the interpreter and stream library requires an -I argument to find the jbig2dec headers when compiling with local source.
2003-04-16 08:31 Igor Melichev
Complete the set of Adobe CMaps.
2003-04-15 18:43 Igor Melichev
Fix (pdfwrite) : Compress charproc streams. DETAILS: This patch mixes 3 changes : 1. Applying a compression to vector charprocs. Bitmap charprocs are left uncompresed. The written PDF should have same contents as before. 2. A preparation to Type 1 pattern accumulation with implementing a pdf_substream_save stack. Moved accum_char_proc_* fields to there. This change should be equivalent. 3. Renamed cos_write_stream_from_pipeline to cos_stream_from_pipeline, because the old name appears confusable. A new function with the old name is defined for another purpose. No regression changes expected.
Add new jbig2dec makefile and supporting defines to remaining platform-dependent makefiles.
Add support for compiling in libjbig2dec statically from source. This makefile is only good for v0.2.
2003-04-14 21:15 Igor Melichev
Fix (pdfwrite) : Use cos_write_stream for charproc accumulation. DETAILS: pdfwrite crashes with -r72 012-09.ps due to 2 nesting separates : one for charproc accumulator, and another one for graphic state object inside it. This problem does not happen with comparefiles with the default value of -r. Meanwhile the problem is harmful because it occasionally depends on CTM. Minor changes : - A misprint in "pdf_begin_char_proc_gerneric". - Removed some unused variables. - Inserted some necessary #include statements.
2003-04-13 23:14 Igor Melichev
Fix (dropout prevention) : sfill was unintentionally slowed down. DETAILS: In some cases the scanline algorithm appears to speed up the sfill in about 2 times. This patch enables the scanline algorithm when DROPOUT_PREVENTION is on, except for characters. It brings the shfill case closer to the old algorithm. This patch causes minor differences while filling a path, especially with shfill, but such differences should be small and almost unvisible. Minor change : The condition in gxfill.c line 2075 is changed to be closer to the old algorithm when filling non-characters, because dropout prewvention is not neccessary for this case.
Add Resource directory to the lib path configured by the Windows installer.
Create more specific DEBUG switches in the interpreter initialization modules to allow debugging to only include information of interest. If -dDEBUG is set, then set all of the specific switches.
Add the new Resource directory tree to the unix install target. DETAILS: We have a hard-wired list of directories to install under Resource. All the files in these directories will be non-recursively copied to the install directory. It is therefore only necessary to update RES_CATEGORIES when a new category is added but not for individual files.
Add Resource directory to Windows installer. Update copyright dates. Exclude file attributes (ACLs) from the zip archives.
Correctly dereference the arguments to the sort compare function used in the device listing. This was incorrect in the previous commit.
2003-04-11 17:55 Igor Melichev
Fix : Increasing the text alpha bits thresholds. Bug 686775 "Large text is not anti-aliased". DETAILS: We can't set infinite thresholds due to RAM consumption in character cache.
2003-04-11 17:54 Igor Melichev
Fix (pdfwrite) : Generate pseudo-random font names for subset fonts from the glyph usage array. Bug 686807 A "subset fonts" error in Adobe Acrobat from files made by GS8.00 DETAILS : Since the revision 1.9 of gdevpdtb.c (Sun Sep 8 20:20:12 2002 UTC) subset font names were deterministic to simplify the debugging. The names were derived from resource IDs, and could cause a conflict when merging documents. This patch generates different font names hashing the glyph usage bitmask. Now the conflict can happen with a very small probablility, when different subsets give same hash value.
Add the new default resource directory to the autoconf makefile.
2003-04-11 10:56 Igor Melichev
Fix : Remove an unintentional rudiment of a debug printing.
2003-04-11 09:36 Igor Melichev
Turn on the static resources with COMPILE_INIT=1. DETAILS: The OpenVMS case is not implemented in geninit.c .
2003-04-11 09:30 Igor Melichev
Switching to the new logics of resource file location. THIS IS INCOMPATIBLE CHANGE, because the default resource path is now different : resource files are moved to gs/Resource . See gs/doc/Use.htm#Finding_files and gs/doc/Use.htm#Resource_related_parameters. DETAILS: This patch does not include necessary changes to Ghostscript installer. The main code change in one to gp.h . Rudiments of old code in gs/src and gs/lib are marked with NEW_COMBINE_PATH. They to be removed after beta-testing. Change to makefiles provide extended default values for file search paths, which are platform dependent. For convenience, here we summarize all related issues, which were mentioned in previous patches : 1. The search method with multiple resource directories appears not fully conforming to PLRM. We cannot ever call ResourceFileName while executing findresource or resourcestatus, because per PLRM it always returns a single path. Therefore we implement an extended search method in findresource, resourcestatus and resourceforall, which first calls ResourceFileName and checks whether the returned path points to an existing file. If yes, the file is used, othervise we search all directories specified in LIB_PATH. With a single resource directory it appears equivalent to Adobe. THIS IS INCOMPATIBLE CHANGE. 2. ResourceFileName may be used for obtaining a path where a resource file to be installed. In this case Ghostscript to be invoked with -sGenericResourceDir=path, specifying an absolute path. The default value for GenericResourceDir is a relative path. Therefore a default invocation with a Postscript installer will install resources into gs/Resource. THIS IS INCOMPATIBLE CHANGE. 3. We do not distinguish lib and Resource directories. There is no file name conflicts because lib does not contain subdirectories, but Resource always store files in subdirectories. 4. We implement a new flag in gs_context_state, which informs lib_file_open whether it is invoked with a file specified in a command line argument. Doing so because command line argument files don't need to check permissions, and they are executed with a special PS operator .runfile . We cannot use a .runfile argument for passing this information, because it would be a security hole due to .runfile is available for documents and cannot be hidden. 5. We still have a security hole while loading resources from gs_init.ps . Both the old and the new code load some resources (such as CIDInit ProcSet) before entering the SAFER mode. Therefore it is a way for Postscript viruses to migrate. To be fixed later. 6. Default values for GenericResourceDir and FontResourceDir are platform dependent. (The old code always use Unix notation - a bug). 7. Default value for GenericResourcePathSep is platform dependent. The value is used before non-directory items only. (The old code always use Unix notation - a bug). (The old code used the value before directory items - a bug on OpenVMS). 8. If a path starts with a number of parent references, a template with same number of parent references must be added to permission list to allow the access in SAFER mode. The template (*) allows access to any file. THIS IS INCOMPATIBLE CHANGE, because the old code ever rejects parent directories. 9. GenericResourceDir and FontResourceDir are not being added to permission list while .locksafe. Instead that, we generate (*/*) templates with all LIBPATH items. THIS IS INCOMPATIBLE CHANGE, but for non-exotic cases (such as "(./Resource/CMap/H) .libfile" in a document) it should not be visible. A. Scratch files with a non-absolute prefix always open in a scratch directory. The old code can open them in current and parent directories if an user modified a default prefix in C code. THIS IS INCOMPATIBLE CHANGE for users who had modified a scratch file prefix in C code. Permission for scratch directory is not checked as well as in old code. B. The operator .filenamedirseparator is removed, because it cannot work properly on OpenVMS. On OpenVMS it needs both prefix and trailer to determine a correct separator. We removed it because the new logics never needs it. C. The operator .pathstring_not_bare is removed, because .file_name_combine performs it's job better. D. The functions gp_pathstring_not_bare, gp_file_name_references_parent, char *gp_file_name_concat_string are removed. E. New operators added to maintain the new logics : <string> <string> <bool> .file_name_combine <string> true <string> <string> <bool> .file_name_combine <string> <string> false Combine a file name with a prefix. The first argument is a prefix, the second is a file name. Internal syntax of arguments and result is platform dependent. The combination is being reduced to a shortest equivalent, but if it starts with cwd reference, the starting cwd reference persists. If the <bool> argument is true, it considered to use the "no sibling" mode. It prevents reduction of (x/../y) to (y) for any x != y. With false such reduction is allowed. The <bool> argument appears a rudinemt from a dead branch. The new code always sets it to false. On success, the result is a combined, reduced path and false. On failure, the argument strings left on operand stack, followed with false. - .file_name_separator <string> Returns a readonly string, which represents a separator which is used in file names between directory item and file item. Used for making the default value of GenericResourcePathSep. - .file_name_directory_separator <string> Returns a readonly string, which represents a separator which is used in file names between two directory items. Used for making the default value of GenericResourceDir and FontResourceDir. - .file_name_current <string> Returns a readonly string, which represents a reference to current working directory. Used for making the default value of GenericResourceDir and FontResourceDir.
2003-04-11 07:59 Igor Melichev
Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .
2003-04-11 07:56 Igor Melichev
Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .
2003-04-11 07:48 Igor Melichev
Removing it because it appears in a wrong place of the directory tree.
2003-04-11 07:46 Igor Melichev
Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .
2003-04-11 07:40 Igor Melichev
Removing it because it appears in a wrong place of the directory tree.
2003-04-11 07:33 Igor Melichev
Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .
MSVC (at least) requires void* be cast. Also remove a spurious comment.
Sort the list of devices in the output of 'gs -h' so they're easier to read. Also list the default device separately as it's no longer first. Based on a patch from Nelson Beebe. Closes bug 416746.
Tolerate %%EOF that doesn't have any line-end characters before the end of the file. No other applications (AR5, xpdf, pdf-tools) complain about this, so now we also allow this variation on the %%EOF line. Fixes bug: 686793
2003-04-10 18:45 Alex Cherepanov
Use fstat() function to determine whether the file is seekable. This should work on all supported platforms and seems to be the only way to get the file type using a MSVC CRTL function. Bug #686773 DETAILS: Windows API documentation seems to imply undefined results when seeking of retrieving file position of a special file. MSDN documentation requires programmers to check file type using GetFileType() function before seeking. MSVC 6 CRTL doesn't check file type before calling the corresponding Windows API functions. fstat() is the only function in MSVC 6 CRTL that calls GetFileType(). S_ISREG() is a POSIX macro that check whether the file is ordinary. It can be easily emulated if missing.
2003-04-10 16:39 Alex Cherepanov
Use standard sRGB CRD. Fix color cast in the light areas caused by chromatic adaptation done in the wrong (RGB) color space. Bug #650802
2003-04-10 13:49 Igor Melichev
Fix (pdfwrite) : Generate a page when input file has no pages. Bug 686792 "Empty PS file generates produces invalid PDF".
2003-04-10 11:58 Igor Melichev
Fix : Ignore a missed CMapType, because Adobe does so. Bug 686800 "Error converting PostScript file with vertical Japanese text".
2003-04-10 09:10 Igor Melichev
Fix (pdfwrite) : The monitoring of fill overprint parameter was not conforming to PDF 1.3, 1.4 spec. Bug 686802 "Stroke Overprint lost making PDF".
Update the release instructions to use cvs2cl and the new split_changelog. Also include Changes and Details files for differences up to this point as an example of the new format.
Add news script to generate split abbreviated/detailed changelogs in the new format. Accepts xml input from the cvs2cl perl script. DETAILS: After the 8.00 release we switched to a new format for Changes.htm and the History files, based on the more traditional Changelog format instead of grouping commits by section, which often resulted in duplicate posts. At the same time we began a convention of including any notes too extensive for such a listing below a 'DETAILS:' separator, with the idea that we'd create two changelogs, with hyperlinks between so detailed information was still available even in the new easier to browse format. The method we've adopted uses the cvs2cl perl script, available from http://www.red-bean.com/cvs2cl/ to parse the output of 'cvs log' and generate an xml file containing the merged entries. This script is more robust than our own cvs2hist. The split_changelog.py script is then run to convert the xml changelog to the two sizes of linked html changelogs. split_changelog isn't very bright about constructing links, so it should be run from inside the doc directory for now.
2003-04-09 18:57 Igor Melichev
Fix : Ignore a small noise skewing in the character caching criterion.
2003-04-09 18:47 Igor Melichev
Fix (type1 hinter) : The overshoot suppressing code was wrong. Bug 686812 "Incorrect font rendering for Zapfino ampersand". DETAILS : It always restricted overshoots with 1 pixel due to a stupid error in code. This patch causes differences in almost tests with 300 dpi, and with 3 tests at 72 dpi.
The previous change removing the spotrgb device missed src/Makefile.in. This change corrects that omission.
Fix: Restores logic to improve shading quality, which was clobbered in DeviceN merge.
2003-04-08 16:42 Igor Melichev
pdfwrite : Don't convert Type 3 fonts to raster fonts. DETAILS : The main work is done with pdf_install_charproc_accum and pdf_end_charproc_accum. They forward a BuildChar/BuildGlyph output to a separate graphic stream. See the big comment at the end of pdf_text_process. The new function gx_default_text_restore_state restores graphic state of PS interpreter when we discontinue the default text enumeration after executing a PS charproc. New state variable gx_device_pdf::accum_char_proc sets a special mode for graphic handlers. We ever clip BuildChar/BuildGlyph with a FontBBox or with character bbox specified in setcachedevice*. Doing so with calling gx_clip_to_rectangle from pdf_text_set_cache, because we need to avoid the current PS clipping path to interfere the character proc. Possibly a better way is to install an infinite (i.e. absenting) clipping box, wnen setcharwidth is used instead setcachedevice*. but we don't know how to. Due to that the distilled 238-01.ps renders some differently than undistilled one, and in most cases it appears closer to what CPSI does. An additional optimization : In sync_text_state the condition for matrix sinchronization is done weaker : with empty text buffer the synchronization is not needed.
2003-04-08 16:31 Igor Melichev
pdfwrite : Don't convert Type 3 fonts to raster fonts. DETAILS : The main work is done with pdf_install_charproc_accum and pdf_end_charproc_accum. They forward a BuildChar/BuildGlyph output to a separate graphic stream. See the big comment at the end of pdf_text_process. The new function gx_default_text_restore_state restores graphic state of PS interpreter when we discontinue the default text enumeration after executing a PS charproc. New state variable gx_device_pdf::accum_char_proc sets a special mode for graphic handlers. We ever clip BuildChar/BuildGlyph with a FontBBox or with character bbox specified in setcachedevice*. Doing so with calling gx_clip_to_rectangle from pdf_text_set_cache, because we need to avoid the current PS clipping path to interfere the character proc. Possibly a better way is to install an infinite (i.e. absenting) clipping box, wnen setcharwidth is used instead setcachedevice*. but we don't know how to. Due to that the distilled 238-01.ps renders some differently than undistilled one, and in most cases it appears closer to what CPSI does. An additional optimization : In sync_text_state the condition for matrix sinchronization is done weaker : with empty text buffer the synchronization is not needed.
Initial commit of native MacOS font loading. This implements a %macresource% iodevice for retrieving data from the 'resource' structure associated with MacOS files, either directly from the resource fork, or from a serialized data fork resource file. This is primarily used to access font data on that platform. Resource fork access is only supported on MacOS, while data fork files (e.g. .dfont format font files) can be read on any platform. This code is currently disabled. DETAILS: This change allows fonts stored in resources to be specified in the fontmap. A special indexing scheme is added to the filename to address the particular resource desired by id and 4-character type code, e.g. '%macresource%Arial#sfnt+4096' or '%macresource%/Library/Fonts/Optima.dfont#sfnt+14151'.
Initialize the legacy global pgsdll_callback to NULL to avoid problems if it isn't properly set. Part of bug 686768.
Avoid calling a null pgsdll_callback, as can happen with the new client api and CHECK_INTERRUPTS. This fix affects only MacOS, similar protections are already in place for other platforms. Also return EOFC in the mac stdio stream process if no callback is defined. Closes bug 686768.
Implementation of the SeparationOrder parameter. This implementation is only applicable for the spotcmyk and devicen devices. This change also removes the uuused spotrgb device.
Correct documenation change: -dAdjustWidth is on by default.
Fix: Make the pdf 'q' operator not affect the current path, in conformance with the PDF spec. Fixes SF #596009.
Document that setpagedevice keys can reset the effects of pdfmark commands. Closes bug 645677.
Committing in . for new file syntax on OpenVMS added the case for prefix=***] and filename=-***** Modified Files: gs/src/gp_vms.c ----------------------------------------------------------------------
Fix documentation for -dAdjustWidth. This parameter takes a integer rather that an boolean as was stated. Closes bug 538033.
2003-04-02 23:45 Alex Cherepanov
Fix a typo causing "/typecheck in restore" in documents with /Threads . Bug #611701
Remove the non-HAVE_STDINT_H non-win32 attempts to define stdint types and related sys/types redefine hacks. Also warn in the configure script if stdint.h is not found. DETAILS: Compiling libjbig2dec requires the size-specific types in stdint.h, as does compiling in the headers. Therefore these types must be made available in ghostscript if jbig2.dev is included in FEATURE_DEVS. The best way to integrate this is to create a stdint_.h for ghostscript that contains discovered and/or platform-specific typedefs for the types. This is still the plan, but to speed integration we just through some defines into stdpre.h. If -DHAVE_CONFIG_H is passed by the makefile (as configure does) then the C99 header is used, and we make specific defines for MSVC which doesn't yet ship the header. We also had some fallbacks for other systems (vendor unix mostly) but these caused collisions with partial definitions of what became the C99 types in sys/types.h and the redirection hack we do with ulong et al. did not work on all platforms (notably macosx). It is the fallback defines that have been removed; users building on older platforms will probably have to patch the types in to use JBIG2 support.
2003-04-01 20:18 Alex Cherepanov
On some devices the initial page size is rounded up but page size is rounded to the nearest pixel when set by setpagedevice. Changing default page size to match the setpagedevice. Bug #686795
2003-03-29 00:55 Alex Cherepanov
Multi-target rule that generates all of the targets at once was executed for every target obsoleting some of the files generated earlier and causing recompilation. Replace the multi-target rule with a single-target rule and make the target a prerequisite of the remaining targets; use empty command to disable default build rules. Bug #685341.
Prevent UMRs and when an image3x type image only has one of the possible two masks. Hangs or data garbling could result. Related to bug #686782. DETAILS: While several places in the image3x handling checked mask[i].depth to make sure that it was non-zero, other places didn't have this check, but just operated on the InterleaveType of the mask. While I could have added the mask[i].depth check, setting mask[i].InterleaveType to zero when a mask was not used was a single line change and served the purpose. I found this when looking at performance on this PC_*.ai file and was getting infinite loops. The plane_data was ending up pointing to the wrong area when the uninitialized mask[i].InterleaveType just happened to be 3 (interleave_separate_sources).
Improve previous patch to work from within encapsulated job framework. DETAILS: If gs is started with: gs -c false 0 startjob pop - < /dev/null then the previous patch would result in: Unrecoverable error: invalidaccess in quit since the systemdict /quit is defined to cause this error from within an encapsulated job. This patch detects the .jobsavelevel > 0 and uses 'stop' instead, which quits gs without a spurious error message.
Use the systemdict version of "quit" from gs_main_finit so that we can still quit if /quit has been redefined. Bug #686783. Analysis by Raph Levien.
2003-03-27 14:20 Igor Melichev
pdfwrite : The old code copied parameters of PS interpreter's graphic state to the output PDF. However some of them are installation dependent and must not copy. THIS IS AN INCOMPATIBLE CHANGE : the generated PDFs will render some differently on printers. DETAILS: We provide a signal to pdfwrite at very end of gs_init.ps - see the change to gs_pdfwr.ps, the priority=2000. The signal is handled in gdev_pdf_fill_path, and stores a copy of PS interpreter's graphic state parameter values. Those valuess are used for comparizon with current parameters of PS interpreter when an object is written. Therefore, if a value of a parameter was not changed by a document, it is not written to PDF. Note that if a PS document sets parameters equal to the installation defaults, the setting in missed in PDF. This is unfortunate. The patch causes multiple differences in rendering distilled comparefiles with pkmraw, because transfer functions changed from a HP-specific (defined in gs_init.ps) to none. Those differences were checked with the fuzzy compare utility and look fine. It should fix the 2003-03-26 regressions, but new differences will appear.
Improve .copyparam to handle arrays as well as strings, preserving the 'executable' status of arrays. Fixes bug #647685.
2003-03-26 13:27 Igor Melichev
Fix : A bug processing an error in .schedule_init .
2003-03-26 13:08 Igor Melichev
Ignore pdfmark if the output device isn't pdfwrite. THIS IS INCOMPATIBLE CHANGE. If an user changes the output device to pdfwrite dynamically, he should specify PDFSETTINGS in command line to enforce the pdfwrite initialization when GS starts up. Perhaps it's a seldom case. DETAILS : The old code always executed a big part of pdfwrite code with useful reason. Now we can skip it with help of .schedule_init .
2003-03-26 11:54 Igor Melichev
Fixing some compiler warnings (unused variables, etc.).
2003-03-25 21:18 Igor Melichev
Fix (pdfwrite) : Provide a complete monitoring of the viewer's graphic state while generating a PDF output. The old code misses the synchronization of the viewer's graphic state with its internal copy when generating a 'grestore' command to undo a clipping. Bug 686763 "pdfwrite is not correctly handling OPM distiller parameter". DETAILS : This change affects all vector devices, but it should be equivalent for all them except pdfwrite, and except for the pointer lifetime bug explained below. Here is an example when the desynchronization appears : f1 settransfer 0 setcolor path1 fill f2 settransfer 1 setcolor path2 fill gsave path3 clip path4 fill grestore path5 fill After 'grestore' it uses f1 instead f2. The old code does not remember the viewer's graphic state, which was immediately before 'gsave', and resets the internal copy of the graphic state to default values when it generates 'grestore'. This logic is fully wrong : if after 'grestore' a parameter is equal to the default value, pdfwrite does not generate a set command for this parameter, but the viewer uses the value which was set before 'grestore', which can differ from the default one. Moreover, gdevvec copies the device color from local memory to global memory, and doesn't ask garbager to process pointers in the copy. When the device color contains pointers to patterns or so, the live time of the copy appears bigger than the live time of the pointed structure. The old code only compares the pointed addresses without accessing the pointed data, so that a crash can't happen. But if garbager moves another color to same address, the comparison answers "equal" when actually colors are not equal, and the generated PDF appears wrong. To exclude the pointer lifetime problem, the patch uses the 'save_dc' method instead the 'equal' method for colors. But the implementation of save_dc was dummy for patterns. To complete it, gs_id is inserted into gs_pattern_instance_s, and more variants added to gx_device_color_saved_s. The clist device appears tolerant to this change. Note that macros color_unset, color_set_null, color_is_null, gx_dc_is_null are now applied to gx_device_color_saved. For complete monitoring the viewer's graphic state, we implement a 2-elements stack 'vgstack' in gx_device_pdf_s, save the viewer's graphic state in it when generating 'q' commands, and restore from there when generating 'Q'. If a 'gs' parameter needs to change, we move to 'PDF_IN_STREAM' context, because we must not insert 'gs' into a text context. New functions pdf_try_prepare_stroke and pdf_try_prepare_fill provide the "try" logics for this. If a 'gs' parameter changes with changing a clipping, first we need to undo the old clipping with 'Q', and then generate new 'gs' parameters relatively to the restored graphic state. The new function pdf_unclip works for this. With this patch the length of generated PDF appears longer for some tests. The most important ones are : acrobat.pdf Lengths differ in 6141. adesso8.pdf Lengths differ in -8316. HeiseiMinStd.pdf Lengths differ in 4000. narrow_font.pdf Lengths differ in 6141. RealCities.pdf Lengths differ in 12370. RodinCIDEmbed.pdf Lengths differ in 101698. It happens because pdfwrite doesn't remember 'gs' dictionaries, and therefore redundant copies can appear. This problem to be fixed separately. Expecting a progression : 093-01.ps (was a wrong stroke widths with a PaintType 2 font). Expecting a regression : with this patch, re-distilled Testform.v1.0.2.pdf paints good with Adobe, but wrongly with GS. Maybe a bug in GS PDF interpreter.
2003-03-25 21:13 Igor Melichev
Fix (pdfwrite) : 'write_range' was buggy (inconsistent) since zfont42.c rev.1.11 (17 Jan 2003).
Add rasterdb.py to the documentation file index.
2003-03-24 10:00 Igor Melichev
Fix (pdfwrite) : The recent patch for the bug 653140 changed the font embedding condition with too narrow one. Restoring it to the old one. DETAILS : The wrong patch is http://www.ghostscript.com/pipermail/gs-cvs/2003-March/003048.html . This patch should fix the regressions http://www.ghostscript.com/pipermail/gs-regression/2003-March/000538.html
Implements raster database to store and retrieve cached baseline rasters.
Fixes a bug where baselines weren't being reverted if they already existed.
Added emacs mode lines to python files without extensions.
Define some of the C99 stdint types in the common stdpre.h. This is required for libjbig2 integration. DETAILS: Another option would have been to define a local 'stdint_.h', but stdpre.h already contains a number of typedefs and includes sys/types.h to provide expected basic types. We use stdint.h itself if the toplevel makefile defines HAVE_STDINT_H. Note that unfortunately sys/types.h often tries to provide types now in stdint.h. We do the same collision-avoidance we do with our shorthand types, but this could clobber correct definitions for the explicitly- sized types on systems without stdint.h. (The only mainstream platform not shipping stdint.h is MSVC, and we provide specific typedefs for that platform.) Some systems also provide a sys/inttypes.h with the same definitions. We ignore this.
2003-03-22 12:47 Igor Melichev
Fix (CFF parser) : Warn and ingore missed tables instead giving up. Bug 686772 "PDf file breaks in ghostscript works on other PDF rips".
2003-03-21 19:14 Igor Melichev
pdfwrite : Fixing the bug 653140 "use NeverEmbed to restrict CIDFont embedding" DETAILS : The important change is setting pfont->font_name for CID fonts. Before now it contained empty string. Other changes are minor and only provide a data transfer.
2003-03-21 10:17 Igor Melichev
file_name_combine : Improve the choice of the default GenericResourceDir. DETAILS: This patch does not change any behavior with a regular build. The default value for GenericResourceDir can be configured with -sGenericResourceDir=path . If not specified, it chooses the first directory in LIBPATH, except (.), and combines it with ../Resource . The default value for FontResourceDir can be configured with -sFontResourceDir=path . If not specified, it chooses the first directory in LIBPATH, except (.), and combines it with ../Resource/Font . findresource was buggy : it returned a path with GenericResourceDir when the real resource file is in another directory. Now it first searches in LIBPATH, and if not found calls ResourceFileName . We can't ever call ResourceFileName from findresource, because it ever retrieves a single path. See the bug above. Therefore with multiple resource directories it is conforming to PLRM but differs from CPSI.
2003-03-20 22:10 Alex Cherepanov
Remove -dNODISPLAY flag from ps2ps.bat because nothing is generated when the flag is set. There's no -dNODISPLAY flag in UNIX or OS/2 versions. Fixes bug #686776
2003-03-20 20:27 Alex Cherepanov
Check i/o errors in PS and EPS generation drivers. Return ioerror soon after the error is encountered in the output stream. Fixes bug #686741 DETAILS: To simplify the code errors are checked only at the critical places: before seeking, inside loops, before returning from functions. Stream error status is checked by direct access to the stream structure because both macro and extern_inline based solutions were declined.
2003-03-20 20:11 Alex Cherepanov
Check i/o errors in PS and EPS generation drivers. Return ioerror soon after the error is encountered in the output stream. Fixes bug #686741 DETAILS: To simplify the code errors are checked only at the critical places: before seeking, inside loops, before returning from functions. Stream error status is checked by direct access to the stream structure because both macro and extern_inline based solutions were declined.
2003-03-20 16:10 Igor Melichev
Fix (file_name_combine) : The operator .file_name_combine returned a read-only string.
2003-03-20 15:22 Igor Melichev
Fix (pdfwrite) : When advance width has non-zero y component, the width was set to zero. Bug 686764 "Overlapping characters". DETAILS : The test document embeds a font, in which some characters have a small non-zero y component of the advance width. It looks as a buggy font. The pdfwrite writes zero to Widths array (that's correct, because it is only useful with zero y component), and did not generate glyph positioning commands (the bug). This patch makes pdfwrite to be tolerant to such buggy fonts with generating glyph position for subsequent glyph. It does not repair the font.
2003-03-20 09:29 Igor Melichev
Fix (pdfwrite) : While embedding a font, prefer font name to key name. It conserves original font names and allows derived fonts to merge.
Add the new pngalpha device to the default autoconf build.
2003-03-17 09:54 Igor Melichev
Fix (pdfwrite) : Unwinding another part of the previous patch which wrote a wrong numLongMetrics.
2003-03-16 20:50 Igor Melichev
Fix : Increasing the threshould for the dropout prevention invocation.
2003-03-16 20:07 Igor Melichev
Fix (file_name_combine) : A bug in gs_fapi.ps .
2003-03-15 08:09 Igor Melichev
Fix (pdfwrite) : Unwinding a part of the previous patch and improve the OS/2 table writing ann embedded CIDFontType2. Bugzilla Bug 686759 "pdf to pdf doesnt work". DETAILS : The previous patch appears wrong and caused a regression due to the change to "have_cmap = no_generate && !writing_cid," in gdevpsft.c . This patch unwinds it. Also the log message of the previous patch is fully wrong. The CID font in the test document for 686759 does not contain cmap and the cmap must not be written. But with the previous patch a corrupt cmap was written. Accessing the wrong font copy pdfwrite failed to compute glyph widths and therefore converted the font into a bitmap font. This patch restores the code to "have_cmap = no_generate,". The bug 686759 is reopened. Also we detected that the OS/2 table was written wrongly in some circumstances : its position in font file did not correspond to one specified in the font header. This patch fixes it.
Correct a typo in a help string.
Correct a serious error in the bmp file padding method. Also convert all error output to stdout from stderr since we no longer output the diff image to stdout. Patch from Igor Melichev.
The code for writing the BMP header made assumptions about struct packing and was not portable. Replace the previous code with a method that writes fields one at a time. Also, since fseek() is reported not to work beyond the end of the written file, pad out the length of the image data section so we can fill in the rows in proper bottom-to-top order. Note that the bmp output code does not convert RGB to BGR; this is not critical as the output is only used for hilighting differences. Closes bug #686739.
Replace the win32-specific code for seeking with a generic version. Partial fix for bug #686739. DETAILS: The code was making an assumption about the internals of the opaque fpos_t type. This is a 64 bit integer on win32, but a struct on linux and macos, so the compile of course fails. This commit temporarily breaks diff.bmp output on win32, which allegedly cannot fseek() beyond the written end of the file so the row-reversal logic will fail. This will be corrected in another revision.
Fix for 686740 PDF file causes gs8 to core dump. The test file uses PDF transparency. This is a PDF 1.4 feature however the file header says %PDF1.3. The implementing code has tests for PDF version 1.4 before it tests for transparency features. The fix simply lowers the test level to 1.3.
2003-03-13 12:54 Igor Melichev
Fix (pdfwrite) : Never write cmap embedding a CIDFontType2. Bugzilla Bug 686759 "pdf to pdf doesnt work". DETAILS : PDF uses CIDToGIDMap for mapping CIDs to GIDs. Therefore the cmap table of the True Type font is not used with CIDFontType2. In PDF spec section 5.8 "Embedded Font Programs" reads : If used with a CIDFont dictionary,the "cmap " table is not needed,since the mapping from character codes to glyph descriptions is provided separately. Note the words "is not needed". Meanwhile reading a PDF 1.2 format, Acrobat Reader 4 and 5 claim an error if a cmap presents.
2003-03-12 12:22 Igor Melichev
file_name_combine : 1. Always search command line argument files in (.) . 2. Throw invalidfileaccess from .libfile . 3. Always check permissions with reduced file names. 4. Ignore "./" prefixes in permission lists, except for (./*) . This patch should not not change behavior with regular build. DETAILS : With NEW_COMBINE_PATH 1 contributes the improvement listed above. Argument files are searched independently on SEARCH_HERE_FIRST. If a file is in the search list, but the access isn't permitted, .libfile throus invalidfileaccess, as with NEW_COMBINE_PATH 0. Minor changes : - some C-style cleanup in gpmisc.c ; - don't compile i_ctx_p->filearg with NEW_COMBINE_PATH 1; - don't compile i_ctx_p->starting_arg_file with NEW_COMBINE_PATH 0; - a check for parents in check_file_permissions was buggy.
Committing in . pngalpha device added also to the OpenVMS make file for MMK (same change was already made for gmake in openvms.mak) Modified Files: gs/src/openvms.mmk ----------------------------------------------------------------------
Committing in . update VMS file-format writing Modified Files: gs/src/gp_vms.c ----------------------------------------------------------------------
Add pngalpha device that uses RGBA, with the alpha channel providing pixel coverage. Used for generating PNG images with a transparent background. DETAILS Add missing initialiser for get_clipping_box to prn_color_params_procs macro. (src/gdevprn.h) Avoid cast warning for software_key (src/gdevpng.c). Add pngalpha device that uses RGBA. This requires custom encode_color and decode_color procedures to put RGB in the first three bytes while leaving the fourth A byte as opaque. To avoid gx_no_color_value, the alpha is stored inverted so opaque is 0x00 and transparent is 0xff. If pngalpha is told to fill the entire page with white, it uses the kludge of instead filling with almost white and transparent (0xfefefeff). This works because it is triggered by "erasepage", but not by "1 setgray clippath fill". A custom open_device and put_params are needed to save the clist or memory device fill_rectangle, and to restore the pngalpha_fill_rectangle. A custom copy_alpha is required to correctly blend RGBA. The blend is based on pixel coverage, not true transparency Ghostscript doesn't pass transparency to the device. Alpha blend maths from Porter and Duff 1984 paper for "A over B". RGB values are stored without pre-multiplication. A custom pngalpha_create_buf_device is used to replace the memory device implementation gx_default_copy_alpha with pngalpha_copy_alpha, but not to replace clist_copy_alpha. The pngalpha device is successful at giving a transparent background to many images such as colorcir.ps and golfer.eps, but not tiger.eps which fills the clipping path with grey. It does not implement a transparent background for PDF 1.4 transparent input files.
2003-03-11 11:13 Igor Melichev
Fix : setweightvector did not set the copy of WeightVector in gs_type1_data_s. Bug #686753 "Wrong Display of Multiple Master Fonts". DETAILS: The test document creates a Type 3 font, in which BuildChar procedure defines a copy of MM font and later replaces WeightVector in it. A new PS operator introduced to handle it. Adobe implementations do so. We are not happy with the change of VM with no regard to 'restore'. It appears compatible with the test document, because it calls setweightvector before rendering each glyph. (Another interesting point is that the test document executes "0 setcachelimit" before rendering a glyph). But it is not compatible to CPSI (a special test done). Providing a correct restore appears too complicated - need to change the data representation to 'ref'. Delaying it until it is really needed. Alternatively we could obtain a fresh copy of WeightVector in each call to *show, but it would be a significant performance flaw. The patch fixes the problem explained in the bug report #686753, but the supplied document has another problem : with pdfwrite some characters are converted to raster. To be fixed separately.
Committing in . Oops... I made a typo in the version of 1 hour before this. Modified Files: gs/src/gp_vms.c ----------------------------------------------------------------------
Committing in . corrected VMS file syntax. Modified Files: gs/src/gp_vms.c ----------------------------------------------------------------------
2003-03-10 07:36 Igor Melichev
file_name_combine : (1) Implement the extended search method in resourceforall, resourcestatus, ResourceFileName. (2) Don't check permissions for command line argument files. DETAILS: This patch does not change any behavior with a regular build. To skip the permission check with argument files we added a flag into gs_context_state. This is only a secure way to pass the information across PS interpreter, which executes .runfile with any argument file. Per Adobe specification, a resource category can define the ResourceFileName procedure, which generates a resource file name from resource instance name. Since Ghostscript uses an extended search method for finding resource files, the strong Adobe's semantics appears inapplicable. Ghostscript implements an extended semantics. Finding a resource file while executing findresource or resourcestatus, Ghostscript does not call ResourceFileName. Instead that, it searches directories with an extended method explained in How Ghostscript finds files. ResourceFileName may be called from a Postscript program such as a resource installer. The default implementation for ResourceFileName first checks whether GenericResourceDir specifies an absolute path. If so, ResourceFileName uses its value to generate the result. Otherwise, it tries to find an existing resource file with the extended method. If it succeeds, ResourceFileName returns the path to the resource file found. Otherwise it uses GenericResourceDir to combine a default path. Note that with a single resource directory and an absolute ResourceFileName the behavior appears equivalent to Adobe's one. The new search method doesn't distinguish 'lib' and 'Resource' directories. Minor changes : The operator .file_name_parent is removed. The operator .file_name_current is removed. Improved some error messages.
2003-03-07 14:57 Igor Melichev
Fix (file_name_combine) : Improving the OpenVMS path syntax. DETAILS : This patch does not change any behavior with regular build. With NEW_COMBINE_PATH 1 it allows to combine with filenames like (x]y) .
2003-03-07 14:21 Igor Melichev
Fix (file_name_combine) : Renaming no_neighbour with no_sibling. DETAILS : This patch does not change any behavior.
2003-03-07 11:12 Igor Melichev
Fix (file_name_combine) : Improving the file path syntax for OS/2, DOS and Windows.
Fix for #686755 sgirgb device. The sgirgb device would produce compiler errors if included in version 8.00 or later. DETAILS: The sgirgb device had not been modified to match the changes made in the device API with version 8.00. These were fixed. In addition a couple of compiler warnings were removed. AN unsed variable (sptr) was also removed. Note: I am unable to test this fix since I do not have an sgi system. The inclusion of the sgirgb device also creates link errors in a WinXP build due to undefined/missing bzero. Since this was not changed, I am assuming that this is not a problem on an sgi system.
2003-03-06 16:01 Igor Melichev
file_name_combine : Removing a rudiment of old code. DETAILS: This patch does not change any behavior with a regular build. The operator .file_name_parents is now removed.
2003-03-06 13:53 Igor Melichev
file_name_combine : Implementing new command line arguments: -sGenericResourceDir= and -sFontResourceDir= . DETAILS: This patch does not change any behavior with a regular build. With NEW_COMBINE_PATH 1 the new arguments replace default values for GenericResourceDir and FontResourceDir . A consistency check is added to gs_res.ps . It signals an error if the value of GenericResourceDir is inconsistent with LIBPATH. An automatic insertion of it into LIBPATH appears cumbersome because the access to LIBPATH in C code goes through gs_main_instance_s. The operator .file_name_combine changed the prototype. A boolean result is added instead a failure on error. This simplifies error processing in PS code, especially because the 'stopped' changes the memory allocation mode. Relevant changes done to calls of .file_name_combine in gs/lib . A minor bug is fixed in gp_file_name_combine_generic.
Change OS/2 gp_file_name_combine to match Windows.
2003-03-06 10:28 Igor Melichev
file_name_combine : Adding the 'no_neighbour' argument. DETAILS: This patch does not change any behavior with a regular build. It slightly change behavior when built with NEW_COMBINE_PATH 1. The 'no_neighbour' is a boolean, which protects steps from a directory to its neighbor directory in file_name_combine. With true argument the combination (x/y) + (../z/t) fails but (x/y) + (../y/t) succeeds. With false argument both combinations succeed. The argument is added to both C function and PS operator. We apply false argument while executing .libfile and while generating PermitFileReading. True argument is used in FAPI support to locate FAPI-handled font files (which generally are not PS files, and they are not being read with PS operators). With NEW_COMBINE_PATH 1, THIS IS INCOMPATIBLE CHANGE. To access resources, run Ghostscript with specifying a resource directory in the -I command line argument.
2003-03-04 16:10 Igor Melichev
Fix (file_name_combine) : Relative paths in GS command line did not work. This patch cnanges a disabled code only.
2003-03-04 15:24 Igor Melichev
Fix (file_name_combine) : An improvement to .locksafe . DETAILS : This patch changes a disabled code only. It skips redundant templates when GenericResourceDir or FontResourceDir is an absolute path.
2003-03-04 14:49 Igor Melichev
Fix : A bug in CIDDecoding category definition. DETAILS : Should use .libfile opening a resource file to resolve relative paths with LIBPATH.
2003-03-04 14:05 Igor Melichev
Fix (file_name_combine) : A bug in .locksafe . This patch changes a disabled code only.
2003-03-04 11:20 Igor Melichev
Fix : removing an unused variable.
2003-03-04 11:00 Igor Melichev
Initial commit for the new SAFER logics. DETAILS: This patch should not change any behavior unless NEW_COMBINE_PATH is changed to 1. With 0 a minor meanful change is the replacing .pathstring_not_bare with .file_name_combine in gs_fapi.ps (which fixes a bug in FAPI support, and doesn't affect builds with no FAPI). The change is compatible unless NEW_COMBINE_PATH is 1. Incompatibility issues with 1 are explained below. With NEW_COMBINE_PATH 1 the patch defines a new logic for .libfile, SAFER, and related things : 1. Default values for GenericResourceDir and FontResourceDir are platform dependent. (The old code always use Unix notation - a bug). 2. Default value for GenericResourcePathSep is platform dependent. The value is used before non-directory items only. (The old code always use Unix notation - a bug). (The old code used the value before directory items - a bug on OpenVMS). 3. PLRM specifies GenericResourceDir to be a single absolute path name. But Ghostscript's tradition is to load library files form a list of directories. Since we want to propagate this tradition to resource files, we get a conflict. To resolve the conflict, we allow GenericResourceDir to be a relative path, which is being concatenated with LIBPATH items. Thus we provide an extension of Postscript. 4. When a LIBPATH item is being concatenated with GenericResourceDir, an abnormal behavior appears when GenericResourceDir references parent. Exactly, concatenating the (.) item of LIBPATH with the default GenericResourceDir, which is (../Resource/), we get (../Resource/), i.e. it searches in a directory, which users don't expect to. We work around the abnormal behavior with skipping such paths while executing .libfile . More precisely, the .libpath algorithm is : For each LIBPATH item : - combine it with the argument string; - if the (reduced) combination refers the parent, skip it; - otherwise try to open the path. If succeeded, exit with it. If no success, fail with undefinedfilename or invalidfileaccess. Here and below we used Unix notation just for simplifying the log message. All statements to be generalized for any platform, and they are true for any supported platform. 5. A consequence of our workaround for (4) is a new constraint to .libfile : Let x is a cwd. Let x/../y exists. Lets mark it as y1. Let LIBPATH contains cwd and a directory z, which is not cwd. Let z/../y exists. Lets mark it as y2. Consequently y1 != y2. Executing (../y/f) .libpath searches y2/f, but does not search y1/f . The old code searched both in non-safer mode. THIS IS INCOMPATIBLE CHANGE. 6. A better workaround for (4) would be an implementation of RESPATH, which by default generates from LIBPATH with replacing (../Resource/) with (./Resource/). This requires to maintain a new directory lists. .libfile should get an additional argument, which specifies a search list - LIBPATH, RESPATH or FONTPATH. We do not make this improvement now, but will add it to Issues.htm . 7. If a path starts with a number of parent references, a template with same number of parent references must be added to permission list to allow the access. The template (*) allows access to any file. THIS IS INCOMPATIBLE CHANGE, because the old code ever rejects parents. 8. GenericResourceDir and FontResourceDir are not being added to permission list while .locksafe. Instead that, we combine them with all LIBPATH items, and add the combinations to the permission list unless it references parent. THIS IS INCOMPATIBLE CHANGE, but for non-exotic cases (such as "(../Resource/CMap/H) .libfile" in a document) it should be equivalent to the old behavior. 9. Scratch files with a non-absolute prefix always open in a scratch directory. The old code can open them in current and parent directories if an user modified a default prefix in C code. THIS IS INCOMPATIBLE CHANGE for users who had modified a scratch file prefix in C code. Permission for scratch directory is not checked as well as in old code. A. The operator .filenamedirseparator is removed, because it cannot work properly on OpenVMS. On OpenVMS it needs both prefix and trailer to determine a correct separator. We removed it because the new logics never needs it. B. The operator .pathstring_not_bare is removed, because .file_name_combine performs it's job better. C. The functions gp_pathstring_not_bare, gp_file_name_references_parent, char *gp_file_name_concat_string are not longer in use. D. New operators added to maintain the new logics : <string> <string> .file_name_combine <string> Combine a file name with a prefix. The first argument is a prefix, the second is a file name. Internal syntax of arguments and result is platform dependent. The combination is being reduced to a shortest equivalent, but if it starts with cwd reference, the starting cwd reference persists. - .file_name_separator <string> Returns a readonly string, which represents a separator which is used in file names between directory item and file item. Used for making the default value of GenericResourcePathSep. - .file_name_directory_separator <string> Returns a readonly string, which represents a separator which is used in file names between two directory items. Used for making the default value of GenericResourceDir. - .file_name_parent <string> Returns a readonly string, which represents a parent reference. Used for making the default value of GenericResourceDir and GenericResourceDir. <string> .file_name_parents <integer> Returns an integer equal to the length of maximal anchor substring, which includes parent references and separators only. Used in generating the permission list from LIBPATH and [GenericResourceDir FontResourceDir] as a workaround for (6). We believe that all them are necessary, except the last one, which is temporary used in (8) as a workaround for (6).
2003-03-03 11:50 Igor Melichev
gp_file_name_combine : Implementing new PS operators.
2003-03-03 11:00 Igor Melichev
gp_file_name_combine : Fixing the OpenVMS parent syntax.
2003-03-03 10:49 Igor Melichev
gp_file_name_combine : Fixing a comment about OpenVMS.
2003-03-03 10:32 Igor Melichev
gp_file_name_combine : Fixing the OpenVMS parent syntax and generalizing the ankor parent check. Thanks to Jacob Jansen.
2003-03-02 22:52 Igor Melichev
gp_file_name_combine : Adding more helpers for OpenVMS support. DETAILS: The previous patch unintentionally set NEW_COMBINE_PATH=1. This one repairs it. OpenVMS uses different separators for directory and file items - '.' and ']'. More helpers added to resolve this. gp_file_name_conbine_generic now checks which one is needed for concatenating paths.
2003-03-02 13:48 Igor Melichev
gp_file_name_combine : Implementing some useful functions. DETAILS: This patch doesn't change any behavior. The new functions will be used with NEW_COMBINE_PATH=1. Probably we don't need gp_file_name_reduce, but it's implementation is pretty nice and isn't obvious. gp_file_name_is_absolute will replace gp_pathstring_not_bare. NEW_COMBINE_PATH=1 wan't need a special check for cwd. gp_file_name_is_from_parent will replace gp_file_name_references_parent. The new function only check partent at the beginning of the path, and should be used with reduced paths only. We could code an in-place reduction with : gp_file_name_combine_result gp_file_name_reduce_inplace(char *buffer, uint *blen) { return gp_file_name_reduce(buffer, *blen, buffer, blen); } but we believe that 1. Aliasing const with non-const isn't a valid C. Rather GS contains multiple const hacks, we don't want to add another one. 2. The input buffer must have space for the trailing zero, which is not accounted in *blen. The patch also includes a minor cleanup of comments and gp_file_name_combine_generic.
2003-03-02 11:50 Igor Melichev
Fix : A compiler warning in platform dependent code for gp_file_name_combine.
2003-03-02 11:38 Igor Melichev
Fix : A syntax error in platform dependent code for gp_file_name_combine.
2003-03-01 13:59 Igor Melichev
Implementing gp_file_name_combine. DETAILS : This patch introduces a new code, which is currently disabled with "#define NEW_COMBINE_PATH 0" in gp.h . The new function gp_file_name_combine concatenates two paths and then reduce the concatenation with excluding parent references when possible. It is platform dependent, but we could factor out a big common part - see gp_file_name_combine_generic. Platforms define 8 small helpers for it. The gp_file_name_combine and its helpers were debugged on Windows with emulating other platforms. A help wanted to test them on real platforms. For testing them replace 0 with 1 in the definition of NEW_COMBINE_PATH in gp.h and rebuild. We do not protect definitions of new functions with NEW_COMBINE_PATH switch, because we want them to be syntax-checked. Some old functions, such as gp_pathstring_not_bare, gp_file_name_concat_string will be reconsidered later, because the helpers perform similar work in a generalized way. Probably some of old ones to be removed. Our strong intention is to remove gp_pathstring_not_bare, because it's behavior looks strange from the user's end.
2003-03-01 12:54 Igor Melichev
Reorganizing lib_open, lib_file_open, lib_file_fopen, file_open_stream functions to allow to check permissions with a combined file name. DETAILS : This should be an equivalent change. It is a preparation for implementing static resources. This patch moves the directory enumeration cycle from lib_file_fopen to lib_file_open. After that we have a place in lib_file_open in which both combined path and permissions are accessible (more precisely, this place is in lib_fopen_with_libpath). The checking permissions in there will be next improvement. This patch defines a stub for gp_file_name_combine function. Temporary it is placed into zfile.c . Later it will be moved to platform dependent modules.
Moving clear to before the restore removed the startjob parameters from the opstack. DETAILS: This was an attempt to remove a potential problem with invalidrestore caused by stuff on the opstack or dictstack if startjob was executed with elements on these stacks. Since the problem has always been there and since no one has tripped over it, we will investigate a correct fix to preventing invalidrestore when the need arises. In the meantime, at least startjob will work.
Correct a comment typo.
Correct typo somehow a /* comment crept in -- changed to %
Add .endjob procedure for use by job servers. Remainder of job encapsulation and documentation to follow later. Also fix potential "invalidrestore" problem with "extiserver" and "true <passwd> startjob" caused by stuff left on the opstack or dictstack.
Support for JBIG2 streams with a JBIG2Globals shared data reference. DETAILS: The JBIG2Decode filter can take an optional /JBIG2Globals parameter, always an indirect object reference to another stream. This commit adds a new .jbig2makeglobalctx operator that takes a bytestring contanting the global stream data, runs it through the decoder library and wraps the resulting context pointer in an astruct which is returned as a special -jbig2globalctx- object on the postscript stack. A new procedure called from inside applyfilters in the pdf decoder takes care of spooling the global data into the bytestring and installing the astruct under the .jbig2globalctx key in the parameter dictionary. The filter implementation looks for this and passes it to the page decoder instance if it's available. The original JBIG2Globals key is ignored by the actual decode filter implementation.
2003-02-26 22:33 Igor Melichev
Fix : Improving a comment in lib/FAPIconfig.
2003-02-25 20:53 Igor Melichev
Fix (pdfwrite) : -dSubsetFonts=false did not work with incremental fonts. DETAILS : pdfwrite created a "complete" copy of a font at the first appearance of the font. With incremental fonts it missed incremental glyphs with -dSubsetFonts=false. The patch checks whether a glyph is added incrementally and replaces the "complete" font copy with a font subset. Bug #686735 "-dSubsetFonts=false produces a bad PDF". The core of the patch is the change to gdevpdte.c . Other changes just pass a necessary data through internal interfaces. This patch should not change behavior with -dSubsetFonts=false, which is used by default for the regression testing.
2003-02-25 15:44 Igor Melichev
Fix (pdfwrite) : Removing pdf_font_resource_s::copied_font. DETAILS : The patch removes a duplicated pointer. It is a preparation for fixing #686735 "-dSubsetFonts=false produces a bad PDF". The patched code should be equivalent to the old one.
2003-02-25 13:25 Igor Melichev
Fix (FAPI) : improving a comment.
2003-02-25 13:09 Igor Melichev
Fixing a compiler warning.
2003-02-25 12:25 Igor Melichev
Fixing the device finalization problem. DETAILS : pdfwrite (and possibly other devices) perform a huge work within close_device. Since close_device is called via finalization method from memory manager, some device structures could be released before calling device_close, so that the huge work could not safely complete. Also it could return error codes, which were entirely lost. This patch calls gs_closedevice implicitly when a device is about to uninstall. We catch 2 such events : when the interpreter is about to exit, and when the interpreter executes setdevice. This should be enough for "external" devices, such as printer drivers. Internal devices do not receive these calls. Note that a call to gx_device_fill_in_procs is added after assign_dev_procs from gx_default_create_buf_device. Not sure why it was not done before. After assign_dev_procs, ppmraw had ununitialized procs. Also note that is_open flag is now unconditionally resets in gs_closedevice. The new code needs to reset it to prevent redundant call to close_device from device finalization method. The redundant call causes a crash if pdfwrite has insufficient disk space to store the output file (debugged with dina3_watermark.pdf) . Bug 601255 "segv while device finalization".
2003-02-24 13:50 Alex Cherepanov
Avoid dictfull error; allocate page dictionary as large as the image cache size. Wrap the image data string in the executable array because some interpreters require the procedure data source. Fixes bug #643398
Use the correct debug macro in the recently committed struct_array allocation checks. Only relevent to the debug build.
2003-02-22 05:50 Alex Cherepanov
Return error immediately when glyph ID is not found in GlyphDirectory. Avoid access to partly constructed GlyphData and obscure failures there. Fixes SourceForge bug #672129 DETAILS: This change has no effect on rendering. Old code was failing during access to GlyphData, which caused default glyph substitution. New code returns the error earlier and causes the same default glyph substitution.
Add runtime validity checking related to struct_array allocations. This is only enabled for DEBUG builds so the checks will not slow down production builds. Related to bug 669170.
Fix SEGV when cmap allocation failed (check for pcmap==NULL was misplaced).
2003-02-21 11:22 Igor Melichev
Fix : Don't generate the warning "/Unicode /Decoding is not accessible" when working with no pdfwrite device.
2003-02-20 21:34 Alex Cherepanov
The fact that pswrite and epswrite devices generate low level PostScript has been documented as a known limitation.
Forces test scripts which take files as arguments to treat the files as names rather than paths.
2003-02-20 18:34 Igor Melichev
Fix : A structure discriptor was wrong allocating an array of gs_cid_system_info. DETAILS : This also unwinds the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002895.html
2003-02-20 13:38 Alex Cherepanov
Fix: Use default procedures for non-forwarding component bbox device. Forwarding procedures cannot be used if there's no target device. DETAILS : Bug #636210 This is a partial fix for bug #636210. Another part, I/O error processing, will be posted separately. This change was locally tested with full regression test.
2003-02-18 19:57 Igor Melichev
This is initial commit for implementing static resources. DETAILS : 1. Adding a new iodevice %static% with the new file ziodevst.c . It is used for opening files placed in static data segment. They need to be accessed as PS files due to multiple reasons, including the implementation of gs_ciddc.ps and for PS procedure ResourceFileName defined in PLRM. 2. Implementing a queue for delayed invocation of initialization functions at end of gs_init. This feature is necessary due to customized builds of Ghostscript : some 'dev' depend each on other and some functions are needed to execute after all devs are preset. Currently it is only used for obtaining the Unicode Decoding resource, but later it will be used for perfectly consistent processing of font and CID font map files, both with FAPI and without it. 3. gs_resmp.ps slightly changed for handling resource maps which are not defined as files. 4. The new file gs_resst.ps implements a procset for handling static resource files. Both gs_resst.ps and gs_ciddc.ps use the %static% iodevice. 5. The new file gs_resst.ps creates a map of resource files placed in static segment. Later it would be nice to generate it during GS installation. With the defined resource set gs_init.obj grows up to 1.5Meg, but both MSVC and gcc/Cygwin could handle it. Currently all resources in gs_stres.ps are COMMENTED OUT to prevent problems building Ghostscript with COMILE_INITS=1 on Mac and VMS. To uncomment them, replace '%-' with empty string. This patch was locally tested with entire comparefiles with COMPILE_INITS=0. It should not cause regressions. Also it was slightly tested with COMPILE_INITS=1 : the static resources work fine. The patch assumes that during a GS build resource files are placed in gs/Resource/ . It uses 1 Decoding and a dozen of CMaps, which are necessary for the CID font emulation and for FAPI to work. You need to uncomment them in gs_stres.ps . When GS is invoked, resources are being loaded from both the static segment and from the OLD(!!!!!) default path. In other words, the resource machinery works fine, but the default resource path is not fixed yet. I intend to fix it in the next day or two. The patch depends on http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002950.html The patch does not include CMaps and Decodings resources. They to be added separately.
Committing in . OpenVMS crash fix (temporarily) Modified Files: gs/src/openvms.mmk ----------------------------------------------------------------------
2003-02-17 00:08 Igor Melichev
Enhancing the functionality of geninit.c . DETAILS : 1. Implemented "long" relative paths. See translate_path. Not sure what to do with separators on Mac. See the __MACOS__ section. This change was not debugged on Mac. In case of problems please patch it. 2. Moved some error messages to prefix_open, to allow translated paths to be displayed. 3. Implemented an intact including of files. This is useful for including Adobe resources. Don't want legal problems with them. The syntax of 'Replace' statement is enhanced.
2003-02-16 17:51 Igor Melichev
Fix : Improving the CIDFontType 2 font copying. DETAILS : I believe that the code about copying CIDFontType 2 glyphs is overcomplicated with mixing CIDs and GIDs, and needs to be cleaned up. The old code had an obvious inconsistency : it allocated a smaller array for glyph indices than written, causing a heap damage. This patch simply makes the code to be self-consistent. I can't say that I completely understand whether CIDs/GIDs passed correctly or not. Now it is working, but the correctness was not proved, and Acrobat Reader doesn't show the glyph with /CIDTTEMUL (see below). The problem was detected with COMPILE_INITS=1 with emulating a CID wont with mshei.ttf . The following program had crashed with pdfwrite : /glyph 2300 def /ShinGo-Bold /CIDFont findresource 100 scalefont setfont 100 200 moveto glyph glyphshow /CIDTTEMUL /CIDFont findresource 100 scalefont setfont 100 100 moveto glyph glyphshow showpage with the cidfmap file like this : /ShinGo-Bold << /FileType /TrueType /Path (f:/WIN2000/Fonts/batang.ttf) /SubfontID 0 /CSI [(Japan1) 2] >> ; /CIDTTEMUL << /FileType /TrueType /Path (f:/WIN2000/Fonts/mshei.ttf) /SubfontID 0 /CSI [(Japan1) 2] >> ; The effect is indeterministic. When I build GS with regenerate gs_init.c, it crashed if run in same session of Developer Studio. But if I close-open the Developer Studio and run GS, it doesn't crash. The patch should enlarge the array, which was written outside the index range. The problem looks gone. Meanwhile the CID/GID logics in gxcopy.c to be revised someday.
2003-02-16 17:28 Igor Melichev
Fix : Improving the seekability of the init string file. DETAILS : See comment in code. This problem was found while developing a dead branch. Rather it will not go to the mainstream development, I'd like to keep track on it. If the patch causes a problem, it can be safely unwinded.
Change the fixed point precision for device coordinates to 8 bits. The previous 12 bits was too large to accomodate large format inkjet printers at modern resolutions of 720 and 1200 dpi.
2003-02-14 01:34 Igor Melichev
Fix (pdfwrite) : hmtx was wrongly written with CIDFontType 2 subset. DETAILS: Source Forge bug #683690.
2003-02-13 22:26 Igor Melichev
Fix : Replacing UTC-16 with correct UTF-16 in documentation and comments.
Improve wording and sentence structure for some recent documentation additions.
2003-02-13 11:19 Igor Melichev
Adding a documentation about Decoding and CIDDecoding resource categories.
2003-02-13 09:24 Igor Melichev
Fix : The condition in .pdf_hook_DSC_Creator was too general. Restricting the Type 32 font disabling with pdfwrite device only.
Partial fix for 684340. Remove the macro gx_color_device_must_halftone and its one (incorrect use). DETAILS: The macro gx_color_device_was meant for situations in which the device was known to be a color device and it was needed to know if halftoning was required. With the 8.00 changes in the graphics library, the one situation that it was being used is incorrect. The macro was also wrong since it was checking dev->color_info.max_gray. It should have been checking color_info.max_color. The macro was removed. Please use gx_device_must_halftone in its place.
2003-02-13 01:54 Igor Melichev
Fix : Stack balance in .pdf_hook_DSC_Creator .
2003-02-12 23:06 Igor Melichev
Adding a documentation about GlyphNames2Unicode.
2003-02-12 22:31 Igor Melichev
Fix : Removing an unused procedure.
Add the new jbig2 filter sources to the file listing.
2003-02-12 14:30 Igor Melichev
pdfwrite : Disable 32 /FontType resource while processing a document created with PScript5.dll . DETAILS: This patch completes the previous one. See details in there. Also see comment in .pdf_hook_DSC_Creator defined by this patch. This patch may be insufficiently safe for the case when several documents are being united while a distillation. We would like to restore the redefinition of 'resourcestatus' after a document completes, but we don't know how to do (exactly, where to call the restoring action from ?). In general, what happens with gs -sDEVICE=pdfwrite -OutputFile=1.pdf document1.ps document2.ps -c quit ?
2003-02-12 14:29 Igor Melichev
pdfwrite : Account GlyphNames2Unicode while creating ToUnicode CMaps for simple fonts. DETAILS: This patch improves the previous one. It generalizes the GlyphNames2Unicode processing for any simple font. GlyphNames2Unicode is an undocumented facility, which Adobe Postscript printer driver PScript5.dll Version 5.2 uses to communicate with Adobe Distiller. Adobe applies it to Type 3 and Type 42 fonts. Adobe uses Type 3 with GlyphNames2Unicode only for compatibility with interpreters, which cannot handle Type 32. With other interpreters (including Ghostscript) the generated PS program skips GlyphNames2Unicode data. Therefore the feature is now implemented for Type 3 but it is not involved while processing such documents. Need to patch "32 /FontType findresource" to involve it. Probably with pdfwrite the DSC parser should recognize the creator and exclude 32 from /FontType resource category. This patch unwinds the enhanced functionality of gs_font_procs::glyph_info with GLYPH_INFO_UTC16, which was done with the previous patch, and introduces a new virtual function gs_font_procs::decode_glyph. Doing so because GLYPH_INFO_UTC16 causes multiple redundant code for various font types due to dependence on interpreter structures. SF bug #684120 tracks additional issues.
Initial implementation of the /JBIG2Decode filter. This adds a '$(PSD)jbig2.dev' FEATURE_DEV which links in the libjbig2dec decoder library. This version does not support the optional /JBIG2GLOBALS parameter for sharing information between page images. However, it is still useful as this parameter has been empty in the files we've seen. The feature in enabled for the autoconf build if the decoder library is found on the system, and remains optional with the other builds.
2003-02-11 22:21 Igor Melichev
pdfwrite : Account GlyphNames2Unicode while creating ToUnicode CMaps for Type 42 fonts. DETAILS: GlyphNames2Unicode is an undocumented facility, which Adobe Postscript printer driver PScript5.dll Version 5.2 uses to communicate with Adobe Distiller. Adobe applies it to Type 3 and Type 42 fonts. Type 3 with GlyphNames2Unicode is used only for compatibility with interpreters, which cannot handle Type 32. Since Ghostscript is not such, there is no need to implement Type 3 with GlyphNames2Unicode. We don't do that. This patch enhances the functionality of gs_font_procs::glyph_info with retrieving Unicode UTC-16 code for a glyph. This enhancement is implemented for practically useful cases only, which are restricted with Type 42. The gs_font_dir::glyph_to_unicode callback is now removed because it is not longer useful. SF bug #684120 tracks additional issues. Working on this patch, I tried put the Unicode Decoding table as a default value to FontInfo.GlyphNames2Unicode and remove the unicode_decoder. But it appears not working, because test.ps for SF bug #529103 needs to collect substitutions from both FontInfo.GlyphNames2Unicode and Unicode Decoding. I removed the "WARNING: /Unicode /Decoding resource in not accessible", because the flag for preventing its repetitions is not accessible from gs_font_procs::glyph_info. A similar warning in lib/gs_pdfwr.ps still works.
The display device (src/gdevdsp.c) was displaying pure magenta as white when using the DISPLAY_UNUSED_LAST mode. DETAILS: The cause of the problem was a sign bit extention in a 32 to 64 bit conversion (long to gx_color_index). The fix was to add casts to force the conversion to gx_color_index (which is unsigned) earlier in the assigment.
2003-02-10 18:47 Alex Cherepanov
Added link to a new file: pfbtopfa.bat
Fix a stack problem when doing small-caps substitution on a substituted font referenced from a PDF file. Problem seen with Adobe's PDF 1.2 spec. SourceForge bug# 683997 for Artifex customer #150.
Document that pdfwrite and pswrite do not support the '%d' file-per-page convention for -sOutputFile. Partial fix for Sourceforge bug 645677. DETAILS: Ghostscript actually segfaults when an output file name containing %d is passed to pdfwrite or pswrite. This remains to be resolved.
2003-02-10 16:53 Igor Melichev
Fix: Some compiler warnings.
2003-02-10 16:31 Igor Melichev
Improving gs_font_procs interface functions glyph_info and glyph_outline. DETAILS: The old interface definition provided insufficient data for pdfwrite. Several hacks was used in pdfwrite to recover the luck of data. This patch slightly enhances the interface and removes the hacks. See new comments in gxfont.h about the enhancement. The interface could be more complete - see comments in gxfont.h . Now we do not apply efforts for refinishing it, because there is no practical need and we have no tests for it. This patch improves glyph positions with pdfwrite for fonts with vertical CMaps. comparefiles do not test this case. Minor change : fixed compiler warnings in gdevpdtd.c .
2003-02-07 15:43 Igor Melichev
The CID to TT mapping : Implementing a glyph data cache. DETAILS: The implementation of the CID font emulator is completed. Minor changes : - Fixed a compiler warning in gdevpdfu.c .
2003-02-07 00:31 Igor Melichev
Fix : Improving comments in map file samples.
2003-02-07 00:23 Igor Melichev
Improving a documentation about emulating CID fonts with True Type fonts.
2003-02-06 17:43 Alex Cherepanov
Default CRD name is /DefaultColorRendering , not /Default Fixes SourceForge bug #667351 from customer #150
2003-02-06 13:02 Igor Melichev
Fix (FAPI) : A portability bug about arithmetic shift.
2003-02-06 09:40 Igor Melichev
pdfwrite : Generating ToUnicode CMaps for simple fonts. For fonts with random encoding it allows to Copy-Paste text from viewers and to search a text. DETAILS: This code requires /Unicode /Decoding resource. If the resource is absent, PDF will be written without ToUnicode CMap, a warning is written to stdout explaining that the resource may be useful, and another warning may be written to stderr if the resource is actually useful for the document. To access the resource I introduced a special operator .setupUnicodeDecoder . It is called from gs_pdfwr.ps and stores the resource to gs_font_dir, together with a callback which performs the decoding. This is only a way to pass the resource through the graphics library. It is definitely not a device parameter, and converting it to C structures would be hard. I don't like the big stuff added into zfont.c, but I haven't got a better idea where to put it. Minor change : fixed Cygwin/gcc compiler warnings.
2003-02-06 06:09 Alex Cherepanov
Created for completeness and convenience to Windows users.
Remove documentation about the Pn() macros for K&R compatibility. They were entirely removed prior to the 8.00 release.
2003-02-05 07:40 Igor Melichev
Fix (FAPI) : Improving error messages.
2003-02-04 23:13 Igor Melichev
(pdfwrite) : Fixing glyph width with WMode=1. DETAILS: Expecting a progression with 093-01.ps .
2003-02-04 16:50 Igor Melichev
(pdfwrite) : Fixing a check for NULL pointer pdf_attached_font_resource, and propagating return codes from there.
2003-02-04 15:46 Igor Melichev
(pdfwrite) : Improving the safety of pdf_font_cache_elem arrays. DETAILS : The patch should not change any behavior. It only inserts some index range checks while accessing arrays. It was not neccessary, but it helped to locate a different problem.
2003-02-04 15:24 Igor Melichev
Fix (new Type 1 hinter) : Exported an excessive moveto when hints are disabled. DETAILS: This only affects pdfwrite. Debugged with 401-01.ps . Minor change : Added some visual trace commands for the case of disabled hinting.
2003-02-04 15:05 Igor Melichev
Fixing a garbager problem in pdfwrite. DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002891.html is incorrect and caused multiple regressions. Replacing it with a better patch. Releasing pdf_font_cache_elem while device finalization, the structure lefts in heap due to memory manager is disabled, but it's pointers become invalid if they point to a huge area, which was allocated in a separate chunk with another allocator. Reset the pointers to prevent the garbager's attempt to relocate them after the huge chunk is released.
2003-02-03 19:35 Igor Melichev
Fixing a garbager problem with gs_cmap_adobe1.
2003-02-03 16:32 Igor Melichev
Fix (FAPI) : SubstNWP erroneusely used with non-CID fonts.
2003-02-03 16:06 Igor Melichev
Fix (FAPI) : Improving the default value for the subpixel grid.
2003-02-03 15:59 Igor Melichev
(pdfwrite) : Copying a composite True Type glyph, components were indexed wrongly. DETAILS : It applyed CIDMap to subglyph indices, rather it must not.
2003-02-03 14:00 Igor Melichev
Fixing a garbager problem in pdfwrite. DETAILS : Releasing pdf_font_cache_elem while device finalization, the structure lefts in heap due to memory manager is disabled, but it's pointers become invalid. Reset the pointers to prevent the garbager's attempt to relocate them later.
2003-02-03 12:53 Igor Melichev
Fixing problems with AlignToPixels. DETAILS : 1. Keys for character cache were incorrect, causing an excessive memory consumption (see the change to gxchar.c). 2. Subpixel grid and AlignToPixels were not passed to FAPI. ifapi.h changed the prototype of get_scaled_font. Therefore most changes are just a data re-srtucturization.
2003-02-03 09:27 Igor Melichev
CID font emulation : Comply with FAPI. DETAILS : This patch allows to redirect emulated CID fonts to FAPI. It is not neccessary, but I like this feature.
2003-02-03 08:32 Igor Melichev
CID font emulation : Resolving relative paths. DETAILS : The implementation of the CID font emulator is now complete. Perhaps an optimization is wanted for gs_type42_get_outline_from_TT_file. See comment in there.
Committing in . OpenVMS patches Modified Files: gs/src/gp_vms.c gs/src/gsfcid.c gs/src/openvms.mmk ----------------------------------------------------------------------
2003-02-02 21:43 Igor Melichev
A documentation about emulating CID fonts with True Type fonts.
2003-02-01 18:56 Igor Melichev
The CID to TT mapping : Providing a single map file for both the CID font to CID font substitution and True Type font to CID font substitution. DETAILS: Minor changes : - Allowed a mapped category redefinition with no map file. The map file may be delayed until a later redefinition. - Changed the order of CIDFont category redefinitions in int.mak . - Removed the usage of gs/lib/cidttmap. - Improved a comment in gs/lib/cidfmap about its format. - Provided an automatic choice of SubstNWP. - Added an idle entry into the SubstNWP collection. - Added a comment in zfapi.c . It's a problem. The implementation of the CID font emulator is almost complete except 2 features : 1. Relative paths are not allowed in the gs/lib/cidfmap file. 2. An optimization is wanted for gs_type42_get_outline_from_TT_file. See comment in there.
2003-01-31 17:39 Igor Melichev
Fix : Removing some unused variables.
2003-01-31 16:28 Igor Melichev
The CID to TT mapping : Building CIDMap with SubstNWP. DETAILS: This patch should not change any behavior if a new file gs/lib/cidttmap is not added. Normally it is not. With this patch narrow, wide and proportional Romans may substitute each another while emulating a CJK CID font with True Type font. Usually True Types contain insufficient glyph to render all them. The substitution prevents missed glyphs. This patch introduces a new special operator .fillCIDMap . It composes a CID map from a Decoding, a True Type cmap, and SubstNWP. PS code would be too big and slow for this purpose. The implementation of the CID font emulator is almost complete except 2 features : 1. The CID font to CID font mapper and the True Type to CID font mapper use different map files - cidfmap and cidttmap. 2. An optimization is wanted for gs_type42_get_outline_from_TT_file. See comment in there. Minor changes : - Fixed a bug in gs_cidfn.ps which tried to store a local FontMatrix to a global font dictionary. - A portion of code is factored out from zfapi.c to share with .fillCIDMap
Remove a spurious include for MAXPATHLEN. Discovered fixing SF bug 675847.
2003-01-31 12:54 Igor Melichev
CID font emulation : Choosing a cmap with gs/lib/xlatmap. DETAILS: This patch only changes a code which work for FAPI or for CID font emulation. Regular GS invocation should not change a behavior. This is a next step of the CID font emulation. Now it can handle all Windows JCK charsets, including Unicode-16. In other words, a CJK font with any Windows charset can be used for emulation. To handle other CJK charsets one should create an appropriate CIDDecoding resource and add it into gs/lib/xlatmap. Minor changes : - Speeded up the TT file parser using the 'setfileposition'. - Improved some diagnostic messages. The implementation of the CID font emulator is still incomplete : 1. The CID font to CID font mapper and the True Type to CID font mapper use different map files - cidfmap and cidttmap. 2. SubstNWP is being ignored. 3. An optimization is wanted for gs_type42_get_outline_from_TT_file. See comment in there.
Fixup makefile dependencies after changing header includes in gp_unifs.h. Part of the fix for SF bug 675847.
Use the ANSI-standard FILENAME_MAX from stdio.h instead of MAXPATHLEN from sys/param.h for unix path buffers. Fixes SF bug 675847. DETAILS: We should actually be using gp_file_name_sizeof here, but it's currently a static define to a lowest common denominator, and we prefer a more unix-friendly default. This can of course be changed if the _sizeof is properly configured per platform.
2003-01-31 09:36 Igor Melichev
The CID to TT mapping : 1. Providing an access to glyphs on demand. 2. Handle TTC font format. DETAILS: This patch should not change any behavior if a new file gs/lib/cidttmap is not added. Normally it is not. With this patch glyf and loca tables are being skipped while loading a True Type into RAM. An access by demand is provided instead (This works for CIDFontType 2; it is not used for Type 42). Map file may contain records with SubfontID, which specifies a font number in a TTC collection. TTC format is implemented for disk files only, because embedded fonts never use it. To provide the on-demand access, the patch introduces a special extension of the Postscript language. A CIDFontType 2 dictionary may contain /File with a file value. It should be a positionable file of the TTF or TTC format. When it presents, the dictionary must contain /file_table_pos, which's value is a dictionary of 2-element arrays, which specify position and length of a TT table in the file. 2 arrays must present with keys /loca and /glyph. We would like to optimize this implementation. See comment in gs_type42_get_outline_from_TT_file.
Fix for 673108. The test file has a stream which contains an invalid stream length. However Acrobat handles the file. Details: The invalid stream length was bad enough that we were positioning beyond the end of the file when we searched for the endstream. A check was added for this case and if so then we ignore repositioning the file before searching for the endstream. Note: There is already logic in the code which emits a warning message if the endstream is not found. A second part of this fix was to clean up the stack if the endstream is not found.
2003-01-30 10:44 Igor Melichev
CID font emulation : Adding a code for CIDMap generation, and moving the xlatmap scanner to gs_fntem.ps . DETAILS: This patch only changes a code which work for FAPI or for CID font emulation. Regular GS invocation should not change a behavior. This is a next step of the CID font emulation. Now it correctly maps most CIDs to Unicode fonts. Secondary changes : - I made xlatmap accessible from gs_ttf.c . It should be used choosing a cmap. - improving some comments and function names. - Removed a redundant definition of a CIDFont, which was unintentionally introduced with the previous patch. The implementation of the CID font emulator is still incomplete : 1. Entire True Type fonts are loaded into VM. 2. SubfontID is being ignored. 3. The CID font to CID font mapper and the True Type to CID font mapper use different map files - cidfmap and cidttmap. 4. Access to glyphs by demand is not done. 5. SubstNWP is being ignored. 6. The choice the Unicode cmap is hardcoded. Should use xlatmap instead. The previous log message recommends to use PMINGLIU.TTF. Actually it requires a True Type bytecode interpreter, which GS doesn't provide. The font mshei.ttf does not.
Fix for incorrect colors with pswrite device when painting rectangles. SF bug 677009. DETAILS: The call to gdev_vector_update_clip_path followed the update_fill call which set the color, but the clip path performed a 'Q q' (grestore gsave) which reverted to whatever color was part of the previous saved gstate. Changing the order of the calls fixes the problem.
2003-01-29 11:00 Igor Melichev
Enhancing the resource machinery with mapping CID fonts to True Types. DETAILS: This patch should not change any behavior if a new file gs/lib/cidttmap is not added. Normally it is not. Adding 2 new files gs_fntem.ps and gs_cidtt.ps and reorganizing old files gs_cidfn.ps, gs_fapi.ps, gs_resmp.ps with them. This moves a part of FAPI support to a more general level. The moved stuff is shared with the FAPI and the new CID font mapper. After this change Ghostscript can load Unicode True Type fonts as a substitution to a CIDFontType 2 and render it. At least the Windows font PMINGLIU.TTF succeeds. But the implementation is very incomplete : 1. The CID to GID mapping is fully wrong. 2. Entire True Type fonts are loaded into VM. 3. The CID font to CID font mapper and the True Type to CID font mapper use different map files - cidfmap and cidttmap. All these 3 solutions are temporary and to be improved later. To involve the new feature, create a new file gs/lib/cidttmap, and put records to there of the following format : /ShinGo-Bold << /FileType /TrueType /Path (F:/WIN2000/Fonts/PMINGLIU.TTF) /CSI [(Japan1) 2] /SubstNWP /Japan1 >> ; It is similar to gs/lib/FAPIcidfmap, see Use.htm about the latter. This patch does not include a change to documentation, because it is too early to announce it to users.
2003-01-29 09:23 Igor Melichev
FAPI : Removing unuseful includes.
2003-01-29 09:19 Igor Melichev
FAPI : A further improvement for the GS/FreeType bridge. Patch from Graham Asher. DETAILS : Without FAPI plugins this patch doesn't change any behaviour. Minor improvements by igorm : - fixed a spelling; - FAPI_METRICS_ADD was buggy - a fixed overflow (thanks to Graham). - removed unuseful dependencies from makefile.
2003-01-29 08:53 Igor Melichev
Fix : Eliminate .forceput from gs_resmp.ps . DETAILS: This patch should not change any behavior. A mapped category used an array to store a set of procedures. Sometimes the set grows, and the old implementation used .forceput to replace the array with a bigger one in the category dictionary, which is read-only. The new code represents the set as a dictionary, so that .forceput is not longer needed.
2003-01-29 08:50 Igor Melichev
pdfwrite : Implementing DW2 and W2. DETAILS : This feature is not tested with comparefiles and should not cause regressions. But the test file 093-01.ps may render differently due to a bug the test file. See SF bug #674418.
Fix regression of 119-01.ps caused by previous patch while retaining the fix for #667658 when CR and/or LF comes between the '~' and the '>'. DETAILS: The logic was also fixed so that if the end of buffer is reached while searching for the '>' character (past CR and/or LF) no error would be issued unless we have the 'last' condition indicating that no more data is available. Thanks to Igor M. for spotting the above potential problem during code review.
Switching to the new type 1 hinter and the new filling algorithm. THIS IS INCOMPATIBLE CHANGE. Most documents render better. DETAILS: Rudiments of old code to be kept until beta-testing is completed. Patch from Igor Melichev.
Improve the wording of and clarify the documentation for AlignToPixels. Also restores the documentation for -dPDFFitPage removed by the initial commit of the AlignToPixels feature.
If s_A85D_process encounters CR/LF between '~' and '>', it returns ioerror. Now it is changed to ignore CR and/or LF before '>', and works fine. Fixes SF#667658.
2003-01-26 08:58 Igor Melichev
Fix : Removing an unused variable from set_cache_device.
2003-01-26 08:24 Igor Melichev
Implementing a new user parameter AlignToPixels and a new command line argument AlignToPixels. They allow to choose the alignment of glyphs to integral pixels or to subpixels while a text rendering. DETAILS: This patch should not change any behavior except -dAlignToPixels=0 is specified. A change to documentation about the new parameter is included. With NEW_TYPE1_HINTER = 1 the value 0 of AlignToPixels implies : 1. Caching a glyph raster, fractional glyph origins give different images, which are stored in individual slots. The space consumption in the character cache increases. This happens for all font types. 2. While hinting a Type 1 or 2 font, glyph origins and widths are rounded to subpixels rather than to pixels, and the grid fitting is done to the subpixel grid. CIDFontType 0 descendents had NULL pointer to gs_font_dir. The new code needs to access the font directory, so the pointer is now set. The new code needs glyph origin and log2_scale to lookup a glyph in cache. Therefore show_proceed and set_cache_device were reorganized with a new function compute_glyph_raster_params. The new algorithm uses a slightly different (and more complicated) logics for computation and initialization of penum->origin. It was well tested, but in case of problems please consider it as a weak point.
Universally prefer the __MACOS__ platform predefined symbol used by recent releases of Metrowerks CodeWarrior to the older __MACINTOSH__.
2003-01-25 16:32 Igor Melichev
Fix (dropout prevention) : Insetred a check for VMerror. DETAILS: This patch cheanges a disabled code only.
Supply local macros to replace non-portable min() and max() functions from MSVC.
This is a temporary backout of rev 1.12 while its changes are being investigated. This is being done to prevenet interference with some other efforts.
Add a new feature to scale PDF images to the current page size (rather than selecting a PageSize corresponding to the document CropBox or MediaBox). The command line option is -dPDFFitPage and will also position the image to the printable area of the page (inside .HWMargins).
Fix inconsistent type on QueryUser -- get_param was returning a 'bool' but set_param required an 'int'. Error was /typecheck in setpagedevice or could be /rangecheck in .installpagedevice after a page was processed.
Correct typo (missing space) in previous change.
Change to use ECHOGS_XE instead of system echo to avoid problems if an echo is found on the PATH that expands wildcards '*' character. Problem found by Torsten Erler when Cygwin echo caused a problem.
2003-01-24 13:34 Igor Melichev
New Type 1 hinter : Fixing a bug in alignment to (non-sub)pixels. DETAILS: This patch changes a disabled code only. Also improving the debug drawing of grid.
2003-01-24 07:25 Igor Melichev
Fix (dropout prevention) : Did not work with -dNOCACHE. DETAILS: bbox_width was taken from a clipped bbox.
2003-01-24 05:03 Igor Melichev
New Type 1 hinter : Fixing glyph widths. DETAILS: This patch changes a disabled code only. See comment in code. Also improved a comment and C-style.
2003-01-24 00:39 Igor Melichev
New Type 1 hinter : (1) It did not work with pdfwrite because gx_path_init_bbox_accumulator doesn't provide a memory. (2) Coded an alignment to subpixels. (3) Removed a hack about suppressing a microscopic segment. DETAILS: This patch changes a disabled code only. It codes an alignment to subpixels, but for a while it is permanently turned off. gx_path_init_bbox_accumulator is used by gs_default_glyph_info for computing a bounding box for a glyph. It does not store segments to memory, therefore a reference to memory manager is not provided. But the new hinter accesses it if a stack-allocated array overflows. Implementing an immediate transfer of outline poles to the output path without storing them intermediately in arrays. This mode works when a grid fitting is not required. Only exception is flex poles : up to 9 of them are stored in arrays while flex accumulates. It must not overflow arrays. The hack about microscopic segment was a rudiment of old code. gs_op1_closepath was unintentionally called while exporting an outline from the hinter. I believe that the hack is incorrect and should not be applied. Some outlines render differently. I'm sorry for mixing 3 things in a single patch. I've started the subpixel alignment, and then occasionally discovered other problems. It's hard to separate changes after they are done, and I don't think that the separation is so important.
2003-01-23 20:11 Igor Melichev
Fix : A misprint in the recent patch to default_get_outline.
Fix for [ 662117 ] uniprint produces black pages, with bugfix. This fixes several problems created in the uniprint device when the device API was changed for 8.0. This includes changes from Stefan Scherer, the originator of the report, plus some changes for monochrome devices.
Pulled unneeded #undef jcdp, there was no matching define. Original patch by Henry Stiles for GhostPCL version.
2003-01-22 15:46 Igor Melichev
FAPI project : fixing a problem about preparation renderer's font data for non-disk CIDFontType 0 fonts. DETAILS: Without FAPI renderers this patch doesn't change any behavior. The old code crashed with Free Type because it misinterpreted gs_font_cid0_data as gs_type1_data. Improving the protocol for font data preparation : the new code now tells to a renderer about a top-level CID font, then about it's descendents (which are Type 1), then again about the top level font. A new type FAPI_descendent_code represents a type of request. See comments, which this patch adds to code.
Improve gsapi examples for Windows to not require _Windows on MSVC.
Update DSC parser to current Ghostgum Software version. Fixes SourceForge bug #657289, SEGV on Alpha in DSC parser. DETAILS: A %%Page line with mismatched parentheses around the page label was ignored, but parser state was updated to scanning pages, not setup section. This resulted in access to dsc->page[-1] which is invalid and caused a SEGV on Alpha. The updated code now checks that dsc->page_count is non-zero before accessing dsc- >page[dsc->page_count-1]. It also makes a second attempt at finding the page ordinal at the end of a line like: %%Page: (label with closing parentheses 1 Other parser updates include support for DCS2 files (which is not quite compliant with DSC), removing a few compiler warnings, %%HiResBoundingBox, %%CropBox, %%PageCropBox, and being more resilient to incorrect DSC.
Treat files starting with %Pxxx as PostScript, not PDF. Process empty files without error. Fixes SourceForge bug #663150, Some PS files half-recognized as PDF files DETAILS: Changes for the 8.00 release to allow reading of PDF files from stdin caused files starting with %Pxxx to be half recognised as PDF files. This patch simplifies the PDF recognition code and makes it treat only files starting with "%PDF-" as PDF. Testing of this code found that zero length input files caused a PostScript error. This was an existing error which is fixed by the gs_epsf.ps patch and last line of the pdf_main.ps patch.
Add the ijs device to the MSVC Windows build.
2003-01-22 00:42 Igor Melichev
pdfwrite : Implementing widthshow and xshow for composite and CID fonts. The old (default) implementation converted to raster fonts and gave inaccurate glyph positions. The new implementation doesn't convert fonts to raster except for Type 3. DETAILS: This also closes the Source Forge bug "[ 663635 ] ps2pdf cannot tune spacing by xshow for CJK text". and provides better glyph positions with ashow for WMode 1. There are small changes to graphics library : 1. Added interface function gx_current_char, which retrieves a code of current character from a gs_text_enum_t instance. The function was factored out from an old code. 2. Provided a default metrics for CID fonts for WMode 1. This is done pretty roughly, because the interface function glyph_info cannot pass some necessary information (WMode). Minor changes : 1. Removed the comment "We know that the Tw and Tc values are zero", It was wrong a long time ago. 2. Inserted a comment about unimplemented DW2. An old code near the comment depends on the fact that DW2 is not implemented. This patch brings more access to gs_text_enum_t::fstack around the defined interface functions. The list of gs_text_enum_t interface functions to be revised. Expecting progressions with pdfwrite : 327-01.ps Altona.Page_3.2002-09-27.pdf CIDembedded.pdf Openhuis_pdf_zw.pdf RodinCIDEmbed.pdf
2003-01-21 23:57 Igor Melichev
Fixing gcc compiter warnings in gxfill.c, gxdtfill.h .
Fix for [ 664473 ] 64bit color indexes break X driver. This fix corrects some problems found with the X window driver and 64 bit gx_color_indexes found by customer 1110. DETAILS: The problems were found on Sparc workstations running the Solaris 8.0. The problem has not been reported on other systems. However the fix is simple (and contributed by customer 1110) and should work on all systems. The fix is simply to use "long" for values passed to X windows system routines. This is done via a combination of casts or local variables depending upon the situation. The use of "long" for gx_color_index was the default prior to the 8.0 release. The X windows device does not need the extra size for color values.
2003-01-19 23:04 Igor Melichev
Fix (pdfwrite) : Improving a comment about ashow, awidthshow. DETAILS: This patch does not change any behavior.
2003-01-19 19:59 Igor Melichev
Fix (pdfwrite) : With CID fonts 'show' set up cache devive and inconsistently skipped any rendering to it. It must not set up cache device. Thanks to Toshia Suzuki for spotting the problem. DETAILS: This problem was not tested with comparefiles. Requesting to add a new test showopsH.ps from Toshia Suzuki.
2003-01-19 18:17 Igor Melichev
Fix (Dropout prevention) : Returning the gx_adjust_if_empty hack for cases when dropout prevention is not applied. It was removed erroneously. DETAILS: This patch changes a disabled code only. Debugged with -r72 with smdf.90441.102.pdf, test2.pdf .
Within the display device, correctly allocate the memory device with the correct structure descriptor. DETAILS: The display device was allocating a memory device by taking a memory device prototype from gdev_mem_device_for_bits and then using gs_copydevice on it. This allocates the wrong size because the prototype does not have a structure descriptor. The correct way is to allocate it with gs_alloc_struct with st_device_memory as an argument. This bug was found when using the display device in GhostPCL, which was complaining on shutdown about the unfreed structure descriptors left behind by gs_copydevice.
2003-01-18 09:52 Igor Melichev
Fix (pdfwrite) : When pdfwrite text buffer overflows, it wrote an extra text positioning command with wrong arguments. DETAILS: See comment in code. Source Forge bug "[ 667271 ] text position scrambled". This patch causes 2 progressions with pdfwrite : comparefiles\Altona.Page_3.2002-09-27.pdf comparefiles\Testform.v1.0.2.pdf
2003-01-17 17:32 Igor Melichev
Fix (Type 42 interpreter) : Providing a tolerance to bytecode segmentation with sfnts string. DETAILS: Source Forge bug "[ 667362 ] /rangecheck in --.type42execchar--", Customer #411. According to Type 42 specifications, the segmentation is not allowed. Perhaps the test file has it. IMO it is easier to fix than to prove to the customer. This slightly changes the interface function gs_type42_data::string_proc . See comments in code. By the way, added a check for absenting vmtx/hmtx (gstype42.c ln 530). The old code was not safe.
2003-01-16 21:36 Igor Melichev
Fix (Free Type bridge) : A new revision with MetricsCount handling. DETAILS: This patch has no effect for regular GS build (with no Free Type).
Add a message for filters (such as JBIG2Decode) that we can't handle and continue processing the file as much as we can without the problem data. This is related to SourceForge bug #668580. DETAILS: The Repaired flag is preserved across the 'pdfformaterror' calls so that we don't squawk about the Creator of the PDF (its our fault, not theirs). Also a special utility filter was created to /.EOFDecode that gives an immediate EOF without consuming any data from its input.
Restructure the PDF top level processing (runpdf) to factor out a 'begin', 'do', and 'end' procedures. These can be used by clients to open a PDF then access information from the PDF interpreter dictionaries about the document or pages prior to actually processing pages with 'dopdfpages'. DETAILS: This will allow information to be accessed such as Dests, Names and Annots. For example, to get the Names info, use: (somefile.pdf) (r) file runpdfbegin Trailer /Root oget /Names knownoget Similarly, Annotations for a page (page 3 in the example below) can be accessed using: (somefile.pdf) (r) file runpdfbegin 3 pdffindpage /Resources oget /Annots knownoget { % process Annots } if
2003-01-16 16:25 Igor Melichev
Fix (New Type 1 hinter) : A bug computing a stem width. DETAILS: This patch changes a disabled code only. Also fixing a bug in debug drawing the imported outline, and disabling it by default. Debugged with comparefiles/455690.pdf .
2003-01-16 15:20 Igor Melichev
Fix (Dropout prevention) : Sometimes active lines were not ordered, causing a dropout. DETAILS: This patch changes a disabled code only. The filling algorithm consider 2 cases : when an Y-gap contains pixel centers and when it doesn't. The old algorithm used a trick for better performance, which skips the line ordering for the case of no pixel centers. Perhaps the order is important for dropout prevention. Disabling the trick when dropout prevention is on. Here are some files which are sensitive to it with 72 dpi and with the new hinter : 000040cf.000_60.pdf 017-01.ps 159.pdf 268-10.ps 281-01.ps 86554321.pdf acrobat.pdf (39 files total).
2003-01-16 12:59 Igor Melichev
Fix (New type 1 hinter) : Removing hint complexes and fixing bugs. DETAILS: This patch changes a disabled code only. 1. An optimization : hint complexes are replaced with hint_range. The old code was overcomplicated. 2. A bug in t1_hinter__compute_type1_stem_ranges - an extra pole was added at range end. 3. A bug in t1_hinter__align_stem_poles - Some offcurve poles were erroneously grid fitted with a wrong hint. This change causes multiple differences in hinted outlines, almost all files render few differently.
2003-01-16 10:37 Igor Melichev
Fix (New type 1 hinter) : A bug in t1_hinter__interpolate_other_poles. DETAILS: This patch changes a disabled code only. The old implementation missed some outline extremes, and the interpolation was wrong. This change causes multiple differences in hinted outlines, almost all files render differently.
Fix: Correctly initialize private cmyk_cs as returned from gx_concrete_space_CIE(). Fixes SF bug #667322.
2003-01-15 16:32 Igor Melichev
Fix (New type 1 hinter) : A bug calling the hinter. DETAILS: This patch changes a disabled code only.
Modifies pick_cell_size to make a more accurate, and less round-off error dependent, selection of screen cell size. DETAILS The prior code in pick_cell_size used an unusual metric for measuring the "closeness of fit" of an actual screen cell to the requested frequency and angle. If the angle variation was 0 (quite likely for the common 0/45/90 degree angles), the frequency variation was ignored. In addition, this metric was very sensitive to floating-point arithmetic round-off errors. The new metric is both more reasonable and less round-off error dependent.
Add src/gxdtfill.h to whitelist for double inclusion protection test.
Fix timezone information for CVS timestamps.
2003-01-14 12:10 Igor Melichev
Fix (New type 1 hinter) : Removing unused variables. DETAILS: This patch changes a disabled code only.
2003-01-14 11:51 Igor Melichev
New type 1 hinter : Round glyph origin to integral pixels. DETAILS: This patch changes a disabled code only. See comment in code.
2003-01-14 08:00 Igor Melichev
New type 1 hinter : Implementing the type 1 flex feature. DETAILS: This patch changes a disabled code only. Debugged with comparefiles/chess.ps with -r72 and -r30 (sic!).
Added documentation about new configuration mechanisms in the testing framework.
Convert configuration options to use a configuration file, and move config options from run_nightly into the normal config framework. Also, add regression checkpoint time to the daily report. Fixes SF #657178.
2003-01-13 11:03 Igor Melichev
Fix (New type 1 hinter) : A bug in complex_link. DETAILS: This patch changes a disabled code only.
2003-01-12 19:58 Igor Melichev
New type 1 hinter : Implementing alpha bits, and fixing bugs. DETAILS: This patch changes a disabled code only. Changes : 1. A bug in t1_hinter__drop_hints; 2. A bug in t1_hinter__can_add_pole; 3. Rename initialization routines; 4. Align to pixels rather than to subpixels; 5. Dynamic allocation of stem_snap.
2003-01-12 19:55 Igor Melichev
Fix (dropout prevention) : wrong number of alphs bits was passed to dev_proc(dev, copy_alpha). DETAILS: This patch changes a disabled code only. See also "Correctly compute depth for cached character images", Fri, 3 Jan 2003 08:39:33 -0800, http://www.ghostscript.com/pipermail/gs-cvs/2003-January/002751.html
2003-01-12 12:03 Igor Melichev
Fix (New type 1 hinter) : A bug in t1_hinter__hint_mask . DETAILS: This patch changes a disabled code only.
2003-01-11 19:21 Igor Melichev
New type 1 hinter : Fixing gcc compiler errors. DETAILS: This patch changes a disabled code only.
2003-01-11 18:47 Igor Melichev
zchar1.c revision 1.23 appears wrong (an inaccurate type cast, compiler warnings). Unwinding the patch.
2003-01-11 18:26 Igor Melichev
New type 1 hinter : Fixing types for import function prototypes. DETAILS: This patch doesn't change any behavior. In import functions prototypes 't1_glyph_space_coord' was erroneously used instead 'fixed'.
2003-01-11 18:20 Igor Melichev
New type 1 hinter : Enable the grid fitting separately for X and Y. DETAILS: With NEW_TYPE1_HINTER = 0 the new code must be equivalent to old one. We disable grid fitting if an axis is too sloped (if tan(angle) > 1/10 ).
2003-01-11 17:46 Igor Melichev
Removing redundant code from zchar1.c . DETAILS: This is completion for the patch "Reducing the C stack consumption in ztype1execchar". The new code must be equivalent to the old one.
2003-01-11 15:55 Igor Melichev
New type 1 hinter : Attaching it to type 2 interpreter. With NEW_TYPE1_HINTER = 0 the new code must be equivalent to old one. DETAILS: 1. Attaching the new hinter to gstype2.c . 2. Reorganizing the nationalization of the new hinter for better performance. 3. Adding vdtrace instructions for drawing the hinter import on-fly. 4. Implementing alignment priorities. It improves quality for comparefiles/dave.pdf, and makes the alignment logics some simpler. 3. Fixing a bug about the trailing moveto. Fonts with no Metrics got a wrong advance width.
2003-01-11 14:20 Igor Melichev
Fix: A bag in the visual trace implementation.
Revert changes accidentally included in the last commit.
Revert to the default gcc (3.1) on MacOS X. We had switched to 2.95 to work around a bug in Apple's first shipped gcc3. The issue has been resolved in the December 2002 Apple Developer Tools release.
Revert to the default gcc (3.1) on MacOS X. We had switched to 2.95 to work around a bug in Apple's first shipped gcc3. The issue has been resolved in the December 2002 Apple Developer Tools release.
2003-01-10 08:17 Igor Melichev
Reducing the C stack consumption in ztype1execchar. The new code must be equivalent to the old one. DETAILS: The new type 1 hinter (with NEW_TYPE1_HINTER = 1 in gx.h) puts more 11K of data to C stack. Perhaps due to a recursion in bbox_draw 2 instances of the hinter were placed in C stack simultaneously, causing C stack overflow with gswin32c.exe on Windows NT 4.0 (but not on Windows 2000). Perhaps the recursion is not necessary. Reorganizing the sequence of calls to avoid the recursion. New argument 'exec_cont' was added to several functions for transferring the call request to clients. Corresponding comments are added in code. Also z1_glyph_info prototype was added in ichar1.h . It was missed a long time ago, Cygwin/gcc warned. A further improvement may be done with factoring out a common code from bbox_finish_fill, bbox_finish_stroke, bbox_fill, bbox_stroke. Delaying it until a regression testing.
Allow tests to run without modifying the daily tracking database. run_regression now takes the --track option to create and update daily tracking databases, and runs normally otherwise.
Small formatting improvement.
Factor out gscheck_raster.py from run_regression.
Fixes another Python 2.2 compatibility error.
Fixes check for exception instances by using isinstance() instead of issubclass(). This is required for Python 2.2 compatibility.
Increase maximum memory restrictions on Ghostscript for regression tests.
Include libz in the autoconf test for libpng. DETAILS: This is a fix for systems without interlibrary dependencies. We don't use the LIBS variable constructed by default by the AC_CHECK_LIB macro and did not maintain it in our previous zlib test, thus -lz was not included on the link line in the libpng test. Our primary test systems for the autoconf build (Debian GNU/Linux and MacOS X + fink) include an interlibrary dependency, so this did not cause a problem. On systems where this is not the case, it results in a confusing error. Patch from Peter Breitenlohner.
Correct warnings in the display device. Removes two unused declarations and marks a local function private. After a patch by Peter Breitenlohner.
Add a missing header file. DETAILS: This corrects a missing prototype warning for gs_get_colorname_string, declared in zht2.h. iname.h was also added to the dependencies for zht2.c. After a patch by Peter Breitenlohner.
Correct a nesting error in the libpng detection code. DETAILS: This does not change actually behavior, because of the way M4 works, the literal loop end was just interchanged with the implicit one from the AC_CHECK_LIB() macro with no code inbetween, which is why the mistake went undetected. Thanks to Peter Breitenlohner for catching this.
2003-01-08 16:57 Igor Melichev
New type 1 hinter : Implementing dynamic array allocation; Skipping degenerate path segments; Renaming configuration flags. This patch changes a disabled code only.
2003-01-08 16:44 Igor Melichev
Dropout prevention : Self-intersections must not contribute peaks. Also removed the LOOP_FILL_TRAPEZOID_FIXED macro. This patch must not change any behavior.
1. Added documentation for the PSD, XCF, and spotcmyk devices. 2. Corrected various minor spelling problems.
Add source files for the new type 1 hinter to the index in the developer documentation.
2003-01-07 17:54 Igor Melichev
Dropout prevention : (1) Replace the horizontal line processing. (2) Returning the hack about horizontal lines for non-character fills. This patch changes a disabled code only. DETAILS: With the old type 1 hinter, hinted outlines get self-intersections at small resolution. It's a problem of the old hinter. Perhaps it discovered a defect in horizontal line handling. With self-intersections, the side of spot interior may be different for different parts of same line. This patch completely replaces the handling of horizontal lines. It maintains 2 lists of horizontal lines, which correspond to y and y1 in fill_loop_by_trapezoids. Then we intersect those lines with margins and add corresponding segments of boundaries separately for each part delimited with an intersection. The "* This is a hack to make sure that isolated horizontal * lines get stroked." was erroneously disabled for non-character fills, causing a regression with QA_Inv.pdf . Restoring it now, except for characters. This patch removes the contour area computation, which was introduced in revision 1.19 .
2003-01-07 16:32 Igor Melichev
fuzzy.c : Add writing the fuzzy difference to PPM or BMP file. DETAILS: Additional (optional) argument added to specify the result file path. We did not take care about compression. BMP files usually store image upside down. Rather negative BITMAPINFOHEADER::biHeight specify "upside up" representation, Windows Paint cannot handle it. Therefore we write BMP file in reverse order.
Add standard license banners to some macos-specific header files.
Add standard copyright banner and RCS id line. DETAILS: This change is made with the contributor's permission. His verification is recorded here: http://www.ghostscript.com/pipermail/gs-devel/2003-January/002326.html Thanks to Brett Smith at the FSF for pointing out the non-standard header.
2003-01-06 19:57 Igor Melichev
Dropout prevention : A better marking of margin interior. This patch changes a disabled code only.
2003-01-06 17:43 Igor Melichev
Initial commit for a new type 1 hinter. This patch must not change any behavior. DETAILS: This is a porting from HINTER branch. The old hinter cannot handle overlapping hints, but real fonts do use them. The handling of overlapped hints cannot be done within a single-pass algorithm. Therefore we intend to replace entire thing. Besides, it should fix a set of known problems : - stem degradation at small resolutions; - stem missing or misrecognition; - proper adjustment of dependent stems; - suppress overshoots closer to Adobe; This patch introduces a couple of new macros, which will be removed later. For switching to the new hinter, change the definition of NEW_TYPE1_HINTER in gx.h . It is not well debugged yet. New files added : gxhintn.c, gxhintn.h .
2003-01-06 17:00 Igor Melichev
Dropout prevention : Removing unused variables. This patch changes a disabled code only.
2003-01-05 21:13 Igor Melichev
Dropout prevention : A bug in continue_margin_common. This patch changes a disabled code only.
2003-01-05 20:48 Igor Melichev
Dropout prevention : Better compute the spot contiguity, and improve the peak cut-off. This patch changes a disabled code only.
2003-01-05 17:29 Igor Melichev
Dropout prevention : Computing a contour area with fixed point arithmetics. This patch changes a disabled code only. DETAILS: For debugging enable both CONTOUR_AREA_WITH_FIXED_POINT and CONTOUR_AREA_WITH_FLOATING_POINT.
2003-01-04 16:37 Igor Melichev
Dropout prevention : Improving the predicate about adding horizontal lines to Y list. This patch changes a disabled code only. DETAILS: The predicate was inaccurately duplicated.
2003-01-04 15:04 Igor Melichev
Dropout prevention : (1) Fixing a problem with improper contour direction in some (wrong) fonts. (2) Improving the CHECK_SPOT_CONTIGUITY feature. This patch changes a disabled code only. DETAILS: See comment in code about (1).
2003-01-03 17:34 Igor Melichev
Dropout prevention : Adding a serif adjustment. This patch changes disabled code only. DETAILS: See big comment in code.
2003-01-03 17:29 Igor Melichev
Dropout prevention : Correctly compute depth for cached character images.
2003-01-02 18:11 Igor Melichev
Fix (gswin32) : Improving the image window title for debug technology.
Revert previous commit. This version is now back to the same as 1.22.
Handle copying arrays (and their composite elements that are in VM) to global VM when processing the ***params functions such as currentuserparams Fixes SourceForge #647685 that impacted .setsafe usage.
Add new dropout prevention source files to the documentation.
2002-12-30 22:31 Igor Melichev
Fix (dropout prevention) : A bug in store_margin. This patch changes disabled code only.
2002-12-30 19:21 Igor Melichev
Fix (dropout prevention) : Direction of horizontal lines was computed wrongly. DETAILS: This patch changes disabled code only. Debugged with character 's' in the 1st page of 033-52-5873.pdf .
2002-12-30 18:24 Igor Melichev
Fix (FAPI) : Don't try to get a glyph name for CID fonts. Thanks for Graham Asher for spotting it. DETAILS: It was an inaccurate coding. I'm sorry.
Reduce state.width delta radius calculation for shadings that was made too large by the previous commit. DETAILS: Previous commit mistakenly included the state.dr value as both the X and Y component in the distance transform that produced the dev_dr vector. The hypot is actually all that is required to handle getting the correct scaled radius distance independent of the CTM rotation. The use of state.dr for both X and Y preceded the use of hypot on dev_dr and wasn't taken out when the hypot function use was added. This should eliminate most, if not all regressions caused by the 12/24 1.18 patch to this module.
2002-12-29 19:42 Igor Melichev
Fix (Type 1 interpreter) : setcurrentpoint missed the vstem3 shift. DETAILS: Detected with character 'm' in -r150 comparefiles/NIL_0003.pdf . The missed vs_offset erroneously shifted a part of path coordinates relatively to stem hint coordinates so that stems could not recognize. The character rendered unhinted. This patch causes differences in character rendering. Regression test on Windows detects a difference with -r300 comparefiles/NIL_0003.pdf only, which looks unimportant.
2002-12-28 12:35 Igor Melichev
Improving the dropout prevention algorithm This patch changes disabled code only. DETAILS: In zchar42.c I set path adjustment to zero. It is the correct value with dropout prevention. The last revision of dropout prevention algorithm appears buggy : the order of margins in margin_list can be wrong and causes dropouts. This is essentially important with CJK True Types, which have thing horizontal stems and no hinting with GS. This revision replaces the representation of margins with a simpler one. It is not optimized for bold characters, perhaps the optimization is not hard. See comment in code about "bold". A good advantage is the removal of insert_pseudo_margin. It appears done due to insufficient knowledge of the old algorithm.
2002-12-26 11:26 Igor Melichev
Fix : fuzzy.c wrongly compared images. DETAILS: It didn't compare w/2 rows near the upper edge of the image. MSVC release build compared an uninitialized data instead them.
Radial shading did not work if the CTM was rotated (mat.xx == mat.yy ==0). DETAILS: The state.width calculation would end up 0 if the circles were concentric and the CTM was rotated. Revised calculation should work even for other non-orthogonal CTMs. File added to the regression suite. Fixes SF bug #658286 for Artifex customer #190.
2002-12-24 14:20 Igor Melichev
Improving and optimizing the dropout prevention algorithm with splitting gx_default_fill_parallelogram into 2 variants. DETAILS: This patch almost changes a disabled code. A simple reorganization of some enabled code should not cause a behavior difference. Filling a "small" character, we always subdivide trapezoids into rectangles instead passing them to device virtual function. It allows : 1. Not passing narrow trapezoids to applications which implement fill_trapezoid with own means; Narrow trapezoids could cause dropouts in there. 2. Optimize variants of fill_trapezoid algorithm which are used for different purposes (preventing about 10% slowdown with shadings). We believe this change isn't harmful because regularly we render small characters to cache device, which simply forwards trapezoids to default implementation. Alternatively we could insert a check for narrow trapezoids into loop_fill_trap, but such check appears complex and it would sensibly reduce performance. New files added : gdevddrw.h, gxdtfill.h . Change to lib.mak accounts them. Besides that, with dropout prevention we now skip empty paths in characters, because Adobe doesn't paint them.
2002-12-23 18:17 Igor Melichev
Fix : Fixing a typo in comment.
2002-12-23 12:27 Igor Melichev
Initial commit for the dropout prevention code in rasterizer. It doesn't not change any behavior. DETAILS: Switching to new code is being controlled with DROPOUT_PREVENTION macro defined in gx.h . Now it is set to "use old code". This patch : 1. Ports the "margin" algorithm from HINTER branch. Now the algorithm renamed to "pseudo-rasterization". 2. Ports the dropout prevention to gx_default_fill_trapezoid from HINTER branch, providing a contiguous fill for slightly slanted trapezoids. 3. Adds CONNECT_RECTANGLES into gx_default_fill_trapezoid providing a contiguous fill for highly slanted trapezoids. 4. Fixes some problems in the "pseudo-rasterization". 5. Disables all hacks about path adjustment and oversampling when DROPOUT_PREVENTION is on. Those hacks were attempts to fix dropouts for small characters, but they do not solve the problem completely. 6. Provide visual trace instructions for debugging purpose. Changes to gxpcopy.c and gxpflat.c only insert visual trace instructions for debugging purpose. Currently all them compile to empty code. Changes to gdevddrw.c, gxchar.c, gxtype1.c, gx.h are protected with DROPOUT_PREVENTION. With current settings they compile to old code. Changes to gxfill.c are not so obvious. I was unhappy with duplicating a thousand of lines in #if...#else...#endif. Therefore I've inserted some dynamic checks. They are controlled with 'pseudo_rasterization' flag. Currently it always false, so that inserted sections are either bypassed or immediately return from subroutines. Changes to lib.mak only add some dependences on vdtrace.h . In local testing the patch caused no difference with Comparefiles (if DROPOUT_PREVENTION is 0). If someone wants to try new code, DROPOUT_PREVENTION to be modified in gx.h . In this case all old hacks about path adjustment are disabled, and therefore characters render some lighter. Visual trace may be activated with -Tf option in gs command line. Note that it paints a big draft for any character rendered, so you should run only simple PS files with a single character. Also the draft scale is hardcoded in VD_SCALE constants, so it may give an unuseful result with big character rasters. At last please remember that visual trace window is implemented only for Windows - other platforms will not paint anything. The visual trace window does not implement a regeneration of painting, therefore windows must not overlap. Run gswin32.exe with no file, move windows and then perform 'quit' to store window layout to system Registry. here is a simple test, which visualize improvements when DROPOUT_PREVENTION is on : %! 100 350 moveto /Courier findfont 2 scalefont [5 0 0 1 0 0] makefont setfont (/) show showpage With 72dpi the old code paints nothing. The (DROPOUT_PREVENTION=1) paints a spot. Testing the new code with -r300 001.01.ps, the box 001-12 renders better : no dropouts in "4", characters look better. In gx.h I've added FILL_TRAP_WITH_SWAPPED_AXES flag. The goal is to archive and document a dead branch of the development. I'd like to store it into archive and then remove it in the next revision. Two temporary configuration switches added for benchmarking purpose : - PSEUDO_RASTERIZATION in gxfill.c disables the pseudo-rasterization separately from other changes. - CONTIGUOUS_FILL disables additional checks in gdevddrw.c separately from other changes. With text documents performance change is almost invisible. With Coons01.ps each of these flags give a 10% slowdown. I guess the reason is that the code becomes too complex for global optimization with MSVC 6.0 for Intel Pentium 3. Other compilers/processors may give different results. Thanks to Ray Johnston and Raph Levien for useful remarks. This patch accounts them.
2002-12-23 10:59 Igor Melichev
Fix (pdfwrite) : Removing a rudiment about writing /Name to font resources. It is not longer useful since revision 1.50 of lib/pdf_font.ps .
Accumulate CVS log instead of only having one night's worth of change info. It used to work that way but that "feature" got dropped inadvertently.
2002-12-20 11:39 Igor Melichev
Initial commit for the dropout prevention code in rasterizer. It doesn't not change any behavior. DETAILS: Switching to new code is being controlled with DROPOUT_PREVENTION macro defined in gx.h . Now it is set to "use old code". This patch : 1. Ports the "margin" algorithm from HINTER branch. Now the algorithm renamed to "pseudo-rasterization". 2. Ports the dropout prevention to gx_default_fill_trapezoid from HINTER branch, providing a contiguous fill for slightly slanted trapezoids. 3. Adds CONNECT_RECTANGLES into gx_default_fill_trapezoid providing a contiguous fill for highly slanted trapezoids. 4. Fixes some problems in the "pseudo-rasterization". 5. Disables all hacks about path adjustment and oversampling when DROPOUT_PREVENTION is on. Those hacks were attempts to fix dropouts for small characters, but they do not solve the problem completely. 6. Provide visual trace instructions for debugging purpose. Changes to gxpcopy.c and gxpflat.c only insert visual trace instructions for debugging purpose. Currently all them compile to empty code. Changes to gdevddrw.c, gxchar.c, gxtype1.c, gx.h are protected with DROPOUT_PREVENTION. With current settings they compile to old code. Changes to gxfill.c are not so obvious. I was unhappy with duplicating a thousand of lines in #if...#else...#endif. Therefore I've inserted some dynamic checks. They are controlled with 'pseudo_rasterization' flag. Currently it always false, so that inserted sections are either bypassed or immediately return from subroutines. Changes to lib.mak only add some dependences on vdtrace.h . In local testing the patch caused no difference with Comparefiles (if DROPOUT_PREVENTION is 0). If someone wants to try new code, DROPOUT_PREVENTION to be modified in gx.h . In this case all old hacks about path adjustment are disabled, and therefore characters render some lighter. Visual trace may be activated with -Tf option in gs command line. Note that it paints a big draft for any character rendered, so you should run only simple PS files with a single character. Also the draft scale is hardcoded in VD_SCALE constants, so it may give an unuseful result with big character rasters. At last please remember that visual trace window is implemented only for Windows - other platforms will not paint anything. The visual trace window does not implement a regeneration of painting, therefore windows must not overlap. Run gswin32.exe with no file, move windows and then perform 'quit' to store window layout to system Registry. here is a simple test, which visualize improvements when DROPOUT_PREVENTION is on : %! 100 350 moveto /Courier findfont 2 scalefont [5 0 0 1 0 0] makefont setfont (/) show showpage With 72dpi the old code paints nothing. The (DROPOUT_PREVENTION=1) paints a spot. Testing the new code with -r300 001.01.ps, the box 001-12 renders better : no dropouts in "4", characters look better. In gx.h I've added FILL_TRAP_WITH_SWAPPED_AXES flag. The goal is to archive and document a dead branch of the development. I'd like to store it into archive and then remove it in the next revision. Two temporary configuration switches added for benchmarking purpose : - PSEUDO_RASTERIZATION in gxfill.c disables the pseudo-rasterization separately from other changes. - CONTIGUOUS_FILL disables additional checks in gdevddrw.c separately from other changes. With text documents performance change is almost invisible. With Coons01.ps each of these flags give a 10% slowdown. I guess the reason is that the code becomes too complex for global optimization with MSVC 6.0 for Intel Pentium 3. Other compilers/processors may give different results. Thanks to Ray Johnston and Raph Levien for useful remarks. This patch accounts them.
2002-12-19 20:44 Igor Melichev
More optimizations are enabled with MSVC_VERSION != 5. Using them MSVC 6.0 creates 1.5 times faster code. Thanks to Russell Lang and to Pierre Arnaud.
Prevent the bbox put_params from using the color mapping functions before the device is opened. Fixes Sourceforge bug #645531 "seg fault: bbox device + PAPERSIZE". DETAILS: Using "-sPAPERSIZE=a4 -sDEVICE=bbox" crashes in GS 8 when the device parameters are being set prior to opening the bbox device. bbox_put_params calls bbox_copy_params, gx_device_black then the bbox encode_color which is NULL. This is wrong because encode_color must not be called before the device is open. See doc/Drivers.htm#Life_cycle for details. Prior to the DeviceN changes this did not matter because the map_rgb_color function was valid. Post DeviceN the encode_color procedure is called and this is NULL until just before the bbox device is opened. The fix prevents bbox_copy_params from calling the encode_color procedure while the device is closed.
2002-12-18 17:30 Alex Cherepanov
Following MS Windows practice "Ok" is changed to "OK" in dialog controls. Fixes SourceForge bug #655623 '"Ok" should be "OK"'
2002-12-18 13:59 Igor Melichev
Fix : Improving the portability of the vd_trace interface.
Update test scripts to omit -rXXX parameter for pdfwrite, instead of using -r720 explicitly, so that it uses the default behavior.
Always run pdfwrite with the default resolution of 720, since that is the common use case.
2002-12-16 12:31 Igor Melichev
Fix : Improving the vd_trace interface. DETAILS: It is some simplification and optimization. It doesn't affect the current GS build because vtrace.h is currently never included.
2002-12-15 19:04 Igor Melichev
Fix (pdfwrite) : Text matrix was wrongly computed. Source Forge bug "[ 651643 ] PS->PDF changes font slant". DETAILS: The bug is visible if FontMatrix for a base PS font is slanted with findfont...copydict...ReplaceFontMatrix...definefont. I don't know whether we need to canonize FontMatrix embedding a font. Delaying this until we get more tests which help to choose a right decision. EXPECTED PROGRESSIONS : CompareFiles\455690.pdf CompareFiles\Altona.Page_3.2002-09-27.pdf
2002-12-15 13:20 Igor Melichev
Fix (FAPI) : Don't request decodingID for embedded fonts, because it is only useful for disk fonts.
2002-12-14 19:06 Igor Melichev
Fix (pdfwrite) : 'cmap' was written wrongly with subsetted True Type fonts. Source Forge bug "[ 651148 ] pdfwrite embeds bad font".
Add the display device (for the gsapi client interface) to the default MacOS build.
Fix for [ 652147 ] overprintmode not boolean. Adobe TN5145 defines the paramters to/from setoverprintmode/currentoverprintmode as being boolean. This change modifies the implementation to match the TN. DETAILS: Previously the operators setoverprintmode and currentoverprintmode had been defined to match the requirements of PDF which uses an integer for the parameter. However Adobe TN5145 defines the postscript implementation as using a boolean value. This change modifies the definition of these operators in lib/gs_ll3.ps to convert the parameter type. The internal operators .setoverprintmode/.curentoverprintmode still use the PDF integer parameter. The postscript code in lib/gs_ll3.ps converts the parameter type.
Handle TrueType fonts that contain poorly formatted 'post' tables. These were seen as font subsets embedded in PDF files. Fixes SourceForge bug #651164 for customer #150. DETAILS: The file contains an embedded TT font subset that has a badly formatted 'post' table. This table is used to replace names in the standard encoding for specific glyphs. The 'post' table in question maps a bunch of glyphs that are not part of the subset to the first name in glyphnames section, but the glyphnames section is empty. It should have at least a single byte of 0x00 to form a zero length Pascal string. I also added a warning that prints if the DEBUG is enabled. Since the 'postglyphs' string is automatically extended with a 0x00 byte when the problem is detected, the warning only prints once for the font. This file was created by: /Producer (OneVision PDF Writer \(Build 05.950\)) /Creator (Solvero Version 4.5 \(SR 4\))
2002-12-10 17:49 Igor Melichev
Fix (pdfwrite) : Removing erroneous declarations from gdevpdfx.h .
Fix (FAPI) : Rename round() to fapi_round() to avoid shadowing the C99 call of the same name. DETAILS: In particular, the redeclaration of round() causes a compiler error under Apple's gcc (October 2002 Developer Tools, MacOS X 10.2.2). MSVC doesn't implement the C99 round() and in any case we don't need the full behaviour, so a private implementation seems the best portable option.
2002-12-10 13:52 Igor Melichev
(pdfwrite) : Implementing /PAGELABEL pdfmark. Code from Joerg Baumann with minor improvements.
2002-12-10 11:33 Igor Melichev
Fix (FAPI) : Correcting the implementation of fapi_round.
2002-12-10 08:21 Igor Melichev
Fix (FAPI) : Work around MSVC bug which doesn't define 'round' in math.h .
2002-12-09 11:42 Igor Melichev
Fix (FAPI) : Remove dependency on interpreter structures from fapi_ft.c . Code from Graham Asher.
2002-12-09 11:05 Igor Melichev
Fix (pdfwrite) : Allow to convert CIEBasedA with non-identity MatrixA to ICCBased. Source Forge bug "[ 647124 ] gs 8.00 makes a large and slow PDF file".
2002-12-08 10:54 Igor Melichev
Changing copyright banner in Free Type bridge modules.
2002-12-08 10:50 Igor Melichev
Fix (FAPI) : Passing the replaced metrics to renderer. DETAILS FAPI client provides replaced metrics data in all cases. UFST bridge now provides a minimal handling for replaced metrics - for fonts with MetricsCount only. Other cases require to implement a new feature to UFST. Free Type is not fixed with this patch. Need to implement a new feature in Free Type.
2002-12-08 10:40 Igor Melichev
Fix (pdfwrite) : Fixing a spelling in a comment.
Increment version number and date after 8.00 release.
2002-12-06 16:02 Igor Melichev
Free Type integration. Code from Graham Asher.
2002-12-06 08:45 Igor Melichev
Fix (pdfwrite) : Improving documentation about compression choice.
2002-12-06 01:11 Alex Cherepanov
Avoid the stack overflow. Don't put all CID values on the operand stack at once during identity CMap generation. Fixes SourceForge bug #646809 "/stackoverflow" DETAILS: The sample file pushed about 50K numbers to the operand stack causing /stackoverflow. Since the numbers are always sequential the new procedure takes a range of numbers. The range is defined by the initial value and string length.
2002-12-05 23:48 Alex Cherepanov
Work around a common error in PDF files when the length of the xref entry is nor equal to 20 bytes. Use readline to advance to the next entry instead of seeking 20 bytes forward. Fixes SourceForge bug #646809, customer #1060 "/typecheck in --add--" Fixes SourceForge bug #641280, customer #780 "/typecheck in --add--"
Adjust comments to reflect the current status (which FDSelect format can possibly overflow the operand stack) and add comments to identify which format corresponds to each procedure. DETAILS: A test case that used Format 0 was not available, so no change was made to avoid large operand stack usage for Format 0, but the previous comment placement may have left the impression that Format 3 still had the problem.
Handling of OpenType (OTTO) fonts with CFF fonts inside would fail if the CFF table was not the first table in the table directory. Also stack overflow could occur when building the FDSelect array. Now Asian fonts sold by Adobe (as OpenType .otf fonts) can be used with Ghostscript. DETAILS: The initial table scanning checked the 32-bit table type against the (CFF ) string, but then failed to skip the following 12 bytes if the table was not CFF. Since the initial table is usually BASE, most OTTO fonts were not usable. Also the FDSelect array construction used the stack, so could easily overflow if there was a largest glyph index in the font was too large. The method used creates a 65535 element array, then fills it using the info from the font's FDSelect info. The extra elements of the array are 'trimmed' using getinterval.
Fixed another typo in pdf tests.
Fixed a bug in previous patch.
2002-12-04 09:05 Igor Melichev
Fix (pdfwrite) : Phase was missed writing a pattern. Source Forge bug "[ 646062 ] (pdfwrite) Wrong pattern phase(270-01.ps".
2002-12-04 07:45 Igor Melichev
Changing copyright banner in Free Type bridge modules.
Fix: Turn logging on where it was overlooked.
2002-12-03 14:55 Igor Melichev
Fix (FAPI) : Implementing MetricsCount. DETAILS: This fixes FAPI client, but still there are problems with renderers. Both FreeType and UFST cannot properly handle a replaced metrics. This problem is not in Ghostscript. The FAPI client also has problems with replaced metrics. See the big comment added into zfapi.c . Need to fix UFST and Free Type first.
Remove references to deprecated bug-gs-dev, bug-gs-beta, and mac-gs-* lists.
Document that UseFlateCompression is treated as always on. Thanks to mpsuzuki for noticing this change.
When adding a missing showpage to an EPS file, don't bind showpage to allow user to override it. DETAILS: The EPS encapsulation code in ghostscript adds a showpage if one is not present, so that displaying, printing and converting all behave the same. Some users are feeding multiple EPS files to ghostscript, intending to print them on a single page. The current code will print each EPS file on a single page. For example following code would print three pages: save /showpage {} def save (file1.eps) run restore save (file2.eps) run restore restore showpage With this fix, it will print a single page. Other ways to avoid this problem are to use -dNOEPS, or (file.eps) (r) file cvx exec
2002-12-03 06:17 Igor Melichev
Free Type integration. Code from Graham Asher. DETAILS: New files added : fapi_ft.c wrfont.c write_t1.c write_t2.c wrfont.h write_t1.h write_t2.h The Free Type bridge (fapi_ft.c and dependents) needs to be rewritten with replacing all access to interpreter's data with FAPI_font callbacks. Committing it now to allow other developers to work on it. File names to be improved.
2002-12-03 06:00 Igor Melichev
Free Type integration. Code from Graham Asher. DETAILS: New files added : fapi_ft.c wrfont.c write_t1.c write_t2.c wrfont.h write_t1.h write_t2.h The Free Type bridge (fapi_ft.c and dependents) needs to be rewritten with replacing all access to interpreter's data with FAPI_font callbacks. Committing it now to allow other developers to work on it. File names to be improved.
Fix: Partial fix for [ 600288 ] /undefined in --setcolorspace--. This fix consists of two parts. 1. Resolve and substitute the alternate color space for an ICCBased color space. 2. Correct a reference counting problem with the same alternate color space.
Fix: Report useful error information when updating, building, or installing fails. Fixes SF bug #484752.
Fix: Make sure all test code checks and reacts appropriate to the exit status of Ghostscript.
2002-12-02 15:02 Igor Melichev
Fix : Use GetTempFileName for creating temporary files on Windows. SourceForge bug "[ 592925 ] Unable to open initial device (winXP)". Code from Russell Lang with minor improvements. DETAILS: See comment in code. Further improvements with FILE_FLAG_DELETE_ON_CLOSE require experimenting with multiple platforms to find a consistent logics for clist and other temporary files with automatic removal. In this connection see http://www.ghostscript.com/pipermail/gs-code-review/2002-November/003437.html and other messages in the thread.
2002-12-02 13:30 Igor Melichev
Fix (pdfwrite) : Names preceded with two null characters were not handled properly. SourceForge bug "[ 641697 ] gs 7.33 regression". DETAILS: pdf_write_value did not recognize names being preceded with two null characters. Such names were introduced to pdfmark implementation with the patch http://www.ghostscript.com/pipermail/gs-code-review/2002-January/001737.html for SF bug #505877. The patch appears incomplete : pdf_write_value did not recognize such names as names, and as a consequence special characters in them were not encodes with #-escape.
2002-11-29 16:24 Igor Melichev
Fix (pdfwrite) : Skip the obsolete Type 1 charstring command code 15, because Acrobat Reader 5 on Linux chokes with it. SourceForge bug "[ 641296 ] acrobat generates bad ps from gs pdf". DETAILS: GS ignores the command 15. Now skipping it while converting to CFF. Printing a file with such font, AR5 on Linux generates an incomplete eexec section.
2002-11-27 20:36 Alex Cherepanov
Fix: Use "\n" line endings instead of "\r\n". MS-DOS line endings were introduced in some lines with my earier fix.
2002-11-27 15:57 Igor Melichev
Fix (pdfwrite) : Skip redundant clipping paths. SourceForge bug "[ 624168 ] poor performance on patterns". DETAILS: Besides others, the document "a)page Afrique(VECTO).eps" creates multiple redundant clip paths with any AI "pattern" (actually it doesn't use PS patterns). The old code was too conservative, using only a comparison of path identifiers. The patch creates a stable copy of clipping path written to PDF, and compares it when PS clip path changes. The old comparison is left unchanged for better performance. Also fixes return codes from pdf_put_clip_path and improved the initializer of gx_device_pdf.
2002-11-27 15:37 Igor Melichev
Fix : gx_clip_path::outer_box was wrongly computed with empty path. DETAILS: It's a prtial fix for SourceForge bug "[ 624168 ] poor performance on patterns".
2002-11-27 15:25 Igor Melichev
Fix : A partial fix for Source Forge bug "[ 592925 ] Unable to open initial device (winXP)". Providing a diagnostics when failed to open temporary file or the device output file. DETAILS: This change provides an explanation to user about the problem, rather than fixes it. An improvement about the failure will be a separate patch. gp_macio.c and gp_unifs.c contained C-style.htm problems. This patch doesn't fix them for simplifying the History. To be done separately.
Correct a non-portable symbol after #endif.
Remove some unused variables.
Adapt MacOS port to build under Metrowerks CodeWarrior 8.3. These changes maintain compatibility with CW7. CW6 has not been tested. Also clean up some of the mac-specific sources, removing dead and unnecessary code and improving header includes.
Correct changelog typos. Thanks to William Bader for spotting this.
Remove echogs as part of the mostlyclean makefile target. After a patch by William Bader.
Fix: Descriptions of the regression testing script did not correspond to the script header. Thanks to Russell Lang of GSView fame for spotting this (someone finally read at least part of this document!).
Change GS_DOT_VERSION to use two-digit minor version number, which is our new policy.
When processing EPS files, empty the path after checking the page size.
Update copyright date in Windows installer.
Second commit of 8.00 release: autogen change logs and history file (note new History8.htm file).
This is the 8.00 release of AFPL Ghostscript. The most significant new feature since 7.0x is support for DeviceN colorspaces, up to 8 colorants total at 8 bits per component. Also, pdfwrite has seen considerable improvement in font handling, and many other bug fixes.
The following SourceForge bug numbers were open at the time of this release: 405342, 407342, 414947, 414985, 446344, 458261, 458775, 458780, 459647, 465936, 484752, 484753, 487953, 493348, 505429, 510808, 526099, 526491, 530011, 535366, 535752, 535836, 538033, 539239, 546823, 554076, 558151, 558435, 563287, 569573, 570772, 573744, 578838, 578865, 584990, 592160, 592837, 592841, 592925, 592930, 595760, 596009, 600288, 601255, 601336, 601694, 603934, 605830, 607425, 607850, 610356, 610478, 610727, 611694, 611701, 611727, 611898, 612801, 614298, 615165, 616970, 616976, 617077, 617523, 621246, 623292, 624515, 625085, 626059, 626295, 626358, 626419, 626464, 627545, 628110, 629335, 633299, 634036, 634358, 634514, 636210, 640159, 641278, 641280, 641283, 641296, 641490.
No incompatible changes in this release.
First commit of 8.0 process: update versions and dates, update to News.htm. (doc/API.htm [1.29], doc/Bug-form.htm [1.33], doc/Bug-info.htm [1.32], doc/C-style.htm [1.39], doc/Commprod.htm [1.26], doc/Copying.htm [1.25], doc/DLL.htm [1.27], doc/Deprecated.htm [1.6], doc/Develop.htm [1.101], doc/Devices.htm [1.58], doc/Drivers.htm [1.37], doc/Fonts.htm [1.35], doc/Helpers.htm [1.29], doc/History1.htm [1.25], doc/History2.htm [1.25], doc/History3.htm [1.25], doc/History4.htm [1.25], doc/History5.htm [1.27], doc/History6.htm [1.42], doc/History7.htm [1.29], doc/Htmstyle.htm [1.30], doc/Install.htm [1.39], doc/Issues.htm [1.33], doc/Language.htm [1.58], doc/Lib.htm [1.27], doc/Maintain.htm [1.36], doc/Make.htm [1.62], doc/New-user.htm [1.44], doc/News.htm [1.121], doc/Projects.htm [1.49], doc/Ps-style.htm [1.23], doc/Ps2epsi.htm [1.27], doc/Ps2pdf.htm [1.49], doc/Psfiles.htm [1.40], doc/Readme.htm [1.47], doc/Release.htm [1.74], doc/Source.htm [1.25], doc/Tester.htm [1.24], doc/Testing.htm [1.14], doc/Unix-lpr.htm [1.25], doc/Use.htm [1.71], doc/Xfonts.htm [1.25], doc/gs-vms.hlp [1.24], man/dvipdf.1 [1.22], man/font2c.1 [1.22], man/gs.1 [1.23], man/gslp.1 [1.22], man/gsnd.1 [1.22], man/pdf2dsc.1 [1.21], man/pdf2ps.1 [1.23], man/pdfopt.1 [1.21], man/pf2afm.1 [1.22], man/pfbtopfa.1 [1.23], man/printafm.1 [1.22], man/ps2ascii.1 [1.21], man/ps2epsi.1 [1.20], man/ps2pdf.1 [1.27], man/ps2pdfwr.1 [1.26], man/ps2ps.1 [1.29], man/wftopfa.1 [1.22]: 2002/11/21 07:12:16 raph)
First commit of 8.0 process: update versions and dates, update to News.htm. (version.mak [1.58]: 2002/11/21 07:12:17 raph)
Fixes problems: - Don't overwrite source file when ps2pdf.bat is used with 1 argument and the argument has no ".ps" extension. (Fixed by Moritz Barsnick) Bug #631974 (lib/ps2pdfxx.bat [1.13]: 2002/11/20 03:01:23 alexcher)
Documents the old macos output device as deprecated. This is superceeded by the gdevdsp. (gdevmac.c [1.7]: 2002/11/20 18:24:44 giles)
Fixes problems: - Fix (pdfwrite) : pdf_put_colored_pattern wrongly accessed pattern mask. SourceForge bugs "[ 623989 ] (pdfwrite) wrong colors with 269-01.ps", "[ 602995 ] (pdfwrite) 269-01.ps limitcheck". (gdevpdfv.c [1.20]: 2002/11/18 22:23:40 igor) - Fix (pdfwrite) : Providing additional documentation about embedded fonts. (gdevpdtb.c [1.12]: 2002/11/20 10:21:15 igor) - Fix (pdfwrite) : Encoding Differences were not written for embedded Type 1,2 fonts that have a very instandard Encoding. Discovered with SF bug "[ 641296 ] acrobat generates bad ps from gs pdf". (gdevpdtt.c [1.24]: 2002/11/21 00:05:06 igor) - Fix (pdfwrite) : The previous patch about Encoding Differences was inaccurate about True Types and CID fonts. Improving it with a better condition. (gdevpdtt.c [1.25]: 2002/11/21 03:44:11 igor)
Fixes problems: - Pattern stream was copied to the string failing with rangecheck for long streams. The patch uses strings when possible and switches to reusable streams for longer streams. Bug #634080, customer #561 (lib/pdf_draw.ps [1.63]: 2002/11/21 01:29:07 alexcher)
Fixes problems: - Correction for 637954 dina3_watermark.pdf fails on GS 7.33. This forces the color space to /DeviceGray whenever the initgraphics operator is called. Previously if color space substitution was active and the last colorspace was /DeviceGray then its substituted colorspace would remain active. (lib/gs_cspace.ps [1.5]: 2002/11/18 23:42:18 dan) - Packed array is accepted now as an encoded user path in insideness testing operators. Bug #640855 (zupath.c [1.7]: 2002/11/20 18:17:28 alexcher) - Fix : (1) gc_status.requested was not initialized for stable memories, but used by alloc_acquire_chunk. (2) setting gc_status.vm_threshold and gc_status.enabled for stable memories synchronously with non-stable ones. This allows to control stable memories with setvmthreshold and vmreclaim. With default settings pdfwrite now works faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf" (zvmem2.c [1.7]: 2002/11/20 18:56:56 igor) - Bring /SubstituteFont procedure prototype up to the standard: <name> SubstituteFont <name> . Do traditional GS font substitution after the standard font substitution. Use no-op standard font substitution for backward compatibility. Bug #637424 Customer #71 (lib/gs_fonts.ps [1.24]: 2002/11/21 04:43:58 alexcher) When processing multiple EPS files, call showpage if necessary for subsequent files. (lib/gs_epsf.ps [1.10]: 2002/11/19 20:14:01 ghostgum) Corrects a small typo in the api documentation. (gdevdsp.h [1.7]: 2002/11/20 17:46:26 giles) First commit of 8.0 process: update versions and dates, update to News.htm. (lib/gs_init.ps [1.74]: 2002/11/21 07:12:17 raph)
Fixes problems: - Fix : lsb must not apply to True Type subglyphs. The offset to be taken from composite only. SourceForge bugs "[ 623122 ] component shift in TrueType composites", "[ 536863 ] Type11 layout bugs". (gstype42.c [1.25]: 2002/11/20 09:55:26 igor) - Fix : (1) gc_status.requested was not initialized for stable memories, but used by alloc_acquire_chunk. (2) setting gc_status.vm_threshold and gc_status.enabled for stable memories synchronously with non-stable ones. This allows to control stable memories with setvmthreshold and vmreclaim. With default settings pdfwrite now works faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf" (gsalloc.c [1.18]: 2002/11/20 18:56:43 igor) - Fix : (1) gc_status.requested was not initialized for stable memories, but used by alloc_acquire_chunk. (2) setting gc_status.vm_threshold and gc_status.enabled for stable memories synchronously with non-stable ones. This allows to control stable memories with setvmthreshold and vmreclaim. With default settings pdfwrite now works faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf" (gsalloc.h [1.6]: 2002/11/20 18:57:10 igor) First commit of 8.0 process: update versions and dates, update to News.htm. (gscdef.c [1.32]: 2002/11/21 07:12:17 raph)
Copyright © 2000-2006 Artifex Software, Inc. All rights reserved.
This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at http://www.artifex.com/ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
Ghostscript version 9.22, 4 October 2017