| Detailed History of Ghostscript versions 8.xx |
|---|
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 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 <>, 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 <> 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. 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=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 (== 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 bound