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]