ref: 39bf5b987e8ab53a74adec5a15b30f4eda85b357
dir: /sys/src/cmd/gs/doc/Details8.htm/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Detailed History of Ghostscript versions 8.n</title> <!-- $Id: Details8.htm,v 1.25 2005/10/20 20:14:37 ray Exp $ --> <!-- WARNING: do not use Pete Kaiser's emacs function "gs-toc" alone to re-create the table of contents here, because it will replace the hand-edited TOC subheads with a separate subhead for each H2 in the body of the file. Or if you do, first look at the original TOC to see how to edit it for visual conciseness. --> <link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style"> </head> <body> <!-- [1.0 begin visible header] ============================================ --> <!-- [1.1 begin headline] ================================================== --> <table width="100%" border="0"> <tr><th align="center" bgcolor="#CCCC00"><font size=6>Detailed History of Ghostscript versions 8.xx</font> </table> <!-- [1.1 end headline] ==================================================== --> <!-- [1.2 begin table of contents] ========================================= --> <h2>Table of contents</h2> <blockquote><ul> <li><a href="#Version8.53">Version 8.53 (2005-10-20)</a> <li><a href="#Version8.52">Version 8.52 (2005-10-07)</a> <li><a href="#Version8.51">Version 8.51 (2005-04-18)</a> <li><a href="#Version8.50">Version 8.50 (2004-12-10)</a> <li><a href="#Version8.33">Version 8.33 (2004-11-20)</a> <li><a href="#Version8.32">Version 8.32 (2004-10-26)</a> <li><a href="#Version8.31">Version 8.31 (2004-08-28)</a> <li><a href="#Version8.30">Version 8.30 (2004-05-29)</a> <li><a href="#Version8.12">Version 8.12 (2003-12-08)</a> <li><a href="#Version8.11">Version 8.11 (2003-08-16)</a> <li><a href="#Version8.10">Version 8.10 (2003-05-21)</a> <li><a href="#Version8.00">Version 8.00 (2002-11-21)</a> <ul> <li><a href="#8.00_Incompatible_changes">Incompatible changes</a>, <a href="#8.00-Documentation">Documentation</a>, <a href="#8.00-Procedures">Procedures</a>, <a href="#8.00-Utilities">Utilities</a>, <a href="#8.00-Drivers">Drivers</a>, <a href="#8.00-PDF_writer">PDF writer</a>, <a href="#8.00-PDF_Interpreter">PDF Interpreter</a>, <a href="#8.00-Interpreter">Interpreter</a>, <a href="#8.00-Library">Library</a> </ul> </ul></blockquote> <!-- [1.2 end table of contents] =========================================== --> <!-- [1.3 begin hint] ====================================================== --> <p> This document is a record of changes in Ghostscript releases numbered 8.xx. For earlier versions, see the the history documents: <blockquote> <a href="History7.htm">History of Ghostscript versions 7.n</a><br> <a href="History6.htm">History of Ghostscript versions 6.n</a><br> <a href="History5.htm">History of Ghostscript versions 5.n</a><br> <a href="History4.htm">History of Ghostscript versions 4.n</a><br> <a href="History3.htm">History of Ghostscript versions 3.n</a><br> <a href="History2.htm">History of Ghostscript versions 2.n</a><br> <a href="History1.htm">History of Ghostscript versions 1.n</a> </blockquote> <p>For other information, see the <a href="Readme.htm">Ghostscript overview</a>. <!-- [1.3 end hint] ======================================================== --> <hr> <!-- [1.0 end visible header] ============================================== --> <!-- [2.0 begin contents] ================================================== --> <h2><a name="Version8.53"></a>Version 8.53 (2005-10-20)</h2> <p>This is the fourth stable release in the 8.5x series of Ghostscript. It contains a few bug fixes and improvements since 8.52, particularly in the fix for a build problem on AMD64/Windows64 and vastly improved transparency rendering speed for some PDF's. <p> The following <a href="http://bugs.ghostscript.com/">bugs</a> were open at the time of this release: <blockquote> 465936, 578865, 592160, 610478, 626295, 686747, 686842, 686853, 687011, 687039, 687063, 687108, 687125, 687146, 687196, 687219, 687231, 687243, 687257, 687271, 687280, 687292, 687295, 687298, 687314, 687316, 687327, 687342, 687345, 687346, 687373, 687397, 687399, 687435, 687480, 687484, 687514, 687520, 687525, 687529, 687531, 687545, 687559, 687560, 687583, 687608, 687621, 687622, 687628, 687633, 687642, 687643, 687644, 687650, 687654, 687657, 687663, 687669, 687674, 687676, 687677, 687679, 687682, 687694, 687695, 687697, 687702, 687721, 687728, 687729, 687796, 687805, 687806, 687808, 687814, 687822, 687825, 687844, 687848, 687850, 687863, 687866, 687868, 687870, 687875, 687895, 687903, 687904, 687907, 687914, 687919, 687931, 687938, 687957, 687960, 687970, 687974, 687975, 687986, 687988, 687992, 687994, 687996, 688005, 688006, 688007, 688009, 688013, 688017, 688020, 688022, 688026, 688032, 688035, 688036, 688039, 688042, 688047, 688054, 688058, 688060, 688061, 688064, 688066, 688068, 688075, 688079, 688081, 688091, 688095, 688101, 688106, 688108, 688124, 688129, 688130, 688132, 688134, 688149, 688151, 688152, 688159, 688166, 688176, 688179, 688181, 688184, 688187, 688200, 688203, 688207, 688215, 688225, 688227, 688231, 688239, 688243, 688249, 688260, 688265, 688269, 688274, 688278, 688280, 688282, 688285, 688288, 688290, 688291, 688295, 688300, 688302, 688309, 688311, 688317, 688318, 688319, 688320, 688321, 688323, 688326, 688329, 688332, 688333, 688334, 688335, 688336, 688337, 688338, 688339, 688342, 688344 </blockquote> <h3><a name="8.53_Incompatible_changes"></a>Incompatible changes</h3> <p> There are no known incompatible changes at this point. <h3><a name="8.53_changelog"></a>Changelog</h3> <p><strong><a name="2005-10-20_1946"></a> 2005-10-20 19:46 Ray Johnston</strong></p> <blockquote> <pre> Update doc files and version files for 8.53 release.</pre> <p>[doc/API.htm 1.53, doc/Bug-form.htm 1.49, doc/Bug-info.htm 1.49, doc/C-style.htm 1.55, doc/Commprod.htm 1.41, doc/Copying.htm 1.39, doc/DLL.htm 1.43, doc/Deprecated.htm 1.20, doc/Details8.htm 1.24, doc/Develop.htm 1.159, doc/Devices.htm 1.90, doc/Drivers.htm 1.58, doc/Fonts.htm 1.51, doc/Helpers.htm 1.44, doc/History1.htm 1.39, doc/History2.htm 1.39, doc/History3.htm 1.39, doc/History4.htm 1.39, doc/History5.htm 1.41, doc/History6.htm 1.56, doc/History7.htm 1.44, doc/History8.htm 1.29, doc/Htmstyle.htm 1.44, doc/Install.htm 1.56, doc/Issues.htm 1.52, doc/Language.htm 1.98, doc/Lib.htm 1.43, doc/Maintain.htm 1.50, doc/Make.htm 1.90, doc/News.htm 1.168, doc/Projects.htm 1.67, doc/Ps-style.htm 1.37, doc/Ps2epsi.htm 1.42, doc/Ps2pdf.htm 1.88, doc/Ps2ps2.htm 1.7, doc/Psfiles.htm 1.68, doc/Readme.htm 1.71, doc/Release.htm 1.95, doc/Source.htm 1.39, doc/Testing.htm 1.37, doc/Unix-lpr.htm 1.39, doc/Use.htm 1.136, doc/Xfonts.htm 1.39, doc/gs-vms.hlp 1.37, man/dvipdf.1 1.37, man/font2c.1 1.37, man/gs.1 1.38, man/gslp.1 1.37, man/gsnd.1 1.37, man/pdf2dsc.1 1.36, man/pdf2ps.1 1.38, man/pdfopt.1 1.36, man/pf2afm.1 1.37, man/pfbtopfa.1 1.38, man/printafm.1 1.37, man/ps2ascii.1 1.37, man/ps2epsi.1 1.35, man/ps2pdf.1 1.42, man/ps2pdfwr.1 1.41, man/ps2ps.1 1.44, man/wftopfa.1 1.37, src/gscdef.c 1.58, src/version.mak 1.87]</p> </blockquote> <p><strong><a name="2005-10-20_1942"></a> 2005-10-20 19:42 Ray Johnston</strong></p> <blockquote> <pre> Remove trailing ^M (<cr>) characters.</pre> <p>[src/gdevbmp.c 1.12, src/slzwd.c 1.7]</p> </blockquote> <p><strong><a name="2005-10-20_1851"></a> 2005-10-20 18:51 Raph Levien</strong></p> <blockquote> <pre> Fixes broken compile on amd64 platforms (see bug #688047 for details). This patch should be safe on all platforms with 32-bit longs, and is my best guess as to the right thing to do on Tru64 (where long is 64 bits).</pre> <p>[src/tttypes.h 1.3]</p> </blockquote> <p><strong><a name="2005-10-20_1304"></a> 2005-10-20 13:04 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued 2). DETAILS : Bug 688167 "change of real number fomat from fixed to exponential format". The last patch doesn't correctly handle numbers between 1e-7 and 1e-2. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.52]</p> </blockquote> <p><strong><a name="2005-10-18_2031"></a> 2005-10-18 20:31 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued). DETAILS : Bug 688167 "change of real number fomat from fixed to exponential format". This improves the patch http://ghostscript.com/pipermail/gs-cvs/2005-September/005717.html with writing small reals in a fixed point number format. We did it after Raph's request in Comment #5 of the bug 688167. But we don't see a visible difference against the old implementation with any viewer. Therefore we believe that we shouldn't have done it (as we did before the implementation). Storing it now mainly for archiving purpose. If this change causes a problem, the author has no objection for unwinding it. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.51]</p> </blockquote> <p><strong><a name="2005-10-18_0905"></a> 2005-10-18 09:05 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Indexed colors were distorsed with encryption. DETAILS : Bug 688313 "pdfwrite : image colors depend on encryption". The old code applied encryption with a wrong (zero) object id to the palette of the indexed color space. After a viewer decrypts the palette with a right object id, colors appear wrong. 1. Use the PS string encoding instead the hexadecimal string encoding while converting the palette to PDF format (gdevpdfc.c). It provides a correct work of the part 3 below. See also part 4 below. 2. Don't apply encryption when adding the palette to cos object (gdevpdfc.c, devs.mak). The old code was hacky, and new one is based on a general convention. 3. Apply encryption with a right object id to the string which represents the palette when writing the cos object to the output PDF file. This is an implicit consequence of using the PS string encoding in the part 1 due to a general convention about applying encryption when writing cos objects to the output file. 4. Disable writing hexadecimal strings because their encryption is not yet implemented (gdevpdfu.c). The generated PDF may become longer in 1-2 kilobytes per palette due to PS encoding is less effective for palettes. This could be optimized with implelenting an encryption method for hexadecimal encoded strings in pdf_put_encoded_hex_string, and undo the part 1. The method should apply 3 filters : hexadecimal string decode, arc4 encode, hexadecimal string encode, because cos object stores strings in the outer format. Delaying this optimization for better times. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.140, src/gdevpdfc.c 1.54, src/gdevpdfo.c 1.35, src/gdevpdfu.c 1.89]</p> </blockquote> <p><strong><a name="2005-10-18_0758"></a> 2005-10-18 07:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Propagate error codes from pdf_write_value. DETAILS : This is a preparation for fixing the bug 688313 "pdfwrite : image colors depend on encryption". In cases when no error happens, this code is algorithmocally equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfo.c 1.34, src/gdevpdfu.c 1.88, src/gdevpdfx.h 1.138]</p> </blockquote> <p><strong><a name="2005-10-17_1923"></a> 2005-10-17 19:23 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : /BP pdfmark could create dead PDF objects (continiued). DETAILS : Bug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef". 1. Prevent a potential crash while dereferencing NULL. 2. Don't put unnamed objects into local_named_objects. Thanks to SaGS for pointing these problems out. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.50]</p> </blockquote> <p><strong><a name="2005-10-12_1759"></a> 2005-10-12 17:59 Igor Melichev</strong></p> <blockquote> <pre> Fix : Don't instantiate pattern when rendering to null device. DETAILS : Bug 688308 "Error: undefined; OffendingCommand: .type1execchar". The test case executes cshow or kshow with intrevene changing the current color space, causing a color load callout from fill_with_rule _after_ the callout completes. After that the check ctile->depth == dev->color_info.depth in gx_pattern_cache_lookup fails (not sure why - probably due to gsave-grestore in the pattern procedure). This patch skips entire character drawing when the device is null, so that those cumbersome stuff isn't envolved. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsdevice.c 1.25, src/gspaint.c 1.10, src/gxdevcli.h 1.41]</p> </blockquote> <p><strong><a name="2005-10-12_1105"></a> 2005-10-12 11:05 Igor Melichev</strong></p> <blockquote> <pre> Implementing a pointer stability validation in the garbager, continued. DETAILS : This patch is currently disabled, so the change is syntactically equivalent. Bug 688226 "The garbager must check a pointer stability.". This fixes a minor bug in the last patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/ilocate.c 1.14]</p> </blockquote> <p><strong><a name="2005-10-12_1045"></a> 2005-10-12 10:45 Igor Melichev</strong></p> <blockquote> <pre> Implementing a pointer stability validation in the garbager. DETAILS : This patch is currently disabled, so the change is syntacticly equivalent. Bug 688226 "The garbager must check a pointer stability.". This patch extends the object header with a space order number field, and compares the origin and the destination order numbers for each pointer while validating the heap. The enhanced object header is still within 16 bytes with the 32-bits architecture. See ialloc_validate_pointer_stability about the order number definition. This patch detected so many problems while running any document, as we can't enable it now. It is disabled with IGC_PTR_STABILITY_CHECK macro defined in gxobj.h . EXPECTED DIFFERENCES : None.</pre> <p>[src/gsalloc.c 1.24, src/gxalloc.h 1.12, src/gxobj.h 1.7, src/ialloc.c 1.8, src/ilocate.c 1.13]</p> </blockquote> <p><strong><a name="2005-10-12_0816"></a> 2005-10-12 08:16 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Skip a clip path, which is set by setcachedevice (continued after July 28 205). DETAILS : Bug 687678 "pdfwrite : A Type 3 character cut-off". Bug 688327 "incorrect masking fill in pdfwrite". The old patch for this problem appears to define a too weak condition for recognizing a clipping set by setcachedevice, sectachedevice2. Now we think that a special stuff for this condition isn't needed because the condition may be united with the contition for "setcharwidth" : both things need to skip the clipping path, which was set exactly by setcachedevice, sectachedevice2 or setcharwidth. Checking the rectangle coordinates is not relevant. Therefore the change consists of 2 parts : 1. Unwinding the patch http://ghostscript.com/pipermail/gs-cvs/2005-July/005625.html (IM1358) (see also http://ghostscript.com/pipermail/gs-cvs/2005-July/005626.html). 2. Remowing the (control == TEXT_SET_CHAR_WIDTH) check from pdf_text_set_cache, so that the "caching" clipping path will be skipped in any case. Will add Bug688327.ps to comparefiles. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfb.h 1.14, src/gdevpdfd.c 1.71, src/gdevpdfx.h 1.137, src/gdevpdti.c 1.53, src/gdevpdtt.c 1.104]</p> </blockquote> <p><strong><a name="2005-10-11_1004"></a> 2005-10-11 10:04 Igor Melichev</strong></p> <blockquote> <pre> Fix (PS interpreter) : Allocate gs_screen_enum in same space as its components. DETAILS : Bug 688330 "A dangling pointer in gx_screen_enum.". The old code allocates gs_screen_enum in current memory space and frees to the memory space of its components, which is obtained from the 'setscreen' operand (the spot function). In the test case the first memory space is local, and the second one is global. We guess the last statement became true after a recent change to the PDF interpreter. This patch allocates gs_screen_enum in same space as its components. The pritotype of zscreen_enum_init has been changed due to no method for obtaining a space attribute value for iref from a gs_memory_t instance (well, generally it is impossible, but one could solve if the memory allocator is a PS interpreter's allocator except stable ones). We noticed that components of gs_screen_enum have pointers to memory allocator structures, but don't list them in the related memory descriptors. We're not sure whether a memory allocator structure may relocate or not - our investigation through code didn't give an unique answer. For now we leave component descriptors as they were before the patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/iht.h 1.6, src/zht.c 1.8, src/zht1.c 1.7, src/zht2.c 1.14]</p> </blockquote> <p><strong><a name="2005-10-10_1909"></a> 2005-10-10 19:09 Igor Melichev</strong></p> <blockquote> <pre> Fix: Cygwin/gcc warninhs. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.139, src/gdevpdfb.c 1.34]</p> </blockquote> <p><strong><a name="2005-10-10_1858"></a> 2005-10-10 18:58 Igor Melichev</strong></p> <blockquote> <pre> Optimizing the transparency compositor. DETAILS : Bug 688255 "ai7 pdf fails on 7.03, runs for ten + minutes on 8.51". The old code always allocates a transparency buffers for entire band. The new code accounts group bbox to minimize buffers. Due to that buffers appear empty for many of bands. The time consumption for the test case of the bug 688255 is dropped in about 100 times (from 8000 seconds to 71 seconds on a 3.07GHz machine, measured with debug build). 1. The transparency bbox computes in pdf14_begin_transparency_group from the group bbox and the CTM (gdevp14.c). 2. Handle an empty buffer pdf14_buf_new, pdf14_pop_transparency_group (gdevp14.c). 3. Fixed a bug in the rectangle clipping in pdf14_mark_fill_rectangle, pdf14_mark_fill_rectangle_ko_simple. The old code didn't sense it because bbox always covered entire band (gdevp14.c). 4. Write the bbox to clist in c_pdf14trans_write and read it in c_pdf14trans_read. 5. The pdf14 compositor needs CTM to transform the group bbox to the device space. Forced the writing of CTM to clist before writing the compositor in clist_create_compositor. (Sorry, it appears some ugly due to pcte->type->procs.write creates a body of a command, but we need to create a set of two commands; Another minor optimization - a narrowing the set of bands - is delayed, see comments in code in clist_create_compositor) (gxclimag.c). 6. New functions cmd_write_ctm_return_length, cmd_write_ctm are factored out for (5) (gxclpath.c, gxclpath.h). This part of the change is algorithmically eqiuivalent. 7. Minor change : fixed coding style of "} else {" in gdevp14.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevp14.c 1.35, src/gxclimag.c 1.13, src/gxclpath.c 1.21, src/gxclpath.h 1.13]</p> </blockquote> <p><strong><a name="2005-10-07_1949"></a> 2005-10-07 19:49 Ray Johnston</strong></p> <blockquote> <pre> Add missing space in CVS PRE-RELEASE string.</pre> <p>[src/gscdef.c 1.57]</p> </blockquote> <p><strong><a name="2005-10-07_1946"></a> 2005-10-07 19:46 Ray Johnston</strong></p> <blockquote> <pre> Bump version after the 8.52 release (to 8.53 CVS PRE-RELEASE).</pre> <p>[doc/News.htm 1.167, lib/gs_init.ps 1.120, src/gscdef.c 1.56, src/version.mak 1.86]</p> </blockquote> <hr> <h2><a name="Version8.52"></a>Version 8.52 (2005-10-07)</h2> <p>This is the third stable release in the 8.5x series of Ghostscript. It contains numerous bug fixes and improvements, particularly in the area DeviceN (spot color) handling and the PDF interpreter. <p>The pdfwrite device can now create PDF/X-3 compliant documents using the lib/PDFX_def.ps prefix approach. See <a href="Ps2pdf.htm#PDFX"> Ps2pdf documentation.</a> <p>Also new is a Beta version level 2 Postscript output device, ps2write, which generates high-level PostScript including text and images and graphics. We encourage its use instead of the older pswrite when Level 2 PostScript is desired. Please send any comments or problem reports to <a href="mailto://bug-gs@ghostscript.com">bug-gs@ghostscript.com</a> or submit it to <a href="http://bugs.ghostscript.com">http://bugs.ghostscript.com.</a> <p> The following <a href="http://bugs.ghostscript.com/">bugs</a> were open at the time of this release: <blockquote> 465936, 578865, 592160, 610478, 626295, 686747, 686842, 686853, 687011, 687039, 687063, 687108, 687125, 687146, 687196, 687219, 687231, 687243, 687257, 687271, 687280, 687292, 687295, 687298, 687314, 687316, 687327, 687342, 687345, 687346, 687373, 687397, 687399, 687435, 687480, 687484, 687514, 687520, 687525, 687529, 687531, 687545, 687559, 687583, 687608, 687621, 687622, 687628, 687633, 687642, 687643, 687644, 687650, 687654, 687657, 687663, 687669, 687674, 687676, 687677, 687679, 687682, 687694, 687695, 687697, 687702, 687721, 687728, 687729, 687796, 687805, 687806, 687808, 687814, 687822, 687825, 687844, 687848, 687850, 687863, 687866, 687868, 687870, 687875, 687895, 687903, 687904, 687907, 687914, 687919, 687931, 687938, 687957, 687960, 687970, 687974, 687975, 687986, 687988, 687992, 687994, 687996, 688005, 688006, 688007, 688009, 688013, 688017, 688020, 688022, 688026, 688032, 688035, 688036, 688039, 688042, 688054, 688058, 688060, 688061, 688064, 688066, 688068, 688075, 688079, 688081, 688091, 688095, 688101, 688106, 688108, 688117, 688124, 688129, 688130, 688132, 688134, 688149, 688151, 688152, 688159, 688166, 688176, 688179, 688181, 688184, 688187, 688200, 688203, 688207, 688213, 688215, 688225, 688226, 688227, 688231, 688239, 688243, 688249, 688255, 688260, 688265, 688269, 688274, 688278, 688280, 688282, 688285, 688288, 688290, 688291, 688295, 688300, 688302, 688308, 688309, 688311, 688313, 688315, 688317, 688318, 688319, 688320, 688321. </blockquote> <h3><a name="8.52_Incompatible_changes"></a>Incompatible changes</h3> <p> There are no known incompatible changes at this point. <h3><a name="8.52_changelog"></a>Changelog</h3> <p><strong><a name="2005-10-07_1835"></a> 2005-10-07 18:35 Ray Johnston</strong></p> <blockquote> <pre> Update to final release date for 8.52</pre> <p>[doc/API.htm 1.52, doc/Bug-form.htm 1.48, doc/Bug-info.htm 1.48, doc/C-style.htm 1.54, doc/Commprod.htm 1.40, doc/Copying.htm 1.38, doc/DLL.htm 1.42, doc/Deprecated.htm 1.19, doc/Details8.htm 1.22, doc/Develop.htm 1.158, doc/Devices.htm 1.89, doc/Drivers.htm 1.57, doc/Fonts.htm 1.50, doc/Helpers.htm 1.43, doc/History1.htm 1.38, doc/History2.htm 1.38, doc/History3.htm 1.38, doc/History4.htm 1.38, doc/History5.htm 1.40, doc/History6.htm 1.55, doc/History7.htm 1.43, doc/History8.htm 1.27, doc/Htmstyle.htm 1.43, doc/Install.htm 1.55, doc/Issues.htm 1.51, doc/Language.htm 1.97, doc/Lib.htm 1.42, doc/Maintain.htm 1.49, doc/Make.htm 1.89, doc/News.htm 1.166, doc/Projects.htm 1.66, doc/Ps-style.htm 1.36, doc/Ps2epsi.htm 1.41, doc/Ps2pdf.htm 1.87, doc/Ps2ps2.htm 1.6, doc/Psfiles.htm 1.67, doc/Readme.htm 1.70, doc/Release.htm 1.94, doc/Source.htm 1.38, doc/Testing.htm 1.36, doc/Unix-lpr.htm 1.38, doc/Use.htm 1.135, doc/Xfonts.htm 1.38, doc/gs-vms.hlp 1.36, man/dvipdf.1 1.36, man/font2c.1 1.36, man/gs.1 1.37, man/gslp.1 1.36, man/gsnd.1 1.36, man/pdf2dsc.1 1.35, man/pdf2ps.1 1.37, man/pdfopt.1 1.35, man/pf2afm.1 1.36, man/pfbtopfa.1 1.37, man/printafm.1 1.36, man/ps2ascii.1 1.36, man/ps2epsi.1 1.34, man/ps2pdf.1 1.41, man/ps2pdfwr.1 1.40, man/ps2ps.1 1.43, man/wftopfa.1 1.36, src/version.mak 1.85]</p> </blockquote> <p><strong><a name="2005-10-07_1809"></a> 2005-10-07 18:09 Ray Johnston</strong></p> <blockquote> <pre> Remove this script that is no longer used in the release process. We now use cvs2cl.pl third party script.</pre> <p>[toolbin/cvs2hist.py 1.13]</p> </blockquote> <p><strong><a name="2005-10-07_1802"></a> 2005-10-07 18:02 Ray Johnston</strong></p> <blockquote> <pre> Fix serious bit rot for building History# and Details# from Changes and Details created by split_changelog.py. Allows the instructions in Release.htm to actually work. This file invoked by toolbin/makehist.tcl. DETAILS: This script really hasn't worked since we changed to the new format Changes that is created by cvs2cl.pl (instead of the now deprecated cvs2hist.py) For all releases after the aforementioned change, the History#.htm and Details#.htm were being hand edited. Hopefully the format created by this script will appear consistent with that created manually.</pre> <p>[toolbin/makeset.tcl 1.15]</p> </blockquote> <p><strong><a name="2005-10-05_1437"></a> 2005-10-05 14:37 Ray Johnston</strong></p> <blockquote> <pre> Two changes needed to fix a single bug. First, the GC 'limit' logic was collecting too frequently. Second, the PDF ICCBased colorspace logic was repeatedly creating a ReusableStreamDecode filter for the DataSource element. Fixes bug #687117 for customer #850.` DETAILS: The 'limit' value used to trigger a GC process was sometimes set to a number smaller than the 'inheritied' value. This resulted in a GC scan on every interpreter loop past the gc_signal check. Even with this fixed, the file ran slower than the -dNOGC case because the PDF interpreter 'csset' logic would set the ICCBased colorspace that would create a new ReusableStreamDecode filter from the DataSource on every 'Do' of the many images used to paint the logo (line by line). The reusablestreamdecode logic would allocate a 64000 byte string (only 3144 bytes of which were actually retained) so after about 8 images the allocations would exceed the limit and another GC would run (freeing up the space used by those 8 large strings and 7 of the small ones along with miscellaneous stuff). The fix for the second issue was to check if the ICCBased colorspace had already been 'resolved' (was a dicttype instead of a procedure that was an indirect reference). Since the initial processing of the ICCBased colorspace created a ReusableStreamDecode filter for the DataSource we are able to skip all of this preparation logic. EXPECTED DIFFERENCES. None (except a speed increase). The regression I ran reduced from 9000 sec to 8700 sec.</pre> <p>[lib/pdf_draw.ps 1.98, src/gsalloc.c 1.23]</p> </blockquote> <p><strong><a name="2005-10-04_1924"></a> 2005-10-04 19:24 Ray Johnston</strong></p> <blockquote> <pre> Update change logs for 8.52 release.</pre> <p>[doc/Changes.htm 1.59, doc/Details.htm 1.18]</p> </blockquote> <p><strong><a name="2005-10-04_1751"></a> 2005-10-04 17:51 Ray Johnston</strong></p> <blockquote> <pre> Tolerate 'null' as a single argument form of setcustomcolor. This is not documented in TN5044, but older Adobe ProcSets apparently use this mode. Fixes 'misc/cnurse.ps' of the smoke test used prior to release.</pre> <p>[lib/gs_lev2.ps 1.38]</p> </blockquote> <p><strong><a name="2005-10-04_0630"></a> 2005-10-04 06:30 Ray Johnston</strong></p> <blockquote> <pre> Fix (some of) the gcc compiler warnings (at least the really easy ones).</pre> <p>[src/genht.c 1.5, src/gsiorom.c 1.2, src/zdevice2.c 1.10, src/zdps1.c 1.8, src/zfcmap.c 1.17, src/ztrans.c 1.28]</p> </blockquote> <p><strong><a name="2005-10-04_0106"></a> 2005-10-04 01:06 Ray Johnston</strong></p> <blockquote> <pre> Commit updates for 8.52 release -- documentation dates and GS_PRODUCT</pre> <p>[doc/API.htm 1.51, doc/Bug-form.htm 1.47, doc/Bug-info.htm 1.47, doc/C-style.htm 1.53, doc/Commprod.htm 1.39, doc/Copying.htm 1.37, doc/DLL.htm 1.41, doc/Deprecated.htm 1.18, doc/Details8.htm 1.21, doc/Develop.htm 1.157, doc/Devices.htm 1.88, doc/Drivers.htm 1.56, doc/Fonts.htm 1.49, doc/Helpers.htm 1.42, doc/History1.htm 1.37, doc/History2.htm 1.37, doc/History3.htm 1.37, doc/History4.htm 1.37, doc/History5.htm 1.39, doc/History6.htm 1.54, doc/History7.htm 1.42, doc/History8.htm 1.26, doc/Htmstyle.htm 1.42, doc/Install.htm 1.54, doc/Issues.htm 1.50, doc/Language.htm 1.96, doc/Lib.htm 1.41, doc/Maintain.htm 1.48, doc/Make.htm 1.88, doc/News.htm 1.165, doc/Projects.htm 1.65, doc/Ps-style.htm 1.35, doc/Ps2epsi.htm 1.40, doc/Ps2pdf.htm 1.86, doc/Ps2ps2.htm 1.5, doc/Psfiles.htm 1.66, doc/Readme.htm 1.69, doc/Release.htm 1.93, doc/Source.htm 1.37, doc/Testing.htm 1.35, doc/Unix-lpr.htm 1.37, doc/Use.htm 1.134, doc/Xfonts.htm 1.37, doc/gs-vms.hlp 1.35, man/dvipdf.1 1.35, man/font2c.1 1.35, man/gs.1 1.36, man/gslp.1 1.35, man/gsnd.1 1.35, man/pdf2dsc.1 1.34, man/pdf2ps.1 1.36, man/pdfopt.1 1.34, man/pf2afm.1 1.35, man/pfbtopfa.1 1.36, man/printafm.1 1.35, man/ps2ascii.1 1.35, man/ps2epsi.1 1.33, man/ps2pdf.1 1.40, man/ps2pdfwr.1 1.39, man/ps2ps.1 1.42, man/wftopfa.1 1.35, src/gscdef.c 1.55, src/version.mak 1.84]</p> </blockquote> <p><strong><a name="2005-10-01_0440"></a> 2005-10-01 04:40 Dan Coby</strong></p> <blockquote> <pre> Fix for 688316 SeparationOrder device parameter causes "/undefined in --get--". DETAILS: The fix for 688192 created a problem with the handling of the SeparationOrder device parameter. That fix changed when device parameter values were updated into the device structure. This caused a problem when checking the colorant names for the SeparationOrder parameter.</pre> <p>[src/gdevdevn.c 1.28, src/gdevdevn.h 1.12]</p> </blockquote> <p><strong><a name="2005-09-30_1911"></a> 2005-09-30 19:11 Ray Johnston</strong></p> <blockquote> <pre> Add missing documentation for lib/PDFX_def.ps.</pre> <p>[doc/Psfiles.htm 1.65]</p> </blockquote> <p><strong><a name="2005-09-29_1835"></a> 2005-09-29 18:35 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters (continued 3). DETAILS : The first patch for the subject used an incompatible type for representation of HSamples, VSamples in the intermediate parameter list. It caused another compiler dependent effect when choosing DCT parameters. Also changed the dominatrion factor to pass color spaces of Altona-Testsuite_p2_S_x3.pdf as RGB-like ones. EXPECTED DIFFERENCES : None with Windows/MSVC2005. On Linux may fix more 2005-09-23 regressions, which left on 2005-09-29.</pre> <p>[src/gdevpsdi.c 1.45]</p> </blockquote> <p><strong><a name="2005-09-29_1524"></a> 2005-09-29 15:24 Igor Melichev</strong></p> <blockquote> <pre> PDF interpreter now processes ToUnicode CMaps when the target device is pdfwrite (continued). DETAILS : This minor fix removes an unintended debug printing. EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_font.ps 1.80]</p> </blockquote> <p><strong><a name="2005-09-29_0836"></a> 2005-09-29 08:36 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters (continued 2). DETAILS : The first patch for the subject defined an incorrect condition for matrix diagonal domination. In same time, the regression test tool detected differences on Linux, which are not appeared while testing on Windows. We found out that Windows and Linux builds apply different DCT encode parameters. We guess that the reason is that the patched code accesses the [2][3]th element of a [4][3] array. Such element doesn't exist theoretically, so the effect may be compiler dependent (rather we're wonder what exactly does it access on Linux, because [2][3] is still inside the array memory area). So now we fix the incorrect condition and then will check regressions again. EXPECTED DIFFERENCES : None with Windows/MSVC2005. May fix the 2005-09-23 regressions on Linux.</pre> <p>[src/gdevpsdi.c 1.44]</p> </blockquote> <p><strong><a name="2005-09-28_0433"></a> 2005-09-28 04:33 Dan Coby</strong></p> <blockquote> <pre> Fix for 688310 pdf open error in op_show_continue. DETAILS: This is another example of a file with a singular CTM while processing text. There already was some logic in pdf_ops.ps for handling this sort of situation. However it did not properly handle this case. The fix consists of extending the logic for handling singular CTMs.</pre> <p>[lib/pdf_ops.ps 1.41]</p> </blockquote> <p><strong><a name="2005-09-26_0820"></a> 2005-09-26 08:20 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : High level pattern handling was incomplete. DETAILS : Bug 688307 (the bug title is misleading). gdev_pdf_fill_mas must not call gx_default_fill_mask with a pattern color, which is dummy due to high level pattern handling. Actually it's a missed code branch since high level pattern were implemented. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.138, src/gdevpdfb.c 1.33]</p> </blockquote> <p><strong><a name="2005-09-23_1821"></a> 2005-09-23 18:21 Ray Johnston</strong></p> <blockquote> <pre> Change reporting of some noisy (irritating) Warnings generated from many PDF files that don't strictly follow the spec. Bug 688229. DETAILS: The "fonts with Subtype = /TrueType" and "Embedded font uses undefined proc" messages could occur MANY times in PDF files. I'm sure users will get the point as well with this approach that only gives the warnings once at the end of processing, with the list of offensive printed once. Particularly for the TrueType font issue it might make it easier to figure out which fonts are missing (and thus substituted) since each font is only listed once and the list is sorted (which will collect font families together). EXPTECTED DIFFERENCES. None (execpt the gs-stderr log will now be shorter).</pre> <p>[lib/pdf_font.ps 1.79, lib/pdf_main.ps 1.100]</p> </blockquote> <p><strong><a name="2005-09-22_1611"></a> 2005-09-22 16:11 Ray Johnston</strong></p> <blockquote> <pre> Fix handling of TrueType fonts with zero length name tables. Bug 688305 for customer 870. DETAILS: This worked with a very old gs_ttf.ps, but since we didn't have any such files in our regression suite, whatever caused the regression is unknown. Detecting zero length name tables and returning false is straightforward. EXPECTED DIFFERENCES. None (ran existing regression suite).</pre> <p>[lib/gs_ttf.ps 1.48]</p> </blockquote> <p><strong><a name="2005-09-21_1703"></a> 2005-09-21 17:03 Ray Johnston</strong></p> <blockquote> <pre> MSVC 6 cannot convert from int64 to double (not yet implemented error). Truncate to int prior to conversion to float.</pre> <p>[src/gdevpsdi.c 1.43]</p> </blockquote> <p><strong><a name="2005-09-21_0324"></a> 2005-09-21 03:24 Ray Johnston</strong></p> <blockquote> <pre> Fix handling of EOD sequences when decoding CCITT data with EndOfBlock false. Bug 688306 for customer 780. DETAILS: Although the PLRM implies that the CCITT EOD sequence(s) will not be present when EndOfBlock is false (the default is 'true'), Adobe Acrobat will create PostScript with EOD sequences after the CCITT even when EndOfBlock is false. There was a comment in the CCITT decoder about this, but once 'rows_left' went to zero, any EOD sequence was not consumed by the CCITTFaxDecode filter. The fix checks for and consumes any trailing EOD sequence even when the EndOfBlock parameter is false. IMHO, this is a really sloppy behaviour by Adobe Acrobat since they seem to just copy the CCITT data from the input PDF, but explicitly put EndOfBlock false even though the PDF did not have the parameter to the filter (defaulting to EndOfBlock true). EXPECTED DIFFERENCES: None. Regression test OK.</pre> <p>[src/scfd.c 1.9]</p> </blockquote> <p><strong><a name="2005-09-20_1135"></a> 2005-09-20 11:35 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters. DETAILS : Bug 687174 "(pdfwrite) DCT compression quality problem". It implements Raph's suggestion about choosing DCT parameters for 3-component images depending on the image color space. If color space looks like RGB, set ColorTransform to 1. If color space looks like Lab, set ColorTransform to 0. Otherwise set /HSamples [1 1 1 1] /VSamples [1 1 1 1]. See a motivation in the bug 687174. See comments in code about details of the hewristic. Minor change : pdf_setup_masked_image_converter called a memory allocator with a wrong client name. EXPECTED DIFFERENCES : test.pdf</pre> <p>[src/devs.mak 1.137, src/gdevpdfd.c 1.70, src/gdevpsdi.c 1.42]</p> </blockquote> <p><strong><a name="2005-09-19_1412"></a> 2005-09-19 14:12 Igor Melichev</strong></p> <blockquote> <pre> Fix: /SP pdfmark must synchronize the clipping path (continued). DETAILS : Bug 688167 "change of real number fomat from fixed to exponential format". This improves the clipping path synchronization as SaGS suggested (see the bug 688167 Comment #4). EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.50]</p> </blockquote> <p><strong><a name="2005-09-16_1901"></a> 2005-09-16 19:01 Ray Johnston</strong></p> <blockquote> <pre> Fix for double 'endstream' in a Content stream. Now endstream terminates the object the same way 'endobj' would. Bug 688303 for customer 670. EXPECTED DIFFERENCES: None (case did not exist in regression suite).</pre> <p>[lib/pdf_base.ps 1.48]</p> </blockquote> <p><strong><a name="2005-09-16_0617"></a> 2005-09-16 06:17 Ray Johnston</strong></p> <blockquote> <pre> Fix handling of paths so that 'cm' will affect pending path operations (fill stroke or clip). Verified that with this patch we do as Acrobat Reader from 4 through 7 does. Bug 688299 for customer 870. DETAILS: The basics of using 'upath', then 'uappend' to capture, then replay the path after the 'concat' done by 'cm' is straightforward, but since the path may not be used, there may be coordinates that are WAY out-of-range after an arbitrary 'cm' so we execute the 'uappend' inside a 'stopped' context. EXPECTED DIFFERENCES: None. I did a check of all PDF's in the regression suite -- none had any differences.</pre> <p>[lib/pdf_draw.ps 1.97]</p> </blockquote> <p><strong><a name="2005-09-16_0403"></a> 2005-09-16 04:03 Ray Johnston</strong></p> <blockquote> <pre> Correct edit problem with previous commit (copy/paste didn't get totally changed for src/gsiorom.c).</pre> <p>[doc/Develop.htm 1.156]</p> </blockquote> <p><strong><a name="2005-09-16_0359"></a> 2005-09-16 03:59 Ray Johnston</strong></p> <blockquote> <pre> Add missing documentation in Develop.htm and remove dead code commented out with C++ style comments to eliminate regression test squawks.</pre> <p>[doc/Develop.htm 1.155, src/mkromfs.c 1.2]</p> </blockquote> <p><strong><a name="2005-09-14_0713"></a> 2005-09-14 07:13 Ray Johnston</strong></p> <blockquote> <pre> Add a common case to an optimization check in the memflip function.</pre> <p>[src/gsutil.c 1.11]</p> </blockquote> <p><strong><a name="2005-09-14_0709"></a> 2005-09-14 07:09 Ray Johnston</strong></p> <blockquote> <pre> Prevent accessing past end of estack block which could occur if screen enum was not in the current estack block. EXPECTED DIFFERENCES. None. (this was only encountered in rare circumstances).</pre> <p>[src/zht.c 1.7]</p> </blockquote> <p><strong><a name="2005-09-12_1152"></a> 2005-09-12 11:52 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementing a generation of PDF/X-3 (continued). DETAILS : This change improves the documentation. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2pdf.htm 1.85]</p> </blockquote> <p><strong><a name="2005-09-12_1134"></a> 2005-09-12 11:34 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementing a generation of PDF/X-3. DETAILS : This implements the new feature, which is being coontrolled with a new command line option PDFX, and a new pdfwrite device paramewter with same name. 1. A documentation change, which explains the new feature. 2. A Postscript code change : the DeviceRGB color space substitution, a special handling of /PS pdfmark. 3. A new sample file gs/lib/PDFX_def.ps with default PDF/X-3 definitions. 4. A C code change : force CompatibilityLevel 1.3, force embedding all fonts, skip halftone phases and transfer functions, write TrimBox. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Develop.htm 1.154, doc/Ps2pdf.htm 1.84, lib/PDFX_def.ps 1.1, lib/gs_devcs.ps 1.7, lib/gs_pdfwr.ps 1.49, src/gdevpdf.c 1.124, src/gdevpdfb.h 1.13, src/gdevpdfg.c 1.68, src/gdevpdfp.c 1.53, src/gdevpdfx.h 1.136, src/gdevpdtf.c 1.46]</p> </blockquote> <p><strong><a name="2005-09-08_1732"></a> 2005-09-08 17:32 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Suppress floating point number format in pdfmark operands. DETAILS : Bug 688167 "change of real number fomat from fixed to exponential format". An unobvious point in this bug was to find that the coversion happens in Postscript code of the pdfmark handler rather than in C code of the PDF writer. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.48]</p> </blockquote> <p><strong><a name="2005-09-07_2043"></a> 2005-09-07 20:43 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Adjust the graphic state before executing a Form XObject. DETAILS : Bug 688293 "opdfread: Wrong graphics state when painting a Form XObject". Patch from SaGS (see Bug 688293). EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.84]</p> </blockquote> <p><strong><a name="2005-09-07_1808"></a> 2005-09-07 18:08 Ray Johnston</strong></p> <blockquote> <pre> Change to accept PDF with names that mis-use the '#" escape character when characters following the # are not hex (AR 7 does this). Bug 688297. EXPECTED DIFFERENCES: none.</pre> <p>[lib/pdf_base.ps 1.47]</p> </blockquote> <p><strong><a name="2005-09-06_2221"></a> 2005-09-06 22:21 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 12 (fix 2). DETAILS : The old code wrote a scratch data for the key /G of a soft mask dictionary, because the referent was freed earlier. Debugged with -Z?$@ SoftMaskDict.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdft.c 1.52]</p> </blockquote> <p><strong><a name="2005-09-06_2004"></a> 2005-09-06 20:04 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : The vector device virtual function dorect was not clipped by page. DETAILS : Bug 688279 "ps2write : maybe an incorrect sbstack bottom condition.". This change fixes a minor problem, which appears in ps2write only. Doing it almost for a clarity of the code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.69]</p> </blockquote> <p><strong><a name="2005-09-06_1718"></a> 2005-09-06 17:18 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : /BP pdfmark could create dead PDF objects. DETAILS : Bug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef". This change relates to pdfmark BP, EP, SP and PS. 1. Delay the object ID assignation untill the stream accumulation is completed. 2. Drop redundant equal objects, substituting references to an old one (Equal BP...EP objects appear when BP...EP portion is executed with _same_ graphic state). 3. Delay the storing in the named resource dictionary untill the stream accumulation is completed and redundant object is substituted. 4. gx_device_pdf::objname stores the last name for (3). It is being saved and restored in the substream stack. 5. The memory descriptor of gx_devoce_pdf is enhanced with objname, which is a pointer to string. 6. gsstruct.h adds another memory descriptor macro for (4). 7. Forward references mentioned in the bug 687560 are not supported and cause "undefined". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.123, src/gdevpdfb.h 1.12, src/gdevpdfm.c 1.49, src/gdevpdfx.h 1.135, src/gdevpdti.c 1.52, src/gsstruct.h 1.22]</p> </blockquote> <p><strong><a name="2005-09-06_1622"></a> 2005-09-06 16:22 Igor Melichev</strong></p> <blockquote> <pre> Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device (continued). DETAILS : The last patch for the subject appears incomplete. This one adds macros for parameter strings for pointer enumeration. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.122, src/gdevpdfx.h 1.134, src/gsstruct.h 1.21]</p> </blockquote> <p><strong><a name="2005-09-06_1347"></a> 2005-09-06 13:47 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : pdf_substitute_resource was misspelled. DETAILS : This a cosmetic syntaxical change. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.c 1.67, src/gdevpdfj.c 1.49, src/gdevpdft.c 1.51, src/gdevpdfu.c 1.87, src/gdevpdfx.h 1.133]</p> </blockquote> <p><strong><a name="2005-09-05_1418"></a> 2005-09-05 14:18 Igor Melichev</strong></p> <blockquote> <pre> Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device. DETAILS : We occasionally detected that gdev_pdf_put_params wrongly handled the OPDFReadProcsetPath parameter : the old code modifies the next field after gx_device_pdf::OPDFReadProcsetPath. It happens because c_param_write assumes the parameter type is gs_param_string (and doesn't check it neither at the compile time, nor at runtime), but the actual field type is gs_string, which is smaller in 4 bytes. When we fix the type of gx_device_pdf::OPDFReadProcsetPath, a problem appears in the garbager descriptor : a warning about a type cast appears. Analyzing it so far we found that in this case the garbager may relocate "persistent" parameter string, which is not allocated in the heap. For fixing the latter we define a new garbager method igc_reloc_param_string and few accessors to it, and use them in the gx_device_pdf memory descriptor. We choose this way because we know that other devices need same method for separation names. This patch consists of 2 parts : 1. The enhancement for the garbager, which also moves the definition of gs_param_string to the scope visible the garbager. This part modifies the files igc.c, igcstr.c, gsparam.h, gsstruct.h, gstypes.h, igcstr.h 2. The improvement for the pdfwrite device, which modifies other files : gdevpdfb.h, gdevpdfx.h, gdevpdf.c, gdevpdfu.c . Other devices may need a revision. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.83]</p> </blockquote> <p><strong><a name="2005-09-05_1418"></a> 2005-09-05 14:18 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Compact the output file. DETAILS : 1. Strip whitespaces and comments when writing procsets to the output file. 2. A new device parameter CompressEntireFile allows to apply LZWEncode either to the procset or to entire file. 3. When HaveTrueTypes is false, the related part of the procset is being skipped EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2ps2.htm 1.4, src/gdevpdf.c 1.121, src/gdevpdfb.h 1.11, src/gdevpdfp.c 1.52, src/gdevpdfu.c 1.86, src/gdevpdfx.h 1.132]</p> </blockquote> <p><strong><a name="2005-09-05_1358"></a> 2005-09-05 13:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device. DETAILS : We occasionally detected that gdev_pdf_put_params wrongly handled the OPDFReadProcsetPath parameter : the old code modifies the next field after gx_device_pdf::OPDFReadProcsetPath. It happens because c_param_write assumes the parameter type is gs_param_string (and doesn't check it neither at the compile time, nor at runtime), but the actual field type is gs_string, which is smaller in 4 bytes. When we fix the type of gx_device_pdf::OPDFReadProcsetPath, a problem appears in the garbager descriptor : a warning about a type cast appears. Analyzing it so far we found that in this case the garbager may relocate "persistent" parameter string, which is not allocated in the heap. For fixing the latter we define a new garbager method igc_reloc_param_string and few accessors to it, and use them in the gx_device_pdf memory descriptor. We choose this way because we know that other devices need same method for separation names. This patch consists of 2 parts : 1. The enhancement for the garbager, which also moves the definition of gs_param_string to the scope visible the garbager. This part modifies the files igc.c, igcstr.c, gsparam.h, gsstruct.h, gstypes.h, igcstr.h 2. The improvement for the pdfwrite device, which modifies other files : gdevpdfb.h, gdevpdfx.h, gdevpdf.c, gdevpdfu.c . Other devices may need a revision. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.120, src/gdevpdfb.h 1.10, src/gdevpdfu.c 1.85, src/gdevpdfx.h 1.131, src/gsparam.h 1.13, src/gsstruct.h 1.20, src/gstypes.h 1.7, src/igc.c 1.15, src/igcstr.c 1.7, src/igcstr.h 1.6]</p> </blockquote> <p><strong><a name="2005-09-04_2042"></a> 2005-09-04 20:42 Igor Melichev</strong></p> <blockquote> <pre> Type 1 hinter : Improve the criterion for stem recognition. DETAILS : Bug 687727 "Type 1 hinter : A horizontal line condition maybe too strong". Patch from Igor Melichev. 1. Many fonts, including URW TimesRoman, needs to apply alignemnt zones to upper or lower corners of a glyph. An example is '1' in TimesRoman. This patch detect upper and lower corners as local extremes by Y, and pass them to t1_hinter__find_zone. 2. After the change (1) we detected, that the document comparefiles/LD.pdf renders much worse. Analyzing it so far, we detected that the top of the left vertical arm of 'm' applies same hint as horizontal arc stems. To avoid this, this patch computes a "stem boundary quality", which is the tangent of the stem boundary, and use it as a priority for choosing a pole for stem alignment (the lower tangent, the higher priority). After the change (2) we detected that most Genoa test render differently. The reason appears that the old code erroneusely aligned a diagonal pole of the character 'm', which is placed between the right vertical arm and the nearest upper arc stem. This patch fixes that due to other (right) poles get a better priority, but to our apologies this progression causes numerous differences in rasters. EXPECTED DIFFERENCES : Almost ALL FILES with a text RENDER DIFFERENTLY. "normal" : N "000040cf.000_60.pdf" N "001-01.ps" N "001-13.ps" N "001-25.ps" N "002-09.ps" N "002-21.ps" N "002-33.ps" N "012-01.ps" N "012-05.ps" N "012-09.ps" N "012-13.ps" N "013-01.ps" N "013-05.ps" N "013-09.ps" N "013-13.ps" N "014-01.ps" N "014-05.ps" N "014-09.ps" N "014-13.ps" N "015-01.ps" N "015-05.ps" N "015-09.ps" N "016-01.ps" N "017-01.ps" N "018-01.ps" N "01_001.pdf" N "020-01.ps" N "023-01.ps" N "027-01.ps" N "027-05.ps" N "027-09.ps" N "028-01.ps" N "031-01.ps" N "031-05.ps" N "032-01.ps" N "032-07.ps" N "033-01.ps" N "033-52-5873.pdf" N "034-01.ps" N "034-10.ps" N "035-01.ps" N "035-07.ps" N "036-01.ps" N "038-01.ps" N "039-01.ps" N "040-01.ps" N "045-01.ps" N "055-01.ps" N "083-01.ps" N "083-05.ps" N "083-09.ps" N "083-13.ps" N "084-01.ps" N "091-01.ps" N "093-01.ps" N "094-01.ps" N "096-01.ps" N "102-01.ps" N "103-01.ps" N "104-01.ps" N "109-01.ps" N "110-01.ps" N "113-01.ps" N "118-01.ps" N "119-01.ps" N "119-10.ps" N "119-16.ps" N "119-23.ps" N "119-35.ps" N "119-41.ps" N "119-47.ps" N "120-01.ps" N "123-01.ps" N "123-05.ps" N "123-09.ps" N "124-01.ps" N "129-01.ps" N "136-01.ps" N "141-01.ps" N "148-01.ps" N "148-05.ps" N "148-11.ps" N "148-16.ps" N "149-01.ps" N "149-05.ps" N "150-01.ps" N "154-01.ps" N "158-01.ps" N "159.pdf" N "162-01.ps" N "165-01.ps" N "166-01.ps" N "169-01.ps" N "169-05.ps" N "169-09.ps" N "169-13.ps" N "170-01.ps" N "175-01.ps" N "176-01.ps" N "181-01.ps" N "184-01.ps" N "192-01.ps" N "194-01.ps" N "200-01.ps" N "205-01.ps" N "205-05.ps" N "205-09.ps" N "205-13.ps" N "206-01.ps" N "212-01.ps" N "213-01.ps" N "214-01.ps" N "215-01.ps" N "219-01.ps" N "220-01.ps" N "220-07.ps" N "222-01.ps" N "222-05.ps" N "222-09.ps" N "222-13.ps" N "223-01.ps" N "226-01.ps" N "227-01.ps" N "231-01.ps" N "233-01.ps" N "237-01.ps" N "238-01.ps" N "244-01.ps" N "245-01.ps" N "245-07.ps" N "245-13.ps" N "245-17.ps" N "246-01.ps" N "250-01.ps" N "251-01.ps" N "255-01.ps" N "257-01.ps" N "258-01.ps" N "260-01.ps" N "263-01.ps" N "264-01.ps" N "268-03.ps" N "268-04.ps" N "268-05.ps" N "268-06.ps" N "269-01.ps" N "270-01.ps" N "272-01.ps" N "276-01.ps" N "281-01.ps" N "282-01.ps" N "289-01.ps" N "296-01.ps" N "297-01.ps" N "298-01.ps" N "298-05.ps" N "298-09.ps" N "299-01.ps" N "303-01.ps" N "304-01.ps" N "307-01.ps" N "307-07.ps" N "307-13.ps" N "308-04.ps" N "310-04.ps" N "311-03.ps" N "313-01.ps" N "316-07.ps" N "320-01.ps" N "321-01.ps" N "321-05.ps" N "321-09.ps" N "325-01.ps" N "327-01.ps" N "330-01.ps" N "334-01.ps" N "335-01.ps" N "336-01.ps" N "401-01.ps" N "405-01.ps" N "409-01.ps" N "415-01.ps" N "421-01.ps" N "430-01.ps" N "442-01.ps" N "450-01.ps" N "455690.pdf" N "460-01.ps" N "463-01.ps" N "464-01-fixed.ps" N "468-01-fixed.ps" N "476-01-fixed.ps" N "476-01.ps" N "478-01.ps" N "483-05-fixed.ps" N "541.pdf" N "541_623.pdf" N "687572.pdf" N "86554321.pdf" N "acrobat.pdf" N "adesso1.pdf" N "adesso3.pdf" N "adesso7.pdf" N "ADOBE1-4.pdf" N "AdobeLic.pdf" N "alphabet.ps" N "Altona-Testsuite_p2_S_x3.pdf" N "Altona.Page_3.2002-09-27.pdf" N "Altona_Measure_1v1.pdf" N "Altona_Technical_1v1_x3.pdf" N "Altona_Visual_bb_1v1_x3.pdf" N "Altona_Visual_sb_1v1_x3.pdf" N "besttest.pdf" N "bla.ps" N "brochurep1.pdf" N "bug-gstest.pdf" N "Bug687044.ps" N "Bug687111.ps" N "Bug687311.pdf" N "Bug687546.ps" N "Bug687603.ps" N "Bug687672.pdf" N "Bug687698.ps" N "Bug687724.pdf" N "Bug687828.pdf" N "Bug687840.pdf" N "Bug687845.ps" N "bulletin.pdf" N "chartab.pdf" N "chess.ps" N "Dave_Barry.pdf" N "Fixed_Original.pdf" N "fonts.pdf" N "fonttest.pdf" N "H00216q.pdf" N "HeiseiMinStd.pdf" N "japan.ps" N "js.pdf" N "kazmir.pdf" N "keyboard.pdf" N "KozukaB-ILEmbed.pdf" N "laballade.pdf" N "LD.pdf" N "MagicEye.pdf" N "ngnews.pdf" N "ngnews1.pdf" N "NIL_0003.pdf" N "Openhuis_pdf_zw.pdf" N "Original.pdf" N "pdfopt_bug.pdf" N "pdftops.pdf" N "PixelisAd.pdf" N "prfmm.pdf" N "prob.pdf" N "pstopdf.pdf" N "pstopdfO3.pdf" N "PT.ps" N "QA_Inv.pdf" N "RealCities.pdf" N "RodinCIDEmbed.pdf" N "S2_Digitalproof-Forum_x3k.pdf" N "smdf.90441.102.pdf" N "Svd.pdf" N "test-hyperref.pdf" N "test.pdf" N "TextRize.pdf" N "time1.pdf" N "tpc2.ps" N "Type3stringwidth.ps" N "type42_glyph_index.ps" N "waterfal.ps" N "womanface.pdf" N "xgfddg.pdf" pdfwrite : P "0.pdf" P "000040cf.000_60.pdf" P "01_001.pdf" P "001-01.ps" P "001-13.ps" P "001-25.ps" P "002-09.ps" P "002-21.ps" P "002-33.ps" P "012-01.ps" P "012-05.ps" P "012-09.ps" P "012-13.ps" P "013-01.ps" P "013-05.ps" P "013-09.ps" P "013-13.ps" P "014-01.ps" P "014-05.ps" P "014-09.ps" P "014-13.ps" P "015-01.ps" P "015-05.ps" P "015-09.ps" P "016-01.ps" P "017-01.ps" P "018-01.ps" P "01_001.pdf" P "020-01.ps" P "023-01.ps" P "027-01.ps" P "027-05.ps" P "027-09.ps" P "028-01.ps" P "031-01.ps" P "031-05.ps" P "032-01.ps" P "032-07.ps" P "033-01.ps" P "033-52-5873.pdf" P "034-01.ps" P "034-10.ps" P "035-01.ps" P "035-07.ps" P "036-01.ps" P "038-01.ps" P "039-01.ps" P "040-01.ps" P "045-01.ps" P "055-01.ps" P "083-01.ps" P "083-05.ps" P "083-09.ps" P "083-13.ps" P "084-01.ps" P "091-01.ps" P "093-01.ps" P "094-01.ps" P "096-01.ps" P "102-01.ps" P "103-01.ps" P "104-01.ps" P "109-01.ps" P "110-01.ps" P "113-01.ps" P "118-01.ps" P "119-01.ps" P "119-10.ps" P "119-16.ps" P "119-23.ps" P "119-35.ps" P "119-41.ps" P "119-47.ps" P "120-01.ps" P "123-01.ps" P "123-05.ps" P "123-09.ps" P "124-01.ps" P "129-01.ps" P "136-01.ps" P "141-01.ps" P "148-01.ps" P "148-05.ps" P "148-11.ps" P "148-16.ps" P "149-01.ps" P "149-05.ps" P "150-01.ps" P "154-01.ps" P "158-01.ps" P "159.pdf" P "162-01.ps" P "165-01.ps" P "166-01.ps" P "169-01.ps" P "169-05.ps" P "169-09.ps" P "169-13.ps" P "170-01.ps" P "175-01.ps" P "176-01.ps" P "181-01.ps" P "184-01.ps" P "192-01.ps" P "194-01.ps" P "200-01.ps" P "205-01.ps" P "205-05.ps" P "205-09.ps" P "205-13.ps" P "206-01.ps" P "212-01.ps" P "213-01.ps" P "214-01.ps" P "215-01.ps" P "219-01.ps" P "220-01.ps" P "220-07.ps" P "222-01.ps" P "222-05.ps" P "222-09.ps" P "222-13.ps" P "223-01.ps" P "226-01.ps" P "227-01.ps" P "231-01.ps" P "233-01.ps" P "237-01.ps" P "238-01.ps" P "244-01.ps" P "245-01.ps" P "245-07.ps" P "245-13.ps" P "245-17.ps" P "246-01.ps" P "250-01.ps" P "251-01.ps" P "255-01.ps" P "257-01.ps" P "258-01.ps" P "260-01.ps" P "263-01.ps" P "264-01.ps" P "268-03.ps" P "268-04.ps" P "268-05.ps" P "268-06.ps" P "269-01.ps" P "270-01.ps" P "272-01.ps" P "276-01.ps" P "281-01.ps" P "282-01.ps" P "289-01.ps" P "296-01.ps" P "297-01.ps" P "298-01.ps" P "298-05.ps" P "298-09.ps" P "299-01.ps" P "303-01.ps" P "304-01.ps" P "307-01.ps" P "307-07.ps" P "307-13.ps" P "308-04.ps" P "310-04.ps" P "311-03.ps" P "313-01.ps" P "316-07.ps" P "320-01.ps" P "321-01.ps" P "321-05.ps" P "321-09.ps" P "325-01.ps" P "327-01.ps" P "330-01.ps" P "334-01.ps" P "335-01.ps" P "336-01.ps" P "401-01.ps" P "405-01.ps" P "409-01.ps" P "415-01.ps" P "421-01.ps" P "430-01.ps" P "442-01.ps" P "450-01.ps" P "455690.pdf" P "460-01.ps" P "463-01.ps" P "464-01-fixed.ps" P "468-01-fixed.ps" P "476-01-fixed.ps" P "476-01.ps" P "478-01.ps" P "483-05-fixed.ps" P "541.pdf" P "541_623.pdf" P "687572.pdf" P "86554321.pdf" P "acrobat.pdf" P "adesso1.pdf" P "adesso3.pdf" P "adesso7.pdf" P "adesso8.pdf" P "ADOBE1-4.pdf" P "alphabet.ps" P "Altona-Testsuite_p2_S_x3.pdf" P "Altona.Page_3.2002-09-27.pdf" P "Altona_Measure_1v1.pdf" P "Altona_Technical_1v1_x3.pdf" P "Altona_Visual_bb_1v1_x3.pdf" P "Altona_Visual_sb_1v1_x3.pdf" P "annots.pdf" P "besttest.pdf" P "bla.ps" P "brochurep1.pdf" P "bug-gstest.pdf" P "Bug687044.ps" P "Bug687111.ps" P "Bug687311.pdf" P "Bug687546.ps" P "Bug687603.ps" P "Bug687672.pdf" P "Bug687698.ps" P "Bug687724.pdf" P "Bug687828.pdf" P "Bug687840.pdf" P "Bug687845.ps" P "bulletin.pdf" P "chartab.pdf" P "chess.ps" P "Dave_Barry.pdf" P "Fixed_Original.pdf" P "fonts.pdf" P "fonttest.pdf" P "H00216q.pdf" P "HeiseiMinStd.pdf" P "japan.ps" P "js.pdf" P "kazmir.pdf" P "keyboard.pdf" P "KozukaB-ILEmbed.pdf" P "LD.pdf" P "MagicEye.pdf" P "ngnews.pdf" P "ngnews1.pdf" P "NIL_0003.pdf" P "Openhuis_pdf_zw.pdf" P "Original.pdf" P "p2b-100.pdf" P "pdfopt_bug.pdf" P "pdftops.pdf" P "PixelisAd.pdf" P "prfmm.pdf" P "prob.pdf" P "pstopdf.pdf" P "pstopdfO3.pdf" P "QA_Inv.pdf" P "RealCities.pdf" P "RodinCIDEmbed.pdf" P "S2_Digitalproof-Forum_x3k.pdf" P "smdf.90441.102.pdf" P "Svd.pdf" P "t.pdf" P "test-hyperref.pdf" P "test.pdf" P "test_multipage_prob.pdf" P "TextRize.pdf" P "time1.pdf" P "tpc2.ps" P "type42_glyph_index.ps" P "waterfal.ps" P "womanface.pdf" P "xgfddg.pdf"</pre> <p>[src/gxhintn.c 1.61, src/gxhintn.h 1.24]</p> </blockquote> <p><strong><a name="2005-09-04_0544"></a> 2005-09-04 05:44 Dan Coby</strong></p> <blockquote> <pre> Fix for 688275 Overprint problems in Display driver - Gs 8.50 and Gs 8.51. DETAILS: The cause of the problem was that gx_default_get_bits_rectangle did not properly handle a situation in which GX_RETURN_POINTER was not specified for a get_bits operation. The overprint logic is one of the few situations in which this option is not specified. The display device is one of the few situations that uses the default get_bits logic. This is the second problem that has been found in this combination.</pre> <p>[src/gdevdgbr.c 1.14, src/gdevdsp.c 1.35]</p> </blockquote> <p><strong><a name="2005-09-02_0554"></a> 2005-09-02 05:54 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 11 (fix 1). DETAILS : The ps2write device was broken with recent patches. Fixing it now. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfx.h 1.130]</p> </blockquote> <p><strong><a name="2005-09-01_2204"></a> 2005-09-01 22:04 Stefan Kemper</strong></p> <blockquote> <pre> Formatting cleanup for the printing of the Font samples. Fixes bug 688281 Thanks to: SaGS5495@hotmail.com</pre> <p>[lib/prfont.ps 1.7]</p> </blockquote> <p><strong><a name="2005-09-01_0005"></a> 2005-09-01 00:05 Alex Cherepanov</strong></p> <blockquote> <pre> Fix incorrect detection of the end of input data during processing of (next_code == lzw_decode_max) branch in s_LZWD_process(). Return the error status only when there's not enough data in the buffer and the buffer cannot be refilled. Fix bug 688287</pre> <p>[src/slzwd.c 1.6]</p> </blockquote> <p><strong><a name="2005-08-31_1834"></a> 2005-08-31 18:34 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 10, final. DETAILS : This completes the fix for the bug 687168 "(pdfwrite) Transparency as a high level object" It switches on the new code by changing the default value for the HaveTransparency option. EXPECTED DIFFERENCES : pdfwrite : ai2.pdf dina3_watermark.pdf SoftMaskGroup.pdf</pre> <p>[src/gdevpdfb.h 1.9]</p> </blockquote> <p><strong><a name="2005-08-31_1831"></a> 2005-08-31 18:31 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Upgrading the default CompatibilityLevel to 1.4 . THIS IS INCOMPATIBLE CHANGE. We believe that CompatibilityLevel=1.3 is now obsolete, because most viewers can handle PDF 1.4 . If an user needs to create a document for older viewers, he should specify CompatibilityLevel explicitly. Note that PDFSETTINGS parameter lists have been upgraded also. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2pdf.htm 1.83, lib/gs_pdfwr.ps 1.47, lib/ps2pdf 1.4, lib/ps2pdf.bat 1.9, lib/ps2pdf.cmd 1.4, src/gdevpdf.c 1.119]</p> </blockquote> <p><strong><a name="2005-08-31_1529"></a> 2005-08-31 15:29 Ray Johnston</strong></p> <blockquote> <pre> Update map_cmyk_color function to modern version (was old style). This should complete jpegcmyk for correct behaviour.</pre> <p>[src/gdevjpeg.c 1.10]</p> </blockquote> <p><strong><a name="2005-08-31_1431"></a> 2005-08-31 14:31 Ray Johnston</strong></p> <blockquote> <pre> Add jpegcmyk device (module missed in previous commit).</pre> <p>[src/gdevjpeg.c 1.9]</p> </blockquote> <p><strong><a name="2005-08-31_1235"></a> 2005-08-31 12:35 Igor Melichev</strong></p> <blockquote> <pre> Documenting the new pdfwrite device paramentr HaveTransparency. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2pdf.htm 1.82]</p> </blockquote> <p><strong><a name="2005-08-31_1118"></a> 2005-08-31 11:18 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 9. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" It simplifies the logic of the HaveTransparency flag. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfp.c 1.51, src/gdevpdft.c 1.50]</p> </blockquote> <p><strong><a name="2005-08-31_1107"></a> 2005-08-31 11:07 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 8. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" It applies pdf_substitue_resource to transparency-related objects. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdft.c 1.49]</p> </blockquote> <p><strong><a name="2005-08-31_1102"></a> 2005-08-31 11:02 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A code restructurisation : factor out pdf_substitue_resource. DETAILS : This change is algorithmicly equivalent. pdf_substitue_resource is a new function, which replaces redundant code fragments. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.c 1.66, src/gdevpdfj.c 1.48, src/gdevpdfu.c 1.84, src/gdevpdfx.h 1.129]</p> </blockquote> <p><strong><a name="2005-08-31_0740"></a> 2005-08-31 07:40 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 7. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" 1. Restructurize the code in gdevpdft.c . 2. Provide a delayed obgect ID assignation in gdevpdft.c . 3. gdevpdfb.h, gdevpdfx.h slightly changed for (2). EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfb.h 1.8, src/gdevpdft.c 1.48, src/gdevpdfx.h 1.128, src/gdevpdti.c 1.51]</p> </blockquote> <p><strong><a name="2005-08-31_0559"></a> 2005-08-31 05:59 Ray Johnston</strong></p> <blockquote> <pre> Remove inadvertent commit that included png48 device.</pre> <p>[src/msvc32.mak 1.75]</p> </blockquote> <p><strong><a name="2005-08-31_0552"></a> 2005-08-31 05:52 Ray Johnston</strong></p> <blockquote> <pre> Add jpegcmyk device.</pre> <p>[src/bcwin32.mak 1.38, src/devs.mak 1.136, src/macos-mcp.mak 1.35, src/macosx.mak 1.28, src/msvc32.mak 1.74, src/openvms.mak 1.41, src/os2.mak 1.47, src/unix-gcc.mak 1.50, src/unixansi.mak 1.41, src/watcw32.mak 1.35]</p> </blockquote> <p><strong><a name="2005-08-31_0341"></a> 2005-08-31 03:41 Dan Coby</strong></p> <blockquote> <pre> Fix for 688252 Signal 11 in set_color_ht_le_4 on AMD64. The fix comes from Alex Cherepanov. Add a cast for force signed math when working with a signed and unsigned value.</pre> <p>[src/gxcht.c 1.17]</p> </blockquote> <p><strong><a name="2005-08-30_2326"></a> 2005-08-30 23:26 Alex Cherepanov</strong></p> <blockquote> <pre> Encode the indication that the EPS file has been cropped into EPSBoundingBoxState and suppres subsequent messages about cropping the file. The warning is false when BoundingBox preceeds HiResBoundingBox and BoundingBox causes cropping but HiResBoundingBox doesn't. Fix bug 688062</pre> <p>[lib/gs_epsf.ps 1.15]</p> </blockquote> <p><strong><a name="2005-08-30_2319"></a> 2005-08-30 23:19 Ray Johnston</strong></p> <blockquote> <pre> Fix handling of zero length input files so that .peekstring does not give a rangecheck error. Bug 688199. DETAILS: Following Russell Lang's suggestion, the zpeekstring function appeared to have been (at one time) designed so that EOFC returned an empty string, but the check for requested len > bsize had priority, and when the file was closed, the 'bsize' was reset to 0. I removed the "HACK" check to after the check for status == EOFC.</pre> <p>[src/zfileio.c 1.18]</p> </blockquote> <p><strong><a name="2005-08-30_1912"></a> 2005-08-30 19:12 Ray Johnston</strong></p> <blockquote> <pre> Fix for large 'loca' table counts in TrueType fonts causing stackoverflow. Bug 688277 for customer 870. DETAILS: While the MaxOpStack userparam (default value 50000 in gs_init.ps) could work around this problem, a cleaner and more efficient solution is to create the array for the 'loca' values, then fill it.</pre> <p>[lib/gs_ttf.ps 1.47]</p> </blockquote> <p><strong><a name="2005-08-30_1732"></a> 2005-08-30 17:32 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 6. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" The last patch was commited with errors. This patch fixes that. EXPECTED DIFFERENCES : None.</pre> <p>[src/ztrans.c 1.27]</p> </blockquote> <p><strong><a name="2005-08-30_1708"></a> 2005-08-30 17:08 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 5. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" The last patch was commited with errors. This patch fixes that. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevp14.c 1.34, src/gstrans.h 1.15]</p> </blockquote> <p><strong><a name="2005-08-30_1649"></a> 2005-08-30 16:49 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 4. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" This patch debugs soft mask groups. 1. The pdf14 device appears to use soft mask Background converted into DeviceGray. We believe it is incorrect, but we don't want to fix it now. To provide the correct data for high level devices we added a new field GrayBackground, which keeps the Background color converted into DeviceGray. Background now keeps the original Background, specified in the blend color space. 2. Do not use gsave-grestore when creating a soft mask with .begintransparencygroup, because high level devices need to modify the graphic state with storing the sift mask ID. The new code uses currentcolorspace-setcolorspace instead gsave-grestore. EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_draw.ps 1.96, src/gdevp14.c 1.33, src/gdevpdft.c 1.47, src/gstparam.h 1.15, src/gstrans.c 1.25, src/int.mak 1.136, src/ztrans.c 1.26]</p> </blockquote> <p><strong><a name="2005-08-30_1301"></a> 2005-08-30 13:01 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 3. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" This patch completes the graphic state synchronization. A new field soft_mask_id is added to gs_imager_state. High level devices use it for storing an ID of the current soft mask. Currently it doesn't affect low level devices. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.c 1.65, src/gdevpdft.c 1.46, src/gdevpdfx.h 1.127, src/gstrans.c 1.24, src/gxistate.h 1.23]</p> </blockquote> <p><strong><a name="2005-08-30_1049"></a> 2005-08-30 10:49 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects, part 2. DETAILS : This is a continuation of the fix the bug 687168 "(pdfwrite) Transparency as a high level object" This patch provides an accumulation of a transparency mask group as a PDF command stream, a creation of SMask dictionaries and a synchronization of the graphic state with them. The graphic state synchronization is incomplete due to insufficient data supplied by the graphics library when executong a grestore. It will be fixed later. pdf_substream_save_s::soft_mask_dict is added to handle nested mask groups. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfb.h 1.7, src/gdevpdft.c 1.45, src/gdevpdfx.h 1.126, src/gdevpdti.c 1.50, src/gsstruct.h 1.19]</p> </blockquote> <p><strong><a name="2005-08-30_0906"></a> 2005-08-30 09:06 Igor Melichev</strong></p> <blockquote> <pre> Fix (device intervace, PDF interpreter) : High level devices need to know whether the mask is an image or a group. DETAILS : This is the fourth preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" A high level device needs to know whether a transparency mask is a group or an image. To provide this data we split the operator .begintransparencymask into .begintransparencymaskgroup and .begintransparencymaskimage, which should be invoked in appropriate cases. The structure gs_pdf14trans_params_s passes a new flag mask_is_image. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Language.htm 1.95, lib/pdf_draw.ps 1.95, lib/pdf_ops.ps 1.40, src/gstrans.c 1.23, src/gstrans.h 1.14, src/ztrans.c 1.25]</p> </blockquote> <p><strong><a name="2005-08-30_0638"></a> 2005-08-30 06:38 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc warnings. DETAILS : This fixes some Cygwin/gcc warnings and improves few comments. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevdevn.c 1.27, src/gdevpdf.c 1.118, src/gdevpsd.c 1.23, src/gdevtsep.c 1.9, src/gsistate.c 1.12, src/gxpcopy.c 1.26, src/zmedia2.c 1.19]</p> </blockquote> <p><strong><a name="2005-08-29_1959"></a> 2005-08-29 19:59 Ray Johnston</strong></p> <blockquote> <pre> Invalid xref was not detected causing some objects to be defined as 'null' which could cause 'typecheck' or other errors. Bug 688285 for customer #870. DETAILS: The xref subsection count was one too small, so there was one xref entry that was being interpreted as a new subsection. Detect the trailing 'n' garbage (any non-whitespace) and signal an error so that the 'rebuild' logic can recover the correct xref. EXPECTED DIFFERENCES. none (tested all pdf files in comparefiles).</pre> <p>[lib/pdf_main.ps 1.99]</p> </blockquote> <p><strong><a name="2005-08-29_1821"></a> 2005-08-29 18:21 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handling transparency as a high level objects. DETAILS : This is an initial commit for the high level handler to pdfwrite. It fixes the bug 687168 "(pdfwrite) Transparency as a high level object" It defines a new distiller parameter HaveTransparency. When it is false (default), the behavior is equivalent to the old one - the transparency is being converted into a plane image. The value true only works with CompatibilityLevel>=1.4 . In this case transparency is being written to output as high level objects. The writtemn objects are not necesserily repear the structure of the input document, because the PDF interpreter performs some simplifications, which can't be recovered by the pdfwrite device. The main conversion happens in gdevpdft.c . See comments in there. Two new resource types are being added - resourceSoftMaskDict, resourceGroup. Doing so to allow a further optimization with merging duplicated objects of such types. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Develop.htm 1.153, src/devs.mak 1.135, src/gdevpdf.c 1.117, src/gdevpdfb.h 1.6, src/gdevpdfg.c 1.64, src/gdevpdfg.h 1.42, src/gdevpdfi.c 1.73, src/gdevpdfj.c 1.47, src/gdevpdfp.c 1.50, src/gdevpdft.c 1.44, src/gdevpdfu.c 1.83, src/gdevpdfx.h 1.125]</p> </blockquote> <p><strong><a name="2005-08-29_1812"></a> 2005-08-29 18:12 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Provide a bbox for .begintransparencygroup (issue 2). DETAILS : This is the second attempt of the second preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" The last patch about the bbox appear incorrect due to the device transparency handler receives the image bbox data when CTM is concatenated with the image matrix. This patch almost restores the old code except image bbox is changed from 0 0 0 0 to 0 0 1 1, which is the right rectangle in the image coordinates. EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_draw.ps 1.94]</p> </blockquote> <p><strong><a name="2005-08-29_1558"></a> 2005-08-29 15:58 Igor Melichev</strong></p> <blockquote> <pre> Fix: Validate the number of transparency Background components. DETAILS : The old code never checked whether a transparency Background has a proper number of components. It could cause an indeterministic behavior with incorrect documents. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevp14.c 1.32, src/gstrans.c 1.22]</p> </blockquote> <p><strong><a name="2005-08-29_1525"></a> 2005-08-29 15:25 Igor Melichev</strong></p> <blockquote> <pre> Fix (device interface): Provide an access for the number of transparency Background components for high level devices, part 2. DETAILS : This continues the third preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" The last patch has a minor inaccuracy : the field Background_components defined as bool. It must be int. EXPECTED DIFFERENCES : None.</pre> <p>[src/gstparam.h 1.14, src/gstrans.h 1.13]</p> </blockquote> <p><strong><a name="2005-08-29_1518"></a> 2005-08-29 15:18 Igor Melichev</strong></p> <blockquote> <pre> Fix (device interface): Provide an access for the number of transparency Background components for high level devices. DETAILS : This is a third preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" This change is algorithmically equivalent. The member has_Background is now replaced with Background_components, which stores the number of Background components. It is visible for devices when the create_compositor method is called with PDF14_BEGIN_TRANS_GROUP. The clist file format has been slightly changed : the field Background_components is now written into a separate byte, and unused Background components are being skipped. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevp14.c 1.31, src/gstparam.h 1.13, src/gstrans.c 1.21, src/gstrans.h 1.12, src/ztrans.c 1.24]</p> </blockquote> <p><strong><a name="2005-08-29_1405"></a> 2005-08-29 14:05 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : provide a bbox for .begintransparencygroup . DETAILS : This is a second preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" The old code calls .begintransparencygroup with zero bbox when processing a Type 3 image with SMask. This patch computes the bbox from the image coordinates in order to provide data for the high level transparency handler. EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_draw.ps 1.93]</p> </blockquote> <p><strong><a name="2005-08-29_1251"></a> 2005-08-29 12:51 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Use DeviceGray when writing SMask image. DETAILS : This is a preparation for fixing the bug 687168 "(pdfwrite) Transparency as a high level object" The old code tried to use DevicePixel while writing a SMask image. Currently this branch never executes because the current code always converts transparency to a plain image. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfb.h 1.5, src/gdevpdfi.c 1.72, src/gdevpdfx.h 1.124]</p> </blockquote> <p><strong><a name="2005-08-25_1534"></a> 2005-08-25 15:34 Ray Johnston</strong></p> <blockquote> <pre> Change ResusableStreamDecode filter implementation to avoid using .bigstring so that languagelevel 3 is not required for this filter. Patch thanks to mat. Gheorghe Savulescu. Bug 688150. DETAILS: In general, running at Language Level 2 by using .setlanguagelevel is not supported when using features that are part of LanguageLevel 3, such as filters that are part of LL3, but this patch is simple and low risk so I am adding it and closing the bug.</pre> <p>[lib/gs_frsd.ps 1.9]</p> </blockquote> <p><strong><a name="2005-08-24_1902"></a> 2005-08-24 19:02 Ralph Giles</strong></p> <blockquote> <pre> Partial support for a compressed %rom% iodevice. It is enabled by adding romfs.dev to FEATURE_DEVS in the top-level Makefile. This also includes a C commandline-utility 'mkromfs' that takes a directory and creates a compressed image of it as a file. Currently the %rom% iodevice in gsiorom.c reads this directly. The compressed image is a list of paths with offset pointers, each offset pointing to the beginning of a series of zlib- compressed blocks comprising the file. This gets us pretty good (typically 50% or better) compression of the support files while still allowing relatively fast seek and random access. TODO: 1. Have mkromfs trace through the include directives in lib/ so that only those postscript files required by Ghostscript are included, the same as geninit does now. Resources/ and fonts/ can still be included as-is. 2. Have mkromfs (or a separate tool) general a C file (or sequence of them, so the data can be compiled directly into the Ghostscript executable. And of course modify gsiorom.c to pull its data from there instead of a literal file. 3. Integrate mkromfs into the build system and replace the existing geninit code. Setting COMPILE_INITS=1 in the top-level Makefile should automatically construct and compile in the compressed image and enable the romfs FEATURE_DEV 4. Switch to a b-tree for the block pointer index, so that file access remains fast if someone dumps in a huge number of Resources or fonts. Right now it does a linear search, which is fast enough for the current complement but will cause a problem as some point.</pre> <p>[src/Makefile.in 1.41, src/gsiorom.c 1.1, src/lib.mak 1.211, src/mkromfs.c 1.1]</p> </blockquote> <p><strong><a name="2005-08-24_1704"></a> 2005-08-24 17:04 Raph Levien</strong></p> <blockquote> <pre> Cleanup of error message "printquit" calls in pf2afm, mostly to add missing newlines. Thanks to Paul Vojta for the patch.</pre> <p>[lib/pf2afm.ps 1.8]</p> </blockquote> <p><strong><a name="2005-08-24_1703"></a> 2005-08-24 17:03 Igor Melichev</strong></p> <blockquote> <pre> Fix (the device interface) : High level devices need an access to a transparency transfer function object. DETAILS : It adds "gs_function_t *transfer_function" to gs_pdf14trans_params_s and enhances a garbager descriptor st_pdf14trans. We think that such pointer is alvays have a correct stability, because the transparency only comes from the PDF interpreter, which doesn't create graphic states in the global memory. Otherwise the function object must be global as well. Unfortunately we don't have a validation mechanizm right now, but likely it will appear with fixing the bug 688226. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevp14.c 1.30, src/gstparam.h 1.12, src/gstrans.c 1.20, src/gstrans.h 1.11]</p> </blockquote> <p><strong><a name="2005-08-23_1926"></a> 2005-08-23 19:26 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Improve the logic of combining a text rotation with ViewingOrientation. DETAILS : Bug 687800 "%%ViewingOrientation not processed by pdfwrite". We can't say that we perfectly understand what rules Adobe uses to combine them, becaue the explanation in "Technical Note #5151 Version :Acrobat 6.0 Acrobat Distiller Parameters" page 50 is incomplete. But with this change the result looks more compatible to Adobe. EXPECTED DIFFERENCES : "Bug687044.ps" "Bug687603.ps"</pre> <p>[src/gdevpdf.c 1.116]</p> </blockquote> <p><strong><a name="2005-08-23_1734"></a> 2005-08-23 17:34 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : Allow degenerate CTM by a rendering with no hinting. DETAILS : This is a fix for a part of the bug 688065 "incorrect handling of type 1 fonts at 0 0 scale", which relates to "1 0 scale". The case "0 0 scale" was fixed earlier. With degenerate CTM the old code fails with 'rangecheck' due to the hinter logics needs an inverse CTM. However some documents set "1 0 scale" to compute text width. The new code does render a text with degenerate CTM with no hinting. We could implement an optimized algorithm for this with a simple rendering of a line which is a projection of the glyph, but we have no engineering resources for this optimization. We believe that such optimisation isn't much useful. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.60]</p> </blockquote> <p><strong><a name="2005-08-23_1258"></a> 2005-08-23 12:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite and other vector devices) : A compatibility to Adobe when stroking with a degenerate CTM. DETAILS : Bug 687901 '"wrong operand type" error'. See comment in code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.68]</p> </blockquote> <p><strong><a name="2005-08-23_1126"></a> 2005-08-23 11:26 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite and other vector devices) : Indeterministic result when stroking a path with a degenerate CTM. DETAILS : It fixes the indeterministic habavior with the test document of the Bug 687901 '"wrong operand type" error', but doesn't fix the bug. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevvec.c 1.27]</p> </blockquote> <p><strong><a name="2005-08-22_2130"></a> 2005-08-22 21:30 Igor Melichev</strong></p> <blockquote> <pre> Fix: /SP pdfmark must synchronize the clipping path. DETAILS : Bug 687558 "Wrong clipping path with /SP pdfmark". This patch consists of 2 parts : 1. A hack for synchronizing the clipping path in 'pdfmark'. We need to use a hack, because the implementation of 'pdfmark' is based on the device method put_params, and there is no regular way to pass the imager state or the clipping path through it. The hack paints something outside the device bbox, so that the painting doesn't appear in the output. 2. An improvement to the pdfwrite device, which skips a stroking, if it appears entirely outside the clipping box. That improvement appears some imperfect due to a compatibility to the hack (1) - see comment in code. The imperfection is the synchronization of a clipping path when a document strokes outside the clipping box. We believe that such cases are rare, so the imperfection isn't important. A progression appears while a charproc accumulation : the old code accumulated strokes outside the bounding box set by 'setcachedevice', but the new one does not. The new one appears compatible to Adobe Distiller 5. EXPECTED DIFFERENCES : pdfwrite 72 dpi : 015-09.ps</pre> <p>[lib/gs_pdfwr.ps 1.46, src/gdevpdfd.c 1.67]</p> </blockquote> <p><strong><a name="2005-08-22_2129"></a> 2005-08-22 21:29 Igor Melichev</strong></p> <blockquote> <pre> The filling algorithm : optimize paths with many subpaths (continued). DETAILS : The last patch can cause a dangling pointer subpath_current. Rather we don't use it, it may be harmful for the garbager. This patch fixes that. Minor change : removed an unuseful type case and empty line. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpcopy.c 1.25]</p> </blockquote> <p><strong><a name="2005-08-22_1429"></a> 2005-08-22 14:29 Igor Melichev</strong></p> <blockquote> <pre> The filling algorithm : optimize paths with many subpaths. DETAILS : Bug 686996 "Orientation has massive effect on render time". It fills a path consisting of 4440 subpaths, each of which is a quasi-rectangle (or a rectangle with a fixed_fraction noise). If a path has over 50 subpaths, we try to merge subpaths by common vertical lines. This works around a poor 3d party software, which generates a path as a huge number of contacting rectangles. An additional complexity happens due to the sample document defines multiple quasi-colinear lines instead colinear ones. An example : {{362254, 42905}, {362253, 204152}} and {{362253, 42881},{362253, 204152}}. We believe that with a huge number of contours the precision of the rendering doesn't need to be so strong as with a small number. Therefore we replace quasi-colinear lines with colinear ones. Another smart point is which pairs of lines to be checked for colinearity. Obviousely checking all pairs would be too slow. Probably we can assume that the Postscript writer orders rectangles by the trasversal direction, so colinear pairs appear in the path within a small window, which roughly is the number of spot holes multiplied by 4. (Well, one can construct a worse path, but unlikely it is practical). This patch hardcodes few arbitrary constants, which may need further improvements. See commnmets in code for more details. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.122, src/gxpath.h 1.16, src/gxpcopy.c 1.24]</p> </blockquote> <p><strong><a name="2005-08-18_0807"></a> 2005-08-18 08:07 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improve the documentation about Policies.PageSize . EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2ps2.htm 1.3]</p> </blockquote> <p><strong><a name="2005-08-17_2154"></a> 2005-08-17 21:54 Igor Melichev</strong></p> <blockquote> <pre> PDF interpreter now processes ToUnicode CMaps when the target device is pdfwrite. DETAILS : Bug 685335 "PDF interpreter doesn't process ToUnicode". The PDF interpreter now converts ToUnicode CMaps into FontInfo.GlyphNames2Unicode, which PS interpreter passes to high level devices, and the pdfwrite device converts it again into ToUnicode. Therefore re-distilling a PDF file with GS|pdfwrite preserves the searchability. Before now it was lost. Currently this stuff works only when the output device is pdfwrite. Doing so to save the processor time with raster devices. In future the condition in .processToUnicode may need an enhancement. We found that some documents define ToUnicode incorrectly. For now we skip cases, in which ToUnicode is defined to a name, because the PDF specification requires it to be a stream. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_cmap.ps 1.19, lib/pdf_font.ps 1.78]</p> </blockquote> <p><strong><a name="2005-08-17_1830"></a> 2005-08-17 18:30 Ray Johnston</strong></p> <blockquote> <pre> Previous change for ignoring 0 area clip path was not sufficient and made other files misbehave. Fixes bugs 688121 and 688259, reopen 687136. DETAILS: Thanks to Dan for identifying the change that caused 688259 to fail. I had coincidentally been looking in the same area for 688121. 687136 will require more analysis and a different patch, and the patch will need to be tested against the files for 688121 and 688259 along with the full regression suite. `</pre> <p>[lib/pdf_ops.ps 1.39]</p> </blockquote> <p><strong><a name="2005-08-17_1440"></a> 2005-08-17 14:40 Igor Melichev</strong></p> <blockquote> <pre> Fix : Unconforming line join. DETAILS : Ghostscript Bug 688126 "Wrong line join". 1. The old code applied a bewel join while flattening a curve. Such behavior appears incompatible to Adobe CPSI 3010.105. Language.htm said that it was done with .setcurvejoin for a compatibility to Adobe implementations. We believe that modern Adobe implementations are not such, and therefore we change the default value of .setcurvejoin to -1, which actually disables a curve join by default. The documentation is being updated accordingly. 2. Since round join always paints a full circle (see comment in add_round_cap), and since such circle doesn't appear when CPSI paints a flattened curve, we conclude that round join isn't applied to flattened curves. Therefore we change the condition in gxstroke.c to replace round join with bevel join for flattened curves. Note that PDF 1.5 requires to paint a "pieslice-shaped figure", rather than PDF 1.4 and PLRM3 does a round. Thus, GS code appears some obsolete, and we'll open a separate bug 688269 about that. EXPECTED DIFFERENCES : Visible differences at 300dpi with 034-01.ps, 123-05.ps. Numerous single pixel differences stroking curves. normal, 72 dpi : "012-05.ps" "012-13.ps" "013-05.ps" "013-13.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-05.ps" "015-09.ps" "027-09.ps" "034-01.ps" "034-10.ps" "083-05.ps" "083-13.ps" "123-05.ps" "176-01.ps" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "289-01.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-09.ps" "ai2.pdf" "Bug687812.ps" "bugsample.pdf" "messenger16.pdf" "Openhuis_pdf_zw.pdf" "tiger.eps" normal,300dpi : "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-05.ps" "015-09.ps" "027-01.ps" "027-05.ps" "027-09.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "045-01.ps" "083-05.ps" "083-09.ps" "083-13.ps" "123-01.ps" "123-05.ps" "123-09.ps" "136-01.ps" "148-16.ps" "149-05.ps" "150-01.ps" "154-01.ps" "158-01.ps" "176-01.ps" "192-01.ps" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "220-01.ps" "220-07.ps" "237-01.ps" "245-13.ps" "251-01.ps" "255-01.ps" "258-01.ps" "269-01.ps" "281-01.ps" "289-01.ps" "297-01.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-09.ps" "86554321.pdf" "adesso8.pdf" "ai2.pdf" "besttest.pdf" "Bug687044.ps" "Bug687489.ps" "Bug687724.pdf" "Bug687812.ps" "Bug687840.pdf" "bugsample.pdf" "ca.pdf" "chartab.pdf" "Clarke Tate Manns Chinese.ai" "escher.ps" "golfer.eps" "messenger.pdf" "messenger16.pdf" "Openhuis_pdf_zw.pdf" "p2b-100.pdf" "si_tg_brochure.pdf" "Svd.pdf" "t.pdf" "tiger.eps" pdfwrite, 72dpi : "012-05.ps" "012-13.ps" "013-05.ps" "013-13.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-05.ps" "015-09.ps" "027-01.ps" "027-09.ps" "034-01.ps" "034-10.ps" "083-05.ps" "083-13.ps" "176-01.ps" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "220-07.ps" "237-01.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-09.ps" "adesso8.pdf" "ai2.pdf" "annots.pdf" "Bug687812.ps" "chartab.pdf" "messenger.pdf" "messenger16.pdf" "Openhuis_pdf_zw.pdf" "tiger.eps" pdfwrite, 300dpi : "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-05.ps" "015-09.ps" "017-01.ps" "020-01.ps" "027-01.ps" "027-05.ps" "027-09.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "039-01.ps" "045-01.ps" "083-05.ps" "083-09.ps" "083-13.ps" "104-01.ps" "123-09.ps" "136-01.ps" "148-16.ps" "154-01.ps" "158-01.ps" "165-01.ps" "176-01.ps" "205-01.ps" "205-05.ps" "205-09.ps" "205-13.ps" "212-01.ps" "213-01.ps" "214-01.ps" "220-01.ps" "237-01.ps" "244-01.ps" "245-07.ps" "255-01.ps" "269-01.ps" "281-01.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-09.ps" "86554321.pdf" "ai2.pdf" "besttest.pdf" "Bug687044.ps" "Bug687489.ps" "Bug687724.pdf" "Bug687812.ps" "Bug687840.pdf" "bugsample.pdf" "ca.pdf" "chartab.pdf" "escher.ps" "golfer.eps" "messenger.pdf" "messenger16.pdf" "Openhuis_pdf_zw.pdf" "p2b-100.pdf" "si_tg_brochure.pdf" "t.pdf" "tiger.eps"</pre> <p>[src/gxline.h 1.7, src/gxstroke.c 1.18, doc/Language.htm 1.94]</p> </blockquote> <p><strong><a name="2005-08-11_1710"></a> 2005-08-11 17:10 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Exit a text context before resetting a clip. DETAILS : Bug 688094 "error converting PostScript document". The test document caused a wrong balance of pdf_save_viewer_state / pdf_restore_viewer_state due to a clipping was reset in a text context of a form XObject created with /BP pdfmark. The patch changes pdf_unclip so that it exits a text context when a clipping needs to reset with 'Q'. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfu.c 1.82]</p> </blockquote> <p><strong><a name="2005-08-11_1538"></a> 2005-08-11 15:38 Igor Melichev</strong></p> <blockquote> <pre> Fix : Clipping was missed while stroking a path with a pattern color. DETAILS : Bug 688211 "Gradient not rendered". EXPECTED DIFFERENCES : None.</pre> <p>[src/gxstroke.c 1.17]</p> </blockquote> <p><strong><a name="2005-08-10_1936"></a> 2005-08-10 19:36 Igor Melichev</strong></p> <blockquote> <pre> Fix : Divide long lines while flattening a path. DETAILS : Bug 688228 "ps2pdf appears to infinite loop processing a document". The old code didn't check for fixed overflow while computing a segment span while flattening a path for the filling algorithm. Due to that it got a wrong coordinate of a line intersection point, and fallen into an infinite cycle. The new code subdivides a line segment if the segment span is greater than max_fixed. See comment in code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.45]</p> </blockquote> <p><strong><a name="2005-08-10_1931"></a> 2005-08-10 19:31 Igor Melichev</strong></p> <blockquote> <pre> Fix : Develop.htm must reference all relevant files (continued).</pre> <p>[doc/Develop.htm 1.151, doc/Develop.htm 1.152]</p> </blockquote> <p><strong><a name="2005-08-09_2238"></a> 2005-08-09 22:38 Dan Coby</strong></p> <blockquote> <pre> Fix for 688250 Another overprint problem with the tiffsep and psdcmyk devices. The fix ensures that the various bit mask and shift fields in the device's color_info structure is set for the tiffsep, psdcmyk, and spotcmyk devices.</pre> <p>[src/gdevdevn.c 1.26, src/gdevpsd.c 1.22, src/gdevtsep.c 1.8]</p> </blockquote> <p><strong><a name="2005-08-09_2023"></a> 2005-08-09 20:23 Ralph Giles</strong></p> <blockquote> <pre> Port the 4-bit EGA device to the new DeviceN color mapping. After a patch from William Bader. Fixes bug #687795.</pre> <p>[src/gdevpcfb.c 1.7]</p> </blockquote> <p><strong><a name="2005-08-08_2324"></a> 2005-08-08 23:24 Ralph Giles</strong></p> <blockquote> <pre> Remove a generated file that was causing build portability problems.</pre> <p>[jasper/src/libjasper/include/jasper/jas_config_ac.h 1.2]</p> </blockquote> <p><strong><a name="2005-08-04_1738"></a> 2005-08-04 17:38 Alex Cherepanov</strong></p> <blockquote> <pre> Fix calculation of the row width on 64-bit platforms. Remove bitmap_raster() macro because Windows bitmap is not affected by the source platform alignment constrains. Initialize padding bytes to 0. Fix bug 688247</pre> <p>[src/gdevbmp.c 1.11, src/gdevbmpc.c 1.8]</p> </blockquote> <p><strong><a name="2005-08-04_0932"></a> 2005-08-04 09:32 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT font reader) : Allow 'post' over 65536 bytes. DETAILS : Bug 688154 "TTF file fails to load". It applies .readbigtable to 'post' and then use new accessors get_from_stringarray, getinterval_from_stringarray, string_array_size to decode it. The change should be algorithmically eqiovalent except for the 'post' size limitation. A further optimizatrion of calls to first_post_string may be useful. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_ttf.ps 1.46]</p> </blockquote> <p><strong><a name="2005-08-03_1636"></a> 2005-08-03 16:36 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : A workaround for an HP LaserJet 1320 bug in 'resourcestatus'. DETAILS : See comments in code. The problem happened with the following files : 017-01.ps 020-01.ps 045-01.ps 327-01.ps 336-01.ps Bug687603.ps EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.82]</p> </blockquote> <p><strong><a name="2005-08-02_1112"></a> 2005-08-02 11:12 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : Optimize the debug support. DETAILS : Bug 688253 "TT interpreter : too heavy debug support". In the debug build the old code of TT interpreter allocates a copy of points arrays and checks for any point change after TT instruction. The new code checks whether the DebugPrint method is available, and skips all the debug support otherwise. The method is set only if -ZY option is specified. In the release build the debug support compiles to empty. We do not bring if_debug macros to the TT interpreter because we want to keep it close to the original FreeType code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxttfb.c 1.37, src/ttfmain.c 1.34, src/ttfoutl.h 1.16, src/ttinterp.c 1.18, src/ttload.c 1.7]</p> </blockquote> <p><strong><a name="2005-08-01_2058"></a> 2005-08-01 20:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : Skip TT instructions if the font program or the cvt program fails. DETAILS : Bug 688236 "/invalidfont in -show-". This patch maps any TT bytecode interpreter error to "fBadInstruction", if the error happens during the font instantiation or during the face instantiation. As usual, fBadInstruction disables TT instructions for the font and prints a warning to stderr. EXPECTED DIFFERENCES : None.</pre> <p>[src/ttfmain.c 1.33]</p> </blockquote> <p><strong><a name="2005-08-01_1940"></a> 2005-08-01 19:40 Igor Melichev</strong></p> <blockquote> <pre> Fix : Develop.htm must reference all relevant files.</pre> <p>[doc/Develop.htm 1.150]</p> </blockquote> <p><strong><a name="2005-07-30_0239"></a> 2005-07-30 02:39 Alex Cherepanov</strong></p> <blockquote> <pre> Replace memcpy() with overlapping intervals to memmove() in Type 2 font generator. The old code violated the C spec and failed on HP aC++ compiler with +Olibcalls option. Thanks to Hin-Tak Leung for the patch. Fix bug 687360</pre> <p>[src/gdevpsfx.c 1.25]</p> </blockquote> <p><strong><a name="2005-07-29_0249"></a> 2005-07-29 02:49 Alex Cherepanov</strong></p> <blockquote> <pre> Remove the check for 0 CTM in the type 1 font hinter to support PDF files with 0-size fonts or 0 CTM. Fix bug 688237</pre> <p>[src/gxhintn.c 1.59]</p> </blockquote> <p><strong><a name="2005-07-28_1524"></a> 2005-07-28 15:24 Alex Cherepanov</strong></p> <blockquote> <pre> Pacify Valgrind: don't copy memory on itself. Partial fix for bug 688225.</pre> <p>[src/gsiodev.c 1.8, src/zcie.c 1.13]</p> </blockquote> <p><strong><a name="2005-07-27_2234"></a> 2005-07-27 22:34 Igor Melichev</strong></p> <blockquote> <pre> Fix : Maybe line breaks are broken by the last patch. Commit it again with right line breaks for sure.</pre> <p>[src/gdevpdfb.h 1.4, src/gdevpdfd.c 1.66, src/gdevpdfx.h 1.123, src/gdevpdti.c 1.49, src/gxcpath.c 1.16, src/gxpath.h 1.15]</p> </blockquote> <p><strong><a name="2005-07-27_2209"></a> 2005-07-27 22:09 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Skip a clip path, which is set by setcachedevice. DETAILS : Bug 687678 "pdfwrite : A Type 3 character cut-off". The setcachedevice clipping must not be written to a charproc. The old code wrote it, causing a character cut-off with several viewers, including Adobe Reader 6. The patch saves a 'setcachedevice' bbox in the pdfwrite device structure and checks it whenever a clip path needs to be written out. See gdevpdfx.h about the new data definition. The box is being saved and restored while entering and exiting a substream. EXPECTED DIFFERENCES : pdfwrite : "012-09.ps" "013-09.ps" "014-09.ps" "015-09.ps" "017-01.ps" "020-01.ps" "045-01.ps" "083-09.ps" "093-01.ps" "123-09.ps" "136-01.ps" "165-01.ps" "205-09.ps" "212-01.ps" "213-01.ps" "214-01.ps" "226-01.ps" "238-01.ps" "260-01.ps" "264-01.ps" "281-01.ps" "298-09.ps" "321-09.ps"</pre> <p>[src/gdevpdfb.h 1.3, src/gdevpdfd.c 1.65, src/gdevpdfx.h 1.122, src/gdevpdti.c 1.48, src/gxcpath.c 1.15, src/gxpath.h 1.14]</p> </blockquote> <p><strong><a name="2005-07-27_1124"></a> 2005-07-27 11:24 Igor Melichev</strong></p> <blockquote> <pre> Fix : Ignore XUID if Metrics[2] has been changed. DETAILS : Bug 674418 "093-01.ps : Wrong text". When a fong is being cached, the metric data for a glyph is being taken from the cache. If a font have a valid XUID, the XUID is used as the cache key. Consequently, if Metrics[2] has been changed after a font is cached, the font renders with the wrong (unchanged) metric. This patch checks whether another registered font has same XUID and another Metrics[2] dictionary. If so, the XUID is dropped, and it not used as a cache key. EXPECTED DIFFERENCES : Normal : 093-01.ps.</pre> <p>[src/gsfont.c 1.37, src/gsfont.h 1.12, src/zbfont.c 1.30]</p> </blockquote> <p><strong><a name="2005-07-26_2349"></a> 2005-07-26 23:49 Ralph Giles</strong></p> <blockquote> <pre> Improve wording of the new p2ps2 script documentation.</pre> <p>[doc/Ps2ps2.htm 1.2]</p> </blockquote> <p><strong><a name="2005-07-26_2050"></a> 2005-07-26 20:50 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Delay the assignation of object id to a color space until its creation is completed. DETAILS : Bug 687712 "ps2pdf silently generates bad PDF in 1.2 mode". The old code reserved an objewct id for a color space when starting its creation. If the creation fails (for example, with CompatibilityLevel <= 1.2), the related graphics is being converted into low level objects. In that case the reserved object id doesn't appear in the output PDF, causing an incorrect xerf. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfc.c 1.53]</p> </blockquote> <p><strong><a name="2005-07-26_0059"></a> 2005-07-26 00:59 Dan Coby</strong></p> <blockquote> <pre> Fix for 688052 Segv with test file for 687980 and the psdcmyk device. DETAILS: The 'put_param' routines for the routines which implement the handling of the SeparationOrder, SeparationColorNames, and the MaxSeparation device parameterswere always resetting the number of device components (num_components in the color_info structure) when they were called. This can cause problems with the PDF 1.4 transparency since the transparency processing can have its own process color model. The fix involves only changing the number of device components when one of the three device parameters changes value. This should only occur at the start of a page. The PDF 1.4 process color model is only active during the processing of a page.</pre> <p>[src/gdevdevn.c 1.25, src/gdevpsd.c 1.21]</p> </blockquote> <p><strong><a name="2005-07-21_1950"></a> 2005-07-21 19:50 Alex Cherepanov</strong></p> <blockquote> <pre> Use memmove() instead of memcpy() in Ins_MINDEX() because of the overlapping memory blocks. Fix bug 688224.</pre> <p>[src/ttinterp.c 1.17]</p> </blockquote> <p><strong><a name="2005-07-21_1932"></a> 2005-07-21 19:32 Alex Cherepanov</strong></p> <blockquote> <pre> Fix off-by-one error in Decode array testing. Fix bug 688223.</pre> <p>[src/gxipixel.c 1.12]</p> </blockquote> <p><strong><a name="2005-07-21_1819"></a> 2005-07-21 18:19 Dan Coby</strong></p> <blockquote> <pre> Fix for 688218 gdevpng.c(148) : A harmful warning from MSVC8. The warning message was due to a math overflow for the dither_grays and dither_colors fields in the device color_info structure. This occured due to the addition of the png48 device which has 16 bit components. The fix is to increase the field size to a uint (typically 32 bits).</pre> <p>[src/gxdevcli.h 1.40]</p> </blockquote> <p><strong><a name="2005-07-21_1813"></a> 2005-07-21 18:13 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : Merge equal function resources. DETAILS : Bug 688195 "pdfwrite,ps2write : Redundant function objects". This patch applies the usual merging method for function objects : a delayed assignation of object id, search for equal object, replace redundant one with an old equal one. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfu.c 1.81]</p> </blockquote> <p><strong><a name="2005-07-21_1604"></a> 2005-07-21 16:04 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Some of Widths elements could be missed. DETAILS : This is the fourth partial fix for the bug 688169 "ps2write : text dissappears". It relates to Comment #6 of the bug 688169. Some elements of Widths array could be missing if the encoding defines several codes for samne character, and only the first code is used. The old code scanned Encoding and put a Metrics dictionary element for each element of Encoding. However Encoding could contain dummy elements witrh the value 0, and the value 0 replaced an useful value defined earlier. This fix assumes that ps2write renames glyphs if they have several occurances in Encoding, and more than one occurance is used. Under this assumption, if only one occurance is used, other accurances will get the value 0 (using exactly 0 in this case is another ps2write feature being assumed here). So is Metrics already has a non-zero value, it shouldn't be replaced with zero, and the logic is pretty simple : don't replace non-zero values. This patch causes ps2write progressions : 687572.pdf 86554321.pdf Jahr2000.pdf rf1025.pdf EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.81]</p> </blockquote> <p><strong><a name="2005-07-21_0953"></a> 2005-07-21 09:53 Igor Melichev</strong></p> <blockquote> <pre> Fix : Move character raster buffers into the memory space of gx_show_enum. DETAILS : Bug 688222 "Another crash in igc_reloc_struct_ptr". This is a partial change for the problem. It fixes exactly the case that happened in the bug report. However there is another harmful case, which we want to fix separately due to it requires a big change. The case is running 'show' in the global allocation mode while the current font is local. We open a separate bug 688227 for it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxchar.c 1.47]</p> </blockquote> <p><strong><a name="2005-07-20_1814"></a> 2005-07-20 18:14 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : Synthesized bitmap fonts had zero character width in charprocs. DETAILS : 1. The Wx operand of d1 always got the zero value when a font is being converted into a bitmap font. 2. The Width array was wrongly computed when a font is being converted into a bitmap font. 3. Computing Metrics, Widths values to be scaled with the FontMatrix, to account an unusuial FontMatrix of Type 1 fonts, which were created by 3d parties from TrueTypes. 4. Metrics was not set to a font due to a bad stack balance. Bug 688172 "ps2write : CID text displacement". This patch gives a numerous progressions when ps2write runs with a small resolution -r72. In same time with this patch few files regress when ps2write runs with a small resolution -r72 : 687572.pdf 86554321.pdf Jahr2000.pdf EXPECTED DIFFERENCES : pdfwrite 72dpi : "020-01.ps" "093-01.ps" "Bug687845.ps" pdfwrite 300dpi : "020-01.ps" "093-01.ps" "405-01.ps" "450-01.ps" "Bug687845.ps"</pre> <p>[lib/opdfread.ps 1.80, src/gdevpdfb.c 1.32, src/gdevpdtt.c 1.103]</p> </blockquote> <p><strong><a name="2005-07-20_1446"></a> 2005-07-20 14:46 Ray Johnston</strong></p> <blockquote> <pre> Fix undefined in -get- caused by previous (1.38) patch that ignored zero length tables in TT font. Previous fix for 687457. Bug 688220 for customer 580. DETAILS: Some tables, such as 'glyf' are required by the ttf code even if they are zero length. The 687457 bug omitted these tables since their position is arbitrary, but they could cause false 'overlap' conditions, potentially truncating a non-zero length table to zero length. The simplest solution is to place all zero length tables at offset 0 (the offset is arbitrary for zero length tables). EXPECTED DIFFERENCES: Regression testing showed no problems. The file for 687457 is now added to the regression suite as will a test file with a zero length 'glyf'.</pre> <p>[lib/gs_ttf.ps 1.45]</p> </blockquote> <p><strong><a name="2005-07-20_0820"></a> 2005-07-20 08:20 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Initial commit of the ps2ps2 documentation. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2ps2.htm 1.1, doc/Readme.htm 1.68]</p> </blockquote> <p><strong><a name="2005-07-20_0722"></a> 2005-07-20 07:22 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : The default value for MaxInlineImageSize was incorrect. DETAILS : It was too small for real images. May improve the printer prerformance. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.115, src/gdevpdfb.h 1.2]</p> </blockquote> <p><strong><a name="2005-07-20_0617"></a> 2005-07-20 06:17 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Bring the script to the traditional form (continued). DETAILS : Rename the distiller settings PSPrinter with a more meanful name PSL2Printer. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.45]</p> </blockquote> <p><strong><a name="2005-07-20_0610"></a> 2005-07-20 06:10 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Bring the script to the traditional form. DETAILS : Bug 688190 "ps2write : improve the ps2ps2 script". Since ps2write actually is a clone of pdfwrite, we define special distiller settings named PSPrinter. After this device parameters are gone from the script, and the ps2ps2 script looks similarly to ps2ps . EXPECTED DIFFERENCES : None.</pre> <p>[doc/Develop.htm 1.149, doc/Psfiles.htm 1.64, doc/Use.htm 1.133]</p> </blockquote> <p><strong><a name="2005-07-20_0600"></a> 2005-07-20 06:00 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Bring the script to the traditional form. DETAILS : Bug 688190 "ps2write : improve the ps2ps2 script". Since ps2write actually is a clone of pdfwrite, we define special distiller settings named PSPrinter. After this device parameters are gone from the script, and the ps2ps2 script looks similarly to ps2ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.44, lib/ps2ps2 1.1, lib/ps2ps2.bat 1.2, lib/ps2ps2.cmd 1.1]</p> </blockquote> <p><strong><a name="2005-07-19_1931"></a> 2005-07-19 19:31 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : Tj must account the Widths rounding when converting to a bitmap font. DETAILS : Bug 688170 "ps2write : text displacement". An imprecise text width happened when distillation uses a low resolution to convert a font into a bitmap font. Important for CompatibilityLevel <= 1.2 . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdti.c 1.47]</p> </blockquote> <p><strong><a name="2005-07-18_0551"></a> 2005-07-18 05:51 Ray Johnston</strong></p> <blockquote> <pre> Skip CFF tables at 0 or negative offset because some CFF fonts put empty tables at offset 0. Bug 688160. Thanks to Alex Cherepanov for this patch.</pre> <p>[lib/gs_cff.ps 1.19]</p> </blockquote> <p><strong><a name="2005-07-18_0533"></a> 2005-07-18 05:33 Ray Johnston</strong></p> <blockquote> <pre> Fix handling of Some Type1C (CFF) font subsets where the tables may not be completely contiguous. Seen with PDFs created by pdflib. Bug 688216 and 688040 for customer 562. DETAILS: The example subset CFF had the "Private" data about 30,000 bytes after the end of the previous (CharStrings) data. While we try to process the CFF file sequentially, there is no reason we cannot skip bytes. If we encounter a CFF where positioning (backwards) is required, we will have to further change the code to set us a "ResuableStreamDecode" file so we can replace the "pos sub nextstring pop" with "f fileposition" which will work forwards or backwards. A CFF that requires this will get an error when loading the font from the -string- operator (rangecheck). Since we have not seen one yet, we will wait until this surfaces.</pre> <p>[lib/gs_cff.ps 1.18]</p> </blockquote> <p><strong><a name="2005-07-15_0559"></a> 2005-07-15 05:59 Ray Johnston</strong></p> <blockquote> <pre> Remove the arbitrary limit of 256 max_colors from the dci_ macros. This is related to bug 688204 and allows shadings (gradients) to have more than 256 steps for high precision color devices. DETAILS: Note that the default smoothness is set to 0.02 in lib/gs_ll3.ps and unless this is set smaller with the setsmoothness operator (or the PDF 'SM' op), the max_error used in src/gxshade.c may still be too large to see REALLY smooth gradients. The next part of the changes is to modify the setting of max_error when the device has > 256 levels.</pre> <p>[src/gxdevcli.h 1.39]</p> </blockquote> <p><strong><a name="2005-07-15_0523"></a> 2005-07-15 05:23 Ralph Giles</strong></p> <blockquote> <pre> Add a 48 bit RGB PNG raster device for testing deep color output code paths. The new device is called 'png48'. Note that this is a different naming scheme from the the other PNG devices, which use number of colors instead of the log of the number of colors to distinguish between the different output formats. Related to bug 688204.</pre> <p>[src/configure.ac 1.51, src/devs.mak 1.134, src/gdevpng.c 1.12]</p> </blockquote> <p><strong><a name="2005-07-15_0336"></a> 2005-07-15 03:36 Dan Coby</strong></p> <blockquote> <pre> Fix for 688209 Incorrect equiv color for 'Dark Blue' in test file. DETAILS: The problem was caused by an error in evaluting a sampled function with 32 bits per component. The maximum value for a sample was calculated as being (1 << bps) - 1. This calculation has a problem on x86 CPUs when bps is 32. No shifting is done and the result ends up being 0 instead of 0xffffffff. The fix involves checking for bps being equal to (or greater than) the size of an uint. If so then the max_uint value is used instead.</pre> <p>[src/gsfunc0.c 1.27]</p> </blockquote> <p><strong><a name="2005-07-14_1956"></a> 2005-07-14 19:56 Alex Cherepanov</strong></p> <blockquote> <pre> Don't use Length value in the stream dictionary when it's incorrect. All filtered streams are self-terminated. Unfiltered streams are most often occur as contents streams. Their processing is terminated by execution of endstream operator. Unfiltered image streams will only read the data required by the image. Fix bug 688182.</pre> <p>[lib/pdf_base.ps 1.46]</p> </blockquote> <p><strong><a name="2005-07-14_1610"></a> 2005-07-14 16:10 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Don't replace Encoding for standard fonts. DETAILS : This is the third partial fix for the bug 688169 "ps2write : text dissappears". 1. Regarding 093-01.ps : Before a font is loaded from a font file object, need to check whether there exists a standard font with same name and save it for possible use in future from other font resource objects. 2. Regarding 336-01.ps : The implementation of the operator ' was incomplete. This patch causes ps2write progressions: "093-01.ps" "336-01.ps" "adesso7.pdf" "ADOBE1-4.pdf" "brochurep1.pdf" "ca.pdf" "ccc.pdf" "Jahr2000.pdf" "js.pdf" "prfmm.pdf" "rf1025.pdf" EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.79]</p> </blockquote> <p><strong><a name="2005-07-14_1514"></a> 2005-07-14 15:14 Alex Cherepanov</strong></p> <blockquote> <pre> Increade the limit on the .libfile operand length from 200 to the full gp_file_name_sizeof . The OS also limits the length of the file name, for instance, on WinNT, NTFS to 252 characters. Fix bug 688198.</pre> <p>[src/zfile.c 1.42]</p> </blockquote> <p><strong><a name="2005-07-14_1320"></a> 2005-07-14 13:20 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Don't replace Encoding for standard fonts. DETAILS : This is the second partial fix for the bug 688169 "ps2write : text dissappears", related to the file aaon97_p7.pdf . When a standard font is being loaded, the old code replaced Encoding with StandardEncoding. However the Dingbats font has a different Encoding. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.78]</p> </blockquote> <p><strong><a name="2005-07-14_1027"></a> 2005-07-14 10:27 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Embed standard fonts, which use extention glyphs due to encoding conflicts. DETAILS : This is a partial fix for the bug 688169 "ps2write : text dissappears", which is related to the problem with ADOBE1-4.pdf . When Widths array defines several widths for same glyph, the PDF interpreter duplicates glyphs inserting extended glyph names. However if the font name is standard, the font was not embedded and the extended glyph names were missed. This patch forces embedding the fonts what have extended glyph names. This problem doesn't happen with pdfwrite, because it collapses extended glyph names back to original ones. Note that there exists a case, in which a font has extended glyphs but they are not used in the document. In this case the font embedding is not necesary, but ps2write does embed it. This happens because the current architecture does not allow to detect such case, because the decision about a font embedding is being made before a text is processed. Dalaying it until the end of the text would need to delay object ID assignation for the font descriptor and for the font file. This change would be too deep, so we don't do it now. If an user strongly needs to minimise the output when a standard font uses extended glyph name, we recommend to perform a 2-pass distillation : the first pass computes exact font subsets, and the second pass won't receive unused glyphs. We believe that such need is pretty rare. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.133, src/gdevpdtf.c 1.45]</p> </blockquote> <p><strong><a name="2005-07-13_2121"></a> 2005-07-13 21:21 Dan Coby</strong></p> <blockquote> <pre> Fix for 688206 rangecheck in --setcolorspace--. Actually there is a problem with the PDF test files. The 'fix' is to make Ghostscript more tolerant of errors. DETAILS: The problem is an error in the file. The file contains an Indexed color space: [ /Indexed /DeviceGray 255 (\000%Mr\r2[\300\320\303\000\b\f\021\026\034"\)UMB9 \201%Ns\r2[\016\035,:\036-<KYh=L[ix\207\\kz\210\227\246{\212\231\247\266\305 \267\306\325\005\024"1@O$3AP_mCQ`o~\214bp\177\216\234\253\200\217\236\255\273 \312\256\275\314\332\351\n\031\(6ET\)8GUdsHWft\203gv\204\223\242\261\206\225 \262\301\317\245\263\321\340_Ul[<K\020=-iYM\\Lz\210x{\212\231\247\266\213\232 \243\267\306\325\252\271\251\326\345\364\025\0363AP/CQ`o~Sbk\177\216\227r\200 \217\236\255\273\221\237\256\275\314\332\257\276\310\334\352\371$8G4...) ] The lookup table for this color space should contain 256 bytes. Instead it contains 768 bytes (3 times the needed number of bytes). The PDF 1.6 specification on page 233 (section 4.55) says: The color table data must be m x (hival + 1) bytes long, where m is the number of color components in the base color space. Thus having 768 bytes is an actual error for this case. Apparently Acrobat 6.0 ignores this error since it does not complain about the file. Since Acrobat accepts these files, I have modified the length test to accept any look up table which has the needed number of data bytes. The files were produced by Amyuni PDF Converter (Version 2.08b Pro).</pre> <p>[src/zcsindex.c 1.8]</p> </blockquote> <p><strong><a name="2005-07-13_1818"></a> 2005-07-13 18:18 Ray Johnston</strong></p> <blockquote> <pre> Font scanning would miss OpenType fonts (OTTO header).</pre> <p>[lib/gs_ttf.ps 1.44]</p> </blockquote> <p><strong><a name="2005-07-13_1721"></a> 2005-07-13 17:21 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT grid fitting) : A missed glyph needs cached_fm_pair_s. DETAILS : Bug 688164 "segfault after warning for missing required cmap in embedded TT font; pdf". The embedded TT font missed a glyph, so that a "notdef" (glyph_index = 0) to be used instead. However when performing a grid fitting, an cached_fm_pair_s is used to pass an access to the font. The problem happens due to "notdef" forced no glyph caching and therefore cached_fm_pair_s was not created. The fix moves the check for "notdef" for the point after creating an cached_fm_pair_s. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxchar.c 1.46]</p> </blockquote> <p><strong><a name="2005-07-13_1037"></a> 2005-07-13 10:37 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : EOT marker was missed. DETAILS : Bug 688186 "ps2write: EOT is missing". The old code writes it after the file is closed. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.114]</p> </blockquote> <p><strong><a name="2005-07-13_0039"></a> 2005-07-13 00:39 Ralph Giles</strong></p> <blockquote> <pre> Cast color components to type gx_color_index before shifting when composing a chunked index color in gx_default_rgb_map_rgb_color(). Partial fix for bug 688204. DETAILS: Without the explicit casts, color components were only promoted to the default int type before the shifts were applied. On 32 bit machines this means that 16 bpc output generated nonsense, shifting the high channel entirely out of the word, and only promoting to a 64 bit type on assignment. With the explicit casts, the promotion to a 64 bit type (assuming a 64 bit gx_color_index) happens first so that the shift logic is correct for deep devices. With this change the "24 bit RGB" default mapping works for 48 bit color as well as for other spaces in-between. 24 bits remains special cased; rough benchmarking showed no significant advantage to special casing 48 bits as well.</pre> <p>[src/gxcmap.c 1.26]</p> </blockquote> <p><strong><a name="2005-07-12_1754"></a> 2005-07-12 17:54 Igor Melichev</strong></p> <blockquote> <pre> Fix : MSVC8 Beta 2 doesn't handle the compiler option Gi. DETAILS : The new distribution of the MSVC compiler claims the option Gi is depricated. Since the nmake file uses a single value 8 of the variable MSVC_VERSION for both Beta 1 and Beta 2, we cannot distinguish these releases, so now we drip the option Gi fore both releases. Beta 1 is now obsolete, so users must either upgrade for Beta 2 or live with no incremental compilation. The latter only increases the build time. EXPECTED DIFFERENCES : None.</pre> <p>[src/msvccmd.mak 1.27]</p> </blockquote> <p><strong><a name="2005-07-11_2208"></a> 2005-07-11 22:08 Stefan Kemper</strong></p> <blockquote> <pre> Fix MSVC compile error DETAILS: MSVC prevents dynamic structure initialization gcc is more liberal. Final code is simpler using a function call.</pre> <p>[src/gdevpxut.c 1.8]</p> </blockquote> <p><strong><a name="2005-07-08_2206"></a> 2005-07-08 22:06 Dan Coby</strong></p> <blockquote> <pre> The gdevdsp.c file was missed in the previous commit for the fix for 688192.</pre> <p>[src/gdevdsp.c 1.34]</p> </blockquote> <p><strong><a name="2005-07-08_2204"></a> 2005-07-08 22:04 Dan Coby</strong></p> <blockquote> <pre> Fix for 688192 Resolution dependant problems with tiffsep. Note: The actual problem is related to garbage collection. DETAILS: The names of the separations are being lost when the garbage collection logic is attempting to relocate the names. The fix consists of storing the names in a byte array instead of using a gs_param_string.</pre> <p>[src/devs.mak 1.132, src/gdevdevn.c 1.24, src/gdevdevn.h 1.11, src/gdevpsd.c 1.20, src/gdevtsep.c 1.7, src/gsequivc.c 1.6]</p> </blockquote> <p><strong><a name="2005-07-07_1644"></a> 2005-07-07 16:44 Stefan Kemper</strong></p> <blockquote> <pre> Add support for manual feed and media source or tray selection to pxl output devices. This allows postscript input to use InputAttributes dictionary selection mechanisms to choose a tray. The pxl tray numbers in the PXL file are the PS MediaSource numbers to "map" correctly an input attributes dictionary needs to be present and needs to match the tray contents/numbering of the pxl printer. postscript manual feed /ManualFeed is directly mapped to PXL this will override any tray selection.</pre> <p>[src/gdevlj56.c 1.7, src/gdevpx.c 1.16, src/gdevpxut.c 1.7, src/gdevpxut.h 1.6]</p> </blockquote> <p><strong><a name="2005-07-06_2054"></a> 2005-07-06 20:54 Stefan Kemper</strong></p> <blockquote> <pre> Bug fix for 688196. CCITTFAX decode filter had number of rows limited to 32000. Test file with 40000 found, limit is now 1,000,000</pre> <p>[src/scfparam.c 1.5]</p> </blockquote> <p><strong><a name="2005-07-05_1756"></a> 2005-07-05 17:56 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Allow .HWMargins in the printer's userdict. DETAILS : Testing with HP LazerJet 1320 we found that it defines a PageSize bigger than the real page. Allowing a method for an user to compensate that. The method is to define .HWMargins to the printer's userdict. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.77]</p> </blockquote> <p><strong><a name="2005-07-04_0903"></a> 2005-07-04 09:03 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : CIEBased* images must use DecodeABC as Decode (continued). DETAILS : The last patch appears incomplete. Bug 688174 ps2write: black page CompleteImage was underimplemented. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.76]</p> </blockquote> <p><strong><a name="2005-06-29_2346"></a> 2005-06-29 23:46 Dan Coby</strong></p> <blockquote> <pre> Fix for 688144 Overprint problem wtih emitting a single separation from tiffsep. The overprint logic assumed that overprinting was never applied if there is only one component in the output device. This is true for a DeviceGray process color model. However it is possible for there to only be a single output component in other process color models (like CMYK) if the SeparationOrder device parameter is used to select a subset of the device's colorants. This fix removes the undesired optimization.</pre> <p>[src/gsovrc.c 1.10]</p> </blockquote> <p><strong><a name="2005-06-29_2046"></a> 2005-06-29 20:46 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : CIEBased* images must use DecodeABC as Decode. DETAILS : Bug 688174 ps2write: black page CompleteImage was underimplemented. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.75]</p> </blockquote> <p><strong><a name="2005-06-29_1821"></a> 2005-06-29 18:21 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Imagemask incorrectly synchronized color in the !HaveStrokeColor mode. DETAILS : Bug 688171 "ps2write : wrong frame color". The !HaveStrokeColor mode was underimplemented. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfb.c 1.31]</p> </blockquote> <p><strong><a name="2005-06-29_1421"></a> 2005-06-29 14:21 Ralph Giles</strong></p> <blockquote> <pre> Remove a duplicate file in the installation target list.</pre> <p>[src/unixinst.mak 1.41]</p> </blockquote> <p><strong><a name="2005-06-29_1412"></a> 2005-06-29 14:12 Igor Melichev</strong></p> <blockquote> <pre> Fix : A dangling pointer from pdf_image_enum. DETAILS : Bug 688156 "Reference to free object : pdfwrite -r72 -Z?$@ 035-07.ps". After pdf_make_alt_stream pdf_image_enum::writer.binary[1].target left a pointer to a cos_object_t instance, which is later freed by pdf_choose_comprtession. Thus it caused a dangling pointer. It was not harmful unless running with -Z? . EXPECTED DIFFERENCES : pdfwrite crashed with -Z?$@ : 035-07.ps. FIG3.eps</pre> <p>[src/gdevpdfj.c 1.46]</p> </blockquote> <p><strong><a name="2005-06-29_1054"></a> 2005-06-29 10:54 Ralph Giles</strong></p> <blockquote> <pre> Fix some additional typos in the documentation install rules. Closes bug 688158.</pre> <p>[src/unixinst.mak 1.40]</p> </blockquote> <p><strong><a name="2005-06-28_2300"></a> 2005-06-28 23:00 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : A recognition of Type 3 glyph variations was inaccurate. DETAILS : Bug 688168 pdfwrite, ps2write : incorrect barcode Bug687472.ps Bug 687472 barcode wrongly converted to type3 font 1. The condition in pdf_find_same_charproc was not a strong equality. When searching in same font, the comparizon of object streams was missed (debugged with Bug687472.ps). 2. When creating an alternative font due to glyph wariations, the fonmt matrix was equal to one from the scaled font instead the original font, causing an imprecise coordinates. Replaced with the original font matrix. (debugged with Bug687472.ps). 3. pcp->font was not adjusted when desided to start a new font due to a new glyph variation obtained. Due to that some glyphs were replaced with wrong glyph variations (debugged with Bug687660a.ps, page 4, the text "et al. [11] Y. Nakamura et al.", the 3d occurance of 'a' was wrong (search for "( al)" in the old generated PDF file)). 4. Exiting from a substream, flattness was not restored (debugged with muur.eps). EXPECTED DIFFERENCES : pdfwrite : "Bug687472.ps" "Bug687660a.ps" "Bug687832.pdf" "STEUER-RollingMesh 3(Final).ai"</pre> <p>[src/gdevpdfg.c 1.63, src/gdevpdfx.h 1.121, src/gdevpdti.c 1.46]</p> </blockquote> <p><strong><a name="2005-06-28_1144"></a> 2005-06-28 11:44 Ralph Giles</strong></p> <blockquote> <pre> Add two new multiply-included templating files to the exclusion list for the multiple-inclusion regression check.</pre> <p>[toolbin/tests/check_source.py 1.12]</p> </blockquote> <p><strong><a name="2005-06-28_0619"></a> 2005-06-28 06:19 Dan Coby</strong></p> <blockquote> <pre> Fix for 687989 PDF to any format raises /invalidfont in /R21. The test file was created by an imposition program. DETAILS: The given file (the one with the four pages imposed together) has: 1. A Page dict with form Xobjects and the /R21 font is not in the Resources/Font dict. 2. The Pg3 form XObject has the /R21 font in the Resources/Font dict. 3. /R19 is a Type3 font. There is not a Resources entry in the dict. This font uses both the /R13 ExtGState and the /R21 font. To find the /R13 and the /R21 resources, Ghostscript is first looking in the /R19 font. Since it is not present (no Resources in /R19), Ghostscript then searches the Page dict. Once again the resources are not found and then the InvalidFont error is generated. (Ghostcript is silent about the missing ExtGState /R13.) From page 391 of the PDF REference, version 1.6 on the entries in the dict for a Type3 font: "Resources dictionary (Optional but strongly recommended; PDF 1.2) A list of the named resources, such as fonts and images, required by the glyph descriptions in this font (see Section 3.7.2, "Resource Dictionaries"). If any glyph descriptions refer to named resources but this dictionary is absent, the names are looked up in the resource dictionary of the page on which the font is used. (See implementation note 64 in Appendix H.)" This implies that Ghostscript is following the correct path for finding the resources /R13 and /R21. (However one can make a case for a 'liberal' interpretation of the spec. that implies that the form XObject resources should also be checked.) This fix checks the current resources when the Resources dictionary is not present in a type 3 font. I do not know why Acrobat 6.0 Pro does not find /R13 but does find /R21. If Acrobat is not checking the Resources for the Pg3 form XObject then it should find neither. If it is checking Pg3 Resources then both should be found.</pre> <p>[lib/pdf_font.ps 1.77]</p> </blockquote> <p><strong><a name="2005-06-23_0735"></a> 2005-06-23 07:35 Igor Melichev</strong></p> <blockquote> <pre> Fix : A global restore was applied at save level 1. DETAILS : Bug 688157 "'invalidrestore' in pkmraw -r72 -Z?$@ tpc2.ps". Bug 688161 "A dangling pointer with pkmraw -r72 -Z?$@ -c false 0 startjob pop -f - <113-01.ps". The last patch appears incorrect. This one fixes that. Bug 688157 happened because tpc2.ps failed with 'invalidrestore' because the global restore was applied at the level 1. This happened because the last but one patch appears incomplete - after that change the check for 'global' in alloc_is_since_save become incorrect. It assumed that mem->saved == save && mem->saved->save_level == 1 implies save->state.save_level == 0. But with the last but one patch not it doesn't. Bug 688161 happened due to same check, because alloc_is_since_save is also used in restore_fix_stack to fix string and file objects, which exist on stack and which would become invalidated due to the restore. 'zrestore' do not check such objects on estack (restore_check_stack is called with 'false'). Such objects appear when 'startjob' is called from a command argument (and establishes a save level 0), and later another command line argument is executed with '.runstdin', which executes .subfiledecode at save level 1 and keeps the filter object on estack while .runexec works (keeping the file for .runexec2). So running the file 113-01.ps invoked 'exitserver', which executes a 'restore', which unwinded the file object, and caused a heap inconsistency (because restore_check_stack is called with 'false') due to estack keeps the unwinded file object. This change replaces it with (as we believe) the correct and simple check : save->state.save_level == 0 /* Restoring to save level 0 */ which restores the consistency of restore_fix_stack to restore_check_stack. EXPECTED DIFFERENCES : Fixes a crash with 113-01.ps .</pre> <p>[src/isave.c 1.14]</p> </blockquote> <p><strong><a name="2005-06-22_2015"></a> 2005-06-22 20:15 Igor Melichev</strong></p> <blockquote> <pre> Fix : A global restore was applied at save level 1. DETAILS : Bug 688157 "'invalidrestore' in pkmraw -r72 -Z?$@ tpc2.ps". With the last patch memory problems gone avay, but tpc2.ps failed with 'invalidrestore'. We found that the global restore was applied at the level 1 - a guess as a rudiment of code before NOOUTERSAVE is code. When tpc2.ps issued a restore, with neither startjob nor NOOUTERSAVE it appears at level 1 (due to gs_init.ps executes 'save') but at that moment dstack contains some dictionaries, created by the document. Those dictionaries cause 'invalidrestore', because they are created after the 'save' issued by gs_init.ps . At first time we wonderewd why this problem doesn't happen with other documents. The answer is : they don't keep dicts on dstack when execute the outermost 'restore'. EXPECTED DIFFERENCES : Fixes 'invalidrestore' in tpc2.ps . 113-01.ps crashes due to another problem, which we'll open another bug for.</pre> <p>[src/isave.c 1.13]</p> </blockquote> <p><strong><a name="2005-06-22_1536"></a> 2005-06-22 15:36 Igor Melichev</strong></p> <blockquote> <pre> Fix : Dangling pointers due to 'restore' left an internal save level. DETAILS : Bug 688153 "Reference to free object : ppmraw -r72 -Z?$@ Bug687489.ps" Running : gs sOutputFile=t.ppm sDEVICE=ppmraw -r72 -Z?$@ Bug687489.ps" got : Reference to free object 0xaf9e40(100), in chunk 0x3eca48! The reason is that a gs_show_enum instance was created in some 'save' level, and when it is released the 'save' level appears a higher one and the memory manager left it unreleased until a further 'restore' does that. However that instance pointed to a gx_path instance with a bigger 'save' level. So when the garbager was invoked, the gs_show_enum instance had a 'path' field pointed to a structure, which was already released by a 'restore'. Analyzing it so far, we found that 'save' and 'restore' may leave an extra level on the 'save' stack. More precisely, alloc_save_state sometimes creates an "invisible" 'save' level, which appears on the 'save' stack, but it has no save id and it doesn't add to the 'save' level counter. The problem happened when 'restore' finds its 'save' stack element. In that case alloc_find_save returns the second additional 'save' stack element, rather than the first one created by 'save'. Therefore a consecutive execution of 'save restore' could add one element on the 'save' stack (without increasing the save_level counter) and cause dangling pointers as explained above. We believe that the bug lived in alloc_save_state. Really, a comment in alloc_save_state reads : /* Do a second, invisible save. */ and in same time the code makes the first 'save' to be invisible, and moves the id from the first 'save'. Thus the code does not comply to the comment. We believe that the comment is correct, and the code is buggy. Therefore we change the code so that the second (internal) 'save' to be really invisible. EXPECTED DIFFERENCES : Fixes memory problems (June 16 regressions) with the following files : "257-01.ps" "Bug687396.ps" "Bug687489.ps" "Bug687603.ps" "Bug687698.ps"</pre> <p>[src/isave.c 1.12]</p> </blockquote> <p><strong><a name="2005-06-22_1524"></a> 2005-06-22 15:24 Ralph Giles</strong></p> <blockquote> <pre> Fix typos in the the jasper makefile. Closes bug 688148.</pre> <p>[src/jasper.mak 1.2]</p> </blockquote> <p><strong><a name="2005-06-22_1411"></a> 2005-06-22 14:11 Stefan Kemper</strong></p> <blockquote> <pre> Added documentation note that gc doesn't collect around a reference to a sub interval in an array. Rather it gc's arrays as objects.</pre> <p>[doc/Language.htm 1.93]</p> </blockquote> <p><strong><a name="2005-06-21_1958"></a> 2005-06-21 19:58 Igor Melichev</strong></p> <blockquote> <pre> Fix : Reference count for gx_clip_path::path_list was incorrect. DETAILS : Bug 688147 "Wrong reference count with ppmraw -Z?$@ -r72 257-01.ps". gx_cpath_assign_preserve didn't adjust the reference count. EXPECTED DIFFERENCES : May fix some of pkmraw, pgmraw regressions appeared on June 16.</pre> <p>[src/gxcpath.c 1.14]</p> </blockquote> <p><strong><a name="2005-06-21_1650"></a> 2005-06-21 16:50 Igor Melichev</strong></p> <blockquote> <pre> Fix : Always place the image enumerator into local memory (continued 2). DETAILS : The previous patch inserted a 'const' by a mistake. Removing it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsimage.c 1.15, src/gsimage.h 1.9]</p> </blockquote> <p><strong><a name="2005-06-21_1625"></a> 2005-06-21 16:25 Igor Melichev</strong></p> <blockquote> <pre> Fix : A wrong allocator was used to release the glyph cache. DETAILS : Bug 688146 "heap corruption with ppmraw -r72 -Z?$@ 055-01.ps". A structure was allocated in a non-stable memory and released to a stable memory. EXPECTED DIFFERENCES : May fix some of pkmraw, pgmraw regressions appeared on June 16.</pre> <p>[src/gsgcache.c 1.4]</p> </blockquote> <p><strong><a name="2005-06-21_1312"></a> 2005-06-21 13:12 Igor Melichev</strong></p> <blockquote> <pre> Fix : Always place the image enumerator into local memory (continued). DETAILS : Bug 688140 "A heap corruption in imagemask". Bug 688145 "Segmentation fault : normal 244-01.ps (pkmraw/300/noband)" The patch http://ghostscript.com/pipermail/gs-cvs/2005-June/005567.html appears incomplete. This ine fixes that. 1. gs_image_common_init must not change penum->memory since it is set by gs_image_enum_alloc for a compatibility with gs_image_cleanup_and_free_enum. 2. gs_image_enum_init is removed from the graphics library interface because after the change (1) it becomes potentially harmful. We noticed that the PCL interpreter never calls it directly, so making it be local against a potantial harm. 3. The memory argument of gs_image_common_init has been removed because it became unuseful. 4. We notice that gs_image_common_init initializes an instance of gs_image_enum, and gs_image_begin_typed initializes gx_image_enum_common_t. We wonder with the assymmetry of using the word "common" in these identifiers. It appears much confusible. For now leave them as they are, rather we'd like to clean them up. EXPECTED DIFFERENCES : Should fix pkmraw, pgmraw regressions appeared on June 16.</pre> <p>[src/gsimage.c 1.14, src/gsimage.h 1.8]</p> </blockquote> <p><strong><a name="2005-06-21_0058"></a> 2005-06-21 00:58 Dan Coby</strong></p> <blockquote> <pre> Partial fix for 688132 WTS crash with pdf input. Ghostscript does not serialize a WTS halftone. (This is required for clist processing.) As a result, an error code is being returned. The error code was not being properly returned. We then seg faulted due to a pointer not being set in the error case. This fix corrects the problem with returning the error code. The problem with WTS serializaton remains.</pre> <p>[src/gdevp14.c 1.29]</p> </blockquote> <p><strong><a name="2005-06-20_0859"></a> 2005-06-20 08:59 Igor Melichev</strong></p> <blockquote> <pre> Fix : Factor out any dependence on sizeof(gx_color_index) . DETAILS : This change is algorithmically equivalent. We factor out this dependence because we intend to change the gx_color_index definition to an array of components. In that case sizeof(gx_color_index) would give the size of a pointer rather we need the size of the array. Minor change : Fixed an unitialized debug-purpose variable prev_count in 3 device drivers gdevm40.c, gdevm48.c, gdevm64.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevdsp.c 1.33, src/gdevm40.c 1.3, src/gdevm48.c 1.3, src/gdevm64.c 1.4, src/gdevpdfb.c 1.30, src/gdevpdfv.c 1.39, src/gdevpsd.c 1.19, src/gdevtsep.c 1.6, src/gdevxcf.c 1.10, src/gsdparam.c 1.18, src/gxcindex.h 1.7, src/gxdcolor.c 1.13, src/gxdevcli.h 1.38, src/gxiscale.c 1.9, src/gxoprect.c 1.6]</p> </blockquote> <p><strong><a name="2005-06-19_2110"></a> 2005-06-19 21:10 Igor Melichev</strong></p> <blockquote> <pre> Fix : zchar.c needs a prototype of z1_set_cache. DETAILS : It fixes a cygwin/gcc warning. EXPECTED DIFFERENCES : None.</pre> <p>[src/int.mak 1.135, src/zchar.c 1.17]</p> </blockquote> <p><strong><a name="2005-06-19_2103"></a> 2005-06-19 21:03 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : Type 42 fonts got wrong Width (continued). DETAILS : Need a prototype for z1_glyph_info_generic since we call it in zfont42.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/ichar1.h 1.13, src/int.mak 1.134, src/zfont42.c 1.23]</p> </blockquote> <p><strong><a name="2005-06-19_2045"></a> 2005-06-19 20:45 Igor Melichev</strong></p> <blockquote> <pre> Fix : Remove an unreasonably big array type definition related to color index. DETAILS : This change is algorithmically equivalent. An array type in gxcht.c was defined with 65536 elements but actually used the first 32 elements only. We believe it was an inaccurate coding. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxcht.c 1.16]</p> </blockquote> <p><strong><a name="2005-06-16_0653"></a> 2005-06-16 06:53 Igor Melichev</strong></p> <blockquote> <pre> Fix (Ps2pdf.htm) : ConvertCMYKImagesToRGB was wrongly documented. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2pdf.htm 1.81]</p> </blockquote> <p><strong><a name="2005-06-15_1840"></a> 2005-06-15 18:40 Igor Melichev</strong></p> <blockquote> <pre> Fix : Always place the image enumerator into local memory. DETAILS : Bug 688140 "A heap corruption in imagemask". The core of the change is in zimage.c : ! /* Always place the image enumerator into local memory, ! because pie may have local objects inherited from igs, ! which may be local when the current allocation mode is global. */ Other changes provide a correct allocator while freing the enumerator. Note : In gxccache.c the old code did not apply gx_image_cleanup when exiting on error. The new code does. The new code is more smooth, but we don't expect a significant difference in behavior. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsimage.c 1.13, src/gsptype1.c 1.23, src/gxccache.c 1.34, src/gsimage.h 1.7, src/zimage.c 1.15]</p> </blockquote> <p><strong><a name="2005-06-15_0031"></a> 2005-06-15 00:31 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : A bug while computing an n-argument m-result function type 0. DETAILS : FunctionToProc_x0n synthesized a function which applies an extra 'roll' at the end of computation. Minor change : Improved a debug printing. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.74]</p> </blockquote> <p><strong><a name="2005-06-14_1713"></a> 2005-06-14 17:13 Ralph Giles</strong></p> <blockquote> <pre> Link to the relevent section of Use.htm for details about the GS_LIB env variable. Fixes bug 688051.</pre> <p>[doc/Install.htm 1.53]</p> </blockquote> <p><strong><a name="2005-06-14_1707"></a> 2005-06-14 17:07 Ralph Giles</strong></p> <blockquote> <pre> Add some newer documentation files to the unix install target. Fixes bug 688049.</pre> <p>[src/unixinst.mak 1.39]</p> </blockquote> <p><strong><a name="2005-06-14_1653"></a> 2005-06-14 16:53 Ralph Giles</strong></p> <blockquote> <pre> Fix a documentation typo: NeverEnbed vs NeverEmbed.</pre> <p>[doc/Ps2pdf.htm 1.80]</p> </blockquote> <p><strong><a name="2005-06-14_1119"></a> 2005-06-14 11:19 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : Type 42 fonts got wrong Width. DETAILS : Bug 688128 "pdfwrite: imprecise Width". pdfwrite did not account Metrics, Metrics2 of Type 42 fonts. EXPECTED DIFFERENCES : pdfwrite 72dpi : "01_001.pdf" "adesso2.pdf" "adesso7.pdf" "adesso8.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" "annots.pdf" "budget2_ai87.pdf" "Bug687660a.ps" "Bug687724.pdf" "bugsample.pdf" "Faktura.pdf" "fonts.pdf" "MagicEye.pdf" "S2_Digitalproof-Forum_x3k.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf" pdfwrite 300 dpi : "01_001.pdf" "159.pdf" "adesso2.pdf" "adesso7.pdf" "adesso8.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" "budget2.pdf" "budget2_ai87.pdf" "Bug687724.pdf" "bugsample.pdf" "Faktura.pdf" "fonts.pdf" "MagicEye.pdf" "S2_Digitalproof-Forum_x3k.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"</pre> <p>[src/zfont42.c 1.22]</p> </blockquote> <p><strong><a name="2005-06-13_1843"></a> 2005-06-13 18:43 Igor Melichev</strong></p> <blockquote> <pre> Fix : Interleaved images could miss Decode, step 4. DETAILS : Adding the new file gxsamplp.h to Develop.htm . EXPECTED DIFFERENCES : None.</pre> <p>[doc/Develop.htm 1.148]</p> </blockquote> <p><strong><a name="2005-06-09_1947"></a> 2005-06-09 19:47 Ray Johnston</strong></p> <blockquote> <pre> Add ManualFeed to the set of keys evaluated for media source matching. Needed to allow forcing a ManualFeed tray selection even when another media of the right type exists in another tray.</pre> <p>[lib/gs_setpd.ps 1.27]</p> </blockquote> <p><strong><a name="2005-06-09_0729"></a> 2005-06-09 07:29 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementinmg the ps2write device (continued 3). DETAILS : Removed a rudimentary code from gs_pdfwr.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.43]</p> </blockquote> <p><strong><a name="2005-06-09_0715"></a> 2005-06-09 07:15 Ralph Giles</strong></p> <blockquote> <pre> Throw an error when JBIG2 decoding fails in the library instead of segfaulting. Bug 688053.</pre> <p>[src/sjbig2.h 1.6]</p> </blockquote> <p><strong><a name="2005-06-09_0715"></a> 2005-06-09 07:15 Ralph Giles</strong></p> <blockquote> <pre> Throw an error when JBIG2 decoding fails in the library instead of segfaulting. Bug 688053.</pre> <p>[src/sjbig2.c 1.7]</p> </blockquote> <p><strong><a name="2005-06-09_0526"></a> 2005-06-09 05:26 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementinmg the ps2write device (continued 2). DETAILS : Fixing a name in gs_pdfwr.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.42]</p> </blockquote> <p><strong><a name="2005-06-08_1438"></a> 2005-06-08 14:38 Igor Melichev</strong></p> <blockquote> <pre> Fix : Interleaved images could miss Decode, step 3. DETAILS : Fixes the bug 688127 "CMYK image ignores Decode". 1. The sample unpacking function templates are generalized for a case of interleaved samples with different decode maps (gxsamplp.h). 2. Generated functions for the interleaved samples using the templates (gxsample.c). 3. Used those function in appropriate cases (gxipixel.c). 4. repack_bit_planes was called with a wrong map (0-th instead i-th) (gxidata.c). EXPECTED DIFFERENCES : Some images are rendered with a different (correct) color. The change appears to have no effect to the 'normal' rendering, because our testbase doesn't include images with "/MultipleDataSources false" and a non-trivial Decode. But such ones do appear after converting few files with pdfwrite. pdfwrite : "148-01.ps" "148-05.ps"</pre> <p>[src/gxidata.c 1.9, src/gxipixel.c 1.11, src/gxsample.c 1.7, src/gxsample.h 1.7, src/gxsamplp.h 1.2, src/lib.mak 1.210]</p> </blockquote> <p><strong><a name="2005-06-08_1416"></a> 2005-06-08 14:16 Igor Melichev</strong></p> <blockquote> <pre> Fix : Interleaved images could miss Decode, step 2. DETAILS : This change is algorithmically equivalent. This is a second preparation for fixing the bug 688127 "CMYK image ignores Decode". It moves bodies of sample unpacking functions to a new file gxsamplp.h and converts them into templates. It is just a code restructurization. We apply it separately in order to simplify the next step. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxsample.c 1.6, src/gxsamplp.h 1.1, src/lib.mak 1.209]</p> </blockquote> <p><strong><a name="2005-06-08_1400"></a> 2005-06-08 14:00 Igor Melichev</strong></p> <blockquote> <pre> Fix : Interleaved images could miss Decode, step 1. DETAILS : This change is algorithmically equivalent. This is a preparation for fixing the bug 688127 "CMYK image ignores Decode". It changes the SAMPLE_UNPACK_PROC function prototype to provide an access to a vector of maps in sample decoding functions. The new argument num_components_per_plane passes the length of the vector. The argument "const sample_lookup_t * ptab" is replaced with "const sample_map *smap" to pass the vector. With this patch only the 0th component of the passed vector is being used in order to provide the equivalense to the old code. Dropping this feature will be a next step. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxi12bit.c 1.7, src/gxi16bit.c 1.2, src/gxidata.c 1.8, src/gximage.h 1.8, src/gxsample.c 1.5, src/gxsample.h 1.6, src/lib.mak 1.208]</p> </blockquote> <p><strong><a name="2005-06-08_0656"></a> 2005-06-08 06:56 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementinmg the ps2write device (continued). DETAILS : 1. Do not copy procsets when pdfwrite is invoked in the ForOPDFRead mode with no OPDFReadProcsetPath specified (gdevpdfu.c). This is done to simplify debugging with checking the PDF generated in the ForOPDFRead mode with a reference PDF viewer. 2. Fixed a Cygwin/gcc warning in gdevpdfu.c . 3. Provided a customization of the procset to be written with ps2write using -sOPDFReadProcsetPath=string . EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.41, src/gdevpdfu.c 1.80]</p> </blockquote> <p><strong><a name="2005-06-08_0642"></a> 2005-06-08 06:42 Dan Coby</strong></p> <blockquote> <pre> Fix for 688116 DeviceN spot colours are corrupt in display device. DETAILS: The overprint device is one of the few devices that uses the GB_RETURN_COPY option to the get_bits procedures without also using the GB_RETURN_POINTER option. Thus the overprint device is bringing up problems in this option combination. The fix for 687935 "rangecheck in stroke while overprinting on the display device" brought this problem to the surface. The problem was that an incorrect buffer pointer was being used for the source for the data to be copied.</pre> <p>[src/gdevdgbr.c 1.13]</p> </blockquote> <p><strong><a name="2005-06-07_1924"></a> 2005-06-07 19:24 Ray Johnston</strong></p> <blockquote> <pre> Fix for the BeginPage and EndPage procedures used for N-up processing. DETAILS: The BeginPage called the previous BeginPage (stored in .BP) at the wrong time, so that rotation/translation of individual pages would not work correctly. The EndPage incremented the .Pn value even on 'device deactivation' calls (mode == 2) so the page count was off if the input PS did 'setpagedevice'. This probably is not widely used since it was broken. It's a little better now, but still needs improvement (IMHO) such as setting a 'clip' before the indivual pages. Try running two examples/tiger.eps to see why.</pre> <p>[lib/gsnup.ps 1.5]</p> </blockquote> <p><strong><a name="2005-06-07_1833"></a> 2005-06-07 18:33 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementinmg the ps2write device. DETAILS : 1. The ps2write device is a clone of the pdfwrite device. We define a new file gdevpdfb.h and move the device static data to there as a device template (gdevpdf.c, gdevpdfb.h). 2. pdf_open_document now writes out the copy opdfread.ps and few encodings (gdevpdfu.c). 3. Propagated a return code from pdf_open_document. 4. A new device parameter OPDFReadProcsetPath handles a list of files to be copied in the step (2) (gdevpdfx.h, gdevpdf.c, gdevpdfu.c, gdevpdfp.c). 5. pdf_close writes out the 0x04 character when working in the ForOPDFRead mode and OPDFReadProcsetPath is set. 6. A number of makefiles are changed to include the ps2write device. 7. In lib\gs_pdfwr.ps added the handling of distiller parameters with ps2write device. 8. In lib\gs_pdfwr.ps added an automatic setting of the OPDFReadProcsetPath device parameter for ps2write. 9. Added a new script ps2ps2.bat, which invokes Ghostscript with the ps2write devices. The old script ps2write.bat still invokes the Ghostscript with the pdfwrite device in the ForOPDFREad mode. It helps to debug ps2write with generating a PDF file in the ForOPDFRead mode. 10. In the documentation added references to the new files lib/ps2ps2.bat, src/gdevpdfb.h . (Develop.htm, Psfiles.htm). EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_pdfwr.ps 1.40, lib/ps2ps2.bat 1.1, src/bcwin32.mak 1.37, src/devs.mak 1.131, src/gdevpdf.c 1.113, src/gdevpdfb.h 1.1, src/gdevpdfp.c 1.49, src/gdevpdfu.c 1.79, src/gdevpdfx.h 1.120, doc/Develop.htm 1.147, doc/Psfiles.htm 1.63, src/macos-mcp.mak 1.34, src/macosx.mak 1.27, src/msvc32.mak 1.73, src/openvms.mak 1.40, src/os2.mak 1.46, src/unix-gcc.mak 1.49, src/unixansi.mak 1.40, src/watcw32.mak 1.34]</p> </blockquote> <p><strong><a name="2005-06-07_1641"></a> 2005-06-07 16:41 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : The memory descriptor of gx_device_pdf missed some strings. DETAILS : The bug was introduced when implementing the PDF encryption. Minor change : the string data change the type from gs_const_string to gs_string to comply with memory management macros. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.112, src/gdevpdfx.h 1.119]</p> </blockquote> <p><strong><a name="2005-06-06_1906"></a> 2005-06-06 19:06 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Handle TT cmap 00030000. DETAILS : Not sure why Ghostscript writes it since old wersions. A comment in lib/ttf_cmap reads : % Try another cmap format 3,0 -- Adobe doesn't mention it, but does % use it apparently (empirically determined). For now we do same in opdfread. Debugged with comparefiles\type42_glyph_index.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.73]</p> </blockquote> <p><strong><a name="2005-06-06_1532"></a> 2005-06-06 15:32 Igor Melichev</strong></p> <blockquote> <pre> ps2write : A named resource maintenance. DETAILS : Since named resources (such as psdfmarkBP) may be used on any page, they conflich with the viewer resource management discipline, which drops resources per page. This patch implements an exception for that discipline. 1. (opdfread.ps) At page end don't drop resources marked with /.Global . 2. (opdfread.ps) Handlinging Form XObject. 3. Provide the /.Global mark for those resources, which are used in a named resource. (dgevpdfj.c, gdevpdfm.c, gdevpdtw.c). 4. The flag pdf_resource_t::global marks resources, which are used while accumulating a named resource object stream, to provide (3) (gdevpdti.c, gdevpdfx.h). 5. gx_device_pdf::accumulating_a_global_object is added to designate the state for (4). It is saved and restored while enterin or exiting a substream (gdevpdfx.h, gdevpdfm.c, gdevpdti.c). 6. Removed 'const' from some function pritotypes to allow pdf_add_resource to set pdf_resource_t::global (gdevpdfi.c, gdevpdfo.c, gdevpdfx.h). 7. Minor change : improved a condition for writing the /.CleanResources flag (gdevpdf.c). 8. Removed a confusing comment in pdfmark_PS (gdevpdfm.c). Debugged with pdfmarkPS.ps, Bug687350.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.72, src/gdevpdf.c 1.111, src/gdevpdfi.c 1.71, src/gdevpdfj.c 1.45, src/gdevpdfm.c 1.48, src/gdevpdfo.c 1.33, src/gdevpdfu.c 1.78, src/gdevpdfx.h 1.118, src/gdevpdti.c 1.45, src/gdevpdtw.c 1.44]</p> </blockquote> <p><strong><a name="2005-06-04_1521"></a> 2005-06-04 15:21 Dan Coby</strong></p> <blockquote> <pre> Removed extra && and space from last commit (fix for 687973).</pre> <p>[src/scfd.c 1.8]</p> </blockquote> <p><strong><a name="2005-06-03_2003"></a> 2005-06-03 20:03 Ray Johnston</strong></p> <blockquote> <pre> Fix to allow CCITT data without EOFB when EndOfBlock is true (the default) to return normal end-of-file (EOFC) status instead of ioerror (ERRC) as long as the row count given by Rows is satisfied. Bug 687973. DETAILS: This bug was reported by a potential customer. The fix is minimal and returns EOFC instead of ERRC if the count given by Rows has been read. This seems to be the closest to what is implied by the Adobe description about EndOfBlock in that the filter WILL continue to process data past the Rows value if EndOfBlock is true (the default) as long as no error is seen. This means that PostScript programs that depend on this action to consume extra data will still operate correctly. Expected Differences: None (I ran all of the comparefiles).</pre> <p>[src/scfd.c 1.7, src/scfx.h 1.6]</p> </blockquote> <p><strong><a name="2005-05-31_2042"></a> 2005-05-31 20:42 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Fixed problems with Separation color spaces. DETAILS : Allocation mode was incorrect at several points. Debugged with comparefiles\Altona_Technical_1v1_x3.pdf . Minor change : Improved a bebug printing. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.71]</p> </blockquote> <p><strong><a name="2005-05-31_1925"></a> 2005-05-31 19:25 Stefan Kemper</strong></p> <blockquote> <pre> Update a few of the paper sizes used in reading/writing PXL. Fixes bug 688118.</pre> <p>[src/gdevpxen.h 1.7]</p> </blockquote> <p><strong><a name="2005-05-31_1305"></a> 2005-05-31 13:05 Igor Melichev</strong></p> <blockquote> <pre> Fix : TT interpreter had problems on 64 bit platforms. DETAILS : It compiled with wrong integer data sizes. Patch from Hin-Tak Leung . EXPECTED DIFFERENCES : None.</pre> <p>[src/ttfoutl.h 1.15, src/tttype.h 1.3, src/tttypes.h 1.2]</p> </blockquote> <p><strong><a name="2005-05-31_1104"></a> 2005-05-31 11:04 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementing the SetPageSize mode (continued). DETAILS : With the recent patch opdfread sets a graphic state, which was saved before setting a page size. As a consequence the page was erased when the initial graphic state is set. This patch recreates PDFR_InitialGS when setpagedevice is invoked to change a page size. Debugged with comparefiles\012-09.ps . Minor change : Improved a bebug printing. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.70]</p> </blockquote> <p><strong><a name="2005-05-31_1056"></a> 2005-05-31 10:56 Igor Melichev</strong></p> <blockquote> <pre> Fix : A failed pattern color could cause a crash in vector devices. DETAILS : When a pattern color was set and was not used, it was not remapped and causaed a crash in gx_dc_pattern_save_dc. Detected occasionally when running an incorrect PS file. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsptype1.c 1.22, src/gxhldevc.c 1.4]</p> </blockquote> <p><strong><a name="2005-05-30_2100"></a> 2005-05-30 21:00 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementing the SetPageSize mode. DETAILS : 1. SetPageSize mode enables changing a page size in the target printer. This mode is implemented mainly to simplify testing with Ghostscript|ppmraw. We need same page size of 'normal' and 'ps2write' rasters to simplify the automated comparizon. 2. (A minor change) Apply immediate binding to FitPages, RotatePages. 3. Allow more parameterization in ps2write.bat . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.69, lib/ps2write.bat 1.16]</p> </blockquote> <p><strong><a name="2005-05-30_1641"></a> 2005-05-30 16:41 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementing the font type MMType1. DETAILS : 1. MMType1 to be handled as Type 1 due to the PDF format specifics. 2. Minor change : A comment for 'TrueType' was not good. 3. An implementation for 'sh' is saved for future use, rather it was coded in ps2write by an error (never usewd with ps2write, will be with ps3write). EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.68]</p> </blockquote> <p><strong><a name="2005-05-29_1929"></a> 2005-05-29 19:29 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : Skip empty images when converting a shading into a bitmap. DETAILS : When converting a shading to a bitmap, a zero size image could be written due to a typoe in gdev_pdf_fill_path. Debugged with -r720 "Clarke Tate Manns Chinese-.ai" . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.64]</p> </blockquote> <p><strong><a name="2005-05-27_0543"></a> 2005-05-27 05:43 Dan Coby</strong></p> <blockquote> <pre> Fix for 688113 null ptr crash in gdevp14.c. With the -rXXXxYYY switch specified and high resolution PDF 1.4 transparency files, GS would crash. DETAILS: The logic for deteriming band sizes was being bypassed if the -rXXXxYYY switch was specified on the command line. Specifying resolution on the command line was forcing the calculation of band size. This occured before the determination that PDF 1.4 transparency was being made. The band size was not being recalculated when the determination was being done. The fix consists of including the 'page_uses_transparency' as part of the logic for determining when the band size is recalculated.</pre> <p>[src/gdevijs.c 1.12, src/gdevprn.c 1.20, src/gdevprn.h 1.15]</p> </blockquote> <p><strong><a name="2005-05-26_1722"></a> 2005-05-26 17:22 Igor Melichev</strong></p> <blockquote> <pre> Fix : 'strokepath' could generate wrongly oriented contours (continued 2) DETAILS : Bug 688114 "Worse frame rasterizing a distilled Bug687546.ps". The main change is gxstroke.c ln 853 : the line width rounding depended on the line direction. Rather the problem is old, before the patch http://ghostscript.com/pipermail/gs-cvs/2005-May/005519.html it was not so important because vertical and horizontal lines always had a positive direction. After the mentioned patch, that it not so. Thus this patch completes the mentioned patch. Other (minor) changes inprove visual trace instructions for round caps. EXPECTED DIFFERENCES : Normal 72 dpi : "110-01.ps" "169-05.ps" "169-09.ps" "222-05.ps" "260-01.ps" "289-01.ps" "297-01.ps" "298-01.ps" "298-05.ps" "298-09.ps" "321-01.ps" "321-05.ps" "adesso8.pdf" normal 300dpi : pdfwrite 72dpi : "012-13.ps" "013-13.ps" "014-05.ps" "014-13.ps" "015-05.ps" "169-05.ps" "169-09.ps" "222-05.ps" "260-01.ps" "297-01.ps" "316-07.ps" "adesso8.pdf" fail ppmraw/hdr "Bug687846.ps" "Bug687846.ps" fail ppmraw/cur "Bug687894.ps" fail pdfwrite/hdr "Bug687894.ps" fail ppmraw/hdr "Bug687894.ps" "Bug687894.ps" "file.pdf" pdfwrite 300dpi : "012-13.ps" "013-13.ps" "015-05.ps" "027-09.ps" "169-05.ps" "222-05.ps" "298-05.ps" "307-01.ps" "320-01.ps" "ai2.pdf"</pre> <p>[src/gxpath.c 1.11, src/gxstroke.c 1.16, src/lib.mak 1.207]</p> </blockquote> <p><strong><a name="2005-05-26_0735"></a> 2005-05-26 07:35 Igor Melichev</strong></p> <blockquote> <pre> Fix : 'strokepath' could generate wrongly oriented contours (continued) DETAILS : The patch http://ghostscript.com/pipermail/gs-cvs/2005-May/005519.html brake a debug check. Bug 688115 "Many new error/warning messages from gxstroke.c". EXPECTED DIFFERENCES : None.</pre> <p>[src/gxstroke.c 1.15]</p> </blockquote> <p><strong><a name="2005-05-25_2158"></a> 2005-05-25 21:58 Ray Johnston</strong></p> <blockquote> <pre> Fix VM space for userparams. Problem and patch courtesy of Paul Vojta. Bug 688107. DETAILS: Also thanks to Alex Cherepanov for a reporducible test case. The original problem file 'epstest.eps' did not actually show a problem. I tested this against the comparefiles to validate that there were no unexpected changes, but generally it was an obvious problem that an array might be created in a VM space that was not the same local/gloabl as the strings it contained.</pre> <p>[lib/gs_lev2.ps 1.37]</p> </blockquote> <p><strong><a name="2005-05-25_1557"></a> 2005-05-25 15:57 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : Wrong shading coordinates when converting to PDF 1.2 . DETAILS : 1. Do not write "W n" when cvd->has_background == true, because we do not write a clipping path in this case. 2. When a shading is being converted into a bitmap with a downsampling, coordinate formulas in gdev_pdf_fill_path were wrong. The new logic is : sx,sy := the bitmap offset; Scale down the color and the CTM; Scale down the path to be filled; The pdf_lcvd_t instance performs a shift of the shading coverage path with path_offset := {sx,sy}; A sacale up and shift back matrix is written into PDF as a 'cm' argument. {m.tx,m.ty} is same as the bitmap offset {sx, sy}; 3. gx_dc_pattern2_has_background must account whether the shading is instantiated with a shfill. In this case Background is being ignored. 4. In R_tensor_annulus, the assignation of curve[i].straight was wrong when the patch boundasries applied a cyclic shift with 'inside'. 5. In patch_fill, the computation of the shading contour sign was not correct. Rather it gave a right sign for most cases, we replaced it with a right general formula (assuming a non-self-overlapped patch). EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.63, src/gsptype2.c 1.19, src/gxshade1.c 1.41, src/gxshade6.c 1.100]</p> </blockquote> <p><strong><a name="2005-05-23_2233"></a> 2005-05-23 22:33 Dan Coby</strong></p> <blockquote> <pre> Fix for 688010 Errors in overprint with halftoned output. DETAILS: The PDF overprintmode can be used to specify overprinting when the value of an input color is zero. The problem was caused by an error in determining when an input color was zero. The problem was only apparent with a 'binary' halftone. Ie.e one in which on a single component is being halftoned. The earlier logic would overprint all components which were not being halftoned. The example case involved 100% black and 50% cyan. The black component was treated like it was 0%.</pre> <p>[src/gxht.c 1.17]</p> </blockquote> <p><strong><a name="2005-05-23_1824"></a> 2005-05-23 18:24 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, ps2write) : Shading background was missed in PDF1.2 . DETAILS : Bug 688109 "pdfwrite : shading background can erroneusly disappear". 1. A new function gx_dc_pattern2_has_background allows to know whether a pattern color has a background. 2. If it has, when converting a shading to a bitmap, entire bitmap is being filled, so the shading coverage is trivial, and it doesn't need to convert into a masked image or into a clipped image. Implemented with defining a new flag pdf_lcvd_t::has_background . 3. Minor change : defined the identifier pdf_lcvd_s . 4. In gdevpdfb.c, applied lossles filters to an image, if it is not big. The old code did in the ForOPDFRead mode only. So now it works for pdfwrite. It improves the view of patterns (including shadings), rather the compressed iomage size is bigger. The old code caused significant distorsions with applying DCT to shadings (distorsions appear at patch boundaries and/or at the shading coverage boundary). EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfb.c 1.29, src/gdevpdfd.c 1.62, src/gdevpdfx.h 1.117, src/gsptype2.c 1.18, src/gsptype2.h 1.13]</p> </blockquote> <p><strong><a name="2005-05-23_1459"></a> 2005-05-23 14:59 Igor Melichev</strong></p> <blockquote> <pre> Fix : 'setcachewdevice' must always clip characters. DETAILS : Bug 688096 " setcachedevice must clip characters". 'setcachedevice' establises a clipping box when rendering a glyph to a cache. In same time, when rendering with no caching, the old code did not clip. As a result, some glyphs were clipped, and some others were not, depending on the glyph size. This patch clips Type 3 and Type 10 charactrers when rendering with no cache, and behaves as the old code with other font types. We doing so to optimze the performance using the assumption that "outline" (FontType != 3 && FontType != 10) fonts must not paint outside FontBBox, which to be used for clipping in those cases. Besides that, the patch rounds Type 3 and Type 10 charactrer coordinates when renderingh with no cache, to provide an uniform coordinate assignation with the cached mode. The patch defines a new variant CACHE_DEVICE_NONE_AND_CLIP, which is defined almost for clarity. Actually the code never checks for this specific value. For more details see comments in code. EXPECTED DIFFERENCES : Normal 72dpi : Not detected. Normal 300dpi : "027-13.ps" "032-07.ps" "205-09.ps" "212-01.ps" "213-01.ps" "214-01.ps" "264-01.ps" "289-01.ps" "298-09.ps" "321-09.ps" pdfwrite 72 dpi : None. pdfwrite 300dpi : None.</pre> <p>[src/gscpm.h 1.5, src/gxchar.c 1.45]</p> </blockquote> <p><strong><a name="2005-05-23_1049"></a> 2005-05-23 10:49 Igor Melichev</strong></p> <blockquote> <pre> Fix : 'strokepath' could generate wrongly oriented contours. DETAILS : Bug 688103 "The dashing direction depends on the initial device CTM determinant". Bug 688097 "A wrong clipping with 298-01.ps" The patch computes initial_matrix_reflected = true iff the initial device CTM has a negative determinant. Then it is accounted to orient stroke outlines to a proper direction : they must form positive contours in the user space. For doing so we properly orient dash caps in gx_stroke_path_only_aux, and then compensate it in line_join_points. Several local function prototype were changed to pass the value of initial_matrix_reflected to line_join_points. Minor change : moved some visual trace instructions to a more general function, which is called from several places. EXPECTED DIFFERENCES : Normal 72dpi : "012-13.ps" "013-13.ps" "014-05.ps" "014-13.ps" "015-05.ps" "027-09.ps" "034-10.ps" "169-05.ps" "169-09.ps" "169-13.ps" "205-13.ps" "222-05.ps" "222-13.ps" "260-01.ps" "289-01.ps" "297-01.ps" "298-01.ps" "298-05.ps" "298-09.ps" "308-04.ps" "316-07.ps" "321-01.ps" "321-05.ps" "321-13.ps" "adesso8.pdf" "file.pdf" "golfer.eps" Normal 300dpi : "014-05.ps" "015-05.ps" "027-09.ps" "034-01.ps" "159.pdf" "169-05.ps" "222-05.ps" "231-01.ps" "260-01.ps" "281-01.ps" "289-01.ps" "298-01.ps" "298-05.ps" "307-01.ps" "321-01.ps" "321-05.ps" "86554321.pdf" "adesso7.pdf" "Bug687546.ps" pdfwrite 72 dpi : "012-13.ps" "013-13.ps" "014-05.ps" "014-13.ps" "015-05.ps" "034-10.ps" "169-05.ps" "169-09.ps" "169-13.ps" "222-05.ps" "222-09.ps" "222-13.ps" "260-01.ps" "297-01.ps" "316-07.ps" "adesso8.pdf" "file.pdf" "golfer.eps" pdfwrite 300dpi : "014-05.ps" "015-05.ps" "027-09.ps" "169-05.ps" "222-05.ps" "307-01.ps" "316-07.ps" "320-01.ps"</pre> <p>[src/gxstroke.c 1.14]</p> </blockquote> <p><strong><a name="2005-05-19_1639"></a> 2005-05-19 16:39 Ray Johnston</strong></p> <blockquote> <pre> Fix for yet another broken PDF that Adobe Reader handles without complaint. Circular references in Resources are now detected and handled (with a warning). Bug 687946 for customer 580. Thanks to Alex Cherepanov for this fix DETAILS: A dictionary is used to detect the looping and if found a pdfformaterror is emitted and the checking for transparency halts (returning false). This does mean that a file with this problem may be incorrectly classified and will be processed as if NOTRANSPARENCY was in effect. The performance penalty for the extra checking is negligble (tested with the 1236 page PDF 1.6 Reference Manual.</pre> <p>[lib/pdf_main.ps 1.98]</p> </blockquote> <p><strong><a name="2005-05-18_1959"></a> 2005-05-18 19:59 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improving the script with NOOUTERSAVE. EXPECTED DIFFERENCES : None.</pre> <p>[lib/ps2write.bat 1.15]</p> </blockquote> <p><strong><a name="2005-05-18_1951"></a> 2005-05-18 19:51 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Passing NumCopies to the output. DETAILS : 1. In the ForOPDFRead mode Page objects will have a NumCopies entry iff NumCopies in the input isn't null. With ForOPDFREad=false it is being ignored. 2. opdfread.ps applies copypage to provide the requested number of copies. Zero and negative values are being ignored. Thus, if a PS document multiplies specific pages, they will be printed in the requested number. In same time, entire document can be copied with setting the NumCopies device parameter to the printer. This behavior is some different than pswrite. Debugged with 268-03.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.67, src/gdevpdf.c 1.110, src/gdevpdfx.h 1.116]</p> </blockquote> <p><strong><a name="2005-05-18_1021"></a> 2005-05-18 10:21 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A wrong line join with 'stroke'. DETAILS : This patch affects all vector devices. The old code wrongly recognizes closed rectangular paths, so that unclosed rectangles were converted into closed ones with 'stroke'. EXPECTED DIFFERENCES : pdfwrite : 260-01.ps adesso1.pdf</pre> <p>[src/gdevvec.c 1.26]</p> </blockquote> <p><strong><a name="2005-05-17_2056"></a> 2005-05-17 20:56 Ralph Giles</strong></p> <blockquote> <pre> Update a comment to correctly describe the jasper stream object struct.</pre> <p>[src/sjpx.h 1.5]</p> </blockquote> <p><strong><a name="2005-05-17_2040"></a> 2005-05-17 20:40 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Complete supporting vierws which have no stroke color. DETAILS : Color was not synchronized when painting with a low level color. Debugged with 035-01.ps, 148-01.ps, 148-05.ps, 148-11.ps . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.61]</p> </blockquote> <p><strong><a name="2005-05-17_1740"></a> 2005-05-17 17:40 Igor Melichev</strong></p> <blockquote> <pre> opdfread : Implementing HalftoneType 3,6,10. DETAILS : 1. A bug in ComputeFunction_n0 : s/size/length 2. A bug in ComputeFunction_n0 scaled argument must compare with array size rather than with 1. 3. Creating halftone Thresholds from stream with CreateHalftoneThresholds. 4. Resolve SpotFunction independently on IsObjRef. 5. Resolve TransferFunction for some halftone types. 6. Convert HalftoneType 6 into HalftoneType 3. 7. Ignore HalftoneType > 6 (which are not allowed in Postscript level 2) and print a warning. We would like to convert them, but it's too complex. Debugged with 258-01.ps, 476-01.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.66]</p> </blockquote> <p><strong><a name="2005-05-17_1204"></a> 2005-05-17 12:04 Igor Melichev</strong></p> <blockquote> <pre> Fix (opdfread) : Some glyphs were substituted with .notdef . DETAILS : It was broken when implementing a workaround for broken filters in HP LaserJet 1320 : endstream was never called, so that definefont_hook was skipped. 1. Moved the processing from 'endstream' to a new procedure HookFont. 2. Imple,mented an 'endobj' daemon with .endobj_daemon, which is a property of an object. 3. ReadFontProcs procedures create instances of .endobj_daemon, which call HookFont. 4. definefont_hook has been removed forever. 5. 'wendstream' is now an empty procedure, which actually is never called due to the HP filter problem. Debugged with 01_001.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.65]</p> </blockquote> <p><strong><a name="2005-05-17_0841"></a> 2005-05-17 08:41 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improving the script. DETAILS : 1. Restricted the source line width with inserting temporary variables. 2. Provided the 'jobserver' option with an environment variable to simplify running Genoa tests. EXPECTED DIFFERENCES : None.</pre> <p>[lib/ps2write.bat 1.14]</p> </blockquote> <p><strong><a name="2005-05-17_0819"></a> 2005-05-17 08:19 Igor Melichev</strong></p> <blockquote> <pre> opdfread : Improving the discipline for function resolving. DETAILS : 1. Impolemented a general object reference recognizer in IsObjRef. 2. ResolveFunctionSafe is another helper. 3. Used it in function resolving. 4. Replaced ResolveSpotFunction with a general ResolveFunction. 5. Removed an unintended debug printing. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.64]</p> </blockquote> <p><strong><a name="2005-05-16_2325"></a> 2005-05-16 23:25 Igor Melichev</strong></p> <blockquote> <pre> opdfread : Implementing n-arguments linear sampled functions in BG, UCR, TR, BG2, UCR2, TR2, HT. DETAILS : 1. Fixed the stack balanse in ScaleArgN. 2. ComputeFunction_n0 Was not implemented. 3. FunctionToProc_x01 did not properly scale the argument from the Domain. 4. Added the FunctionToProc20 dispatch. 5. Renamed FunctionToProc2 into FunctionToProc12. 6. Renamed FunctionToProc4 into FunctionToProc14. 7. spotfunctions mark copied from pdf_draw.ps 8. ResolveFunction defines an uniform convention for function resolving. 9. Fixed SetTransfer with new convension of function resolving. 10. Implemented BG, UCR, TR, BG2, UCR2, TR2, HT with the new methods for 2-argument functions. Debugged with 246-01.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.63]</p> </blockquote> <p><strong><a name="2005-05-13_1228"></a> 2005-05-13 12:28 Alex Cherepanov</strong></p> <blockquote> <pre> Fix a typo in a comment.</pre> <p>[src/msvc32.mak 1.72]</p> </blockquote> <p><strong><a name="2005-05-12_1926"></a> 2005-05-12 19:26 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2write) : Did not write halftone, color transfer, and some other graphic state parameters. DETAILS : See comment in code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.c 1.62]</p> </blockquote> <p><strong><a name="2005-05-12_0201"></a> 2005-05-12 02:01 Alex Cherepanov</strong></p> <blockquote> <pre> Increase the artificial limits in the spot analyzer device to accomodate Xterra-Regular font. Fix bug 688077.</pre> <p>[src/gzspotan.c 1.14]</p> </blockquote> <p><strong><a name="2005-05-10_1619"></a> 2005-05-10 16:19 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Properly encrypt the document Info values. DETAILS : Bug 688076 "encrypted pdf document properties are garbled". This patch unwinds the part 7 of the patch http://ghostscript.com/pipermail/gs-cvs/2005-April/005485.html . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfo.c 1.32]</p> </blockquote> <p><strong><a name="2005-05-10_1322"></a> 2005-05-10 13:22 Ray Johnston</strong></p> <blockquote> <pre> Fix overly agressive xref format checking that was tripped up by double <cr> instead of <cr><lf>. Bug 688082 for customer 580. DETAILS: The xref did have 20 character entries, but as mentioned, a double 0x0d resulted in the second line being read as an empty line. Go back to the older method of reading 20 character strings, then add format verification that only allows white space characters after the 'f' or 'n'. There may be an underlying problem in the rebuild logic, or the file may be damaged beyond repair although it does now open. There is a warning issued about stream EOL that may have confused the rebuild logic.</pre> <p>[lib/pdf_main.ps 1.97]</p> </blockquote> <p><strong><a name="2005-05-07_2256"></a> 2005-05-07 22:56 Ray Johnston</strong></p> <blockquote> <pre> Handle non-integer font size and stop after last page processed.</pre> <p>[lib/gslp.ps 1.7]</p> </blockquote> <p><strong><a name="2005-05-05_0535"></a> 2005-05-05 05:35 Dan Coby</strong></p> <blockquote> <pre> Partial fix for 687814 dithering artifacts. The given test file shows some faint halftone dots in the background when rasterized using the bmp256 device. DETAILS: The problem is caused by a combination of factors that aggravate the situation plus some things in the color look up logic that cause minor errors in the calculations. The aggravating factors: By default, Ghostscript uses a 16x16 halftone cell for low resolutions, i.e. below 150 dpi. (I do not know the reasons why and it seems like a poor choice to me. However for now, I am not changing the halftone.) The bmp256 device utilizes a 6x6x6 RGB color cube. Thus there are 1281 levels ((16 x 16 x 5) + 1) for each halftoned colorant. This gives a step size between each level of 0.00078. Thus even very small errors in the calculations become visible as faint halftone dots. The given test file is using a CalRGB color space. The WhitePoint is [ 0.9505 1 1.089 ] which is the standard D65 white point. However with the given CalRGB parameters and a pure white RGB input (1 1 1). the resulting XYZ is [0.9505 0.99999 1.089] which has a very small error in the Y value. (However the error is small enough that one would not expect it to be visible.) The calculations in Ghostscript's halftoning logic for determining the halftone level truncate values. With an RGB process color model, this means that only a pure white is not halftoned. Thus the small error mentioned in the previous paragraph becomes visible. Note: The truncation effects work the other way in a CMYK process color model, which is why we do not see this problem with shades that are nearly white in CMYK halftoned output. The calculation errors: To save CPU time, the color look up logic did not interpolate table entries which were closer that 0.01. Thus output values could have an error as large as 0.01. The color look up logic clipped table entries to the specified output range. This can cause errors with interpolated values when the interpolation involves one table entry that is clipped and one entry that is not clipped. The changes in this fix: The calculations that determine the halftone levels was modified. Actually it was simplified. Prior to the DeviceN changes (in revision 8.00) there were three separate calculations for halftone levels. There was a separate calculation for Gray, RGB, and CMYK color spaces. Revision 8.00 changed the halftoning to be based upon the device's process color model (instead of the color space) and merged the RGB and CMYK calculations. The two separate calculations were kept to minimize regressions during the DeviceN effort. This change basically keeps the logic that had been used for Gray process color models. This version of the calculation does not have the truncation problems that were present in the RGB/CMYK calculation. Another simplification was removal of some logic that was checking for additive versus subtractive process color model. Once again this logic was present only to minimize regressions compared to pre 8.00 results. The final result is that this calculation is much simpler, faster, and gives a better result. The 'do not interpolate' criteria was reduced to 0.001. Once again this can add to the CPU time. Changes which are not in this fix: The clamping of look up table entries was not changed. Changing this requires that the we would have to clamp the output after the table lookup. The errors are small but they are large enough that problems are still seen with the bmp256 device and a 16x16 halftone cell. There are several different paths through this logic and thus the probability of creating worse errors is relatively high. This change would add slightly to the CPU time but is required to get the correct result. EXPECTED DIFFERENCES: This change produces small changes in the halftone levels. The changes in the 'do not interpolate' value affects many files which use CIE or ICC color spaces. Between these two changes, this fix affects 165 files.</pre> <p>[src/gscie.h 1.14, src/gxcmap.c 1.25, src/gxdevndi.c 1.6, src/gxdither.h 1.7]</p> </blockquote> <p><strong><a name="2005-05-03_1050"></a> 2005-05-03 10:50 Igor Melichev</strong></p> <blockquote> <pre> Speed up shadings : a minor optimization for the monotonity check of a stitching function. DETAILS : It returned false (wrong, must be true) if entire interval falls to the end of the domain. Speeds up ps2write with "Clarke Tate Manns Chinese.ai". EXPECTED DIFFERENCES : Not observed in a local testing with arbitrary devices. May cause a minor difference with some devices.</pre> <p>[src/gsfunc3.c 1.26]</p> </blockquote> <p><strong><a name="2005-05-03_1041"></a> 2005-05-03 10:41 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Set device parameters to preserve colors. EXPECTED DIFFERENCES : None.</pre> <p>[lib/ps2write.bat 1.13]</p> </blockquote> <p><strong><a name="2005-05-03_0910"></a> 2005-05-03 09:10 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Fix problems with shadings. DETAILS : 1. gdev_pdf_fill_rectangle_hl_color did not implement a shading conversion when called with a shading color. 2. The "convert_to_image" branch of gdev_pdf_fill_path had a problem with clipping path when called fron the operator 'fill' (rather than 'shfill'). 3. In the "convert_to_image" branch of gdev_pdf_fill_path improved the balance of Q/q in case of errors. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.60]</p> </blockquote> <p><strong><a name="2005-04-29_1658"></a> 2005-04-29 16:58 Ray Johnston</strong></p> <blockquote> <pre> Handle CIDCount value of 65536 which might be seen with Identity CMap. Fix for customer 562. DETAILS: while a multiple string approach had been previously implemented to allow CIDCount > 32767, with 65536 a 'rangecheck in --string-- would result when trying to create a string of 65538 bytes (32769 * 2). I chose a arbitrary break point of 22000 CID's so that three strings would be enough for 66000 total.</pre> <p>[lib/gs_cidtt.ps 1.9]</p> </blockquote> <p><strong><a name="2005-04-27_1640"></a> 2005-04-27 16:40 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Properly account FontMatrix of a CID font with 'glypshow', 'cshow'. DETAILS : Bug 688000 "PDF writer produces misplaced characters". When a CID font is used with 'glypshow' or with 'show' in a 'cshow' procedure, pdfwrite creates a Type 0 font for wrapping the CID font according to the PDF standard. Doing so, the old code created a single type 0 font for all occurances of the CID font, rather those occurances may have different values of FontMatrix. The new code creates so many type 0 fonts as many various values of FontMatrix is used with the CID font. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtc.c 1.42, src/gsfont.c 1.36, src/gsfont.h 1.11]</p> </blockquote> <p><strong><a name="2005-04-26_2136"></a> 2005-04-26 21:36 Dan Coby</strong></p> <blockquote> <pre> Fix for 687883 tiff32nc device and PDF transparency and for 687980 image missing with psdcmyk driver. DETAILS: The absence of the images was caused by an error in the handling of PDF 1.4 transparency soft masks (SMask). The mask data is monochrome. However it is saved (like all PDF 1.4 transparency related colors) in the blending color space. Currently the process color model of the output device is being used for the PDF 1.4 blending space. The fix consists of inverting the image mask data when a subtractive blending color space is being used.</pre> <p>[src/gdevp14.c 1.28]</p> </blockquote> <p><strong><a name="2005-04-26_2128"></a> 2005-04-26 21:28 Dan Coby</strong></p> <blockquote> <pre> Fix for 688048 ijs driver broken in 8.51 for ProcessColorModel=Gray versus 8.50 DETAILS: There were a few minor problems with the gdevijs.c file. 1. The file has been corrupted with extra ^M's at the end of lines. (These cause problems with the MSVC debugger since MSVC gets confused about which source line is being debugged.. They can also cause problem with the Borland Compiler.) This a reoccurring problem and I am getting tired of seeing it. Unfortunately they are not visible in the diff shown below or in the MSVC debugger. 2. The routine gsijs_read_string_malloc has some problems. The call to gs_free has str as a parameter when it should have been *str. (str is a pointer to a pointer.) This is the major cause of the reported problem. The routine only released the old string when the new one needed to be larger however it always allocated a new string. Since this is non GC memory, this causes a leak.</pre> <p>[src/gdevijs.c 1.11]</p> </blockquote> <p><strong><a name="2005-04-25_1228"></a> 2005-04-25 12:28 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Uninitialized variable when encrypting a string from a pdfmark. DETAILS : Bug 687809 "pdfwrite: A wrong encryption of bookmarks". This bug may become another classic example, which demonstrates a bad coding style. The function s_PSSD_init incompletely performed the action, which it is designed for. The reason is that the macro s_PSSD_init_inline was made especially for optimizing scan_token, and its name doesn't reflect its action. When coded s_PSSD_init, its action was forgotten. As a result we've got an indeterministic behavior. This fix renames s_PSSD_init_inline into s_PSSD_partially_init_inline for a better reflection of its action, completes s_PSSD_init, and makes the letter be public for a regular initialization. Particularly using it gdevpdfr.c to fix another indeterministic bug, which persists since the repository was created. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfr.c 1.9, src/iscan.c 1.20, src/sstring.c 1.5, src/sstring.h 1.7]</p> </blockquote> <p><strong><a name="2005-04-25_0223"></a> 2005-04-25 02:23 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : font file objects encryption was broken when worked on ps2write. DETAILS : Bug 688045 "gs 8.51 cannot create encrypted pdf file correctly". 1. With CompatibilityLevel == 1.2 did not create an uniquie font name. Removing pdf_begin_fontfile and open the data stream with reserving the object ID before font name is being computed (gdevpdtb.c). Detected occasionally, and it is not related to the bug. Fixed to establish a correct order of processing, setting a proper context for other changes. 2. pdf_write_embedded_font must not set DATA_STREAM_ENCRYPT because the font object is being written into the temporary file pdev->streams. It will be encrypted when copyed from the temporary file to the output file. See comment in pdf_begin_encrypt. The old code actually encrypted it twice, what is equivalent to no encryption. We guess it was broken while working on ps2write, due to writing font descriptor object before font file object. 3. pdf_write_cmap had same problem as pdf_write_embedded_font. 4. pdf_write_contents_cid2 had same problem with CIDToGIDMap. 5. In pdf_encrypt_encoded_string, the PSSD filter did not move the cursor of the underlying stream when closing by EOD. We believe that it worked when it was coded, and we guess it was broken relatively recently. As a workaround, setting close_at_eod = false, because this mode appears to move the underlying stream. We didn't analyze why PSSD moved it a long ago and doesn't longer move now. 6. pdf_write_cid_system_info_to_stream must not encrypt when called from pdf_write_cmap due to (3). 7. Don't encrypt the DocumentInfo dictionary items because Adobe readers don't decrypt them. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfo.c 1.31, src/gdevpdfu.c 1.77, src/gdevpdtb.c 1.36, src/gdevpdti.c 1.44, src/gdevpdtw.c 1.43]</p> </blockquote> <p><strong><a name="2005-04-24_2201"></a> 2005-04-24 22:01 Ralph Giles</strong></p> <blockquote> <pre> Initial revision</pre> <p>[jasper/NEWS 1.1, jasper/LICENSE 1.1, jasper/README 1.1, jasper/aclocal.m4 1.1, jasper/COPYRIGHT 1.1, jasper/INSTALL 1.1, jasper/Makefile.am 1.1, jasper/Makefile.in 1.1, jasper/configure 1.1, jasper/configure.ac 1.1, jasper/jasper.spec 1.1, jasper/jasper.spec.in 1.1, jasper/doc/README 1.1, jasper/doc/jasper.pdf 1.1, jasper/doc/jpeg2000.pdf 1.1, jasper/src/Makefile.am 1.1, jasper/src/Makefile.in 1.1, jasper/src/README 1.1, jasper/src/appl/Makefile.am 1.1, jasper/src/appl/Makefile.in 1.1, jasper/src/appl/dummy.c 1.1, jasper/src/appl/imginfo.c 1.1, jasper/src/appl/jiv.c 1.1, jasper/src/appl/imgcmp.c 1.1, jasper/src/appl/jasper.c 1.1, jasper/src/appl/jasper_sdl.c 1.1, jasper/src/libjasper/Makefile.am 1.1, jasper/src/libjasper/Makefile.in 1.1, jasper/src/libjasper/README 1.1, jasper/src/libjasper/dummy.c 1.1, jasper/src/libjasper/bmp/Makefile.am 1.1, jasper/src/libjasper/bmp/Makefile.in 1.1, jasper/src/libjasper/bmp/bmp_cod.c 1.1, jasper/src/libjasper/bmp/bmp_cod.h 1.1, jasper/src/libjasper/bmp/bmp_dec.c 1.1, jasper/src/libjasper/bmp/bmp_enc.c 1.1, jasper/src/libjasper/bmp/bmp_enc.h 1.1, jasper/src/libjasper/jp2/Makefile.am 1.1, jasper/src/libjasper/jp2/Makefile.in 1.1, jasper/src/libjasper/jp2/jp2_cod.c 1.1, jasper/src/libjasper/jp2/jp2_cod.h 1.1, jasper/src/libjasper/jp2/jp2_dec.c 1.1, jasper/src/libjasper/jp2/jp2_dec.h 1.1, jasper/src/libjasper/jp2/jp2_enc.c 1.1, jasper/src/libjasper/jpc/jpc_cod.h 1.1, jasper/src/libjasper/jpc/jpc_dec.c 1.1, jasper/src/libjasper/jpc/jpc_dec.h 1.1, jasper/src/libjasper/jpc/jpc_enc.c 1.1, jasper/src/libjasper/jpc/jpc_enc.h 1.1, jasper/src/libjasper/jpc/jpc_fix.h 1.1, jasper/src/libjasper/jpc/jpc_flt.h 1.1, jasper/src/libjasper/jpc/jpc_math.c 1.1, jasper/src/libjasper/jpc/jpc_math.h 1.1, jasper/src/libjasper/jpc/jpc_mct.c 1.1, jasper/src/libjasper/jpc/jpc_mct.h 1.1, jasper/src/libjasper/jpc/jpc_mqcod.c 1.1, jasper/src/libjasper/jpc/jpc_mqcod.h 1.1, jasper/src/libjasper/jpc/jpc_mqdec.c 1.1, jasper/src/libjasper/jpc/jpc_mqdec.h 1.1, jasper/src/libjasper/jpc/jpc_mqenc.c 1.1, jasper/src/msvc/Makefile.am 1.1, jasper/src/msvc/Makefile.in 1.1, jasper/src/msvc/README 1.1, jasper/src/msvc/imgcmp.dsp 1.1, jasper/src/msvc/imginfo.dsp 1.1, jasper/src/msvc/jasper.dsp 1.1, jasper/src/msvc/jasper.dsw 1.1, jasper/src/msvc/jiv.dsp 1.1, jasper/src/msvc/libjasper.dsp 1.1, jasper/src/libjasper/jpc/Makefile.am 1.1, jasper/src/libjasper/jpc/Makefile.in 1.1, jasper/src/libjasper/jpc/jpc_bs.c 1.1, jasper/src/libjasper/jpc/jpc_bs.h 1.1, jasper/src/libjasper/jpc/jpc_cs.c 1.1, jasper/src/libjasper/jpc/jpc_cs.h 1.1, jasper/src/libjasper/jpc/jpc_mqenc.h 1.1, jasper/src/libjasper/jpc/jpc_qmfb.c 1.1, jasper/src/libjasper/jpc/jpc_qmfb.h 1.1, jasper/src/libjasper/jpc/jpc_t1cod.c 1.1, jasper/src/libjasper/jpc/jpc_t1cod.h 1.1, jasper/src/libjasper/jpc/jpc_t1dec.c 1.1, jasper/src/libjasper/jpc/jpc_t1dec.h 1.1, jasper/src/libjasper/jpc/jpc_t1enc.c 1.1, jasper/src/libjasper/jpc/jpc_t1enc.h 1.1, jasper/src/libjasper/jpc/jpc_t2cod.c 1.1, jasper/src/libjasper/jpc/jpc_t2cod.h 1.1, jasper/src/libjasper/jpc/jpc_t2dec.c 1.1, jasper/src/libjasper/jpc/jpc_t2dec.h 1.1, jasper/src/libjasper/jpc/jpc_t2enc.c 1.1, jasper/src/libjasper/jpc/jpc_t2enc.h 1.1, jasper/src/libjasper/jpc/jpc_tagtree.c 1.1, jasper/src/libjasper/jpc/jpc_tagtree.h 1.1, jasper/src/libjasper/jpc/jpc_tsfb.c 1.1, jasper/src/libjasper/jpc/jpc_tsfb.h 1.1, jasper/src/libjasper/jpc/jpc_util.c 1.1, jasper/src/libjasper/jpc/jpc_util.h 1.1, jasper/src/libjasper/jpg/Makefile.am 1.1, jasper/src/libjasper/jpg/Makefile.in 1.1, jasper/src/libjasper/jpg/README 1.1, jasper/src/libjasper/jpg/jpg_cod.h 1.1, jasper/src/libjasper/jpg/jpg_dec.c 1.1, jasper/src/libjasper/jpg/jpg_dummy.c 1.1, jasper/src/libjasper/jpg/jpg_enc.c 1.1, jasper/src/libjasper/jpg/jpg_enc.h 1.1, jasper/src/libjasper/jpg/jpg_jpeglib.h 1.1, jasper/src/libjasper/jpg/jpg_val.c 1.1, jasper/src/libjasper/mif/Makefile.am 1.1, jasper/src/libjasper/mif/README 1.1, jasper/src/libjasper/mif/mif_cod.c 1.1, jasper/src/libjasper/mif/mif_cod.h 1.1, jasper/src/libjasper/base/Makefile.am 1.1, jasper/src/libjasper/base/Makefile.in 1.1, jasper/src/libjasper/base/jas_cm.c 1.1, jasper/src/libjasper/base/jas_debug.c 1.1, jasper/src/libjasper/base/jas_getopt.c 1.1, jasper/src/libjasper/base/jas_icc.c 1.1, jasper/src/libjasper/base/jas_iccdata.c 1.1, jasper/src/libjasper/base/jas_image.c 1.1, jasper/src/libjasper/base/jas_init.c 1.1, jasper/src/libjasper/base/jas_malloc.c 1.1, jasper/src/libjasper/base/jas_seq.c 1.1, jasper/src/libjasper/base/jas_stream.c 1.1, jasper/src/libjasper/base/jas_string.c 1.1, jasper/src/libjasper/base/jas_tvp.c 1.1, jasper/src/libjasper/base/jas_version.c 1.1, jasper/src/libjasper/include/Makefile.am 1.1, jasper/src/libjasper/include/Makefile.in 1.1, jasper/src/libjasper/include/jasper/jas_debug.h 1.1, jasper/src/libjasper/include/jasper/jas_fix.h 1.1, jasper/src/libjasper/include/jasper/jas_icc.h 1.1, jasper/src/libjasper/include/jasper/jas_image.h 1.1, jasper/src/libjasper/include/jasper/jas_init.h 1.1, jasper/src/libjasper/include/jasper/jas_malloc.h 1.1, jasper/src/libjasper/include/jasper/jas_math.h 1.1, jasper/src/libjasper/include/jasper/jas_seq.h 1.1, jasper/src/libjasper/include/jasper/jas_version.h 1.1, jasper/src/libjasper/mif/Makefile.in 1.1, jasper/src/libjasper/pgx/Makefile.am 1.1, jasper/src/libjasper/pgx/Makefile.in 1.1, jasper/src/libjasper/pgx/pgx_cod.c 1.1, jasper/src/libjasper/pgx/pgx_cod.h 1.1, jasper/src/libjasper/pgx/pgx_dec.c 1.1, jasper/src/libjasper/pgx/pgx_enc.c 1.1, jasper/src/libjasper/pgx/pgx_enc.h 1.1, jasper/src/libjasper/pnm/Makefile.am 1.1, jasper/src/libjasper/pnm/Makefile.in 1.1, jasper/src/libjasper/pnm/pnm_cod.c 1.1, jasper/src/libjasper/pnm/pnm_cod.h 1.1, jasper/src/libjasper/pnm/pnm_dec.c 1.1, jasper/src/libjasper/pnm/pnm_enc.c 1.1, jasper/src/libjasper/pnm/pnm_enc.h 1.1, jasper/src/libjasper/ras/Makefile.am 1.1, jasper/src/libjasper/ras/Makefile.in 1.1, jasper/src/libjasper/ras/ras_cod.c 1.1, jasper/src/libjasper/ras/ras_cod.h 1.1, jasper/src/libjasper/ras/ras_dec.c 1.1, jasper/src/libjasper/ras/ras_enc.c 1.1, jasper/src/libjasper/ras/ras_enc.h 1.1, jasper/data/Makefile.am 1.1, jasper/data/colorprofiles/README 1.1, jasper/data/colorprofiles/erimm.icm 1.1, jasper/data/colorprofiles/esrgb.icm 1.1, jasper/data/colorprofiles/esrgbgrey.icm 1.1, jasper/data/colorprofiles/grey.icm 1.1, jasper/data/colorprofiles/greyromm.icm 1.1, jasper/data/colorprofiles/romm.icm 1.1, jasper/data/colorprofiles/sgray.icm 1.1, jasper/data/colorprofiles/srgb.icm 1.1, jasper/data/colorprofiles/sycc.icm 1.1, jasper/data/images/README 1.1, jasper/data/images/example.mif 1.1, jasper/data/images/goldenears.bmp 1.1, jasper/data/images/goldenears.jpg 1.1, jasper/data/images/stawamuschief_gray.pnm 1.1, jasper/data/images/test.pnm 1.1, jasper/src/libjasper/include/jasper/Makefile.am 1.1, jasper/src/libjasper/include/jasper/Makefile.in 1.1, jasper/src/libjasper/include/jasper/jas_cm.h 1.1, jasper/src/libjasper/include/jasper/jas_config.h 1.1, jasper/src/libjasper/include/jasper/jas_config_ac.h 1.1, jasper/src/libjasper/include/jasper/jas_config_ac.h.in 1.1, jasper/src/libjasper/include/jasper/jas_config_win32.h 1.1, jasper/src/libjasper/include/jasper/jas_getopt.h 1.1, jasper/src/libjasper/include/jasper/jas_stream.h 1.1, jasper/src/libjasper/include/jasper/jas_string.h 1.1, jasper/src/libjasper/include/jasper/jas_tvp.h 1.1, jasper/src/libjasper/include/jasper/jas_types.h 1.1, jasper/src/libjasper/include/jasper/jasper.h 1.1, jasper/data/images/example.mif0 1.1, jasper/data/images/goldenears.pnm 1.1, jasper/data/images/goldenears.ras 1.1, jasper/acaux/compile 1.1, jasper/acaux/depcomp 1.1, jasper/data/images/feep.pnm 1.1, jasper/data/images/feep2.pnm 1.1, jasper/data/images/goldenears_gray.jpg 1.1, jasper/data/images/goldenears_gray.pnm 1.1, jasper/data/images/goldenears_gray.ras 1.1, jasper/data/images/small_16x1.pgm 1.1, jasper/data/images/small_1x1.pgm 1.1, jasper/data/images/stawamuschief.pnm 1.1, jasper/acaux/config.guess 1.1, jasper/acaux/config.sub 1.1, jasper/acaux/install-sh 1.1, jasper/acaux/ltmain.sh 1.1, jasper/acaux/missing 1.1]</p> </blockquote> <p><strong><a name="2005-04-24_2158"></a> 2005-04-24 21:58 Ralph Giles</strong></p> <blockquote> <pre> Initial revision</pre> <p>[jbig2dec/LICENSE 1.1, jbig2dec/README 1.1, jbig2dec/aclocal.m4 1.1, jbig2dec/compile 1.1, jbig2dec/depcomp 1.1, jbig2dec/jbig2_image.c 1.1, jbig2dec/jbig2_image.h 1.1, jbig2dec/jbig2_mmr.c 1.1, jbig2dec/jbig2_mmr.h 1.1, jbig2dec/jbig2dec.c 1.1, jbig2dec/msvc.mak 1.1, jbig2dec/test_jbig2dec.py 1.1, jbig2dec/COPYING 1.1, jbig2dec/Makefile.am 1.1, jbig2dec/Makefile.in 1.1, jbig2dec/config.h.in 1.1, jbig2dec/config_types.h 1.1, jbig2dec/config_types.h.in 1.1, jbig2dec/config_win32.h 1.1, jbig2dec/configure 1.1, jbig2dec/configure.ac 1.1, jbig2dec/getopt.c 1.1, jbig2dec/getopt.h 1.1, jbig2dec/getopt1.c 1.1, jbig2dec/install-sh 1.1, jbig2dec/jbig2.c 1.1, jbig2dec/jbig2.h 1.1, jbig2dec/jbig2_arith.c 1.1, jbig2dec/jbig2_arith.h 1.1, jbig2dec/jbig2_arith_iaid.c 1.1, jbig2dec/jbig2_arith_iaid.h 1.1, jbig2dec/jbig2_arith_int.c 1.1, jbig2dec/jbig2_arith_int.h 1.1, jbig2dec/jbig2_generic.c 1.1, jbig2dec/jbig2_generic.h 1.1, jbig2dec/jbig2_huffman.c 1.1, jbig2dec/jbig2_huffman.h 1.1, jbig2dec/jbig2_hufftab.h 1.1, jbig2dec/jbig2_image_pbm.c 1.1, jbig2dec/jbig2_image_png.c 1.1, jbig2dec/jbig2_metadata.c 1.1, jbig2dec/jbig2_metadata.h 1.1, jbig2dec/jbig2_page.c 1.1, jbig2dec/jbig2_priv.h 1.1, jbig2dec/jbig2_refinement.c 1.1, jbig2dec/jbig2_segment.c 1.1, jbig2dec/jbig2_symbol_dict.c 1.1, jbig2dec/jbig2_symbol_dict.h 1.1, jbig2dec/jbig2_text.c 1.1, jbig2dec/memcmp.c 1.1, jbig2dec/missing 1.1, jbig2dec/os_types.h 1.1, jbig2dec/sha1.c 1.1, jbig2dec/sha1.h 1.1, jbig2dec/snprintf.c 1.1]</p> </blockquote> <p><strong><a name="2005-04-24_2146"></a> 2005-04-24 21:46 Ralph Giles</strong></p> <blockquote> <pre> Initial revision</pre> <p>[libpng/TODO 1.1, libpng/example.c 1.1, libpng/pngconf.h 1.1, libpng/pnggccrd.c 1.1, libpng/pngget.c 1.1, libpng/LICENSE 1.1, libpng/pngmem.c 1.1, libpng/pngrio.c 1.1, libpng/pngset.c 1.1, libpng/pngwio.c 1.1, libpng/png.5 1.1, libpng/png.c 1.1, libpng/pngtrans.c 1.1, libpng/README 1.1, libpng/configure 1.1, libpng/png.h 1.1, libpng/pngnow.png 1.1, libpng/pngread.c 1.1, libpng/pngtest.c 1.1, libpng/pngbar.jpg 1.1, libpng/pngbar.png 1.1, libpng/pngvcrd.c 1.1, libpng/pngpread.c 1.1, libpng/pngwrite.c 1.1, libpng/libpng.txt 1.1, libpng/libpngpf.3 1.1, libpng/pngwtran.c 1.1, libpng/ANNOUNCE 1.1, libpng/INSTALL 1.1, libpng/KNOWNBUG 1.1, libpng/Y2KINFO 1.1, libpng/pngwutil.c 1.1, libpng/CHANGES 1.1, libpng/libpng.3 1.1, libpng/pngrtran.c 1.1, libpng/pngerror.c 1.1, libpng/pngrutil.c 1.1, libpng/pngtest.png 1.1, libpng/contrib/pngminus/makefile.std 1.1, libpng/contrib/pngminus/makefile.tc3 1.1, libpng/contrib/pngminus/pngminus.sh 1.1, libpng/contrib/pngminus/pnm2png.bat 1.1, libpng/contrib/pngminus/pnm2png.sh 1.1, libpng/contrib/gregbook/LICENSE 1.1, libpng/contrib/gregbook/README 1.1, libpng/contrib/gregbook/makevms.com 1.1, libpng/contrib/gregbook/rpng-win.c 1.1, libpng/contrib/pngminus/README 1.1, libpng/contrib/pngminus/makevms.com 1.1, libpng/contrib/pngminus/png2pnm.bat 1.1, libpng/contrib/pngminus/png2pnm.c 1.1, libpng/contrib/pngminus/png2pnm.sh 1.1, libpng/contrib/pngminus/pngminus.bat 1.1, libpng/contrib/pngminus/pnm2png.c 1.1, libpng/contrib/pngsuite/README 1.1, libpng/contrib/pngsuite/basn0g01.png 1.1, libpng/contrib/pngsuite/basn0g02.png 1.1, libpng/contrib/pngsuite/basn0g04.png 1.1, libpng/contrib/pngsuite/basn0g08.png 1.1, libpng/contrib/pngsuite/basn0g16.png 1.1, libpng/contrib/pngsuite/basn2c08.png 1.1, libpng/contrib/pngsuite/basn2c16.png 1.1, libpng/contrib/pngsuite/basn3p01.png 1.1, libpng/contrib/pngsuite/basn3p02.png 1.1, libpng/contrib/pngsuite/basn3p04.png 1.1, libpng/contrib/pngsuite/basn3p08.png 1.1, libpng/contrib/pngsuite/basn4a08.png 1.1, libpng/contrib/pngsuite/basn4a16.png 1.1, libpng/contrib/pngsuite/basn6a08.png 1.1, libpng/contrib/pngsuite/basn6a16.png 1.1, libpng/contrib/gregbook/rpng2-x.c 1.1, libpng/contrib/gregbook/toucan.png 1.1, libpng/contrib/gregbook/writepng.c 1.1, libpng/contrib/gregbook/writepng.h 1.1, libpng/contrib/gregbook/Makefile.sgi 1.1, libpng/contrib/gregbook/Makefile.unx 1.1, libpng/contrib/gregbook/Makefile.w32 1.1, libpng/contrib/gregbook/readpng2.c 1.1, libpng/contrib/gregbook/readpng2.h 1.1, libpng/contrib/gregbook/rpng-x.c 1.1, libpng/contrib/gregbook/wpng.c 1.1, libpng/contrib/gregbook/readpng.c 1.1, libpng/contrib/gregbook/readpng.h 1.1, libpng/contrib/gregbook/rpng2-win.c 1.1, libpng/contrib/visupng/PngFile.c 1.1, libpng/contrib/visupng/PngFile.h 1.1, libpng/contrib/visupng/VisualPng.c 1.1, libpng/contrib/visupng/VisualPng.dsp 1.1, libpng/contrib/visupng/VisualPng.dsw 1.1, libpng/contrib/visupng/VisualPng.ico 1.1, libpng/contrib/visupng/VisualPng.png 1.1, libpng/contrib/visupng/VisualPng.rc 1.1, libpng/contrib/visupng/resource.h 1.1, libpng/contrib/visupng/README.txt 1.1, libpng/contrib/visupng/cexcept.h 1.1, libpng/scripts/makefile.32sunu 1.1, libpng/scripts/makefile.64sunu 1.1, libpng/scripts/makefile.aix 1.1, libpng/scripts/makefile.bor 1.1, libpng/scripts/makefile.dec 1.1, libpng/scripts/makefile.dj2 1.1, libpng/scripts/makefile.elf 1.1, libpng/scripts/makefile.gcc 1.1, libpng/scripts/makefile.knr 1.1, libpng/scripts/makefile.msc 1.1, libpng/scripts/makefile.os2 1.1, libpng/scripts/makefile.sco 1.1, libpng/scripts/makefile.sgi 1.1, libpng/scripts/makefile.tc3 1.1, libpng/scripts/makefile.watcom 1.1, libpng/scripts/smakefile.ppc 1.1, libpng/scripts/SCOPTIONS.ppc 1.1, libpng/scripts/descrip.mms 1.1, libpng/scripts/libpng-config-body.in 1.1, libpng/scripts/libpng-config-head.in 1.1, libpng/scripts/libpng.icc 1.1, libpng/scripts/libpng.pc.in 1.1, libpng/scripts/makefile.acorn 1.1, libpng/scripts/makefile.amiga 1.1, libpng/scripts/makefile.atari 1.1, libpng/scripts/makefile.darwin 1.1, libpng/scripts/makefile.freebsd 1.1, libpng/scripts/makefile.gcmmx 1.1, libpng/scripts/makefile.hpgcc 1.1, libpng/scripts/makefile.intel 1.1, libpng/scripts/makefile.linux 1.1, libpng/scripts/makefile.ne12bsd 1.1, libpng/scripts/makefile.openbsd 1.1, libpng/scripts/makefile.sggcc 1.1, libpng/scripts/makefile.so9 1.1, libpng/scripts/makefile.solaris 1.1, libpng/scripts/makefile.std 1.1, libpng/scripts/makefile.sunos 1.1, libpng/scripts/makefile.vcawin32 1.1, libpng/scripts/makefile.vcwin32 1.1, libpng/scripts/makevms.com 1.1, libpng/scripts/pngos2.def 1.1, libpng/scripts/pngw32.def 1.1, libpng/scripts/pngw32.rc 1.1, libpng/projects/netware.txt 1.1, libpng/projects/wince.txt 1.1, libpng/projects/beos/x86-shared.proj 1.1, libpng/projects/beos/x86-shared.txt 1.1, libpng/projects/beos/x86-static.proj 1.1, libpng/projects/beos/x86-static.txt 1.1, libpng/scripts/makefile.bc32 1.1, libpng/scripts/makefile.beos 1.1, libpng/scripts/makefile.cygwin 1.1, libpng/scripts/makefile.hp64 1.1, libpng/scripts/makefile.hpux 1.1, libpng/scripts/makefile.ibmc 1.1, libpng/scripts/makefile.mips 1.1, libpng/scripts/makefile.netbsd 1.1, libpng/projects/cbuilder5/libpng.bpf 1.1, libpng/projects/cbuilder5/libpng.bpg 1.1, libpng/projects/cbuilder5/libpng.bpr 1.1, libpng/projects/cbuilder5/libpng.cpp 1.1, libpng/projects/cbuilder5/libpng.readme.txt 1.1, libpng/projects/cbuilder5/libpngstat.bpf 1.1, libpng/projects/cbuilder5/libpngstat.bpr 1.1, libpng/projects/cbuilder5/zlib.readme.txt 1.1, libpng/projects/visualc6/README.txt 1.1, libpng/projects/visualc6/libpng.dsp 1.1, libpng/projects/visualc6/libpng.dsw 1.1, libpng/projects/visualc6/pngtest.dsp 1.1, libpng/projects/visualc71/PRJ0041.mak 1.1, libpng/projects/visualc71/README.txt 1.1, libpng/projects/visualc71/README_zlib.txt 1.1, libpng/projects/visualc71/libpng.sln 1.1, libpng/projects/visualc71/libpng.vcproj 1.1, libpng/projects/visualc71/pngtest.vcproj 1.1, libpng/projects/visualc71/zlib.vcproj 1.1]</p> </blockquote> <p><strong><a name="2005-04-24_2139"></a> 2005-04-24 21:39 Ralph Giles</strong></p> <blockquote> <pre> Initial revision</pre> <p>[zlib/FAQ 1.1, zlib/crc32.c 1.1, zlib/example.c 1.1, zlib/zconf.in.h 1.1, zlib/INDEX 1.1, zlib/Makefile 1.1, zlib/Makefile.in 1.1, zlib/README 1.1, zlib/adler32.c 1.1, zlib/compress.c 1.1, zlib/configure 1.1, zlib/crc32.h 1.1, zlib/uncompr.c 1.1, zlib/zconf.h 1.1, zlib/zutil.c 1.1, zlib/zutil.h 1.1, zlib/gzio.c 1.1, zlib/inffixed.h 1.1, zlib/trees.c 1.1, zlib/trees.h 1.1, zlib/deflate.c 1.1, zlib/deflate.h 1.1, zlib/inftrees.c 1.1, zlib/inftrees.h 1.1, zlib/zlib.3 1.1, zlib/algorithm.txt 1.1, zlib/infback.c 1.1, zlib/inffast.c 1.1, zlib/inffast.h 1.1, zlib/zlib.h 1.1, zlib/ChangeLog 1.1, zlib/inflate.c 1.1, zlib/inflate.h 1.1, zlib/minigzip.c 1.1, zlib/old/Make_vms.com 1.1, zlib/old/Makefile.riscos 1.1, zlib/old/README 1.1, zlib/old/descrip.mms 1.1, zlib/old/visual-basic.txt 1.1, zlib/contrib/README.contrib 1.1, zlib/contrib/ada/buffer_demo.adb 1.1, zlib/contrib/ada/zlib-streams.adb 1.1, zlib/contrib/ada/zlib-streams.ads 1.1, zlib/old/zlib.html 1.1, zlib/old/os2/Makefile.os2 1.1, zlib/old/os2/zlib.def 1.1, zlib/qnx/package.qpg 1.1, zlib/contrib/ada/mtest.adb 1.1, zlib/contrib/ada/read.adb 1.1, zlib/contrib/ada/readme.txt 1.1, zlib/contrib/ada/test.adb 1.1, zlib/contrib/ada/zlib-thin.adb 1.1, zlib/contrib/ada/zlib-thin.ads 1.1, zlib/contrib/ada/zlib.adb 1.1, zlib/contrib/ada/zlib.ads 1.1, zlib/contrib/ada/zlib.gpr 1.1, zlib/contrib/puff/Makefile 1.1, zlib/contrib/puff/README 1.1, zlib/contrib/puff/zeros.raw 1.1, zlib/contrib/blast/Makefile 1.1, zlib/contrib/blast/README 1.1, zlib/contrib/blast/blast.c 1.1, zlib/contrib/blast/blast.h 1.1, zlib/contrib/blast/test.pk 1.1, zlib/contrib/blast/test.txt 1.1, zlib/contrib/dotzlib/DotZLib.build 1.1, zlib/contrib/iostream/test.cpp 1.1, zlib/contrib/iostream/zfstream.cpp 1.1, zlib/contrib/iostream/zfstream.h 1.1, zlib/contrib/puff/puff.c 1.1, zlib/contrib/puff/puff.h 1.1, zlib/contrib/untgz/Makefile 1.1, zlib/contrib/untgz/Makefile.msc 1.1, zlib/contrib/untgz/untgz.c 1.1, zlib/contrib/dotzlib/DotZLib.chm 1.1, zlib/contrib/dotzlib/DotZLib.sln 1.1, zlib/contrib/dotzlib/LICENSE_1_0.txt 1.1, zlib/contrib/dotzlib/readme.txt 1.1, zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs 1.1, zlib/contrib/dotzlib/DotZLib/DotZLib.cs 1.1, zlib/contrib/dotzlib/DotZLib/DotZLib.csproj 1.1, zlib/contrib/dotzlib/DotZLib/GZipStream.cs 1.1, zlib/contrib/dotzlib/DotZLib/UnitTests.cs 1.1, zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs 1.1, zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs 1.1, zlib/contrib/dotzlib/DotZLib/CodecBase.cs 1.1, zlib/contrib/dotzlib/DotZLib/Deflater.cs 1.1, zlib/contrib/dotzlib/DotZLib/Inflater.cs 1.1, zlib/contrib/gzappend/gzappend.c 1.1, zlib/contrib/masm686/match.asm 1.1, zlib/contrib/masmx86/gvmat32c.c 1.1, zlib/contrib/masmx86/inffas32.asm 1.1, zlib/contrib/masmx86/readme.txt 1.1, zlib/contrib/masmx86/gvmat32.asm 1.1, zlib/contrib/masmx86/mkasm.bat 1.1, zlib/contrib/minizip/Makefile 1.1, zlib/contrib/minizip/crypt.h 1.1, zlib/contrib/minizip/miniunz.c 1.1, zlib/contrib/minizip/minizip.c 1.1, zlib/contrib/minizip/zip.c 1.1, zlib/contrib/minizip/zip.h 1.1, zlib/contrib/testzlib/testzlib.c 1.1, zlib/contrib/testzlib/testzlib.sln 1.1, zlib/contrib/testzlib/testzlib.vcproj 1.1, zlib/contrib/minizip/ChangeLogUnzip 1.1, zlib/contrib/minizip/ioapi.c 1.1, zlib/contrib/minizip/ioapi.h 1.1, zlib/contrib/minizip/iowin32.c 1.1, zlib/contrib/minizip/iowin32.h 1.1, zlib/contrib/minizip/mztools.c 1.1, zlib/contrib/minizip/mztools.h 1.1, zlib/contrib/minizip/unzip.c 1.1, zlib/contrib/minizip/unzip.h 1.1, zlib/contrib/asm586/README.586 1.1, zlib/contrib/asm586/match.S 1.1, zlib/contrib/asm686/README.686 1.1, zlib/contrib/asm686/match.S 1.1, zlib/contrib/delphi/ZLib.pas 1.1, zlib/contrib/delphi/ZLibConst.pas 1.1, zlib/contrib/delphi/readme.txt 1.1, zlib/contrib/delphi/zlibd32.mak 1.1, zlib/contrib/iostream2/zstream.h 1.1, zlib/contrib/iostream2/zstream_test.cpp 1.1, zlib/contrib/iostream3/README 1.1, zlib/contrib/iostream3/TODO 1.1, zlib/contrib/iostream3/test.cc 1.1, zlib/contrib/iostream3/zfstream.cc 1.1, zlib/contrib/iostream3/zfstream.h 1.1, zlib/contrib/pascal/zlibd32.mak 1.1, zlib/contrib/infback9/README 1.1, zlib/contrib/infback9/infback9.c 1.1, zlib/contrib/infback9/infback9.h 1.1, zlib/contrib/infback9/inffix9.h 1.1, zlib/contrib/infback9/inflate9.h 1.1, zlib/contrib/infback9/inftree9.c 1.1, zlib/contrib/infback9/inftree9.h 1.1, zlib/contrib/pascal/example.pas 1.1, zlib/contrib/pascal/readme.txt 1.1, zlib/contrib/pascal/zlibpas.pas 1.1, zlib/contrib/vstudio/readme.txt 1.1, zlib/contrib/vstudio/vc7/minizip.vcproj 1.1, zlib/contrib/vstudio/vc7/zlibstat.vcproj 1.1, zlib/contrib/vstudio/vc7/zlibvc.def 1.1, zlib/contrib/vstudio/vc7/zlibvc.sln 1.1, zlib/amiga/Makefile.pup 1.1, zlib/amiga/Makefile.sas 1.1, zlib/as400/compile.clp 1.1, zlib/contrib/inflate86/inffas86.c 1.1, zlib/contrib/inflate86/inffast.S 1.1, zlib/contrib/vstudio/vc7/miniunz.vcproj 1.1, zlib/contrib/vstudio/vc7/zlib.rc 1.1, zlib/contrib/vstudio/vc7/zlibvc.vcproj 1.1, zlib/as400/bndsrc 1.1, zlib/as400/readme.txt 1.1, zlib/as400/zlib.inc 1.1, zlib/msdos/Makefile.bor 1.1, zlib/msdos/Makefile.dj2 1.1, zlib/msdos/Makefile.emx 1.1, zlib/msdos/Makefile.msc 1.1, zlib/msdos/Makefile.tc 1.1, zlib/projects/README.projects 1.1, zlib/projects/visualc6/README.txt 1.1, zlib/projects/visualc6/example.dsp 1.1, zlib/projects/visualc6/minigzip.dsp 1.1, zlib/win32/DLL_FAQ.txt 1.1, zlib/win32/Makefile.bor 1.1, zlib/win32/Makefile.emx 1.1, zlib/win32/Makefile.gcc 1.1, zlib/win32/Makefile.msc 1.1, zlib/win32/VisualC.txt 1.1, zlib/win32/zlib.def 1.1, zlib/win32/zlib1.rc 1.1, zlib/projects/visualc6/zlib.dsp 1.1, zlib/projects/visualc6/zlib.dsw 1.1]</p> </blockquote> <p><strong><a name="2005-04-24_2131"></a> 2005-04-24 21:31 Ralph Giles</strong></p> <blockquote> <pre> Initial revision</pre> <p>[jpeg/jdinput.c 1.1, jpeg/wrppm.c 1.1, jpeg/wrrle.c 1.1, jpeg/testimg.bmp 1.1, jpeg/testimg.jpg 1.1, jpeg/coderules.doc 1.1, jpeg/jccoefct.c 1.1, jpeg/jcmainct.c 1.1, jpeg/rdjpgcom.1 1.1, jpeg/rdjpgcom.c 1.1, jpeg/testimg.ppm 1.1, jpeg/example.c 1.1, jpeg/jcapimin.c 1.1, jpeg/jcapistd.c 1.1, jpeg/jconfig.dj 1.1, jpeg/jconfig.st 1.1, jpeg/jconfig.vc 1.1, jpeg/jctrans.c 1.1, jpeg/makelib.ds 1.1, jpeg/rdbmp.c 1.1, jpeg/rdgif.c 1.1, jpeg/jcdctmgr.c 1.1, jpeg/jdatadst.c 1.1, jpeg/rdppm.c 1.1, jpeg/rdrle.c 1.1, jpeg/rdtarga.c 1.1, jpeg/transupp.c 1.1, jpeg/transupp.h 1.1, jpeg/djpeg.1 1.1, jpeg/djpeg.c 1.1, jpeg/install.doc 1.1, jpeg/jdatasrc.c 1.1, jpeg/ansi2knr.1 1.1, jpeg/ansi2knr.c 1.1, jpeg/jcmarker.c 1.1, jpeg/jdcolor.c 1.1, jpeg/makefile.bcc 1.1, jpeg/makefile.cfg 1.1, jpeg/usage.doc 1.1, jpeg/jcmaster.c 1.1, jpeg/makefile.mc6 1.1, jpeg/makefile.mms 1.1, jpeg/makefile.sas 1.1, jpeg/makefile.vms 1.1, jpeg/makefile.wat 1.1, jpeg/README 1.1, jpeg/makeapps.ds 1.1, jpeg/configure 1.1, jpeg/filelist.doc 1.1, jpeg/jcomapi.c 1.1, jpeg/ltmain.sh 1.1, jpeg/jconfig.manx 1.1, jpeg/jcparam.c 1.1, jpeg/jdsample.c 1.1, jpeg/jerror.c 1.1, jpeg/jerror.h 1.1, jpeg/jmorecfg.h 1.1, jpeg/makcjpeg.st 1.1, jpeg/wrjpgcom.1 1.1, jpeg/wrjpgcom.c 1.1, jpeg/jcprepct.c 1.1, jpeg/libjpeg.doc 1.1, jpeg/config.guess 1.1, jpeg/config.sub 1.1, jpeg/install-sh 1.1, jpeg/jcphuff.c 1.1, jpeg/jinclude.h 1.1, jpeg/testimgp.jpg 1.1, jpeg/wrtarga.c 1.1, jpeg/ltconfig 1.1, jpeg/structure.doc 1.1, jpeg/jdmerge.c 1.1, jpeg/jmemdosa.asm 1.1, jpeg/jquant1.c 1.1, jpeg/jquant2.c 1.1, jpeg/testprog.jpg 1.1, jpeg/cderror.h 1.1, jpeg/jccolor.c 1.1, jpeg/jdct.h 1.1, jpeg/jidctflt.c 1.1, jpeg/jidctfst.c 1.1, jpeg/jidctint.c 1.1, jpeg/jidctred.c 1.1, jpeg/jmemansi.c 1.1, jpeg/maktjpeg.st 1.1, jpeg/makvms.opt 1.1, jpeg/rdswitch.c 1.1, jpeg/jdcoefct.c 1.1, jpeg/jdmainct.c 1.1, jpeg/jpegint.h 1.1, jpeg/makeproj.mac 1.1, jpeg/jdapimin.c 1.1, jpeg/jdapistd.c 1.1, jpeg/jddctmgr.c 1.1, jpeg/jdpostct.c 1.1, jpeg/jdtrans.c 1.1, jpeg/jpeglib.h 1.1, jpeg/jutils.c 1.1, jpeg/makljpeg.st 1.1, jpeg/testorig.jpg 1.1, jpeg/jconfig.bcc 1.1, jpeg/jconfig.cfg 1.1, jpeg/jdmarker.c 1.1, jpeg/jdmaster.c 1.1, jpeg/jmemname.c 1.1, jpeg/jmemnobs.c 1.1, jpeg/jversion.h 1.1, jpeg/wizard.doc 1.1, jpeg/jconfig.doc 1.1, jpeg/jconfig.mac 1.1, jpeg/jconfig.mc6 1.1, jpeg/jconfig.sas 1.1, jpeg/jconfig.vms 1.1, jpeg/jconfig.wat 1.1, jpeg/jcsample.c 1.1, jpeg/jfdctflt.c 1.1, jpeg/jfdctfst.c 1.1, jpeg/jmemdos.c 1.1, jpeg/jpegtran.1 1.1, jpeg/jpegtran.c 1.1, jpeg/rdcolmap.c 1.1, jpeg/change.log 1.1, jpeg/jfdctint.c 1.1, jpeg/jmemmac.c 1.1, jpeg/jmemmgr.c 1.1, jpeg/jmemsys.h 1.1, jpeg/makefile.dj 1.1, jpeg/makefile.vc 1.1, jpeg/cdjpeg.c 1.1, jpeg/cdjpeg.h 1.1, jpeg/jchuff.c 1.1, jpeg/jchuff.h 1.1, jpeg/jcinit.c 1.1, jpeg/makdjpeg.st 1.1, jpeg/makefile.ansi 1.1, jpeg/makefile.manx 1.1, jpeg/makefile.unix 1.1, jpeg/cjpeg.1 1.1, jpeg/cjpeg.c 1.1, jpeg/ckconfig.c 1.1, jpeg/jdphuff.c 1.1, jpeg/wrbmp.c 1.1, jpeg/wrgif.c 1.1, jpeg/jdhuff.c 1.1, jpeg/jdhuff.h 1.1]</p> </blockquote> <p><strong><a name="2005-04-22_1008"></a> 2005-04-22 10:08 Russell Lang</strong></p> <blockquote> <pre> Correct typo.</pre> <p>[man/ps2ascii.1 1.34]</p> </blockquote> <p><strong><a name="2005-04-21_1011"></a> 2005-04-21 10:11 Igor Melichev</strong></p> <blockquote> <pre> Speed up shadings : a minor optimization for the color monotonity check. DETAILS : Bug 687948 "Performance of shading fill much worse than 8.00" (a 8th partial fix). The color monotonity has been cached, but was not taken from the cache. It caused extra calls to is_monotonic. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.99]</p> </blockquote> <p><strong><a name="2005-04-21_0928"></a> 2005-04-21 09:28 Igor Melichev</strong></p> <blockquote> <pre> Speed up shadings : fixed a crash with unlinear color devices. DETAILS : Bug 688050 "C stack overflow with 464-01-fixed.ps (pbmraw/72dpi/noband)". Bug 687948 "Performance of shading fill much worse than 8.00" (a 7th partial fix). The C stack overflow happened due to quadrangle_color_change didn"t account the quadrangle size, causing an infinite subdivision in case of a non-contiguous color function. This happened with unlinear color devices only, because otherwise the quadrangle was mapped to a linear color fill device function, which doesn"t perform a subdivision by color. 1. Passed the quadrangle size information to quadrangle_color_change. 2. Used it with unlinear color devices. 3. Trying to use it with a linear color device doesn`t give a speed up. Disabling this branch but saving it for historical purpose. 4. Inserted a check against the C stack overflow to simplify the debugging and the diagnostics. EXPECTED DIFFERENCES : 1. Fixes a crash with pkmraw, pbmraw 446-01-fixed.ps. 2. Minor differences in rasters with pkmraw, pbmraw @ 72 dpi : "446-01-fixed.ps" "464-01-fixed.ps" "483-05-fixed.ps" "BEST8-99-Path.fh7.pdf" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf" 3. Minor differences in rasters with pkmraw, pbmraw @ 300 dpi : "446-01-fixed.ps" "464-01-fixed.ps" "483-05-fixed.ps" "Altona_Visual_sb_1v1_x3.pdf" "BEST8-99-Path.fh7.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai"</pre> <p>[src/gxshade6.c 1.98]</p> </blockquote> <p><strong><a name="2005-04-20_2005"></a> 2005-04-20 20:05 Ray Johnston</strong></p> <blockquote> <pre> Use the OrigFontName from an embedded font's FOntInfo dictionary since this is where Windows PostScript dirver puts the real font name when embedding fonts. Bug 688006 for customer 32.</pre> <p>[src/zbfont.c 1.29]</p> </blockquote> <p><strong><a name="2005-04-20_0844"></a> 2005-04-20 08:44 Igor Melichev</strong></p> <blockquote> <pre> Speed up shadings with optimizing fn_Sd_is_monotonic. DETAILS : This change is a fifth partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". Implemented a new function fn_Sd_1arg_linear_monotonic, which optimizes fn_Sd_is_monotonic in the case of 1-argument linear sampled function. It doesn't use the pole cache and the tensor-based algorithm, saving significant time from the cache allocation, which otherwise happens once per shfill. We would like to optimise 1-argument cubic sampled function. For now delaying it due to the absence of practical cases which need a high performance. Minor change : Renamed fn_is_monotonic into fn_Sd_is_monotonic_aux. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfunc0.c 1.26]</p> </blockquote> <p><strong><a name="2005-04-20_0613"></a> 2005-04-20 06:13 Ray Johnston</strong></p> <blockquote> <pre> Prevent out of range ImageType 4 mask array entries from causing an error as Adobe Acrobat Reader does. Bug 687611 for customer 870. DETAILS: When the Mask array values are beyond the max allowed by the BitsPerComponent, a rangecheck error must be generated by PostScript, but Adobe Acrobat Reader ignores the Mask in this case and effectively treats the image as ImageType 1. This patch generates a pdfformaterror Warning when the problem is seen.</pre> <p>[lib/pdf_draw.ps 1.92]</p> </blockquote> <p><strong><a name="2005-04-19_2122"></a> 2005-04-19 21:22 Stefan Kemper</strong></p> <blockquote> <pre> Added dependancies for gdevpdfj.c</pre> <p>[src/devs.mak 1.130]</p> </blockquote> <p><strong><a name="2005-04-19_1435"></a> 2005-04-19 14:35 Igor Melichev</strong></p> <blockquote> <pre> Speed up shadings with removing fn_domain_is_monotonic. DETAILS : 1. The function fn_domain_is_monotonic was called when creating any sampled function object, and its result was not used. Actually it is a rudiment from the !NEW_SHADINGS code. This change is a fourth partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". 2. In gxshade1.c removed few rudiments of the !NEW_SHADINGS code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfunc.c 1.12, src/gsfunc.h 1.13, src/gsfunc0.c 1.25, src/gsfunc3.c 1.25, src/gsfunc4.c 1.18, src/gxfunc.h 1.10, src/gxshade1.c 1.40]</p> </blockquote> <p><strong><a name="2005-04-19_1222"></a> 2005-04-19 12:22 Igor Melichev</strong></p> <blockquote> <pre> Removing the !NEW_SHADINGS branch. DETAILS : This change is algorithmically equivalent. 1. Removed the obsolete code NEW_SHADINGS 0 and NEW_RADIAL_SHADINGS 0, which was disabled a long ago. 2. Removed stacks and few other unused fields from Fb_fill_state_s, A_fill_state_s, R_fill_state_s. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsshade.c 1.17, src/gxshade1.c 1.39, src/gxshade4.c 1.30, src/gxshade4.h 1.41, src/gxshade6.c 1.97]</p> </blockquote> <p><strong><a name="2005-04-19_0948"></a> 2005-04-19 09:48 Igor Melichev</strong></p> <blockquote> <pre> Faster shadings with dividing some quadrangles into 2 triangles. DETAILS : It's a third partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". When a quadrangle color doesn't depend on one axis, subdivide the quadrangle into 2 triangles. The old code did into 4 triangles. 1. Renamed 'triangles' into 'triangles4'. 2. Added 'triangles2'. 3. Added 'color_change_bilinear'. EXPECTED DIFFERENCES : "442-01.ps" "446-01-fixed.ps" "464-01-fixed.ps" "483-01.ps" "483-05-fixed.ps" "Altona-Testsuite_p2_S_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "BEST8-99-Path.fh7.pdf" "Bug687840.pdf" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "S2_Digitalproof-Forum_x3k.pdf" "self-intersect2.ps" "shading_prob_800.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"</pre> <p>[src/gxshade6.c 1.96]</p> </blockquote> <p><strong><a name="2005-04-19_0836"></a> 2005-04-19 08:36 Igor Melichev</strong></p> <blockquote> <pre> Faster shadings with setting a stronger clipping box. DETAILS : It's another partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". The old code computed a shading clipping box as an transform of the shading BBox to device coordinates. However with a rotation matrix it significantly expanded the box, so that more shading parts appear inside the paint region. The new code sets clipping box equal to the bbox of the clipping path, so that the rasterization covers a smaller part of the shading, and the shading becomes faster. SHADING_FILL_RECTANGLE_PROC changes the prototype. The new prototype adds a clipping rectangle in device coordinates, which provides a stronger clipping of the paint region. Probably we could drop the old argument "prect", but leaving it untill the NEW_SHADINGS cleanup. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsshade.c 1.16, src/gsshade.h 1.9, src/gxshade1.c 1.38, src/gxshade4.c 1.29, src/gxshade4.h 1.40, src/gxshade6.c 1.95]</p> </blockquote> <p><strong><a name="2005-04-19_0727"></a> 2005-04-19 07:27 Igor Melichev</strong></p> <blockquote> <pre> Faster shadings with a better function monotonity check. DETAILS : It's a partial fix for the bug 687948 "Performance of shading fill much worse than 8.00". If an axial or radial shading use a sampled function with many samples, the shading speeds up in 1.2 - 2.5 times. 1. The old code returned an unknown monotonity when the interval covers several cells of a sampled function. The new code summarizes the monotonity through multiple cells. Rather shadings need 1- and 2-dimensional functions only, we developed an N-dimensional algorithm for a future use with color spaces and color renderings. 1.1. Generalized the function sample cache to linear functions (the old code cached cubic ones only). 1.2. Made the branch POLE_CACHE to be permanent. 1.3. The new function is_lattice_monotonic summarizes the monotonity through multiple cells. 1.4. The virtual function is_monotonic now returns a mask about a monotonity by each coordinate. 2. The shading decomposition is adopted to the new monotonity check. 2.1. When decomposing a patch into stripes, the color monotonity doesn't matter, because further decomposition accounts it. 2.2. When decomposing a quadrangle, the decomposition axis is being chosen according to the function monotonity along each axis. 3. In the shading decomposition, cached the monotonity separately from the linearity with a new flag linear_color. EXPECTED DIFFERENCES : A minor difference in shading color with all devices and resolutions : "442-01.ps" "446-01-fixed.ps" "464-01-fixed.ps" "478-01.ps" "483-01.ps" "483-05-fixed.ps" "Altona-Testsuite_p2_S_x3.pdf" "Altona_Visual_bb_1v1_x3.pdf" "Altona_Visual_sb_1v1_x3.pdf" "Bug687840.pdf" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "Openhuis_pdf_zw.pdf" "S2_Digitalproof-Forum_x3k.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai"</pre> <p>[src/gsfunc.c 1.11, src/gsfunc.h 1.12, src/gsfunc0.c 1.24, src/gsfunc0.h 1.7, src/gsfunc3.c 1.24, src/gsfunc4.c 1.17, src/gxshade1.c 1.37, src/gxshade4.h 1.39, src/gxshade6.c 1.94]</p> </blockquote> <p><strong><a name="2005-04-19_0428"></a> 2005-04-19 04:28 Ralph Giles</strong></p> <blockquote> <pre> Bump the version numbers post-release.</pre> <p>[doc/News.htm 1.164, lib/gs_init.ps 1.119, src/gscdef.c 1.54, src/version.mak 1.83]</p> </blockquote> <p><strong><a name="2005-04-19_0029"></a> 2005-04-19 00:29 Stefan Kemper</strong></p> <blockquote> <pre> Fix for bug 687984. Incomplete data stream gets artifical data for both DCTE and now also for PNGPE streams. Note that it would be nice if all streams either handled missing data or didn't.</pre> <p>[src/gdevpdfj.c 1.44]</p> </blockquote> <hr> <h2><a name="Version8.51"></a>Version 8.51 (2005-04-18)</h2> <p>This is the second stable release in the 8.5x series of Ghostscript. It contains numerous bug fixes and improvements, particularly in the area of PDF 1.6 handling. <p>Also new in this release is an experimental version of the new level 2 Postscript output device, which may be of interest to developers. <p> The following <a href="http://bugs.ghostscript.com/">bug</a> numbers were open at the time of this release: <blockquote> 405501, 430175, 465936, 493348, 530011, 535932, 578865, 592160, 610478, 614298, 626295, 674418, 685335, 686747, 686842, 686853, 686865, 686919, 686996, 687011, 687039, 687063, 687084, 687095, 687108, 687125, 687146, 687168, 687174, 687193, 687196, 687219, 687221, 687229, 687231, 687243, 687257, 687259, 687271, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687327, 687342, 687345, 687346, 687360, 687373, 687375, 687397, 687399, 687414, 687435, 687445, 687460, 687475, 687480, 687484, 687485, 687492, 687498, 687514, 687518, 687520, 687523, 687525, 687529, 687531, 687535, 687536, 687545, 687558, 687559, 687560, 687561, 687583, 687593, 687595, 687608, 687611, 687621, 687622, 687628, 687630, 687633, 687642, 687643, 687644, 687650, 687654, 687657, 687663, 687666, 687669, 687674, 687676, 687677, 687678, 687679, 687680, 687682, 687686, 687694, 687695, 687697, 687702, 687707, 687712, 687715, 687721, 687727, 687728, 687729, 687731, 687775, 687780, 687782, 687783, 687793, 687794, 687795, 687796, 687800, 687801, 687805, 687806, 687808, 687809, 687814, 687822, 687825, 687826, 687837, 687844, 687848, 687850, 687853, 687863, 687866, 687868, 687870, 687871, 687875, 687881, 687883, 687887, 687895, 687896, 687901, 687903, 687904, 687907, 687914, 687915, 687918, 687919, 687922, 687931, 687938, 687946, 687948, 687950, 687957, 687960, 687970, 687973, 687974, 687975, 687977, 687978, 687980, 687981, 687983, 687984, 687986, 687989, 687992, 687993, 687994, 687995, 687996, 688000, 688003, 688005, 688006, 688007, 688009, 688010, 688013, 688017, 688020, 688022, 688023, 688024, 688026, 688028, 688032, 688035, 688036, 688037, 688038, 688039, 688040. </blockquote> <h3><a name="8.51_Incompatible_changes"></a>Incompatible changes</h3> <p> There are no known incompatible changes at this point. <h3><a name="8.51_changelog"></a>Changelog</h3> <!-- generated by split_changelog.py from the output of cvs2cl.pl --> <p><strong><a name="2005-04-18_1826"></a> 2005-04-18 18:26 Ralph Giles</strong></p> <blockquote> <pre> Update final release date.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-04-15_0613"></a> 2005-04-15 06:13 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[doc/Psfiles.htm 1.61]</p> </blockquote> <p><strong><a name="2005-04-14_1910"></a> 2005-04-14 19:10 Raph Levien</strong></p> <blockquote> <pre> 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.</pre> <p>[src/zchar1.c 1.44]</p> </blockquote> <p><strong><a name="2005-04-13_2313"></a> 2005-04-13 23:13 Russell Lang</strong></p> <blockquote> <pre> Add additional files to the Windows source distribution.</pre> <p>[doc/Release.htm 1.91]</p> </blockquote> <p><strong><a name="2005-04-13_2004"></a> 2005-04-13 20:04 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gximage4.c 1.6]</p> </blockquote> <p><strong><a name="2005-04-12_2253"></a> 2005-04-12 22:53 Ralph Giles</strong></p> <blockquote> <pre> Update changelogs for the 8.51 release.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-04-12_2221"></a> 2005-04-12 22:21 Ralph Giles</strong></p> <blockquote> <pre> Remove a spurious blockquote.</pre> <p>[doc/News.htm 1.161]</p> </blockquote> <p><strong><a name="2005-04-12_2210"></a> 2005-04-12 22:10 Ralph Giles</strong></p> <blockquote> <pre> Propagate release date changes to the other documentation files.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-04-12_2205"></a> 2005-04-12 22:05 Ralph Giles</strong></p> <blockquote> <pre> Update copyright dates and release notes for 8.15.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-04-12_2120"></a> 2005-04-12 21:20 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfg.c 1.61]</p> </blockquote> <p><strong><a name="2005-04-12_0043"></a> 2005-04-12 00:43 Russell Lang</strong></p> <blockquote> <pre> 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.</pre> <p>[src/os2.mak 1.45]</p> </blockquote> <p><strong><a name="2005-04-08_2355"></a> 2005-04-08 23:55 Dan Coby</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_main.ps 1.96]</p> </blockquote> <p><strong><a name="2005-04-08_2331"></a> 2005-04-08 23:31 Dan Coby</strong></p> <blockquote> <pre> Removed some extra cntl-M at the end of lines. These caused problems with the Borland compiler.</pre> <p>[src/gdevtfax.c 1.10]</p> </blockquote> <p><strong><a name="2005-04-07_0912"></a> 2005-04-07 09:12 Igor Melichev</strong></p> <blockquote> <pre> Fix : An MSVC8 warning. DETAILS : MSVC claims an implicit type case introduced by the last patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevdjet.c 1.13]</p> </blockquote> <p><strong><a name="2005-04-07_0844"></a> 2005-04-07 08:44 Igor Melichev</strong></p> <blockquote> <pre> Drivers.htm : Improving the documentation about linear color device virtual functions. DETAILS : Bug 688016 "Color(s) that define a gradient fill". EXPECTED DIFFERENCES : None.</pre> <p>[doc/Drivers.htm 1.53]</p> </blockquote> <p><strong><a name="2005-04-06_1645"></a> 2005-04-06 16:45 Raph Levien</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/gs_setpd.ps 1.26, src/gdevdjet.c 1.12, src/zmedia2.c 1.18]</p> </blockquote> <p><strong><a name="2005-04-05_1937"></a> 2005-04-05 19:37 Ralph Giles</strong></p> <blockquote> <pre> 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.</pre> <p>[src/sjbig2.c 1.6]</p> </blockquote> <p><strong><a name="2005-04-05_1617"></a> 2005-04-05 16:17 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.62, src/gdevpdtw.c 1.42]</p> </blockquote> <p><strong><a name="2005-04-05_1544"></a> 2005-04-05 15:44 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-04-05_1129"></a> 2005-04-05 11:29 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.61, lib/ps2write.bat 1.12]</p> </blockquote> <p><strong><a name="2005-04-05_0948"></a> 2005-04-05 09:48 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-04-04_2300"></a> 2005-04-04 23:00 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpsdi.c 1.41, src/slzwe.c 1.4]</p> </blockquote> <p><strong><a name="2005-04-04_2033"></a> 2005-04-04 20:33 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/ps2write.bat 1.11]</p> </blockquote> <p><strong><a name="2005-04-04_2028"></a> 2005-04-04 20:28 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-04-04_1620"></a> 2005-04-04 16:20 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[doc/Ps2pdf.htm 1.77, src/gdevpdfp.c 1.46, src/gdevpdtt.c 1.100, src/gdevpsdf.h 1.31]</p> </blockquote> <p><strong><a name="2005-04-04_1438"></a> 2005-04-04 14:38 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[doc/Ps2pdf.htm 1.76, src/gdevpdfd.c 1.58, src/gdevpdfi.c 1.70, src/gdevpdfj.c 1.42]</p> </blockquote> <p><strong><a name="2005-04-04_1153"></a> 2005-04-04 11:53 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfd.c 1.57]</p> </blockquote> <p><strong><a name="2005-04-04_1042"></a> 2005-04-04 10:42 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfc.c 1.52, src/gdevpdfu.c 1.73]</p> </blockquote> <p><strong><a name="2005-04-04_1014"></a> 2005-04-04 10:14 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfu.c 1.72]</p> </blockquote> <p><strong><a name="2005-04-04_1011"></a> 2005-04-04 10:11 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.60]</p> </blockquote> <p><strong><a name="2005-04-04_0932"></a> 2005-04-04 09:32 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Convert shadings into a clipped image (continued 6). DETAILS : Fixed a unitialized variable. Debugged with 468-01-fixed.ps . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.56]</p> </blockquote> <p><strong><a name="2005-04-04_0853"></a> 2005-04-04 08:53 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Dropping the code !PDFW_DELAYED_STREAMS. DETAILS : PDFW_DELAYED_STREAMS now becomes a permanent feature. EXPECTED DIFFERENCES : None.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-04-03_1833"></a> 2005-04-03 18:33 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Convert shadings into a clipped image (continued 5). DETAILS : 1. Fixed the problem with <</PatternImagemask false /MaxClipPathSize 12000 /MaxShadingBitmapSize 100000000>>, which was mentioned in the last log message. The shading and masked image conversion now looks complete. 2. Fixed a minor problem with 'const'. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.55]</p> </blockquote> <p><strong><a name="2005-04-01_1742"></a> 2005-04-01 17:42 stefan</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfg.c 1.60]</p> </blockquote> <p><strong><a name="2005-03-31_2046"></a> 2005-03-31 20:46 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Convert shadings into a clipped image (continued 4). DETAILS : Implement a downsampling when converting a shading into bitmap. 1. A new device parameter MaxShadingBitmapSize controls the downsampling. Shadings, which give a (uncompressed) bitmap over the specified size, will be scaled down. 2. The scaling algorithm goes to gdevpdfd.c . It appears pretty tricky because we need to setup a device with a smaller resolution than the target device. Due to that we need to scale paths and colors, which are represented in the device space. The function scale_path works for it. 3. The scaling creates a local copy of a device color (which handles the shading) and scales the color. Since we can't access further spatial transformations of the color, we apply some unusual operation : multiply matrices in the reverse order than usual 'concat' does. This makes some useful equations to be soluble due to the offset is being scaled as well. 4. A code portion was copied from gx_default_fill_path (see comment in code). We're unhappy about uncomfortable code structurization. 5. path_scale is implemented with floating point for a debug purpose, but in production we use only integers being a power of 2. 6. There is a problem with <</PatternImagemask false /MaxClipPathSize 12000 /MaxShadingBitmapSize 100000000>> The problem happens when dividing the scaled bitmap in smaller ones due to clip path overflow. This mode to be debugged separately. For now set either smaller bitmap size of bigger clip path size. Default settings work fine for most cases. EXPECTED DIFFERENCES : None.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-03-31_0612"></a> 2005-03-31 06:12 Dan Coby</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gxccache.c 1.33]</p> </blockquote> <p><strong><a name="2005-03-31_0234"></a> 2005-03-31 02:34 Jack Moffitt</strong></p> <blockquote> <pre> 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.</pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.25, toolbin/tests/gscheck_raster.py 1.15]</p> </blockquote> <p><strong><a name="2005-03-30_1633"></a> 2005-03-30 16:33 Raph Levien</strong></p> <blockquote> <pre> Add a discussion of the libjpeg6b component id issue to Issues.htm, pointing people to a patch. Resolves bug #686980.</pre> <p>[doc/Issues.htm 1.47]</p> </blockquote> <p><strong><a name="2005-03-30_1406"></a> 2005-03-30 14:06 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfb.c 1.27]</p> </blockquote> <p><strong><a name="2005-03-30_1343"></a> 2005-03-30 13:43 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfd.c 1.53, src/gdevpdfi.c 1.69]</p> </blockquote> <p><strong><a name="2005-03-30_1248"></a> 2005-03-30 12:48 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfd.c 1.52, src/gdevpdfi.c 1.68, src/gdevpdfx.h 1.111]</p> </blockquote> <p><strong><a name="2005-03-29_2133"></a> 2005-03-29 21:33 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfd.c 1.51, src/gdevpdfi.c 1.67]</p> </blockquote> <p><strong><a name="2005-03-29_1731"></a> 2005-03-29 17:31 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/devs.mak 1.127, src/gdevpdfd.c 1.50, src/gdevpdfi.c 1.66, src/gdevpdfx.h 1.110]</p> </blockquote> <p><strong><a name="2005-03-29_1426"></a> 2005-03-29 14:26 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gximage3.c 1.15]</p> </blockquote> <p><strong><a name="2005-03-28_1403"></a> 2005-03-28 14:03 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-03-25_2126"></a> 2005-03-25 21:26 Igor Melichev</strong></p> <blockquote> <pre> ps2write : A misprint in option list. EXPECTED DIFFERENCES : None.</pre> <p>[lib/ps2write.bat 1.10]</p> </blockquote> <p><strong><a name="2005-03-25_2013"></a> 2005-03-25 20:13 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.59]</p> </blockquote> <p><strong><a name="2005-03-25_1931"></a> 2005-03-25 19:31 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.58]</p> </blockquote> <p><strong><a name="2005-03-25_1800"></a> 2005-03-25 18:00 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.57]</p> </blockquote> <p><strong><a name="2005-03-25_1738"></a> 2005-03-25 17:38 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Implementing the RotatePages and the FitPages options (continued). DETAILS : .HWMargins caused a problem with 3d party interpreters. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.56]</p> </blockquote> <p><strong><a name="2005-03-25_1307"></a> 2005-03-25 13:07 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdf.c 1.104, src/gdevpdfu.c 1.70]</p> </blockquote> <p><strong><a name="2005-03-25_1113"></a> 2005-03-25 11:13 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Work around HP LaserJet 1320 bugs (continued). DETAILS : A previous patch fails when no filters applied. This one fixes that. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.55]</p> </blockquote> <p><strong><a name="2005-03-25_1011"></a> 2005-03-25 10:11 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improve the handling of encodings. DETAILS : 1. Fixed a bug in GetMacRomanEncodingInverse. 2. Dropped some unused encodings. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.54, lib/ps2write.bat 1.9]</p> </blockquote> <p><strong><a name="2005-03-25_0822"></a> 2005-03-25 08:22 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.53]</p> </blockquote> <p><strong><a name="2005-03-24_2137"></a> 2005-03-24 21:37 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.52]</p> </blockquote> <p><strong><a name="2005-03-24_1934"></a> 2005-03-24 19:34 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.51]</p> </blockquote> <p><strong><a name="2005-03-23_1945"></a> 2005-03-23 19:45 Dan Coby</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gsptype1.c 1.21]</p> </blockquote> <p><strong><a name="2005-03-23_1840"></a> 2005-03-23 18:40 Raph Levien</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpxut.c 1.6]</p> </blockquote> <p><strong><a name="2005-03-23_1741"></a> 2005-03-23 17:41 Ralph Giles</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-03-18_1952"></a> 2005-03-18 19:52 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfu.c 1.69, src/gdevpdfx.h 1.108, src/gdevpdti.c 1.41]</p> </blockquote> <p><strong><a name="2005-03-18_1748"></a> 2005-03-18 17:48 Ralph Giles</strong></p> <blockquote> <pre> Clean up a remaining link to the New-user documentation.</pre> <p>[doc/Bug-info.htm 1.44]</p> </blockquote> <p><strong><a name="2005-03-18_1738"></a> 2005-03-18 17:38 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfu.c 1.68]</p> </blockquote> <p><strong><a name="2005-03-18_1728"></a> 2005-03-18 17:28 Ralph Giles</strong></p> <blockquote> <pre> Link to Commprod for the difference between GPL and AFPL Ghostscript.</pre> <p>[doc/Readme.htm 1.65]</p> </blockquote> <p><strong><a name="2005-03-18_1726"></a> 2005-03-18 17:26 Ralph Giles</strong></p> <blockquote> <pre> Remove the out-of-date 'new user' documentation. Most of this is covered by the readme and the website.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-03-18_1715"></a> 2005-03-18 17:15 Ralph Giles</strong></p> <blockquote> <pre> Remove the obsolete Tester.htm documentation file.</pre> <p>[doc/Readme.htm 1.63, doc/Tester.htm 1.35]</p> </blockquote> <p><strong><a name="2005-03-18_1615"></a> 2005-03-18 16:15 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Work around HP LaserJet 1320 bugs. DETAILS : HP LaserJet 1320 appears to have problems with streams - see comments in code. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.50]</p> </blockquote> <p><strong><a name="2005-03-18_1448"></a> 2005-03-18 14:48 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfu.c 1.67]</p> </blockquote> <p><strong><a name="2005-03-18_1215"></a> 2005-03-18 12:15 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improve the error handler. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.49]</p> </blockquote> <p><strong><a name="2005-03-18_1121"></a> 2005-03-18 11:21 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Add EndOfTask character at the end of a task. EXPECTED DIFFERENCES : None.</pre> <p>[lib/ps2write.bat 1.8]</p> </blockquote> <p><strong><a name="2005-03-18_1036"></a> 2005-03-18 10:36 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Add EndOfTask character at the end of a task. EXPECTED DIFFERENCES : None.</pre> <p>[lib/EndOfTask.ps 1.1, lib/ps2write.bat 1.7]</p> </blockquote> <p><strong><a name="2005-03-17_1545"></a> 2005-03-17 15:45 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpsf1.c 1.21]</p> </blockquote> <p><strong><a name="2005-03-17_1308"></a> 2005-03-17 13:08 Igor Melichev</strong></p> <blockquote> <pre> Fix : Building GS with MSVC, use a proper CRTL version (debug|nodebug). EXPECTED DIFFERENCES : None.</pre> <p>[src/msvc32.mak 1.71]</p> </blockquote> <p><strong><a name="2005-03-17_1306"></a> 2005-03-17 13:06 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Write pages in the proper order. DETAILS : Bug 687923 "New ps2write inverts the page order". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.103, src/gdevpdfu.c 1.66, src/gdevpdfx.h 1.107]</p> </blockquote> <p><strong><a name="2005-03-17_1052"></a> 2005-03-17 10:52 Igor Melichev</strong></p> <blockquote> <pre> fuzzy.c : Fixing the error message format.</pre> <p>[toolbin/tests/fuzzy.c 1.18]</p> </blockquote> <p><strong><a name="2005-03-17_1045"></a> 2005-03-17 10:45 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Fixing an initial matrix bug. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.48]</p> </blockquote> <p><strong><a name="2005-03-16_2304"></a> 2005-03-16 23:04 Alex Cherepanov</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_main.ps 1.95]</p> </blockquote> <p><strong><a name="2005-03-16_1457"></a> 2005-03-16 14:57 Igor Melichev</strong></p> <blockquote> <pre> Fix : MSVC8 warning. DETAILS : This change is algorythmically equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/sjpx.c 1.12, src/spdiff.c 1.9]</p> </blockquote> <p><strong><a name="2005-03-16_1227"></a> 2005-03-16 12:27 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gsciemap.c 1.16]</p> </blockquote> <p><strong><a name="2005-03-16_0947"></a> 2005-03-16 09:47 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdtb.c 1.33, src/gdevpdtw.c 1.37]</p> </blockquote> <p><strong><a name="2005-03-16_0938"></a> 2005-03-16 09:38 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improving the processing of True Type encodings. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.47]</p> </blockquote> <p><strong><a name="2005-03-15_1414"></a> 2005-03-15 14:14 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Fit a page with MediaBox. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.46]</p> </blockquote> <p><strong><a name="2005-03-15_1136"></a> 2005-03-15 11:36 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtc.c 1.41, src/gstype42.c 1.51, src/gxhintn.c 1.58, src/gxshade6.c 1.92]</p> </blockquote> <p><strong><a name="2005-03-15_1121"></a> 2005-03-15 11:21 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Fixing minor problems with text placing. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.45]</p> </blockquote> <p><strong><a name="2005-03-14_1808"></a> 2005-03-14 18:08 Dan Coby</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-03-14_1746"></a> 2005-03-14 17:46 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfd.c 1.48]</p> </blockquote> <p><strong><a name="2005-03-10_1634"></a> 2005-03-10 16:34 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gxhintn.c 1.57]</p> </blockquote> <p><strong><a name="2005-03-10_1457"></a> 2005-03-10 14:57 Alex Cherepanov</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevijs.c 1.10]</p> </blockquote> <p><strong><a name="2005-03-10_1301"></a> 2005-03-10 13:01 Alex Cherepanov</strong></p> <blockquote> <pre> 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.</pre> <p>[doc/Devices.htm 1.85, src/gdevtfax.c 1.9]</p> </blockquote> <p><strong><a name="2005-03-09_1221"></a> 2005-03-09 12:21 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfi.c 1.65]</p> </blockquote> <p><strong><a name="2005-03-09_0901"></a> 2005-03-09 09:01 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdtw.c 1.36]</p> </blockquote> <p><strong><a name="2005-03-09_0843"></a> 2005-03-09 08:43 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/msvccmd.mak 1.26]</p> </blockquote> <p><strong><a name="2005-03-08_0740"></a> 2005-03-08 07:40 Ralph Giles</strong></p> <blockquote> <pre> 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.</pre> <p>[src/zlib.mak 1.10]</p> </blockquote> <p><strong><a name="2005-03-04_2212"></a> 2005-03-04 22:12 Russell Lang</strong></p> <blockquote> <pre> Correct HTML error in documentation.</pre> <p>[doc/Use.htm 1.129]</p> </blockquote> <p><strong><a name="2005-03-04_2202"></a> 2005-03-04 22:02 Russell Lang</strong></p> <blockquote> <pre> 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.</pre> <p>[doc/Use.htm 1.128, lib/gs_init.ps 1.118]</p> </blockquote> <p><strong><a name="2005-03-04_2200"></a> 2005-03-04 22:00 Russell Lang</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevdsp.c 1.32, src/gdevdsp.h 1.12]</p> </blockquote> <p><strong><a name="2005-03-04_2158"></a> 2005-03-04 21:58 Russell Lang</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-03-04_2156"></a> 2005-03-04 21:56 Russell Lang</strong></p> <blockquote> <pre> 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</pre> <p>[src/gdevdsp.c 1.31, src/gdevdsp.h 1.11]</p> </blockquote> <p><strong><a name="2005-03-04_1442"></a> 2005-03-04 14:42 Igor Melichev</strong></p> <blockquote> <pre> Unwinding the last patch, which was erroneusely aplied to a wrong branch.</pre> <p>[src/gdevpdfj.c 1.41]</p> </blockquote> <p><strong><a name="2005-03-04_1438"></a> 2005-03-04 14:38 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfj.c 1.39, src/gdevpdfj.c 1.40]</p> </blockquote> <p><strong><a name="2005-03-04_1027"></a> 2005-03-04 10:27 Russell Lang</strong></p> <blockquote> <pre> Fix bug #687958 gswin32: Assertion fails due to a bug in dwtext.c. Keep argument to isprint() within 0-255.</pre> <p>[src/dwtext.c 1.9]</p> </blockquote> <p><strong><a name="2005-03-03_1905"></a> 2005-03-03 19:05 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/gs_ttf.ps 1.43]</p> </blockquote> <p><strong><a name="2005-03-03_1315"></a> 2005-03-03 13:15 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdtc.c 1.40, src/gdevpdte.c 1.70]</p> </blockquote> <p><strong><a name="2005-03-03_0750"></a> 2005-03-03 07:50 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Write "/Type/CMap" to a CMap resource dictionary. DETAILS : Bug 687955 "ghostscript generated pdf causes error in adobe reader" EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtw.c 1.35]</p> </blockquote> <p><strong><a name="2005-03-02_1808"></a> 2005-03-02 18:08 Raph Levien</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpsu.c 1.19]</p> </blockquote> <p><strong><a name="2005-03-01_2044"></a> 2005-03-01 20:44 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/gs_ttf.ps 1.42, src/gstype42.c 1.50]</p> </blockquote> <p><strong><a name="2005-02-28_1000"></a> 2005-02-28 10:00 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdf.c 1.102]</p> </blockquote> <p><strong><a name="2005-02-27_0556"></a> 2005-02-27 05:56 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/gs_ttf.ps 1.41, src/gstype42.c 1.49, src/gxfont42.h 1.21]</p> </blockquote> <p><strong><a name="2005-02-26_2100"></a> 2005-02-26 21:00 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Fixing minor problems with debug printing. DETAILS : EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.44]</p> </blockquote> <p><strong><a name="2005-02-26_1807"></a> 2005-02-26 18:07 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-02-26_1332"></a> 2005-02-26 13:32 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpsdi.c 1.39, src/gdevpsds.c 1.13, src/gdevpsds.h 1.11]</p> </blockquote> <p><strong><a name="2005-02-25_2108"></a> 2005-02-25 21:08 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-02-25_1402"></a> 2005-02-25 14:02 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfi.c 1.62, src/gdevpsdf.h 1.27, src/gdevpsdi.c 1.37]</p> </blockquote> <p><strong><a name="2005-02-25_0758"></a> 2005-02-25 07:58 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfk.c 1.10]</p> </blockquote> <p><strong><a name="2005-02-24_1946"></a> 2005-02-24 19:46 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfk.c 1.9]</p> </blockquote> <p><strong><a name="2005-02-24_1126"></a> 2005-02-24 11:26 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfj.c 1.38, src/gdevpsdi.c 1.36]</p> </blockquote> <p><strong><a name="2005-02-23_1510"></a> 2005-02-23 15:10 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improving the compatyibility to another PSLL2 interpreter 5D PDF Creator. DETAILS : EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.43]</p> </blockquote> <p><strong><a name="2005-02-23_1048"></a> 2005-02-23 10:48 Igor Melichev</strong></p> <blockquote> <pre> ps2write : A wrong data were set to sfnts defining a Type 42 font. DETAILS : It attached an encoded data. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.42]</p> </blockquote> <p><strong><a name="2005-02-23_1008"></a> 2005-02-23 10:08 Igor Melichev</strong></p> <blockquote> <pre> Fix : Erase all pointers initializing a font structure. DETAILS : Bug 687951 "Inconsistent heap after 'definefont' fails.". EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfont.c 1.35]</p> </blockquote> <p><strong><a name="2005-02-23_0957"></a> 2005-02-23 09:57 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpsdi.c 1.35]</p> </blockquote> <p><strong><a name="2005-02-22_1541"></a> 2005-02-22 15:41 Igor Melichev</strong></p> <blockquote> <pre> 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"</pre> <p>[src/gxshade6.c 1.91]</p> </blockquote> <p><strong><a name="2005-02-18_2038"></a> 2005-02-18 20:38 Russell Lang</strong></p> <blockquote> <pre> Fix conformance problems in ghostpdf.ppd. Now tested with cupstestppd.</pre> <p>[lib/ghostpdf.ppd 1.3]</p> </blockquote> <p><strong><a name="2005-02-17_2140"></a> 2005-02-17 21:40 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.41]</p> </blockquote> <p><strong><a name="2005-02-16_2205"></a> 2005-02-16 22:05 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.40]</p> </blockquote> <p><strong><a name="2005-02-16_1529"></a> 2005-02-16 15:29 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-02-16_1111"></a> 2005-02-16 11:11 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdfg.h 1.39, src/gdevpdfj.c 1.36]</p> </blockquote> <p><strong><a name="2005-02-16_0913"></a> 2005-02-16 09:13 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-02-16_0631"></a> 2005-02-16 06:31 Ray Johnston</strong></p> <blockquote> <pre> 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).</pre> <p>[lib/pdf_main.ps 1.93]</p> </blockquote> <p><strong><a name="2005-02-16_0628"></a> 2005-02-16 06:28 Ray Johnston</strong></p> <blockquote> <pre> 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).</pre> <p>[lib/pdf_main.ps 1.92]</p> </blockquote> <p><strong><a name="2005-02-16_0501"></a> 2005-02-16 05:01 Raph Levien</strong></p> <blockquote> <pre> Fix: make sure that transfer functions and spot functions are permuted to the same order as the other halftoning parameters. Fixes bug #687916.</pre> <p>[src/zht2.c 1.13]</p> </blockquote> <p><strong><a name="2005-02-15_1447"></a> 2005-02-15 14:47 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gxfillsl.h 1.8]</p> </blockquote> <p><strong><a name="2005-02-14_0237"></a> 2005-02-14 02:37 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/gs_init.ps 1.117]</p> </blockquote> <p><strong><a name="2005-02-13_2131"></a> 2005-02-13 21:31 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[src/zmedia2.c 1.17]</p> </blockquote> <p><strong><a name="2005-02-12_2029"></a> 2005-02-12 20:29 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_main.ps 1.91]</p> </blockquote> <p><strong><a name="2005-02-10_2313"></a> 2005-02-10 23:13 Dan Coby</strong></p> <blockquote> <pre> 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.)</pre> <p>[src/gdevdgbr.c 1.12]</p> </blockquote> <p><strong><a name="2005-02-09_1942"></a> 2005-02-09 19:42 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfread.ps 1.39, lib/ps2write.bat 1.6]</p> </blockquote> <p><strong><a name="2005-02-09_1830"></a> 2005-02-09 18:30 Ray Johnston</strong></p> <blockquote> <pre> Revert to the redistributable Identity-H and Identity-V CMaps (same as the CVS revision 1.1). Bug 687933.</pre> <p>[Resource/CMap/Identity-H 1.3, Resource/CMap/Identity-V 1.3]</p> </blockquote> <p><strong><a name="2005-02-09_1636"></a> 2005-02-09 16:36 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-02-08_1652"></a> 2005-02-08 16:52 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-02-08_1557"></a> 2005-02-08 15:57 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Allow image compression. EXPECTED DIFFERENCES : None. 3</pre> <p>[lib/ps2write.bat 1.5]</p> </blockquote> <p><strong><a name="2005-02-07_0638"></a> 2005-02-07 06:38 Dan Coby</strong></p> <blockquote> <pre> 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).</pre> <p>[lib/pdf_rbld.ps 1.8]</p> </blockquote> <p><strong><a name="2005-02-06_2132"></a> 2005-02-06 21:32 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_ops.ps 1.38]</p> </blockquote> <p><strong><a name="2005-02-03_0540"></a> 2005-02-03 05:40 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_draw.ps 1.90]</p> </blockquote> <p><strong><a name="2005-01-31_1539"></a> 2005-01-31 15:39 Ray Johnston</strong></p> <blockquote> <pre> 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</pre> <p>[src/devs.mak 1.122, src/zlib.mak 1.9]</p> </blockquote> <p><strong><a name="2005-01-31_0308"></a> 2005-01-31 03:08 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-01-31_0202"></a> 2005-01-31 02:02 Igor Melichev</strong></p> <blockquote> <pre> 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"</pre> <p>[src/gdevpsdu.c 1.22]</p> </blockquote> <p><strong><a name="2005-01-30_2349"></a> 2005-01-30 23:49 Igor Melichev</strong></p> <blockquote> <pre> 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"</pre> <p>[src/gxshade6.c 1.88]</p> </blockquote> <p><strong><a name="2005-01-30_2059"></a> 2005-01-30 20:59 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpsdi.c 1.33]</p> </blockquote> <p><strong><a name="2005-01-28_1911"></a> 2005-01-28 19:11 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-01-28_1851"></a> 2005-01-28 18:51 stefan</strong></p> <blockquote> <pre> 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".</pre> <p>[src/gxclrast.c 1.32]</p> </blockquote> <p><strong><a name="2005-01-28_1811"></a> 2005-01-28 18:11 Igor Melichev</strong></p> <blockquote> <pre> Fix : gx_forward_pattern_manage missed a return code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevnfwd.c 1.27]</p> </blockquote> <p><strong><a name="2005-01-26_1848"></a> 2005-01-26 18:48 Raph Levien</strong></p> <blockquote> <pre> Fix: Resolve indirect object references in Widths array. Fixes bug #687906.</pre> <p>[lib/pdf_font.ps 1.76]</p> </blockquote> <p><strong><a name="2005-01-26_1639"></a> 2005-01-26 16:39 Jack Moffitt</strong></p> <blockquote> <pre> Fix update_specific so that it gets the correct parameters for pdfwrite testing. It was previously using the superset of raster parameters.</pre> <p>[toolbin/tests/update_specific 1.5]</p> </blockquote> <p><strong><a name="2005-01-25_2222"></a> 2005-01-25 22:22 Igor Melichev</strong></p> <blockquote> <pre> (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.</pre> <p>[src/gdevpdfu.c 1.65, src/gdevpdtb.c 1.32]</p> </blockquote> <p><strong><a name="2005-01-25_2123"></a> 2005-01-25 21:23 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_font.ps 1.75]</p> </blockquote> <p><strong><a name="2005-01-25_2040"></a> 2005-01-25 20:40 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_main.ps 1.90]</p> </blockquote> <p><strong><a name="2005-01-25_2028"></a> 2005-01-25 20:28 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improving the output file structure (continued). DETAILS : Removed a debug option that was added unintentionally. EXPECTED DIFFERENCES : None.</pre> <p>[lib/ps2write.bat 1.4]</p> </blockquote> <p><strong><a name="2005-01-25_1839"></a> 2005-01-25 18:39 Igor Melichev</strong></p> <blockquote> <pre> ps2write : Improving the output file structure (continued). DETAILS : Removed a debug option that was added unintentionally. EXPECTED DIFFERENCES : None.</pre> <p>[lib/ps2write.bat 1.3]</p> </blockquote> <p><strong><a name="2005-01-25_1833"></a> 2005-01-25 18:33 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/opdfrerh.ps 1.3]</p> </blockquote> <p><strong><a name="2005-01-25_1830"></a> 2005-01-25 18:30 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[doc/Psfiles.htm 1.59, lib/opdfread.ps 1.37, lib/ps2write.bat 1.2]</p> </blockquote> <p><strong><a name="2005-01-25_1826"></a> 2005-01-25 18:26 Igor Melichev</strong></p> <blockquote> <pre> (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.</pre> <p>[src/gdevpdfd.c 1.43, src/gdevpdfu.c 1.64]</p> </blockquote> <p><strong><a name="2005-01-25_1118"></a> 2005-01-25 11:18 Igor Melichev</strong></p> <blockquote> <pre> 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"</pre> <p>[src/gxfill.c 1.121, src/gxfilltr.h 1.12]</p> </blockquote> <p><strong><a name="2005-01-25_0119"></a> 2005-01-25 01:19 Ralph Giles</strong></p> <blockquote> <pre> Always rebuild the jasper autoconf header when configure is run to prevent the persistence of stale versions. Closes bug 687852.</pre> <p>[src/configure.ac 1.50]</p> </blockquote> <p><strong><a name="2005-01-24_1603"></a> 2005-01-24 16:03 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Register charproc XObjects with a page (continued); DETAILS : Fixing cygwin/gcc warnings in the last patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.h 1.35, src/gdevpdte.c 1.69, src/gdevpdtx.h 1.4]</p> </blockquote> <p><strong><a name="2005-01-24_1537"></a> 2005-01-24 15:37 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-01-24_1219"></a> 2005-01-24 12:19 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdte.c 1.67, src/gdevpdtt.c 1.99]</p> </blockquote> <p><strong><a name="2005-01-24_1200"></a> 2005-01-24 12:00 Igor Melichev</strong></p> <blockquote> <pre> Define more CMap resources. DETAILS : Adding more 4 redistributable Adobe CMaps. EXPECTED DIFFERENCES : None.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-01-20_0510"></a> 2005-01-20 05:10 Dan Coby</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/gs_lev2.ps 1.36, doc/Use.htm 1.127]</p> </blockquote> <p><strong><a name="2005-01-20_0026"></a> 2005-01-20 00:26 Ray Johnston</strong></p> <blockquote> <pre> Add the "Identity-" CMaps to the decode list.</pre> <p>[lib/gs_ciddc.ps 1.14]</p> </blockquote> <p><strong><a name="2005-01-20_0021"></a> 2005-01-20 00:21 Ralph Giles</strong></p> <blockquote> <pre> Correct a comment typo.</pre> <p>[src/sjbig2.h 1.5]</p> </blockquote> <p><strong><a name="2005-01-19_0024"></a> 2005-01-19 00:24 Dan Coby</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevccr.c 1.6, src/gdevcp50.c 1.7, src/gdevifno.c 1.6, src/gdevmgr.c 1.8]</p> </blockquote> <p><strong><a name="2005-01-17_1736"></a> 2005-01-17 17:36 Ralph Giles</strong></p> <blockquote> <pre> Add new files to the documentation listing.</pre> <p>[doc/Develop.htm 1.144, doc/Psfiles.htm 1.58]</p> </blockquote> <p><strong><a name="2005-01-17_1458"></a> 2005-01-17 14:58 Igor Melichev</strong></p> <blockquote> <pre> (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.</pre> <p>[src/gdevpdfd.c 1.42, src/gdevpdfu.c 1.63]</p> </blockquote> <p><strong><a name="2005-01-13_1707"></a> 2005-01-13 17:07 Igor Melichev</strong></p> <blockquote> <pre> (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.</pre> <p>[src/gdevpdfp.c 1.42, src/gdevpsdf.h 1.25]</p> </blockquote> <p><strong><a name="2005-01-13_1658"></a> 2005-01-13 16:58 Igor Melichev</strong></p> <blockquote> <pre> (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.</pre> <p>[src/gdevpdtt.c 1.98, src/gdevpsdf.h 1.24, src/gsfcid.c 1.14, src/gxfcid.h 1.14]</p> </blockquote> <p><strong><a name="2005-01-13_1226"></a> 2005-01-13 12:26 Igor Melichev</strong></p> <blockquote> <pre> (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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2005-01-12_1846"></a> 2005-01-12 18:46 Ralph Giles</strong></p> <blockquote> <pre> Update broken Adobe documentation links. Closes bug 687892.</pre> <p>[doc/Ps2epsi.htm 1.37, doc/Ps2pdf.htm 1.75, doc/Readme.htm 1.62, doc/Use.htm 1.126]</p> </blockquote> <p><strong><a name="2005-01-12_1802"></a> 2005-01-12 18:02 Ralph Giles</strong></p> <blockquote> <pre> Correct a typo in the installation file list. Closes bug 687891.</pre> <p>[src/unixinst.mak 1.38]</p> </blockquote> <p><strong><a name="2005-01-12_1023"></a> 2005-01-12 10:23 Igor Melichev</strong></p> <blockquote> <pre> (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.</pre> <p>[lib/opdfread.ps 1.35, lib/opdfrerh.ps 1.1]</p> </blockquote> <p><strong><a name="2005-01-12_1009"></a> 2005-01-12 10:09 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdtb.c 1.31]</p> </blockquote> <p><strong><a name="2005-01-11_1234"></a> 2005-01-11 12:34 Igor Melichev</strong></p> <blockquote> <pre> [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</pre> <p>[src/gdevpdtt.c 1.96]</p> </blockquote> <p><strong><a name="2005-01-10_1454"></a> 2005-01-10 14:54 Alex Cherepanov</strong></p> <blockquote> <pre> Ignore / as a name of BaseEncoding; recover broken PDF files generated by J.D.Edwards OneWorld (B7333). Fix bug 687786 from customer 220.</pre> <p>[lib/pdf_font.ps 1.74]</p> </blockquote> <p><strong><a name="2005-01-10_1433"></a> 2005-01-10 14:33 Igor Melichev</strong></p> <blockquote> <pre> 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"</pre> <p>[src/gxfilltr.h 1.11]</p> </blockquote> <p><strong><a name="2005-01-10_1132"></a> 2005-01-10 11:32 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gxchar.c 1.44]</p> </blockquote> <p><strong><a name="2005-01-06_1745"></a> 2005-01-06 17:45 Ray Johnston</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_base.ps 1.45]</p> </blockquote> <p><strong><a name="2004-12-25_1049"></a> 2004-12-25 10:49 Alex Cherepanov</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/pdf_main.ps 1.89]</p> </blockquote> <p><strong><a name="2004-12-23_2348"></a> 2004-12-23 23:48 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/zchar1.c 1.43]</p> </blockquote> <p><strong><a name="2004-12-22_1852"></a> 2004-12-22 18:52 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gstext.c 1.19, src/gxtext.h 1.16, src/int.mak 1.133, src/zchar.c 1.16]</p> </blockquote> <p><strong><a name="2004-12-21_2013"></a> 2004-12-21 20:13 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/ttobjs.c 1.9]</p> </blockquote> <p><strong><a name="2004-12-21_1127"></a> 2004-12-21 11:27 Igor Melichev</strong></p> <blockquote> <pre> 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</pre> <p>[lib/pdf_font.ps 1.73]</p> </blockquote> <p><strong><a name="2004-12-21_0853"></a> 2004-12-21 08:53 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Propagate error code from setup_image_compression. DETAILS : Bug 687854 "-dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode" doesn't work . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpsdi.c 1.32]</p> </blockquote> <p><strong><a name="2004-12-20_2235"></a> 2004-12-20 22:35 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gs.mak 1.30]</p> </blockquote> <p><strong><a name="2004-12-20_2222"></a> 2004-12-20 22:22 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/int.mak 1.132, src/lib.mak 1.204]</p> </blockquote> <p><strong><a name="2004-12-20_2217"></a> 2004-12-20 22:17 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2004-12-19_1724"></a> 2004-12-19 17:24 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdtd.c 1.20]</p> </blockquote> <p><strong><a name="2004-12-19_1719"></a> 2004-12-19 17:19 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : The "NeverEmbed" logics was broken (continued). DETAILS : Bug 687836 "Crash with -dNeverEmbed". Fixes 'const' in the previous patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtd.c 1.19]</p> </blockquote> <p><strong><a name="2004-12-19_1710"></a> 2004-12-19 17:10 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gdevpdtd.c 1.18]</p> </blockquote> <p><strong><a name="2004-12-17_2057"></a> 2004-12-17 20:57 Ray Johnston</strong></p> <blockquote> <pre> Fix for invalid (zero width) BBox in PDF Form Xobject or Annotation. Bug 687862 for customer 770.</pre> <p>[lib/pdf_draw.ps 1.89]</p> </blockquote> <p><strong><a name="2004-12-16_1234"></a> 2004-12-16 12:34 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[lib/gs_ttf.ps 1.40, lib/gs_typ42.ps 1.7]</p> </blockquote> <p><strong><a name="2004-12-15_2321"></a> 2004-12-15 23:21 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[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]</p> </blockquote> <p><strong><a name="2004-12-14_1242"></a> 2004-12-14 12:42 Igor Melichev</strong></p> <blockquote> <pre> 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.</pre> <p>[src/gsfunc3.c 1.23]</p> </blockquote> <p><strong><a name="2004-12-14_0932"></a> 2004-12-14 09:32 Igor Melichev</strong></p> <blockquote> <pre> 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</pre> <p>[src/gzspotan.c 1.13]</p> </blockquote> <p><strong><a name="2004-12-13_1754"></a> 2004-12-13 17:54 Ralph Giles</strong></p> <blockquote> <pre> Bump the version after the 8.50 release.</pre> <p>[lib/gs_init.ps 1.116, src/gscdef.c 1.52, src/version.mak 1.80]</p> </blockquote> <hr> <h2><a name="Version8.50"></a>Version 8.50 (2004-12-10)</h2> <p>This is the first release in the new stable series of Ghostscript. In addition to many bug fixes it contains numerous new features. Most obvious will be improved font handling and rasterization, and better support for PDF 1.4 and 1.5 documents. <p> New features since the last stable release: <ul> <li><p> Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for <a href="Language.htm#GridFitTT">GridFitTT</a> for information on this feature. <li><p> The PDF writer now implements PDF 1.4 encryption. See the <a href="Ps2pdf.htm#Encryption">encryption parameter</a> documentation for more information. <li><p> A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions. <li><p> Better support for running Ghostscript in "Job Server" mode as a daemon to continually accept and convert a series of independent files. <li><p> Also new is the Rinkj deivce, an experimental new driver for some inkjet printers using ETS screening and color profiles to achieve very high quality output for tuned output. See the <a href="Devices.htm#Rinkj">Rinkj</a> section for more information. <li><p> We now support PDF 1.5 files, including the new compression and encryption modes. <li><p> We have beta support for JPEG 2000 compressed images, using the JasPer compression library. In this release this support is only enabled as in the default autoconf (POSIX) and MSVC builds. </ul> <p> This release also has major internal improvements toward thread safety, although we have not yet reached this goal. Nevertheless Ghostscript should be more robust when used as a library, and these changes were an important precursor to complete virtualization. <p> The following <a href="http://bugs.ghostscript.com/">bug</a> numbers were open at the time of this release: <blockquote> 405501, 430175, 446344, 458780, 463688, 465936, 487953, 493348, 526099, 526491, 530011, 535366, 535932, 578865, 592160, 603934, 610478, 614298, 626295, 674418, 677324, 685335, 686747, 686750, 686816, 686819, 686824, 686841, 686842, 686843, 686853, 686865, 686867, 686919, 686980, 686996, 687011, 687012, 687013, 687039, 687059, 687063, 687084, 687086, 687095, 687105, 687108, 687110, 687122, 687125, 687146, 687168, 687174, 687193, 687196, 687203, 687219, 687221, 687229, 687231, 687243, 687251, 687257, 687259, 687271, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687324, 687327, 687341, 687342, 687345, 687346, 687360, 687373, 687375, 687394, 687397, 687399, 687401, 687410, 687414, 687434, 687435, 687445, 687460, 687468, 687473, 687474, 687475, 687480, 687484, 687485, 687492, 687497, 687498, 687514, 687518, 687520, 687523, 687525, 687529, 687531, 687535, 687536, 687537, 687539, 687541, 687545, 687551, 687558, 687559, 687560, 687561, 687583, 687593, 687595, 687600, 687608, 687611, 687621, 687622, 687628, 687630, 687633, 687642, 687643, 687644, 687650, 687654, 687657, 687661, 687663, 687666, 687669, 687674, 687676, 687677, 687678, 687679, 687680, 687682, 687684, 687686, 687694, 687695, 687696, 687697, 687702, 687707, 687712, 687715, 687717, 687721, 687727, 687728, 687729, 687731, 687735, 687738, 687754, 687756, 687769, 687772, 687775, 687778, 687780, 687782, 687783, 687786, 687791, 687793, 687795, 687796, 687800, 687802, 687803, 687805, 687806, 687808, 687809, 687813, 687814, 687815, 687816, 687820, 687822, 687823, 687825, 687826, 687827, 687828, 687830, 687831, 687832, 687834, 687835, 687836, 687837, 687838, 687840, 687842, 687843, 687844, 687845, 687846, 687847, 687848, 687849. </blockquote> <h3><a name="8.50_Incompatible_changes"></a>Incompatible changes</h3> <p> No known incompatible changes at this point <h3><a name="8.50_changelog"></a>Changelog</h3> <!-- generated by split_changelog.py from the output of cvs2cl.pl --> <p><strong><a name="2004-12-10_2348"></a> 2004-12-10 23:48 Ralph Giles</strong></p> <blockquote> <pre> Update 3rd party library versions to match the latest releases.</pre> <p>[src/all-arch.mak 1.16, src/bcwin32.mak 1.35, src/dvx-gcc.mak 1.29, src/macos-mcp.mak 1.33, src/macosx.mak 1.26, src/msvc32.mak 1.68, src/msvclib.mak 1.28, src/openvms.mak 1.39, src/openvms.mmk 1.31, src/os2.mak 1.43, src/ugcclib.mak 1.29, src/unix-gcc.mak 1.48, src/unixansi.mak 1.39, src/watclib.mak 1.24, src/watcw32.mak 1.32]</p> </blockquote> <p><strong><a name="2004-12-10_2328"></a> 2004-12-10 23:28 Ralph Giles</strong></p> <blockquote> <pre> Propagate release date and version changes to the documentation.</pre> <p>[doc/API.htm 1.48, doc/Bug-form.htm 1.44, doc/Bug-info.htm 1.43, doc/C-style.htm 1.50, doc/Commprod.htm 1.36, doc/Copying.htm 1.34, doc/DLL.htm 1.38, doc/Deprecated.htm 1.15, doc/Details8.htm 1.15, doc/Develop.htm 1.143, doc/Devices.htm 1.84, doc/Drivers.htm 1.52, doc/Fonts.htm 1.45, doc/Helpers.htm 1.38, doc/History1.htm 1.34, doc/History2.htm 1.34, doc/History3.htm 1.34, doc/History4.htm 1.34, doc/History5.htm 1.36, doc/History6.htm 1.51, doc/History7.htm 1.39, doc/History8.htm 1.20, doc/Htmstyle.htm 1.39, doc/Install.htm 1.49, doc/Issues.htm 1.46, doc/Language.htm 1.90, doc/Lib.htm 1.38, doc/Maintain.htm 1.45, doc/Make.htm 1.84, doc/New-user.htm 1.55, doc/Projects.htm 1.62, doc/Ps-style.htm 1.32, doc/Ps2epsi.htm 1.36, doc/Ps2pdf.htm 1.74, doc/Psfiles.htm 1.57, doc/Readme.htm 1.61, doc/Release.htm 1.89, doc/Source.htm 1.34, doc/Tester.htm 1.34, doc/Testing.htm 1.32, doc/Unix-lpr.htm 1.34, doc/Use.htm 1.125, doc/Xfonts.htm 1.34, doc/gs-vms.hlp 1.32, man/dvipdf.1 1.32, man/font2c.1 1.32, man/gs.1 1.33, man/gslp.1 1.32, man/gsnd.1 1.32, man/pdf2dsc.1 1.31, man/pdf2ps.1 1.33, man/pdfopt.1 1.31, man/pf2afm.1 1.32, man/pfbtopfa.1 1.33, man/printafm.1 1.32, man/ps2ascii.1 1.31, man/ps2epsi.1 1.30, man/ps2pdf.1 1.37, man/ps2pdfwr.1 1.36, man/ps2ps.1 1.39, man/wftopfa.1 1.32]</p> </blockquote> <p><strong><a name="2004-12-10_2322"></a> 2004-12-10 23:22 Ralph Giles</strong></p> <blockquote> <pre> Update version and date for the 8.50 release. Also some additions to the release notes.</pre> <p>[doc/News.htm 1.158, lib/gs_init.ps 1.115, src/gscdef.c 1.51, src/version.mak 1.79]</p> </blockquote> <p><strong><a name="2004-12-10_2300"></a> 2004-12-10 23:00 Ralph Giles</strong></p> <blockquote> <pre> Disable JPXDecode support in the default MacOS Codewarrior build, pending resolution of some functional issues. The autoconf gcc build can be used as a workaround.</pre> <p>[src/macos-mcp.mak 1.32]</p> </blockquote> <p><strong><a name="2004-12-10_0034"></a> 2004-12-10 00:34 Ralph Giles</strong></p> <blockquote> <pre> Correct an ambiguous '#if DEBUG' to an '#ifdef DEBUG'. Part of the fix for bug 687830.</pre> <p>[src/vdtrace.c 1.10]</p> </blockquote> <p><strong><a name="2004-12-09_0827"></a> 2004-12-09 08:27 Ralph Giles</strong></p> <blockquote> <pre> Additional clean up for the MacOS CodeWarrior build. Adds a dependency on gconfigd.h so it gets built when the project file is generated, and include a search path for the jasper library headers.</pre> <p>[src/macgenmcpxml.sh 1.12, src/macos-mcp.mak 1.31]</p> </blockquote> <p><strong><a name="2004-12-09_0824"></a> 2004-12-09 08:24 Ralph Giles</strong></p> <blockquote> <pre> Update the MacOS test framework to current code.</pre> <p>[src/dmmain.c 1.5, src/dmmain.r 1.2]</p> </blockquote> <p><strong><a name="2004-12-09_0347"></a> 2004-12-09 03:47 Ralph Giles</strong></p> <blockquote> <pre> Use #ifdef DEBUG instead of the ambiguous #if DEBUG.</pre> <p>[src/gp_macio.c 1.37]</p> </blockquote> <p><strong><a name="2004-12-09_0243"></a> 2004-12-09 02:43 Ralph Giles</strong></p> <blockquote> <pre> Add a missing dependency on the DeviceN code to the tiffsep device.</pre> <p>[src/devs.mak 1.120]</p> </blockquote> <p><strong><a name="2004-12-09_0059"></a> 2004-12-09 00:59 Ralph Giles</strong></p> <blockquote> <pre> Modify the MacOS polling implementation to use the new libctx accessor for the callbacks.</pre> <p>[src/gp_macpoll.c 1.3]</p> </blockquote> <p><strong><a name="2004-12-08_2230"></a> 2004-12-08 22:30 Ralph Giles</strong></p> <blockquote> <pre> Update the jbig2 makefile for the latest release. We now require jbig2dec 0.7 if you want to compile in the jbig2dec source instead of linking to the shared library.</pre> <p>[src/jbig2.mak 1.9]</p> </blockquote> <p><strong><a name="2004-12-08_2135"></a> 2004-12-08 21:35 stefan</strong></p> <blockquote> <pre> Delaying changes for assertions and gzspotan.c till after 8.50 release.</pre> <p>[src/fapi_ft.c 1.14, src/gdevddrw.c 1.27, src/gdevpdfc.c 1.51, src/gdevpsf1.c 1.20, src/gdevpsft.c 1.35, src/gendev.c 1.7, src/gserror.h 1.9, src/gsfcmap.c 1.27, src/gsfunc0.c 1.23, src/gslibctx.c 1.7, src/gsmisc.c 1.22, src/gxccman.c 1.30, src/gxcht.c 1.15, src/gxdhtserial.c 1.7, src/gxfdrop.c 1.16, src/gxpflat.c 1.44, src/gxshade1.c 1.35, src/gxshade6.c 1.86, src/gzspotan.c 1.12, src/siinterp.c 1.7, src/write_t1.c 1.5, src/write_t2.c 1.7]</p> </blockquote> <p><strong><a name="2004-12-08_1952"></a> 2004-12-08 19:52 Ralph Giles</strong></p> <blockquote> <pre> Mention the need to run autogen.sh to generate the configure script when building from CVS.</pre> <p>[doc/Make.htm 1.83]</p> </blockquote> <p><strong><a name="2004-12-08_1947"></a> 2004-12-08 19:47 Ralph Giles</strong></p> <blockquote> <pre> MacOS platform build cleanup. DETAILS: Since the libctx changes, stdio hasn't been directly available. Therefore we no longer support '-' as a special filename in (the obsolete) gp_open_printer(). We change an fprintf(stderr,...) to an eprintf() which is more correct in any case. This change also removes the fprintf() and fputs() implementations in the MacOS build. Metrowerks CW libc has for some time provided implementations, but they're even less needed now that we're being a proper library.</pre> <p>[src/gp_macio.c 1.36]</p> </blockquote> <p><strong><a name="2004-12-08_1809"></a> 2004-12-08 18:09 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT grid fitting) : An assertion failed in the spot analyzer. DETAILS : A condition for a stem prolongation was too weak. Bug 687823 "assert in gzspotan.c with ttcf2cid font". EXPECTED DIFFERENCES : 72dpi : 01_001.pdf 159.pdf 289-01.ps adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf type42_glyph_index.ps normal, 300dpi : 01_001.pdf 159.pdf 289-01.ps adesso2.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf pdfwrite 300 dpi : 01_001.pdf 159.pdf adesso2.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Altona_Technical_1v1_x3.pdf Bug687603.ps Bug687724.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf japan.ps keyboard.pdf korea.ps shading_prob_800.ps STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf</pre> <p>[src/gzspotan.c 1.11]</p> </blockquote> <p><strong><a name="2004-12-08_0504"></a> 2004-12-08 05:04 Ralph Giles</strong></p> <blockquote> <pre> Convert gs_malloc() calls in the MacOS gp_* code to unwrapped libc malloc() now that gs_malloc() requires a memory pointer, which is not available. Partial fix for bug 687830. DETAILS: Only the call in getenv() is active; the one in gp_init() is not used. This may have been what the earlier libctx patch was trying to do when it touched gp_macio.c, changing the function call, but not the arguments, and breaking the</pre> <p>[src/gp_mac.c 1.17, src/gp_macio.c 1.35]</p> </blockquote> <p><strong><a name="2004-12-08_0120"></a> 2004-12-08 01:20 stefan</strong></p> <blockquote> <pre> Pulled silly macro to try to disuade the direct use of assert()</pre> <p>[src/gserror.h 1.8]</p> </blockquote> <p><strong><a name="2004-12-08_0031"></a> 2004-12-08 00:31 Alex Cherepanov</strong></p> <blockquote> <pre> Provide back-up definitions of /-| /RD /|- /ND /| /NP for the benefit of embedded PDF fonts that forget to define them. Issue a warning when they are used. Don't fix PS interpreter because Distiller doesn't accept such fonts either. fix bug 687824</pre> <p>[lib/pdf_font.ps 1.72]</p> </blockquote> <p><strong><a name="2004-12-08_0018"></a> 2004-12-08 00:18 stefan</strong></p> <blockquote> <pre> forgot an #undef to correctly disable assert()</pre> <p>[src/gsmisc.c 1.21]</p> </blockquote> <p><strong><a name="2004-12-08_0006"></a> 2004-12-08 00:06 stefan</strong></p> <blockquote> <pre> Moved include outside of function body to fix MSVC compile error.</pre> <p>[src/gsmisc.c 1.20]</p> </blockquote> <p><strong><a name="2004-12-07_2325"></a> 2004-12-07 23:25 stefan</strong></p> <blockquote> <pre> Added macros for assertions: GS_ASSERT(false) returns -1 in a release system asserts in a debug system GS_DBG_ASSERT(false) is a NOP in a release system asserts in a debug system Both versions will printf to stderr first. Raw assert() should not be used. GS_ASSERT will not compile in a void function, as it returns -1. This means you can not use assertions to change the standard error return exception handline mechanism in Ghostscript. You can use them to catch programmer usage errors in a debug build. gs_misc::gs_assert() is the one place the operating system's assert is called. This can be modified in a embedded system, again assert is only called in a debug build.</pre> <p>[src/fapi_ft.c 1.13, src/gdevddrw.c 1.26, src/gdevpdfc.c 1.50, src/gdevpsf1.c 1.19, src/gdevpsft.c 1.34, src/gdevpx.c 1.15, src/gendev.c 1.6, src/gserror.h 1.7, src/gsfcmap.c 1.26, src/gsfunc0.c 1.22, src/gslibctx.c 1.6, src/gsmisc.c 1.19, src/gxccman.c 1.29, src/gxcht.c 1.14, src/gxdhtserial.c 1.6, src/gxfdrop.c 1.15, src/gxpflat.c 1.43, src/gxshade1.c 1.34, src/gxshade6.c 1.85, src/gzspotan.c 1.10, src/siinterp.c 1.6, src/write_t1.c 1.4, src/write_t2.c 1.6]</p> </blockquote> <p><strong><a name="2004-12-07_1024"></a> 2004-12-07 10:24 Igor Melichev</strong></p> <blockquote> <pre> Fix : Disable an unuseful warning from MSVC8.</pre> <p>[src/msvccmd.mak 1.23]</p> </blockquote> <p><strong><a name="2004-12-07_0528"></a> 2004-12-07 05:28 Ralph Giles</strong></p> <blockquote> <pre> Correct an incorrect cast in the jpx filter. Bug 687831.</pre> <p>[src/sjpx.c 1.11]</p> </blockquote> <p><strong><a name="2004-12-07_0503"></a> 2004-12-07 05:03 Ralph Giles</strong></p> <blockquote> <pre> Add a const qualifier to the jpx filter memory contest. Corrects an error with Metrowerks CodeWarrior 8.</pre> <p>[src/sjpx.h 1.4]</p> </blockquote> <p><strong><a name="2004-12-07_0229"></a> 2004-12-07 02:29 Ralph Giles</strong></p> <blockquote> <pre> Remove the calls to set the TEXT filetype for the source files. This has not been necessary for the last few versions of CodeWarrior, and doing it correctly for the hierarchical jasper source is tedious.</pre> <p>[src/macos-mcp.mak 1.30]</p> </blockquote> <p><strong><a name="2004-12-07_0225"></a> 2004-12-07 02:25 Ralph Giles</strong></p> <blockquote> <pre> Add jasper.mak to the MacOS CW build.</pre> <p>[src/macos-mcp.mak 1.29]</p> </blockquote> <p><strong><a name="2004-12-06_1802"></a> 2004-12-06 18:02 Ralph Giles</strong></p> <blockquote> <pre> Enable compilation of the jasper library source for JPEG 2000 image stream support in the MacOS Code Warrior build.</pre> <p>[src/macos-mcp.mak 1.28]</p> </blockquote> <p><strong><a name="2004-12-06_1317"></a> 2004-12-06 13:17 Igor Melichev</strong></p> <blockquote> <pre> Fix : Improvinmg documentation for recently improced algorythms. DETAILS : This patch only changes comments in C code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.120, src/gxfillsl.h 1.7, src/gxfilltr.h 1.10, src/gxshade6.c 1.84, src/gzspotan.c 1.9]</p> </blockquote> <p><strong><a name="2004-12-03_0641"></a> 2004-12-03 06:41 Ralph Giles</strong></p> <blockquote> <pre> Decide to run a recursive configure for the jasper source based on existence of the new jas_config_ac.h instead of the old jas_config.h We now require the 1.701.0-gs2 (or later) release to build out of the box. Other versions can still be used by running their configure manually and touching this file, or by building a separate shared library.</pre> <p>[src/configure.ac 1.49]</p> </blockquote> <p><strong><a name="2004-12-01_2002"></a> 2004-12-01 20:02 Ray Johnston</strong></p> <blockquote> <pre> Add JPXDecode filter to the default Windows MSVC build. This is based on the "jasper" source and must be at least version 26 from the svn repository using svn co http://svn.ghostscript.com:8080/jasper/trunk jasper DETAILS: This is a fairly minor modification to the gs MSVC makefiles, but it did require changing our jasper version (that had accumulated many changes) to hook in the correct jas_config***.h file and to avoid using windows.h (so we can build with /Za). See the jasper svn for details of the changes. EXPECTED DIFFERENCES: none. (we didn't have any PDF 1.5 files with JPEG2000 images in the comparefiles).</pre> <p>[src/msvc32.mak 1.67, src/winlib.mak 1.24]</p> </blockquote> <p><strong><a name="2004-12-01_1757"></a> 2004-12-01 17:57 Raph Levien</strong></p> <blockquote> <pre> Fix: in implementation of n operator in clip mode, put pathbbox in stopped context so that completely empty paths have the same behavior as paths with empty bbox, rather than causing an error. Fixes bug #687820. DETAILS The test file has a "n W n" sequence, which is a request to clip to a totally empty path. The error comes from code added to pdf_ops.ps v 1.33 to handle the case where a path is defined but has an empty bbox. See bug 687136 for more details on this change. Comment #8 of that bug report suggests that our PDF interpreter always maintains a currentpoint, which would justify the use of an unprotected pathbbox. However, that assumption seems to be false. This fix wraps the pathbbox added in the 1.33 change in a stopped context.</pre> <p>[lib/pdf_ops.ps 1.37]</p> </blockquote> <p><strong><a name="2004-12-01_0817"></a> 2004-12-01 08:17 Ralph Giles</strong></p> <blockquote> <pre> Add a platform-specific JASPERCFLAGS makefile variable to assist with proper compilation of the jasper jpeg2k library. Set this variable correctly in the autoconf build. DETAILS: The jasper library natively supports building under both autoconf+cc and MSVC, but expects a preprocessor define to be set to distinguish the two. While we do carefully construct a special JAS_CC for compiling the jasper source into Ghostscript, as with all the other 3rd party libraries, there is only a facility to set special CFLAGS globally. This change adds a new top-level makefile variable for passing platform-specific CFLAGS into gs.mak for addition to that global set. Also, set JASPERCFLAGS=-DJAS_CONFIGURE in Makefile.in so that the jasper sourcr expects the autoconf generated configuration header when compiling as part of Ghostscript.</pre> <p>[src/Makefile.in 1.40, src/gs.mak 1.28]</p> </blockquote> <p><strong><a name="2004-11-30_2031"></a> 2004-11-30 20:31 Russell Lang</strong></p> <blockquote> <pre> Return error code when using -f filename. Fix bug #687811 strange behavior with -f.</pre> <p>[src/imainarg.c 1.34]</p> </blockquote> <p><strong><a name="2004-11-29_2318"></a> 2004-11-29 23:18 Russell Lang</strong></p> <blockquote> <pre> When doing a Windows debug build, link against the debug run time libraries.</pre> <p>[src/msvccmd.mak 1.22]</p> </blockquote> <p><strong><a name="2004-11-29_0325"></a> 2004-11-29 03:25 Russell Lang</strong></p> <blockquote> <pre> Correct the SubfontID values in the example substitutions.</pre> <p>[doc/Use.htm 1.124]</p> </blockquote> <p><strong><a name="2004-11-24_2009"></a> 2004-11-24 20:09 Russell Lang</strong></p> <blockquote> <pre> Correct errors in .buildnativefontmap procedure. DETAILS: The enumeration of fonts returned by .getnativefonts was being given "array true" which was causing a typecheck in forall because of a missing exch. It should have been "true array". Also, .findfontname was returning a name rather than a string, so cvn was failing because it was already a name.</pre> <p>[lib/gs_fonts.ps 1.48]</p> </blockquote> <p><strong><a name="2004-11-24_0812"></a> 2004-11-24 08:12 Russell Lang</strong></p> <blockquote> <pre> When using CJK Windows TrueType fonts, add the Windows fonts directory to the GS_LIB registry variable to allow access to this directory when SAFER is used.</pre> <p>[src/dwsetup.cpp 1.10]</p> </blockquote> <p><strong><a name="2004-11-23_1218"></a> 2004-11-23 12:18 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : The component 'usage' buffer size was wrongly computed. DETAILS : Bug 687810 "/invalidfont in --@0x1e36c". Note that the error message appears some misleading due to sbx, sby is placed in ostack for type42_finish. Rather we could fix it in this particular case in type42_finish, a complete fix appears too complicated. So for now leave it as it is. EXPECTED DIFFERENCES : None.</pre> <p>[src/ttfmain.c 1.32]</p> </blockquote> <p><strong><a name="2004-11-23_0744"></a> 2004-11-23 07:44 Igor Melichev</strong></p> <blockquote> <pre> Fix (type 1 hinter) : Bugs in 'flex' with disabled hinting. DETAILS : Bug 687812 "Distortion in charpath outline". 1. Wrong poles were exported from the hinter when 'flex' works with disabled hinting. 2. Improved vdtrace commands for a disabled hinting. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.56]</p> </blockquote> <p><strong><a name="2004-11-22_1936"></a> 2004-11-22 19:36 Ralph Giles</strong></p> <blockquote> <pre> Null the DEVICE_DEVS_EXTRA variable when calling the link line. This works around env space limitations on some vendor unicies when a large set of devices are passed from the make command line through this variable. Bug 687804.</pre> <p>[src/unixlink.mak 1.7]</p> </blockquote> <p><strong><a name="2004-11-22_1925"></a> 2004-11-22 19:25 Ralph Giles</strong></p> <blockquote> <pre> Cast the gx color index to an int inside the switch argument to avoid problems with the HP-UX 10 compiler which does not accept 64 bit arguments to switch(). Bug 687804.</pre> <p>[src/gdevstc.c 1.11]</p> </blockquote> <p><strong><a name="2004-11-22_0647"></a> 2004-11-22 06:47 Ralph Giles</strong></p> <blockquote> <pre> Bump the version number after the 8.33 beta release.</pre> <p>[doc/News.htm 1.157, lib/gs_init.ps 1.114, src/gscdef.c 1.50, src/version.mak 1.78]</p> </blockquote> <hr> <h2><a name="Version8.33"></a>Version 8.33 (2004-11-20)</h2> <p><strong>This is a release candidate for the next stable version of Ghostscript.</strong> <p> New features since the last stable release: <ul> <li><p> Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for <a href="Language.htm#GridFitTT">GridFitTT</a> for information on this feature. <li><p> The PDF writer now implements PDF 1.4 encryption. See the <a href="Ps2pdf.htm#Encryption">encryption parameter</a> documentation for more information. <li><p> A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions. <li><p> This version contains the first release of Rinkj, an experimental new driver for some inkjet printers using ETS screening. See the <a href="Devices.htm#Rinkj">Rinkj</a> section for more information. <li><p> We now support PDF 1.5 files, including the new compression and encryption modes. <li><p> We have beta support for JPEG 2000 compressed images, using the JasPer compression library. This is only enabled as part of the default build in the autoconf (POSIX) build system in this release. </ul> <p> The following <a href="http://bugs.ghostscript.com/">bug</a> numbers were open at the time of the last release: <blockquote> 405501, 430175, 446344, 458780, 463688, 465936, 487953, 493348, 526099, 526491, 530011, 535366, 535932, 578865, 592160, 603934, 610478, 614298, 626295, 645316, 674418, 677324, 685335, 686747, 686750, 686816, 686819, 686824, 686841, 686842, 686843, 686853, 686865, 686867, 686919, 686980, 686996, 687011, 687012, 687013, 687039, 687063, 687084, 687086, 687095, 687105, 687108, 687110, 687122, 687125, 687146, 687157, 687168, 687174, 687193, 687196, 687203, 687219, 687221, 687229, 687231, 687243, 687251, 687257, 687259, 687271, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687324, 687327, 687341, 687342, 687345, 687346, 687360, 687373, 687375, 687394, 687397, 687399, 687401, 687410, 687414, 687434, 687435, 687445, 687460, 687468, 687473, 687474, 687475, 687480, 687484, 687485, 687492, 687497, 687498, 687514, 687518, 687520, 687523, 687525, 687529, 687531, 687535, 687536, 687537, 687539, 687541, 687545, 687551, 687558, 687559, 687560, 687561, 687575, 687583, 687593, 687595, 687600, 687608, 687611, 687621, 687622, 687628, 687630, 687633, 687637, 687642, 687643, 687644, 687650, 687654, 687657, 687661, 687663, 687666, 687669, 687674, 687676, 687677, 687678, 687679, 687680, 687682, 687684, 687686, 687694, 687695, 687696, 687697, 687702, 687707, 687712, 687715, 687717, 687721, 687727, 687728, 687729, 687731, 687732, 687735, 687738, 687754, 687756, 687769, 687772, 687775, 687778, 687780, 687782, 687783, 687786, 687791, 687793, 687795, 687796, 687798, 687799, 687800, 687801, 687802, 687803, 687804, 687805, 687806. </blockquote> <h3><a name="8.33_Incompatible_changes"></a>Incompatible changes</h3> <p> No known incompatible changes at this point <h3><a name="8.33_changelog"></a>Changelog</h3> <!-- generated by split_changelog.py from the output of cvs2cl.pl --> <p><strong><a name="2004-11-20_0444"></a> 2004-11-20 04:44 Ralph Giles</strong></p> <blockquote> <pre> Propagate release date to all documentation.</pre> <p>[doc/API.htm 1.47, doc/Bug-form.htm 1.43, doc/Bug-info.htm 1.42, doc/C-style.htm 1.49, doc/Commprod.htm 1.35, doc/Copying.htm 1.33, doc/DLL.htm 1.37, doc/Deprecated.htm 1.14, doc/Details8.htm 1.13, doc/Develop.htm 1.142, doc/Devices.htm 1.83, doc/Drivers.htm 1.51, doc/Fonts.htm 1.44, doc/Helpers.htm 1.37, doc/History1.htm 1.33, doc/History2.htm 1.33, doc/History3.htm 1.33, doc/History4.htm 1.33, doc/History5.htm 1.35, doc/History6.htm 1.50, doc/History7.htm 1.38, doc/History8.htm 1.18, doc/Htmstyle.htm 1.38, doc/Install.htm 1.48, doc/Issues.htm 1.45, doc/Language.htm 1.89, doc/Lib.htm 1.37, doc/Maintain.htm 1.44, doc/Make.htm 1.82, doc/New-user.htm 1.54, doc/Projects.htm 1.61, doc/Ps-style.htm 1.31, doc/Ps2epsi.htm 1.35, doc/Ps2pdf.htm 1.73, doc/Psfiles.htm 1.56, doc/Readme.htm 1.60, doc/Release.htm 1.88, doc/Source.htm 1.33, doc/Tester.htm 1.33, doc/Testing.htm 1.31, doc/Unix-lpr.htm 1.33, doc/Use.htm 1.123, doc/Xfonts.htm 1.33, doc/gs-vms.hlp 1.31, man/dvipdf.1 1.31, man/font2c.1 1.31, man/gs.1 1.32, man/gslp.1 1.31, man/gsnd.1 1.31, man/pdf2dsc.1 1.30, man/pdf2ps.1 1.32, man/pdfopt.1 1.30, man/pf2afm.1 1.31, man/pfbtopfa.1 1.32, man/printafm.1 1.31, man/ps2ascii.1 1.30, man/ps2epsi.1 1.29, man/ps2pdf.1 1.36, man/ps2pdfwr.1 1.35, man/ps2ps.1 1.38, man/wftopfa.1 1.31]</p> </blockquote> <p><strong><a name="2004-11-20_0441"></a> 2004-11-20 04:41 Ralph Giles</strong></p> <blockquote> <pre> Correct a typo in the reference to the cmpi script.</pre> <p>[doc/Testing.htm 1.30]</p> </blockquote> <p><strong><a name="2004-11-20_0440"></a> 2004-11-20 04:40 Ralph Giles</strong></p> <blockquote> <pre> Update release date and product name.</pre> <p>[doc/News.htm 1.155, src/gscdef.c 1.49, src/version.mak 1.77]</p> </blockquote> <p><strong><a name="2004-11-20_0433"></a> 2004-11-20 04:33 Ralph Giles</strong></p> <blockquote> <pre> Define SHARE_JASPER=0 by default in the windows build. This doesn't enable anything, but makes it easier to get going.</pre> <p>[src/winlib.mak 1.23]</p> </blockquote> <p><strong><a name="2004-11-19_1956"></a> 2004-11-19 19:56 Ray Johnston</strong></p> <blockquote> <pre> Due to an oversight, JBIG2Decode was omitted from the windows build. Now it is included in the default FEATURE_DEVS although in the future this should probably be moved to the pdf.dev</pre> <p>[src/msvc32.mak 1.66]</p> </blockquote> <p><strong><a name="2004-11-19_0439"></a> 2004-11-19 04:39 Ray Johnston</strong></p> <blockquote> <pre> Add some missing initializers for glyph_data_t->memory. Related to the 687459 fix.</pre> <p>[src/gdevpsf1.c 1.18, src/gdevpsf2.c 1.33, src/gdevpsfu.c 1.12, src/gsfcid.c 1.13, src/gstype42.c 1.48, src/gxfcopy.c 1.54, src/gxtype1.c 1.41, src/zchar1.c 1.42, src/zfcid0.c 1.25, src/zfcid1.c 1.23]</p> </blockquote> <p><strong><a name="2004-11-19_0144"></a> 2004-11-19 01:44 Raph Levien</strong></p> <blockquote> <pre> Copies over new-style color procs when making a null device with a target, to avoid inconsistent states. Fixes bug #687770. DETAILS The problem was a null device (for implementing stringwidth) with inconsistent color info; the color_info struct specified 4 components, but the get_color_mapping_procs was gx_default_DevGray_get_color_mapping_procs, which is the desired value for null devices instantiated through gs_copydevice (i.e. -sDEVICE=null). As a result, cm_comps[1] through [3] were left uninitialized, and, when negative, would crash the halftone logic. This patch copies over the new-style color mapping procs (the old-style were already copied) in the gs_make_null_device routine. A strong argument could be made for changing the logic in gx_device_copy_color_procs() instead, but it was felt that this change was more localized. Dan reviewed this patch during a phone conversation, so I am going ahead and committing. I'm also opening a new bug to encourage a closer look at other uses of gx_device_copy_color_procs() to see whether a change there is beneficial or harmful.</pre> <p>[src/gsdevice.c 1.24]</p> </blockquote> <p><strong><a name="2004-11-18_1709"></a> 2004-11-18 17:09 Ray Johnston</strong></p> <blockquote> <pre> Fix regression created by previous patch for bug 687752.</pre> <p>[lib/pdf_draw.ps 1.88]</p> </blockquote> <p><strong><a name="2004-11-18_1104"></a> 2004-11-18 11:04 Russell Lang</strong></p> <blockquote> <pre> Update Windows installer to use the current name for the license file, Public.htm not the older PUBLIC.</pre> <p>[src/winint.mak 1.23]</p> </blockquote> <p><strong><a name="2004-11-18_0648"></a> 2004-11-18 06:48 Russell Lang</strong></p> <blockquote> <pre> Add utility mkcidfm.ps to create a cidfmap file based on fonts found in a directory. Change MS-Windows installer to optionally update lib/cidfmap with the CJK fonts found in the Windows font directory. DETAILS: Ghostscript does not ship with CJK fonts. If support for Chinese, Japanese or Korean is added to MS-Windows, CJK TrueType fonts and font collections are added to the MS-Windows fonts directory. These can be used by ghostscript by specifying mapping and aliases in the lib/cidfmap file. This patch looks in the MS-Windows fonts directory for known CJK fonts, and if present it appends appropriate mappings or aliases to the lib/cidfmap file. The font names and aliases are currently fixed, but can be changed by editing mkcidfm.ps. A new checkbox is added to the installer dialog "Use Windows TrueType fonts for Chinese, Japanese and Korean" Only if the user selects this will lib/cidfmap will be updated. The default behavior is that lib/cidfmap is unchanged.</pre> <p>[doc/Psfiles.htm 1.55, lib/mkcidfm.ps 1.1, src/dwinst.cpp 1.6, src/dwinst.h 1.7, src/dwsetup.cpp 1.9, src/dwsetup.h 1.6, src/dwsetup.rc 1.12, src/dwuninst.cpp 1.5]</p> </blockquote> <p><strong><a name="2004-11-18_0220"></a> 2004-11-18 02:20 Ray Johnston</strong></p> <blockquote> <pre> Fix a missing part of the JOBSERVER implementation that makes the ^D a self-delimitting token. Fixes bug 687779.</pre> <p>[src/iscan.c 1.19]</p> </blockquote> <p><strong><a name="2004-11-18_0144"></a> 2004-11-18 01:44 Ray Johnston</strong></p> <blockquote> <pre> Fix for unlimited recursion in 'cs/CS' implementation (actually in a certain path in 'resolvecolorspace'. Fixes bug 687752 for Artifex customer 190.</pre> <p>[lib/pdf_draw.ps 1.87]</p> </blockquote> <p><strong><a name="2004-11-17_1948"></a> 2004-11-17 19:48 Ray Johnston</strong></p> <blockquote> <pre> Fix bug 687777 to remove the makefile dependency of dscparse from the pdfwrite device. This allows non-PS to include the pdfwrite.dev in the build. Also updated zdscpars.c to add needed 'mem' pointer.</pre> <p>[src/devs.mak 1.119, src/int.mak 1.131, src/zdscpars.c 1.17]</p> </blockquote> <p><strong><a name="2004-11-16_0253"></a> 2004-11-16 02:53 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Page context stream was not properly formed when starts with an invisible text. DETAILS : Bug 687797 "pdfwrite generates invalid pdf". The improved condition made consistent with gdevpdte.c ln 501. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtt.c 1.94]</p> </blockquote> <p><strong><a name="2004-11-15_0112"></a> 2004-11-15 01:12 Ray Johnston</strong></p> <blockquote> <pre> Fix for Bug 687459 (SEGV) addressing several problems: (i) Elements fetched from a font dictionary have to be dereferenced into a ref since pointers change if the dictionary is resized (to add entries); (ii) The glyph_cache used by gs_font_cid2 fonts needs to be in stable memory since elements might be added after a 'save' and the list will still be refereced by the font, so cannot be freed by 'restore'; (iii) The gs_glyph_cache__release was never being called so creating a memory leak -- font notification (called by gs_font_finalize) is now used to free the cache list; (iv) The gs_glyph_cache__release did not work (probably was never tested since it was not being used). DETAILS: Using stable_memory means that the objects created need to be freed properly, that's why the font_notify mechanism was used. This fixes the problem reported by the bug and doesn't seem to have created any other problems (regression test passed). A 'memory' element was added to the gs_glyph_data_s structure so that the 'bits' can be allocated using the desired memory (stable memory in the case that we are using the cache). This was deemed preferable to always using the pfont->memory->stable_memory since changing to this might cause other problems. This did create a fair number of changes since every place the get_outline was used, the glyph_data structure needed to have the 'memory' element set. We could have used 'NULL' to signal pfont->memory, but this might have masked uninitialized memory issues that can be tracked with tools such as valgrind. The gs_glyph_cache__release was totally broken, and since it was not previously used, fixing and testing it presents no risk of other clients relying on broken behaviour. The implementation of the cache is VERY RUDIMENTARY -- a linked list of elements with a hard-coded number (32767) limit to the size of the cache. The size is too small to be useful for Asian fonts, but making it bigger will result in a lot of time spent finding a 'miss' condition. At least the current logic has LRU slot re-use behaviour (which should be retained). Fixing this, and making the cache limit larger are left for a later change (post 8.50 release). EXPECTED DIFFERENCES: None.</pre> <p>[src/gdevpsft.c 1.33, src/gsgcache.c 1.3, src/gsgcache.h 1.2, src/gsgdata.h 1.5, src/gstype42.c 1.47, src/gxfcopy.c 1.53, src/gxttfb.c 1.36, src/zbfont.c 1.28, src/zfcid0.c 1.24, src/zfcid1.c 1.22]</p> </blockquote> <p><strong><a name="2004-11-14_0141"></a> 2004-11-14 01:41 Russell Lang</strong></p> <blockquote> <pre> Add missing header include for setting the display device callback.</pre> <p>[src/imain.c 1.41]</p> </blockquote> <p><strong><a name="2004-11-13_2208"></a> 2004-11-13 22:08 Igor Melichev</strong></p> <blockquote> <pre> Fix : toolbin/pdfinflt.ps did not decompress some streams (continued). DETAILS : The 2nd Patch from SaGS for the bug 687746 "gs\toolbin\pdfinflt.ps doesn't unpack a stream" The previous patch contained on over-optimization that leaded to a corrupted operand stack. "{ [ {proc} {proc} ] }" (note: 2 identical inner procs) can be optimized: either as "{ [ {proc} dup ] }" - use VM for only 1 copy of "{proc}" or as "{ { {proc} {proc} } }" - the 2-element array is allocated only once, by the parser, not at each execution of the enclosing proc but we cannot apply both these optimizations at the same time. This error affects PDF files that include a /Filter and/or /DecodeParams specified as 1-element arrays. PDFs for which these entries are a single name (for /Filter) or dict (for /DecodeParams) or arrays with 2 or more elements are not affected. EXPECTED DIFFERENCES : None.</pre> <p>[toolbin/pdfinflt.ps 1.7]</p> </blockquote> <p><strong><a name="2004-11-12_2128"></a> 2004-11-12 21:28 Russell Lang</strong></p> <blockquote> <pre> Spelling corrections.</pre> <p>[doc/Use.htm 1.122]</p> </blockquote> <p><strong><a name="2004-11-08_1656"></a> 2004-11-08 16:56 Ralph Giles</strong></p> <blockquote> <pre> Add the new image comparison tool to the file index in the documentation.</pre> <p>[doc/Testing.htm 1.29]</p> </blockquote> <p><strong><a name="2004-11-07_2109"></a> 2004-11-07 21:09 Igor Melichev</strong></p> <blockquote> <pre> Fix : Improve the resource path customization and the related documentation (continued). DETAILS : This fixes some minor ambiguities.</pre> <p>[doc/Use.htm 1.121]</p> </blockquote> <p><strong><a name="2004-11-07_1957"></a> 2004-11-07 19:57 Igor Melichev</strong></p> <blockquote> <pre> fuzzy.c : Implementing multipage image files. DETAILS: Report will contain a line per different page. Thus the report file may contain multiple lines. The output image file contains only the the first page difference due to a restricted capability of available viewers. Bug 687765 "fuzzy.c : multipage documents unsupported.".</pre> <p>[toolbin/tests/fuzzy.c 1.17]</p> </blockquote> <p><strong><a name="2004-11-07_1925"></a> 2004-11-07 19:25 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc warnings. DETAILS : Cygwin/gcc claims an undefined result in spdiff.c due to possibly undefined order of evaluation of operands of a binary operation. The hunk #2 now sets 'ti', rather the old code does not. But we believe that the change is algorithmically equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxdevndi.c 1.5, src/spdiff.c 1.8, src/ttinterp.c 1.16]</p> </blockquote> <p><strong><a name="2004-11-06_2220"></a> 2004-11-06 22:20 Ralph Giles</strong></p> <blockquote> <pre> Remove some obsolete assert calls which caused problems on some platforms due to incorrect string quoting in assert.h.</pre> <p>[src/gxhintn.c 1.55]</p> </blockquote> <p><strong><a name="2004-11-06_1930"></a> 2004-11-06 19:30 Ray Johnston</strong></p> <blockquote> <pre> Fix: Python opens files in text mode unless "rb" is needed.</pre> <p>[toolbin/tests/cmpi.py 1.2]</p> </blockquote> <p><strong><a name="2004-11-06_0638"></a> 2004-11-06 06:38 Ray Johnston</strong></p> <blockquote> <pre> Add an interactive image compare tool written in Python by a Python neophyte. Not quite ready for prime-time, but an interesting enough start to commit. Even though there are bugs in the differencing, responsiveness and memory usage, it is still sometimes useful. If a version # were to be applied to this, I would call it 0.1 (at least it is a positive number).</pre> <p>[toolbin/tests/cmpi.py 1.1]</p> </blockquote> <p><strong><a name="2004-11-05_1703"></a> 2004-11-05 17:03 Ralph Giles</strong></p> <blockquote> <pre> Update the MacOS X platform-specific makefile. Remove -traditional-cpp. This was added to work around bugs in earlier releases of Apple's gcc, but it is not necessary with more recent releases, and conflicts with newer cpp features used by more recent Ghostscript code. Partial fix for bug 687787.</pre> <p>[src/macosx.mak 1.25]</p> </blockquote> <p><strong><a name="2004-11-04_2031"></a> 2004-11-04 20:31 Russell Lang</strong></p> <blockquote> <pre> Improve documentation for CID fonts.</pre> <p>[doc/Use.htm 1.120]</p> </blockquote> <p><strong><a name="2004-11-03_1746"></a> 2004-11-03 17:46 Ralph Giles</strong></p> <blockquote> <pre> Include stdio_.h instead of the system header according to C style.</pre> <p>[src/gslibctx.h 1.5, src/lib.mak 1.203]</p> </blockquote> <p><strong><a name="2004-11-03_0823"></a> 2004-11-03 08:23 Ray Johnston</strong></p> <blockquote> <pre> Add handling for missing EOL following the %PDF-#.## string in the header. Yet another bad file that Acrobat Reader handles. Bug 687781. DETAILS: If we get an error doing the 'cvr' to get the version #, trim a character from the end of the string and try again. Stop if the string becomes empty.</pre> <p>[lib/pdf_main.ps 1.88]</p> </blockquote> <p><strong><a name="2004-11-03_0734"></a> 2004-11-03 07:34 Ralph Giles</strong></p> <blockquote> <pre> Add missing opening quotes to the error printouts. This typo came in as part of an earlier bug fix and prevented compilation. Bug 687784.</pre> <p>[src/gdevsppr.c 1.9]</p> </blockquote> <p><strong><a name="2004-11-01_2121"></a> 2004-11-01 21:21 Jack Moffitt</strong></p> <blockquote> <pre> Fixes Bug#687762. Includes the date specification of the CVS checkout in the baseline update log. This then gets propagated to the daily reports.</pre> <p>[toolbin/tests/update_specific 1.4]</p> </blockquote> <p><strong><a name="2004-11-01_2109"></a> 2004-11-01 21:09 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Forget cancelled resources. DETAILS : Bug 687749 "PS to PDF generates very large PDF document" 1. An indeterministic bug fixed in gdevpdfi.c, hunk #1. 2. Implemented a recognition of equal patterns in gdevpdfi.c and provided a PDF pattern substitution. We caould not provide a substitution in the PS interpreter because an accumulated pattern instance doesn't point to the corresponding client color. 3. pdf_forget_resource is applied when a resource is cancelled and is not longer needed. This applies to all redundant resources except patterns, because patterns keep the substitution data. We would like to save memory from substitured patterns with a special substitution table, but we have no time for such optimization now. 4. The function pdf_forget_resource is some slow because the data structure was not designed for removing resources from lists. We would like to implement dual linked lists, but we have no time for such optimization now. 5. Since pdf_forget_resource is not applied to patters, we need to prevent a big growth of the number of stored patterns. We implemented pdf_drop_resources for that purpose and drop all substitured pattrens after 300 ones have been accumulated, but not frequenter than once per page. This solution isn't perfect, but should work for most cases. If a substituted pattern is dropped erroneusely, it will be accumulated again, maybe causing some slowdown. 6. Implemented a new device parameter PrintStatistics. The new function pdf_print_resource_statistics prints a statistics to stdout. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.101, src/gdevpdfg.c 1.59, src/gdevpdfg.h 1.34, src/gdevpdfi.c 1.57, src/gdevpdfj.c 1.32, src/gdevpdfp.c 1.40, src/gdevpdfu.c 1.61, src/gdevpdfv.c 1.37, src/gdevpdfx.h 1.103, src/gdevpdti.c 1.39, src/gdevpdtt.c 1.93]</p> </blockquote> <p><strong><a name="2004-11-01_1821"></a> 2004-11-01 18:21 Ralph Giles</strong></p> <blockquote> <pre> Exempt three new files from the multiple-include protect check. Like the previous exemptions, these are templates that must be instantiated multiple times to function properly.</pre> <p>[toolbin/tests/check_source.py 1.11]</p> </blockquote> <p><strong><a name="2004-11-01_0915"></a> 2004-11-01 09:15 Ralph Giles</strong></p> <blockquote> <pre> We now implement job server behavior. This is no longer an open issue.</pre> <p>[doc/Issues.htm 1.44]</p> </blockquote> <p><strong><a name="2004-11-01_0915"></a> 2004-11-01 09:15 Ralph Giles</strong></p> <blockquote> <pre> Mention the issue with polygon overlap in antialiased rendering. Closes bug 687742.</pre> <p>[doc/Use.htm 1.119]</p> </blockquote> <p><strong><a name="2004-10-29_0104"></a> 2004-10-29 01:04 Russell Lang</strong></p> <blockquote> <pre> Documentation update to fix some dead links.</pre> <p>[doc/Readme.htm 1.59]</p> </blockquote> <p><strong><a name="2004-10-29_0007"></a> 2004-10-29 00:07 Russell Lang</strong></p> <blockquote> <pre> Documentation fixes, due to changes in iapi.h.</pre> <p>[doc/API.htm 1.46, doc/Lib.htm 1.36]</p> </blockquote> <p><strong><a name="2004-10-28_1734"></a> 2004-10-28 17:34 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Font size was wrong when definefont applied to a scaled font. DETAILS : Bug 687615 "ps2pdf squeezes glyph strings". This continues the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003487.html (igor486). EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtd.c 1.17]</p> </blockquote> <p><strong><a name="2004-10-28_1158"></a> 2004-10-28 11:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (vdtrace.c) : Fix gcc warnings and improve C-style. DETAILS : This change is algorithmically equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/vdtrace.c 1.9]</p> </blockquote> <p><strong><a name="2004-10-28_0926"></a> 2004-10-28 09:26 Igor Melichev</strong></p> <blockquote> <pre> Fix (gswin32) : Opened a window outside the desctop area. DETAILS : When the Tracer window was opened with a clean Registry (particularly at a first run after the operating system instalaton), the window placement got big negative coordinates. EXPECTED DIFFERENCES : None.</pre> <p>[src/dwimg.c 1.17]</p> </blockquote> <p><strong><a name="2004-10-28_0839"></a> 2004-10-28 08:39 Igor Melichev</strong></p> <blockquote> <pre> Fix (type 1 interpreter) : Replaced Metrics was missed. DETAILS : Bug 687614 "mirrored glyph is rendered at incorrect position". This patch fixes the problem for raster devices. Without -dNOCACHE the behavior was indeterministic due to uninitialized cxs.use_FontBBox_as_Metrics2 in zchar1.c. We ported the change from gstype1.c to gstype2.c with no special testing because we have no practical examples of Type 2 with a replaced lsb. It happens so because Type 2 only appears in PDF, which doesn't replace lsb. EXPECTED DIFFERENCES : None.</pre> <p>[src/gstype1.c 1.32, src/gstype2.c 1.36, src/zchar1.c 1.41]</p> </blockquote> <p><strong><a name="2004-10-28_0725"></a> 2004-10-28 07:25 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Glyph positions were wrong for vertical CID fonts (continued 2). DETAILS : Bug 687614 "mirrored glyph is rendered at incorrect position". The new code implements the improved logics : /* With WMode 1 v-vector is (WMode 1 origin) - (WMode 0 origin). The glyph shifts in the opposite direction. */ /* With WMode 0 v-vector is (Metrics sb) - (native sb). The glyph shifts in same direction. */ Also improved the related comments. EXPECTED DIFFERENCES : pdfwrite 093-01.ps .</pre> <p>[src/gdevpdte.c 1.65]</p> </blockquote> <p><strong><a name="2004-10-27_1056"></a> 2004-10-27 10:56 Igor Melichev</strong></p> <blockquote> <pre> Fix (resource machinery) : Improve the resource path customization and the related documentation (continued). DETAILS : A wrong paragraph removed form the documentation. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Use.htm 1.118]</p> </blockquote> <p><strong><a name="2004-10-26_1728"></a> 2004-10-26 17:28 Ralph Giles</strong></p> <blockquote> <pre> Bump the version info after the 8.32 release.</pre> <p>[doc/News.htm 1.154, lib/gs_init.ps 1.113, src/gscdef.c 1.48, src/version.mak 1.76]</p> </blockquote> <p><strong><a name="2004-10-26_1707"></a> 2004-10-26 17:07 Igor Melichev</strong></p> <blockquote> <pre> Fix (resource machinery) : Improve the resource path customization and the related documentation. DETAILS : 1. Explained the resource locator's logics in Use.htm . Bug 687767 "Adding -Ic:\windows\fonts breaks CJK fonts". 2. The old code missed some directories when the user specifies a non-absolute path as GenericResourcePath. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Use.htm 1.117, lib/gs_res.ps 1.38]</p> </blockquote> <p><strong><a name="2004-10-26_0944"></a> 2004-10-26 09:44 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Improve the font substitution and the CID font substitution. DETAILS : 1. A new procedure .remove_font_name_prefix removes the subset font name prefix when computing a substitute font name. 2. Improved a warning when substituting a CID font resource. 3. Improved the documentation about CID font substitution if the PDF interpreter Bug 687747 "PDF tries substituting but throws /undefinedresource in --findresource--". EXPECTED DIFFERENCES : None.</pre> <p>[doc/Use.htm 1.116, lib/pdf_font.ps 1.71]</p> </blockquote> <hr> <h2><a name="Version8.32"></a>Version 8.32 (2004-10-26)</h2> <p>This is the third beta release leading up to the stable 8.5x series. It contains numerous bug fixes since the last testing release, but a few outstanding issues remain. <p> New features since the last stable release: <ul> <li><p> Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for <a href="Language.htm#GridFitTT">GridFitTT</a> for information on this feature. <li><p> The PDF writer now implements PDF 1.4 encryption. See the <a href="Ps2pdf.htm#Encryption">encryption parameter</a> documentation for more information. <li><p> A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions. <li><p> This version contains the first release of Rinkj, an experimental new driver for some inkjet printers using ETS screening. See the <a href="Devices.htm#Rinkj">Rinkj</a> section for more information. <li><p> We now support PDF 1.5 files, including the new compression and encryption modes. <li><p> We have beta support for JPEG 2000 compressed images, using the JasPer compression library. This is only enabled as part of the default build in the autoconf (POSIX) build system in this release. </ul> <p> The following <a href="http://bugs.ghostscript.com/">bug</a> numbers were open at the time of the last release: <blockquote> 405501, 430175, 446344, 458780, 463688, 465936, 487953, 493348, 526099, 526491, 530011, 535366, 535932, 578865, 592160, 603934, 610478, 614298, 626295, 645316, 674418, 677324, 685335, 686747, 686750, 686816, 686819, 686824, 686841, 686842, 686843, 686853, 686865, 686867, 686919, 686980, 686996, 687011, 687012, 687013, 687039, 687063, 687084, 687086, 687095, 687105, 687108, 687110, 687122, 687125, 687146, 687157, 687168, 687174, 687179, 687193, 687196, 687203, 687219, 687221, 687229, 687231, 687243, 687251, 687257, 687259, 687271, 687275, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687324, 687327, 687341, 687342, 687345, 687346, 687360, 687373, 687375, 687394, 687397, 687399, 687401, 687410, 687414, 687434, 687435, 687445, 687459, 687460, 687468, 687473, 687474, 687475, 687480, 687484, 687485, 687492, 687497, 687498, 687514, 687518, 687520, 687523, 687525, 687529, 687531, 687535, 687536, 687537, 687539, 687541, 687545, 687551, 687558, 687559, 687560, 687561, 687575, 687583, 687593, 687595, 687600, 687608, 687611, 687614, 687615, 687621, 687622, 687628, 687630, 687633, 687637, 687642, 687643, 687644, 687650, 687654, 687657, 687661, 687663, 687666, 687669, 687674, 687676, 687677, 687678, 687679, 687680, 687682, 687684, 687686, 687694, 687695, 687696, 687697, 687702, 687707, 687712, 687715, 687717, 687721, 687727, 687728, 687729, 687731, 687732, 687735, 687738, 687742, 687747, 687749, 687752, 687754, 687756, 687762, 687765, 687767, 687769, 687770, 687773. </blockquote> <h3><a name="8.32_Incompatible_changes"></a>Incompatible changes</h3> <p> No known incompatible changes at this point <h3><a name="8.32_changelog"></a>Changelog</h3> <!-- generated by split_changelog.py from the output of cvs2cl.pl --> <p><strong><a name="2004-10-26_0431"></a> 2004-10-26 04:31 Ralph Giles</strong></p> <blockquote> <pre> Move a dependency out of order so it's available when needed.</pre> <p>[src/lib.mak 1.202]</p> </blockquote> <p><strong><a name="2004-10-26_0425"></a> 2004-10-26 04:25 Ralph Giles</strong></p> <blockquote> <pre> Update version and release date in the documentation.</pre> <p>[doc/API.htm 1.45, doc/Bug-form.htm 1.42, doc/Bug-info.htm 1.41, doc/C-style.htm 1.48, doc/Commprod.htm 1.34, doc/Copying.htm 1.32, doc/DLL.htm 1.36, doc/Deprecated.htm 1.13, doc/Details8.htm 1.11, doc/Develop.htm 1.141, doc/Devices.htm 1.82, doc/Drivers.htm 1.50, doc/Fonts.htm 1.43, doc/Helpers.htm 1.36, doc/History1.htm 1.32, doc/History2.htm 1.32, doc/History3.htm 1.32, doc/History4.htm 1.32, doc/History5.htm 1.34, doc/History6.htm 1.49, doc/History7.htm 1.37, doc/History8.htm 1.15, doc/Htmstyle.htm 1.37, doc/Install.htm 1.47, doc/Issues.htm 1.43, doc/Language.htm 1.88, doc/Lib.htm 1.35, doc/Maintain.htm 1.43, doc/Make.htm 1.81, doc/New-user.htm 1.53, doc/Projects.htm 1.60, doc/Ps-style.htm 1.30, doc/Ps2epsi.htm 1.34, doc/Ps2pdf.htm 1.72, doc/Psfiles.htm 1.54, doc/Readme.htm 1.58, doc/Release.htm 1.87, doc/Source.htm 1.32, doc/Tester.htm 1.32, doc/Testing.htm 1.28, doc/Unix-lpr.htm 1.32, doc/Use.htm 1.115, doc/Xfonts.htm 1.32, doc/gs-vms.hlp 1.30, man/dvipdf.1 1.30, man/font2c.1 1.30, man/gs.1 1.31, man/gslp.1 1.30, man/gsnd.1 1.30, man/pdf2dsc.1 1.29, man/pdf2ps.1 1.31, man/pdfopt.1 1.29, man/pf2afm.1 1.30, man/pfbtopfa.1 1.31, man/printafm.1 1.30, man/ps2ascii.1 1.29, man/ps2epsi.1 1.28, man/ps2pdf.1 1.35, man/ps2pdfwr.1 1.34, man/ps2ps.1 1.37, man/wftopfa.1 1.30]</p> </blockquote> <p><strong><a name="2004-10-26_0424"></a> 2004-10-26 04:24 Ralph Giles</strong></p> <blockquote> <pre> Update libpng version to the latest release. There are security issues with 1.2.5, so upgrading is recommended.</pre> <p>[src/all-arch.mak 1.15, src/bcwin32.mak 1.34, src/dvx-gcc.mak 1.28, src/macos-mcp.mak 1.27, src/macosx.mak 1.24, src/msvc32.mak 1.65, src/msvclib.mak 1.27, src/openvms.mak 1.38, src/openvms.mmk 1.30, src/os2.mak 1.42, src/ugcclib.mak 1.28, src/unix-gcc.mak 1.47, src/unixansi.mak 1.38, src/watclib.mak 1.23, src/watcw32.mak 1.31]</p> </blockquote> <p><strong><a name="2004-10-26_0408"></a> 2004-10-26 04:08 Ralph Giles</strong></p> <blockquote> <pre> Back out double-include protection for gxfill*.h. Contrary to C-style, these are templates that are configured and included multiple times. They should probably be .c files rather than .h.</pre> <p>[src/gxfillsl.h 1.6, src/gxfilltr.h 1.9, src/gxfillts.h 1.5]</p> </blockquote> <p><strong><a name="2004-10-26_0351"></a> 2004-10-26 03:51 Ralph Giles</strong></p> <blockquote> <pre> Add double-include protection to four files that needed it. Also correct a comment typo in a related file's protection.</pre> <p>[src/gp_os2.h 1.2, src/gxfill.h 1.23, src/gxfillsl.h 1.5, src/gxfilltr.h 1.8, src/gxfillts.h 1.4]</p> </blockquote> <p><strong><a name="2004-10-26_0343"></a> 2004-10-26 03:43 Ralph Giles</strong></p> <blockquote> <pre> Add a new-style RCS Id line to the re-instated LZWEncode filter.</pre> <p>[src/slzwe.c 1.3]</p> </blockquote> <p><strong><a name="2004-10-26_0341"></a> 2004-10-26 03:41 Ralph Giles</strong></p> <blockquote> <pre> Commute a C++ style comment.</pre> <p>[src/main.h 1.8]</p> </blockquote> <p><strong><a name="2004-10-26_0338"></a> 2004-10-26 03:38 Ralph Giles</strong></p> <blockquote> <pre> Exempt the rinkj CVS directories from the documentation reference check.</pre> <p>[toolbin/tests/check_docrefs.py 1.11]</p> </blockquote> <p><strong><a name="2004-10-26_0316"></a> 2004-10-26 03:16 Ralph Giles</strong></p> <blockquote> <pre> Revert jbig2 makefile update accidentally included in the last commit. We want to maintain compatibility with 0.6 for this release.</pre> <p>[src/jbig2.mak 1.8]</p> </blockquote> <p><strong><a name="2004-10-26_0312"></a> 2004-10-26 03:12 Ralph Giles</strong></p> <blockquote> <pre> Add the new gsutil.py source to the file catalog</pre> <p>[doc/News.htm 1.152, doc/Testing.htm 1.27]</p> </blockquote> <p><strong><a name="2004-10-26_0312"></a> 2004-10-26 03:12 Ralph Giles</strong></p> <blockquote> <pre> Update notes and dates for the 8.32 release.</pre> <p>[src/gscdef.c 1.47, src/jbig2.mak 1.7, src/version.mak 1.75]</p> </blockquote> <p><strong><a name="2004-10-26_0250"></a> 2004-10-26 02:50 Ralph Giles</strong></p> <blockquote> <pre> Add libctx memory pointers where required in the compiled-fonts code. This was missed in the initial commit. Also, add the OBJ directory to the include path when compiling the font data, since stdpre.h now requires the generate arch.h header. Closes bug 687758.</pre> <p>[src/cfonts.mak 1.5, src/iccfont.c 1.11]</p> </blockquote> <p><strong><a name="2004-10-25_1511"></a> 2004-10-25 15:11 Igor Melichev</strong></p> <blockquote> <pre> Fix : CIDFont-CMap construction didn't work with substituted CID font resources. DETAILS : Bug 687766 "CJK cidfmap ignores aliases". This patch fixes the problem (the change to gs_cidfm.ps) and provides a debug printing in various modules related to CID font substitution. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_cidcm.ps 1.12, lib/gs_cidfm.ps 1.7, lib/gs_fntem.ps 1.8, lib/gs_init.ps 1.112, lib/gs_resmp.ps 1.11]</p> </blockquote> <p><strong><a name="2004-10-22_0807"></a> 2004-10-22 08:07 Raph Levien</strong></p> <blockquote> <pre> Fixes copying of paths into clipping path list so that it works even when the path is allocated with local_segments. Fixes bugs #687401, #687612, and #687750.</pre> <p>[src/gxcpath.c 1.13]</p> </blockquote> <p><strong><a name="2004-10-21_1757"></a> 2004-10-21 17:57 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : Subglyphs were positioned wrongly (continued). DETAILS : This fixes the log message of the previous patch in the "expected differences" section. Bug 687589 "A composite glyph renders wrongly". Bug 687768 "umlauts misplaced in eps file". EXPECTED DIFFERENCES : Testform.v1.0.2.pdf"</pre> <p>[src/ttfmain.c 1.31]</p> </blockquote> <p><strong><a name="2004-10-21_1752"></a> 2004-10-21 17:52 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : Subglyphs were positioned wrongly. DETAILS : Bug 687589 "A composite glyph renders wrongly". Bug 687768 "umlauts misplaced in eps file". EXPECTED DIFFERENCES : None.</pre> <p>[src/ttfmain.c 1.30]</p> </blockquote> <p><strong><a name="2004-10-21_1505"></a> 2004-10-21 15:05 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : A tolerance to bad TT instructions. DETAILS : Bug 687764 "/invalidfont in .type42execchar". Since we met several fonts with bad TT instructions, we print a warning and continue with ignoring instructions. EXPECTED DIFFERENCES : None.</pre> <p>[src/gstype42.c 1.46, src/gxfont42.h 1.20, src/gxttfb.c 1.35, src/ttfmain.c 1.29, src/ttfoutl.h 1.14]</p> </blockquote> <p><strong><a name="2004-10-20_1558"></a> 2004-10-20 15:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Glyph positions were wrong for vertical CID fonts (continued). DETAILS : Bug 687603 "vertical text misplaced after distilling", reopened. Bug 687753 "Text not aligned when viewed with Acrobat Reader", re-testing. Disposition : D1. The PDF spec requires X-compomenent of v-vector always equals to half glyph width. D2. AR5 appears to use W|DW to compute the X-component of the v-vector of WMode 1. The previous patch fixed most problems, but one left unfixed. When a glyph is used with WMode 0, and later with WMode 1, the second usage doesn't store Width and V due to the 'used' flag is already set. This patch introduces 2 separate sets of flags for WNode 0 and WMode 1. Changes : 1. Defined a new field 'used2' fro WMode 1 in gdevpdtf.h . 2. Allocated the used2 array, provided garbager methods, and a resizing on demand in gdevpdtf.c . 3. gdevpdtc.c sets used2. 4. Improved the computation of the v-vector in gdevpdtt.c . Now pdf_glyph_widths should be conforming to (D1) and (D2). 5. The coordinate adjustment in gdevpdte.c is not longer useful due to (4). Removed. 6. When writing W, W2, glyphs are being enumerated with used, used2 correspondingly (gdevpdtw.c). 7. The accedd to Widths2 sometimes was incorrect. Now fixed (gdevpdtf.c). 8. gdevpdtc.c misused Widths2 as Widths when storing the WMode 0 width as a component of theWMode 1 v-vector. Now fixed. EXPECTED DIFFERENCES : Bug687603.ps</pre> <p>[src/gdevpdtc.c 1.39, src/gdevpdte.c 1.64, src/gdevpdtf.c 1.40, src/gdevpdtf.h 1.25, src/gdevpdtt.c 1.92, src/gdevpdtw.c 1.34]</p> </blockquote> <p><strong><a name="2004-10-20_0252"></a> 2004-10-20 02:52 Jack Moffitt</strong></p> <blockquote> <pre> Remove quotes from input filenames.</pre> <p>[toolbin/tests/update_specific 1.3]</p> </blockquote> <p><strong><a name="2004-10-20_0130"></a> 2004-10-20 01:30 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, PDF interpreter) : Glyph positions were wrong for vertical CID fonts. DETAILS : Bug 687753 "Text not aligned when viewed with Acrobat Reader". Disposition : D1. The PDF spec requires X-compomenent of v-vector always equals to half glyph width. D2. AR5 appears to use W|DW to compute the X-component of the v-vector of WMode 1. Changes : 1. With WMode 1, pdf_obtain_cidfont_widths_arrays obtains both Widths and Widths2 arrays (gdevpdtf.c, gdevpdtf.h, gdevpdtc.c). 2. For CID fonts gdevpdtc.c computes both WMode 1 and WMode 2 width when WMode 1 is requested. 3. Due to (D1), must compensate the half width when computing a glyph position in gdevpdte.c (hunk #2). 4. In gdevpdte.c internal data glyph_origin_shift used opposite signs for CID and non-CID fonts. Now made uniform. 5. The Type 0 font matrix and the descendent CID font matrix were applied in a wrong order in gdevpdte.c . 6. To satisfy (D2) when WMode 1 is only requested, write DW 0 when WMode 1 is only requested. 7. After fixing all above, from the test file of the bug 687753 pdfwrite generated a PDF, which GS failed interpret due to a curious failure with e_dictfull while checking for an absent key /File in the font dictionary. Patched zfcid1.c to provide a tolerance. Meanwhile we're not sure that it's the best way for fixing that, so if someone can bring a better method, feel free to improve. 8. The PDF interpreter is patched to comply with (D2) - pdf_font.ps, hunk #2 . 9. Fixed a bug in .pdfMakeInternalMTXArray : W2 arraytype elements wrongly computed the range (debugged with re-distilled Bug687603.ps). EXPECTED DIFFERENCES : Bug687603.ps besides that, it generates an improved PDF for japan-.ps, Type11CDevProc.ps, but rasters appear same because a change to the PDF interpreter compensates changes to the PDF writer.</pre> <p>[lib/pdf_font.ps 1.70, src/gdevpdtc.c 1.38, src/gdevpdte.c 1.63, src/gdevpdtf.c 1.39, src/gdevpdtf.h 1.24, src/gdevpdtw.c 1.33, src/zfcid1.c 1.21]</p> </blockquote> <p><strong><a name="2004-10-18_1523"></a> 2004-10-18 15:23 Igor Melichev</strong></p> <blockquote> <pre> Fix : Degenerate segments must not paint when caps is not round. DETAILS : Bug 687720 "Zero length lines must not stroke". See comment in code. EXPECTED DIFFERENCES : Normal 72 dpi : "012-05.ps" "013-05.ps" "014-05.ps" "015-01.ps" "015-05.ps" "027-01.ps" "027-09.ps" "032-01.ps" "034-01.ps" "034-10.ps" "083-05.ps" "123-05.ps" "169-05.ps" "192-01.ps" "222-05.ps" "298-05.ps" "307-01.ps" "321-05.ps" "file2.pdf" Normal 300 dpi : "012-05.ps" "014-05.ps" "015-01.ps" "015-05.ps" "027-01.ps" "027-09.ps" "034-01.ps" "034-10.ps" "123-05.ps" "169-05.ps" "192-01.ps" "222-05.ps" "298-05.ps" "307-01.ps" "321-05.ps" "a.pdf" "file2.pdf" pdfwrite 72 dpi : "012-05.ps" "013-05.ps" "014-05.ps" "015-01.ps" "015-05.ps" "027-01.ps" "027-09.ps" "032-01.ps" "034-01.ps" "034-10.ps" "083-05.ps" "123-05.ps" "169-05.ps" "192-01.ps" "222-05.ps" "298-05.ps" "307-01.ps" "321-05.ps" "ai2.pdf" "file2.pdf" pdfwrite 300 dpi : "012-05.ps" "014-05.ps" "015-01.ps" "015-05.ps" "027-01.ps" "027-09.ps" "034-01.ps" "034-10.ps" "083-05.ps" "123-05.ps" "169-05.ps" "192-01.ps" "222-05.ps" "298-05.ps" "307-01.ps" "321-05.ps" "a.pdf" "file2.pdf"</pre> <p>[src/gxpdash.c 1.6, src/gxstroke.c 1.13]</p> </blockquote> <p><strong><a name="2004-10-18_0843"></a> 2004-10-18 08:43 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : Don't align glyph width to pixels. DETAILS : See comment in code. Bug 687719 "PDFWRITE corrupts letter spacing/placement". When porting this patch to GS_8_1X please note that the default value of AlignToPixels is different in HEAD andf GS_8_1X. Therefore this patch may cause differences witg GS_8_1X. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.54]</p> </blockquote> <p><strong><a name="2004-10-15_1824"></a> 2004-10-15 18:24 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 9). Check the Encoding compatibility while merging Type 3 glyph variations. DETAILS : Fixes the reopened bug 687660 "incorrect font rendering/missing glyphs from ps2pdf". pdf_is_same_charproc1 now checks whether we try to replace a charproc with one taken from a font with a compatible Encoding. Before now the encoding was ingnored, causing a subsequent failure (due to an encoding conflict) when adding glyphs to the font copy, and an infinite loop. As usual, the encoding compatibility is being checked within the list of characters of a current text. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfx.h 1.102, src/gdevpdti.c 1.38, src/gdevpdtt.c 1.91, src/gdevpdtt.h 1.25]</p> </blockquote> <p><strong><a name="2004-10-15_1818"></a> 2004-10-15 18:18 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 8). Allocate a single character list per text. DETAILS : This change is algorithmically equivalent. It's a preparation for fixing the reopened bug 687660 "incorrect font rendering/missing glyphs from ps2pdf". For 1-byte fonts now we allocate a singe instance of pdf_char_glyph_pairs_t for storing the character list for entire text. Now it is done once per text as an extention to pdf_text_enum_t. The intention is to provide an access to it from pdf_find_same_charproc. CID text is still processed in chunks, which are delimited by font changes or CDevProc callouts. It may cause a searchability problem with some viewers, when converting a composefont with a Type 3 descendent. But unlikely we'll met such case in practice, due to we have no exmples of composefont with a Type 3 descendent. We would like to improve the CID text processing sometimes with with building a complete character list for a text portion delimited with font changes. The new algorithm for scan_cmap_text should be like this : first delimit a single font portion, then construct the character list for the portion, and then process the portion with possible CDevProc and charproc callouts. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtc.c 1.37, src/gdevpdte.c 1.62, src/gdevpdtf.c 1.38, src/gdevpdtf.h 1.23, src/gdevpdtt.c 1.90, src/gdevpdtt.h 1.24, src/gxfcopy.c 1.52, src/gxfcopy.h 1.11]</p> </blockquote> <p><strong><a name="2004-10-15_0855"></a> 2004-10-15 08:55 Igor Melichev</strong></p> <blockquote> <pre> Fix : toolbin/pdfinflt.ps did not decompress some streams. DETAILS : Patch from SaGS for the bug 687746 "gs\toolbin\pdfinflt.ps doesn't unpack a stream" Current version of pdfinflt.ps uncompresses only streams that have a single filter applied, and only if that single filter is /FlateDecode. Proposed patch (attached) ads support for procesing streams with multiple filters. However, not all decompressing filters can be removed, and not in all cases it would be desirable to remove them. The /filterstoremove dictionary lists filters that are to be processed, and omits filters that are to be preserved in the output. For streams with multiple filters chained together, the new version of pdfinflt.ps removes all filters from the first in the decompressing chain up to, but excluding, the first filter that is to be preserved. The list of preserved filters, with the reason why these are not removed, follows: /RunLengthDecode, /CCITTFaxDecode, /DCTDecode: These are normaly used for compressing raster images. I assume the main purpose of this tool is to decompress page streams for debugging, and decompressing images only adds a huge amount of binary data, making harder to find and examine content streams. If this is not the case, and getting raw image data is necessary, simply uncomment the lines corresponding to these filters. /JBIG2Decode, /JPXDecode: There's no (standard) PostScript filter that corresponds to these PDF filters. (I think) GhostScript implements these filters in the PostScript interpreter, but not for all platforms, so I added some detection code for them. The preceding paragraph applies too, so I left the lines corresponding to these filters commented out. /Crypt (PDF1.5-specific): This is a generic interface with decryption plug-ins, and has no PostScript counterpart (and I don't see how it could have one). EXPECTED DIFFERENCES : None.</pre> <p>[toolbin/pdfinflt.ps 1.6]</p> </blockquote> <p><strong><a name="2004-10-14_1832"></a> 2004-10-14 18:32 Ray Johnston</strong></p> <blockquote> <pre> Add logic to capture the ENTIRE regression report to a rotating log file. As before the ENTIRE regression report is only emailed on Mondays.</pre> <p>[toolbin/tests/run_nightly 1.29]</p> </blockquote> <p><strong><a name="2004-10-14_1728"></a> 2004-10-14 17:28 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Fixing some Type 3 encoding problems. DETAILS : We found that Encoding compatibility was insufficiently checked with Type 3 glyph variations. It's a preparation for fixing the reopened bug 687660 "incorrect font rendering/missing glyphs from ps2pdf". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdti.c 1.37, src/gdevpdtt.c 1.89]</p> </blockquote> <p><strong><a name="2004-10-13_1531"></a> 2004-10-13 15:31 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite, PDF interpreter) : Correctly handle different widths for same glyph (continued). DETAILS : This patch continues a long story about the handling of different widths for same glyph in a PDF embedded font. The last patch in this series was http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004834.html That patch caused a problem with pdfwrite, which needs to write an original glyph name rather than a substituted one. This change establish a new discipnile for passing the original glyph name from the PDF interpreter to pdfwrite inside a substituted glyph name, with using an implementation specific separator (~GS~). Before writing a font, we apply copied_drop_extension_glyphs to remove extended glyph names. We don't like to modify the font, but choose this minimal solution for now. A better solution would be to introduce another flag to glyph slots to mark ones, which to be skipped when writing the embedded font. Bug 687740 "(pdfwrite) A character dissappeared in ADOBE1-4.pdf". EXPECTED DIFFERENCES : pdfwrite : ADOBE1-4.pdf</pre> <p>[src/gdevpdtb.c 1.29, src/gdevpdtw.c 1.32, src/gxfcopy.c 1.51, src/gxfcopy.h 1.10, src/gxfont.h 1.23, src/gxtype1.c 1.40, lib/pdf_font.ps 1.69]</p> </blockquote> <p><strong><a name="2004-10-12_2308"></a> 2004-10-12 23:08 Ray Johnston</strong></p> <blockquote> <pre> Fix LZWEncode filter to use the EarlyChange parameter and also correct the tifflzw device to initialize EarlyChange to the proper value (1). Bug 687726. DETAILS: The LZWEncode filter failed to use the EarlyChange param but the LZWDecode did honor this setting. The LZWEncode always acted as if EarlyChange = 1 which since that was the default, worked as long as the Decoder wasn't set for EarlyChange == 0. Also, now that the Encoder honors EarlyChange = 0, the tifflzw device needed to have the flag set correctly (it needs EarlyChange == 1). EXPECTED DIFFERENCES: 430-01.ps</pre> <p>[src/gdevtfax.c 1.8, src/slzwe.c 1.2]</p> </blockquote> <p><strong><a name="2004-10-08_2255"></a> 2004-10-08 22:55 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : *bfrange boundaries may differ in the last byte only. DETAILS : The PDF specification requires so. Bug 687737 "can't select text in distilled pdf". EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfcmap.c 1.25]</p> </blockquote> <p><strong><a name="2004-10-08_1327"></a> 2004-10-08 13:27 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : The function same_type42_hinting was indeterministic. DETAILS : It compares few TrueType tables for equality, but didn't work out the case when a table is absent. In that case the bahavior was indeterministic. Bug 687736 "pdfwrite hangs (or takes really long) on input file". It created too many font copies and spent lots of time for garbage collection. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfcopy.c 1.50]</p> </blockquote> <p><strong><a name="2004-10-07_2112"></a> 2004-10-07 21:12 Alex Cherepanov</strong></p> <blockquote> <pre> Don't overwrite CFLAGS variable if it is already defined. Bug 687739</pre> <p>[src/msvc32.mak 1.64]</p> </blockquote> <p><strong><a name="2004-10-07_0518"></a> 2004-10-07 05:18 Ray Johnston</strong></p> <blockquote> <pre> Fix initialization of C stack streams that did not perform s_init(). Bug 687709 that could result in a Segmentation Fault (SEGV) DETAILS: The normal s_alloc() streams included s_init() on the allocated stream, but C stack streams could have uninitialized elements in the stream struct. Since this was UMR related, and affected the clist mode, the jpeg device and the pswrite device (and possibly some pdfwrite data), this would be different on different platforms. The premature 'CloseTarget' action when the stream->close_strm was not initialized as 0 (false) would show up as a SEGV when the -Z@ was used. Other problems that this patch fixes are not linked to a test file at the current time. This change also corrects a trivial typo and a NUL character found in src/gxtype1.c as a header file related warning in src/imain.c</pre> <p>[src/gdevjpeg.c 1.8, src/gdevlj56.c 1.6, src/gdevpdfc.c 1.49, src/gdevpdfm.c 1.47, src/gdevpdtb.c 1.28, src/gdevpdtw.c 1.31, src/gdevps.c 1.40, src/gdevpsf1.c 1.17, src/gdevpsf2.c 1.32, src/gdevpsft.c 1.32, src/gdevpsim.c 1.14, src/gdevpsu.c 1.18, src/gsfunc4.c 1.16, src/gxclimag.c 1.11, src/gxclpath.c 1.20, src/gxclrast.c 1.31, src/gxclread.c 1.13, src/gxfcopy.c 1.49, src/gxtype1.c 1.39, src/iccfont.c 1.10, src/imain.c 1.40, src/imainarg.c 1.33, src/stream.c 1.26]</p> </blockquote> <p><strong><a name="2004-10-06_1412"></a> 2004-10-06 14:12 Ralph Giles</strong></p> <blockquote> <pre> Add a missing dependency on version.mak to the generation of gconfigd.h. Without this the revision number isn't correctly updated in an incremental build. Closes bug 687733.</pre> <p>[src/gs.mak 1.27, src/version.mak 1.74]</p> </blockquote> <p><strong><a name="2004-10-06_1132"></a> 2004-10-06 11:32 Igor Melichev</strong></p> <blockquote> <pre> Fix (TrueType interpreter) : Calls to user defined instructions were not implemented. DETAILS : This implements IDEF and user defined instructions calls according to the TrueType specification by Apple http://developer.apple.com/fonts/TTRefMan/ . EXPECTED DIFFERENCES : None.</pre> <p>[src/ttinterp.c 1.15, src/ttobjs.c 1.8, src/ttobjs.h 1.6]</p> </blockquote> <p><strong><a name="2004-10-05_1245"></a> 2004-10-05 12:45 Igor Melichev</strong></p> <blockquote> <pre> Fix : The 'gslibctx' patch had broken FAPI. DETAILS : A memory context pointer was added with no initialization. EXPECTED DIFFERENCES : None.</pre> <p>[src/zfapi.c 1.53]</p> </blockquote> <p><strong><a name="2004-10-05_1024"></a> 2004-10-05 10:24 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : 'int32' conflicts with AIX compiler standard types. DETAILS : Bug 687723 "type conflicts in gxhintn.h" EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.53, src/gxhintn.h 1.23, src/lib.mak 1.201]</p> </blockquote> <p><strong><a name="2004-10-04_1728"></a> 2004-10-04 17:28 Igor Melichev</strong></p> <blockquote> <pre> Fix : Optimize gs_c_decode with a binary search. DETAILS : Bug 687102 "Optimize gs_c_decode". Patch from John Desrosiers. EXPECTED DIFFERENCES : None.</pre> <p>[src/gscedata.c 1.5, src/gscedata.h 1.4, src/gscencs.c 1.8, toolbin/encs2c.ps 1.5]</p> </blockquote> <p><strong><a name="2004-10-02_0145"></a> 2004-10-02 01:45 Alex Cherepanov</strong></p> <blockquote> <pre> Add TrivialCMYK color space, which simulates standard PostScript CMYK to RGB conversion on device-independent level. Fix bug 687711 [DETAILS] Recent versions of Adobe Acrobat simulate on screen the appearance of printed documents when the color of an object is specified in DeviceCMYK color space. The resulting dark colors can be undesirable for presentation graphics. TrivialCMYK can help when the user had RGB colors in mind, but for some reason used CMYK colors instead in the document.</pre> <p>[Resource/ColorSpace/DefaultCMYK 1.4, Resource/ColorSpace/DefaultRGB 1.4, Resource/ColorSpace/TrivialCMYK 1.1]</p> </blockquote> <p><strong><a name="2004-10-01_2336"></a> 2004-10-01 23:36 Russell Lang</strong></p> <blockquote> <pre> Change OS/2 gx_color_index from 32 to 64 bits to allow better support for DeviceN.</pre> <p>[src/os2.mak 1.41]</p> </blockquote> <p><strong><a name="2004-10-01_2335"></a> 2004-10-01 23:35 Russell Lang</strong></p> <blockquote> <pre> Fix for 687706 Display device 8-bit native incorrectly dithers grays. This is a partial fix and also needs Dan Coby's fixes to the post DeviceN halftoning. The DeviceRGBK color model is added. DETAILS: Prior to GS 8, the display device 8-bit native format would use 32 gray levels to avoid halftoning, and a 4x4x4 color cube which did use halftoning. The halftoning logic was changed with the introduction of DeviceN and in GS 8 both grays and colors were being halftoned. The DeviceRGBK color model is added and used by the display device native 8-bit format. The RGB color space to RGBK color model conversion converts pure RGB grays to the K (black/gray additive) component. This allows the 32 gray levels to be recognised by the halftoning logic as being sufficient to avoid halftoning.</pre> <p>[src/gdevdsp.c 1.30, src/gxcmap.c 1.23, src/gxcmap.h 1.12, src/zcolor.c 1.21]</p> </blockquote> <p><strong><a name="2004-10-01_0340"></a> 2004-10-01 03:40 Dan Coby</strong></p> <blockquote> <pre> Fix for 687718 The tiffsep device fails when the size of gx_color_index is 32 bits DETAILS: The comments on bug 687705 "Compile of 8.31 fails on OS/2" point out that the tiffsep device fails during device initialization if the size of gx_color_index is 32 bits. This is due to a recent change which made the default number of components for this device equal to 8. This works if the size of gx_color_index is 64 bits. But it fails with 32 bits. This fix changes the default number of components for this device to be based upon the size of gx_color_index. It also changes the psdcmyk device to use the same logic for its default number of components. This fix also includes changes to doc/Devices.htm which explains that the number of components will differ based upon the size of gx_color_index (and a link giving more details on gx_color_index). More information about the parameters for the tiffsep device is given including an example command line.</pre> <p>[doc/Drivers.htm 1.49, src/gdevpsd.c 1.18, src/gdevtsep.c 1.5]</p> </blockquote> <p><strong><a name="2004-09-30_1731"></a> 2004-09-30 17:31 Igor Melichev</strong></p> <blockquote> <pre> Fix : Moving type1_cis_get_metrics to the graphics library. DETAILS : Doing so since copied_type1_glyph_outline calls it. This change is algorithmically equivalent. Thanks to Stefan for pointing this out. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxtype1.c 1.38, src/zchar1.c 1.40]</p> </blockquote> <p><strong><a name="2004-09-30_0637"></a> 2004-09-30 06:37 Dan Coby</strong></p> <blockquote> <pre> This is a partial fix for 687706 Display device 8-bit native incorrectly dithers grays. Russell Lang is improving the 8-bit (256 color) display device to allow more shades of gray. This change is required for that effort. DETAILS: The pre 8.00 release had more gray levels for the 8-bit display device but the pre 8.00 release had other related problems in halftoning. The fix for those problems eliminated the extra gray levels. Russell's effort dug up some problems with the handling of halftones for devices in which the max_color and max_gray values are different and gray_index is set to an actual component number. This fix corrects those problems. Russell has a patch for the remainder of the effort. His changes involve changing the 256 color display device to use a DeviceRGBK process color model: red, green, blue and an additive black (gray). New device color mapping procs also have been created for this process color model. (This is the first example of this process color model in Ghostscript.)</pre> <p>[src/gxdevice.h 1.20, src/gxdevndi.c 1.4]</p> </blockquote> <p><strong><a name="2004-09-29_2136"></a> 2004-09-29 21:36 Igor Melichev</strong></p> <blockquote> <pre> Fix (the filling algorithm) : Unite trapezoids if they have a common side. DETAILS : Bug 687716 "Assertion fails in gzspotan.c". The spot analyzer can't reconstruct the topology when there are two trapezoids with a common side. We patched the spot decomposition algorithm with uniting such trapezoids, because (1) it's too hard to unite them in the "spotan" device, and (2) the post-condition of the spot decomposer simplifies. For more details see a new comment in code. This patch causes a rendering difference. We believe that a big part of differences happens due to the bug 687717, which is currently unfixed due to the QA overload. If the bug 687717 is fixed before this patch, a small rendering difference can also appear, because we unite trapezoids by the equality of x_current, x_next, which have an arithmetic error. Therefore ununited trapezoids may have a pixel center between them, which is not painted, but shifting a boundary to x_current, x_next the pixel center may fall into a trapezoid, then it is covered by the union and painted. Besides that, with dropout prevention, a pixel set for the union of two trapezoids may differ from the union of pixel sets for ununited trapezoids when at least one of the trapezoids is narrow. Particularly, two narrow trapezoids may paint 2 pixels, but its (narrow) union does a single pixel. Contacting trapesoids are not regular in characters, which only use a dropout prevention, but the test file of the bug 687698 (same as for 687667) demonstrates some ones in a CJK TT font, which composes hieroglyphs from subglyphs with a deformation and shifting. EXPECTED DIFFERENCES : normal 72dpi : "181-01.ps" "222-05.ps" "222-09.ps" "289-01.ps" "307-07.ps" "86554321.pdf" "bulletin.pdf" "KozukaB-ILEmbed.pdf" "S2_Digitalproof-Forum_x3k.pdf" "waterfal.ps" normal 300dpi : "012-05.ps" "012-09.ps" "013-05.ps" "013-09.ps" "123-05.ps" "123-09.ps" "222-09.ps" "289-01.ps" "307-07.ps" "86554321.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" pdfwrite 72dpi : "181-01.ps" "222-05.ps" "222-09.ps" "307-07.ps" "86554321.pdf" "Bug687603.ps" "bulletin.pdf" "KozukaB-ILEmbed.pdf" "S2_Digitalproof-Forum_x3k.pdf" pdfwrite 300dpi : "012-05.ps" "012-09.ps" "013-05.ps" "013-09.ps" "123-05.ps" "123-09.ps" "222-09.ps" "307-07.ps" "86554321.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf"</pre> <p>[src/gxfilltr.h 1.7]</p> </blockquote> <p><strong><a name="2004-09-29_1910"></a> 2004-09-29 19:10 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Handle more than 32 TrueType subglyphs. DETAILS : Bug 687698 "Cannot extract the embedded font" error message 1. The old code run out an implementation limit MAX_GLYPH_PIECES. 2. Error code was not propagated. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfcopy.c 1.48]</p> </blockquote> <p><strong><a name="2004-09-29_1134"></a> 2004-09-29 11:34 Igor Melichev</strong></p> <blockquote> <pre> Fix : Don't apply fill adjustment when stroking a character. DETAILS : Bug 687667 "Line width in a Type 1 stroked font". EXPECTED DIFFERENCES : -r300 CAT_LOGO.ps</pre> <p>[src/zchar1.c 1.39]</p> </blockquote> <p><strong><a name="2004-09-28_2145"></a> 2004-09-28 21:45 Igor Melichev</strong></p> <blockquote> <pre> Fix : Pattern metrics was imprecize. DETAILS : Bug 687581 "A pattern truncated". This bug is a regression since the December 09 2003 revision. We still think that we insufficiently understand the Adobe's method, but now we've got one closer to CPSI than it was before the December 09 2003 revision. Particularly the pattern step now appears better than on December 09 2003. This patch includes a change, which is well defined by the math : the usage of float2fixed_rounded instead float2fixed. It is a part of the PRECISE_CURRENTPOINT stuff. The rest of the patch is a kind of hewristic. We guessed that a pattern size should always round up to allow a similar logics as for a clipping - "any part of pixel inside". As before December 09 2003, we improved the case with neither skewing nor rotation. A further work on the general case may be useful. At last, some old problems, which existed on December 09 2003, are still unfixed. An example is -r300 298-09.ps : a line appears outside the pattern box. For now living them as they are, because the primary purpose of this patch is to fix regressions. EXPECTED DIFFERENCES : normal 72 dpi : "176-01.ps" "255-01.ps" 257-01.ps" (A dashed line became wider due to a CTM coefficient slightly increased, and therefore it now looks contiguous. It's not a regression.) "269-01.ps" "289-01.ps" "296-01.ps" "303-01.ps" "Bug687396.ps" normal 300 dpi : "012-09.ps" "013-09.ps" "014-09.ps" "015-09.ps" "027-13.ps" "034-10.ps" "035-07.ps" "045-01.ps" "083-09.ps" "103-01.ps" "118-01.ps" "123-09.ps" "169-09.ps" "176-01.ps" "192-01.ps" "205-09.ps" "212-01.ps" "213-01.ps" "214-01.ps" "222-09.ps" "231-01.ps" "250-01.ps" "257-01.ps" "264-01.ps" "269-01.ps" "289-01.ps" "297-01.ps" "298-09.ps" "307-07.ps" "310-04.ps" "311-03.ps" "468-01.ps" "Bug687396.ps" "mspro.pdf" pdfwrite 72 dpi : "176-01.ps" "212-01.ps" "214-01.ps" "257-01.ps" (same as above) "269-01.ps" "303-01.ps" "Bug687396.ps" pdfwrite 300 dpi : "012-09.ps" "013-09.ps" "014-09.ps" "015-09.ps" "017-01.ps" "027-13.ps" "034-10.ps" "035-07.ps" "045-01.ps" "083-09.ps" "103-01.ps" "118-01.ps" "123-09.ps" "169-09.ps" "176-01.ps" "192-01.ps" "205-09.ps" "212-01.ps" "213-01.ps" "214-01.ps" "222-09.ps" "231-01.ps" "244-01.ps" "245-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "250-01.ps" "255-01.ps" "257-01.ps" "258-01.ps" "264-01.ps" "269-01.ps" "270-01.ps" "297-01.ps" "298-09.ps" "307-07.ps" "310-04.ps" "311-03.ps" "321-09.ps" "327-01.ps" "468-01.ps" "Bug687396.ps" "mspro.pdf"</pre> <p>[src/gsptype1.c 1.20]</p> </blockquote> <p><strong><a name="2004-09-28_0534"></a> 2004-09-28 05:34 Ralph Giles</strong></p> <blockquote> <pre> Export the prototype for gcst_get_memory_ptr() which is now used by ilocate.c as well as igc.c to igc.h so it is available in both files. Remove the cast that was papering over the warning this causes. Completes the fix for bug 687617.</pre> <p>[src/igc.c 1.14, src/igc.h 1.9, src/ilocate.c 1.12]</p> </blockquote> <p><strong><a name="2004-09-28_0226"></a> 2004-09-28 02:26 Alex Cherepanov</strong></p> <blockquote> <pre> Remove a comment about LZW-compatible code that is no longer apply. Bug 687554.</pre> <p>[src/Makefile.in 1.39, src/openvms.mmk 1.29]</p> </blockquote> <p><strong><a name="2004-09-28_0045"></a> 2004-09-28 00:45 Ralph Giles</strong></p> <blockquote> <pre> Cast the read standard illuminant to icIlluminant instead of icStandardFlare inside icmMeasurement_read() inside the icc library. Not really our code, but resolves an enum mis-match warning. Bug 687694.</pre> <p>[icclib/icc.c 1.10]</p> </blockquote> <p><strong><a name="2004-09-28_0035"></a> 2004-09-28 00:35 Ralph Giles</strong></p> <blockquote> <pre> Add string_.h to some files missing prototypes. Bug 687694.</pre> <p>[src/devs.mak 1.118, src/gdevps.c 1.39, src/gxpflat.c 1.42, src/lib.mak 1.200]</p> </blockquote> <p><strong><a name="2004-09-28_0025"></a> 2004-09-28 00:25 Ralph Giles</strong></p> <blockquote> <pre> Add stdio_.h to the makefile dependencies for gslibctx.c.</pre> <p>[src/lib.mak 1.199]</p> </blockquote> <p><strong><a name="2004-09-28_0008"></a> 2004-09-28 00:08 Ralph Giles</strong></p> <blockquote> <pre> Properly include the portability version of the stdio error. Corrects type confict problems on HP-UX. Closes bug 687689.</pre> <p>[src/gslibctx.c 1.5]</p> </blockquote> <p><strong><a name="2004-09-27_2114"></a> 2004-09-27 21:14 Russell Lang</strong></p> <blockquote> <pre> Fix bug #687705 Compile of 8.31 fails on OS/2.</pre> <p>[src/gdevos2p.c 1.9, src/gp_os2.c 1.32, src/os2.mak 1.40]</p> </blockquote> <p><strong><a name="2004-09-27_1313"></a> 2004-09-27 13:13 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 3. DETAILS : Don't reset zone alignment. Bug 687578 "T1 hinter disturbs stem width", Comment #8. EXPECTED DIFFERENCES : normal 72 dpi : "045-01.ps" ("s" now aligns with the upper zone). "Bug687603.ps" normal 300 dpi : "CIDembedded.pdf" ("b", "d" now aligns with the bottom zone). pdfwrite 72 dpi : "045-01.ps" pdfwrite 300 dpi : "chess.ps" (a sloped line hints better). "CIDembedded.pdf"</pre> <p>[src/gxhintn.c 1.52]</p> </blockquote> <p><strong><a name="2004-09-27_0455"></a> 2004-09-27 04:55 Ray Johnston</strong></p> <blockquote> <pre> Fix SEGV caused by premature free of the bbox device with high level devices that use the bbox_device of the vector high level device. Bug 687631. DETAILS: The vector device allocated a bbox device, but never incremented the reference count past zero, so any use of the device that added a forwarding device with that bbox_device as the target would free the bbox device when that forwarding device closed. This happens with clipped images or images that use ROP's since a clipping ROP forwarding could be used.</pre> <p>[src/gdevvec.c 1.25]</p> </blockquote> <p><strong><a name="2004-09-26_2117"></a> 2004-09-26 21:17 Ray Johnston</strong></p> <blockquote> <pre> Add missing source file (it hadn't been 'added', so it did not get included on the previous LZWEncode commit.</pre> <p>[src/slzwe.c 1.1]</p> </blockquote> <p><strong><a name="2004-09-26_1619"></a> 2004-09-26 16:19 Ray Johnston</strong></p> <blockquote> <pre> Add the LZWEncode filter that actually compresses using the LZW method, rather than the dummy encoder in slzwce.c that expanded the input, but that avoided the patent issues. Bug 687554. Also fix a long standing issue in filter closing that failed to flush the target stream after the final s_process_write_buf with 'last' == true. Bug 224134. DETAILS: The LZWEncode filter was moved over from an older version of Ghostscript that actually had a working LZWEncode. The s_filter_close logic (discussed at length in bug 224134) was fixed to be consistent with the specification and with Adobe. While the target stream is not closed (per the specification unless CloseTarget is true), the specification *DOES* call for an automatic 'flushfile' which is supposed to be propagated down the filter chain.</pre> <p>[doc/Develop.htm 1.140, doc/Issues.htm 1.42, doc/Projects.htm 1.59, doc/Ps2pdf.htm 1.71, src/bcwin32.mak 1.33, src/dvx-gcc.mak 1.27, src/lib.mak 1.198, src/macos-mcp.mak 1.26, src/macosx.mak 1.23, src/msvc32.mak 1.63, src/msvclib.mak 1.26, src/openvms.mak 1.37, src/os2.mak 1.39, src/slzwce.c 1.5, src/stream.c 1.25, src/unix-gcc.mak 1.46, src/unixansi.mak 1.37, src/watcw32.mak 1.30, src/zfilter2.c 1.6]</p> </blockquote> <p><strong><a name="2004-09-25_2148"></a> 2004-09-25 21:48 Jack Moffitt</strong></p> <blockquote> <pre> Fix error with automatic baseline creation for files which contain spaces in their names.</pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.24, toolbin/tests/gscheck_raster.py 1.14]</p> </blockquote> <p><strong><a name="2004-09-25_2027"></a> 2004-09-25 20:27 Ralph Giles</strong></p> <blockquote> <pre> Remove the 'makegnu' utility. It is out of date, and recent changes to the documentation structure have rendered its automation more-or-less unnecessary. The appropriate steps to convert releases are now documented in doc/Release.htm.</pre> <p>[toolbin/makegnu.tcl 1.6]</p> </blockquote> <p><strong><a name="2004-09-25_2024"></a> 2004-09-25 20:24 Ralph Giles</strong></p> <blockquote> <pre> Toolbin cleanup. Remove the extensionless shell wrappers for convenience utilities, except for gsmake where is aesthetically reasonable. Typing the script extensions for these little-used commands isn't a hardship.</pre> <p>[toolbin/cvs2hist 1.4, toolbin/makefonts 1.4, toolbin/makegnu 1.4, toolbin/makehist 1.4, toolbin/makemaster 1.4, toolbin/makeset 1.4, toolbin/maketars 1.4, toolbin/makewin 1.4, toolbin/tmake 1.4]</p> </blockquote> <p><strong><a name="2004-09-25_2019"></a> 2004-09-25 20:19 Ralph Giles</strong></p> <blockquote> <pre> Update some remaining occurances of 'GNU Ghostscript' to 'GPL Ghostscript'.</pre> <p>[doc/Commprod.htm 1.33, doc/Make.htm 1.80, doc/New-user.htm 1.52, doc/Public.htm 1.7, doc/Readme.htm 1.57]</p> </blockquote> <p><strong><a name="2004-09-22_1535"></a> 2004-09-22 15:35 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/zchar1.c 1.38]</p> </blockquote> <p><strong><a name="2004-09-22_1532"></a> 2004-09-22 15:32 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Alwasys write the file ID in hexadecimal encoding. DETAILS : Bug 687688 "PDF file identifier uses non-alphanumeric characters". The previous patch was committed by error. This one fixes that, unwinding the last patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.100, src/gdevpdfu.c 1.60]</p> </blockquote> <p><strong><a name="2004-09-22_1523"></a> 2004-09-22 15:23 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Alwasys write the file ID in hexadecimal encoding. DETAILS : Bug 687688 "PDF file identifier uses non-alphanumeric characters". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfu.c 1.59]</p> </blockquote> <p><strong><a name="2004-09-22_1415"></a> 2004-09-22 14:15 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/ichar1.h 1.12]</p> </blockquote> <p><strong><a name="2004-09-22_1352"></a> 2004-09-22 13:52 Igor Melichev</strong></p> <blockquote> <pre> CDevProc|Metrics|Metrics2 did not work with CIDFontType 0. DETAILS : Bug 687681 "Character spacing incorrect". The old implementation, which comes from the gs-cjk team, has a bug accessing the replaced metrics of a CIDFontType 0 font, which effectively caused the replaced metric to be ignored with CIDFontType 0 fonts. 1. Bug : With CIDFontType 0, CDevProc|Metrics|Metrics2 was searched in the descendent type 1 or 2 font rather than in the parent type 9 font. 1.1. A Type 9 font needs to be accessed via a descendent Type 1|2 font in pfont->procs.glyph_info. Added a new field gs_type1_data_s::parent, and provided an access through it with a new function gs_font_parent. 1.2. Metrics|Metrics2 is now accessed through gs_font_parent. 1.3. To access CDevProc implemented a new function zchar_get_CDevProc, which also works through gs_font_parent. 1.4. gs_type1_data_s::parent needs to reset while a type 9 font finalization, due to a reason, which we could not understand for sure. Likely descendent fonts appear to have a bigger lifetime than their parent type 9 font. Probably the descendents are pointed from somewhere besides FDArray (maybe the font registry ? or maybe after scaling the type 9 font from a type 9 copy ?), and we think it's not good. We believe that they should be released together with the type 9 font. For now leaving it as it is, working around with a hack notify_remove_font_type9. 1.5. In stable font copies gs_type1_data_s::parent is set to NULL to simplify the finalization. They are not used now. 2. Bug : In some cases the glyph bytecode was used instead the CID as a key for searching a Metrics|Metrics2 element (zchar1.c). 3. Bug : The PDF interpreter wrongly scaled W,W2,DW,DW2 for CIDFontTYpe0 (pdf_font.ps). 4. pdfwrite : Improved the generation of W, W2 for CID fonts, because after implementing (1) re-distilled 401-01.ps rendered incorrectly. 4.1. Prefer a non-zero width when computing DW, DW2 (gdevpdtw.c) (debugged with 401-01.ps). 4.2. Don't skip zero W, W2 elements. The old code recognized zeros as unused glyphs, but must do with the real glyph set in the font copy (debugged with the test file of the bug 687681). 5. zcharstring_outline still ignores CDevProc. We believe that it is correct, because it is used to compute font features with no dependence on the relaced metrics. 6. pdfwrite : Allowed a CDevProc callout for CIDFontType 0, because pdfwrite needs to know replaced widths, as well as it was done a half year ago for CIDFontType2. Actually after implementing (1) pdfwrite stopped to work correctly when re-distilling a PDF file with CIDFontType0, due to now it uses W,W2,DW,DW2. 6.1. A new function z1_set_cache is defined for this purpose similarly to zchar42_set_cache. 6.2. gs_font_procs::glyph_outline now retrieves the side bearing and width. Added a new argument 'sbw' to all implementations. 6.2.1. Currently this function extension is implemented for charstring fonts only, which need to interpret a charstring to retrieve the info : type 1,2,9, because we don't want to run the type 1 interpreter 2 times for getting sbw and bbox. Other font types retrieve zeros, which currently are not used. 6.2.2. type1_cis_get_metrics has been made public. 7. We believe that the implementation of W,W2,DW,DW2 in the PDF interpreter, which was contributed by the gs-cjk team, is unreasonably overcomplicated, because it is based on CDevProc, which needs an interpreter callout, which appears extremily hard from pdfwrite. For now leaving it as it is (except a small improvement in (3)). We would like to generate Metrics, Metrics2 instead that. Note that a small part of this patch (the part (1)) is necessary for generating Metrics, Metrics2 for CIDFontTYpe 0. EXPECTED DIFFERENCES : Almost all differences are a single pixel glyph shift. normal 72dpi : "Altona.Page_3.2002-09-27.pdf" "HeiseiMinStd.pdf" "KozukaB-ILEmbed.pdf" "Openhuis_pdf_zw.pdf" "RodinCIDEmbed.pdf" normal 300dpi : "289-01.ps" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" "CIDembedded.pdf" "HeiseiMinStd.pdf" "KozukaB-ILEmbed.pdf" "Openhuis_pdf_zw.pdf" "RodinCIDEmbed.pdf" pdfwrite 72dpi : "Altona.Page_3.2002-09-27.pdf" "HeiseiMinStd.pdf" "KozukaB-ILEmbed.pdf" "Openhuis_pdf_zw.pdf" "RodinCIDEmbed.pdf" pdfwrite 300dpi : "CIDembedded.pdf" "HeiseiMinStd.pdf" "KozukaB-ILEmbed.pdf" "Openhuis_pdf_zw.pdf" "RodinCIDEmbed.pdf"</pre> <p>[src/gdevpdtt.c 1.88, src/gdevpdtw.c 1.30, src/gsfont.c 1.34, src/gstype42.c 1.45, src/gxfcopy.c 1.47, src/gxfont.h 1.22, src/gxfont1.h 1.13, src/gxtype1.c 1.37, src/gxtype1.h 1.19, src/ichar1.h 1.11, src/icharout.h 1.10, src/zchar.c 1.15, src/zchar1.c 1.37, src/zcharout.c 1.13, src/zfcid0.c 1.23, src/zfcid1.c 1.20, src/zfont1.c 1.13, src/zfont42.c 1.21, lib/pdf_font.ps 1.68]</p> </blockquote> <p><strong><a name="2004-09-22_0037"></a> 2004-09-22 00:37 Dan Coby</strong></p> <blockquote> <pre> Move the definition of gs_overprint_t from gsovrc.c to gsovrc.h. This makes this structure definition available to future devices which may want to define their own overprint compositor.</pre> <p>[src/gsovrc.c 1.8, src/gsovrc.h 1.4, src/lib.mak 1.197]</p> </blockquote> <p><strong><a name="2004-09-21_2230"></a> 2004-09-21 22:30 Dan Coby</strong></p> <blockquote> <pre> Correct some gcc warnings.</pre> <p>[src/gdevdevn.c 1.23, src/zcolor.c 1.20]</p> </blockquote> <p><strong><a name="2004-09-21_1000"></a> 2004-09-21 10:00 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Generate an error message when pdfmark points beyond the last page. DETAILS : Fixes the bug 687693 "A dangling reference from DOCVIEW pdfmark". We want to return error code, but currently we don't due to bug 687686 "Ghostscript creates bad xref from ADOBE1-4.pdf". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.99, src/gdevpdfm.c 1.46, src/gdevpdfx.h 1.101]</p> </blockquote> <p><strong><a name="2004-09-20_2328"></a> 2004-09-20 23:28 Dan Coby</strong></p> <blockquote> <pre> Partial fix for 687657 Text in transparency mask yields rangecheck in discardtransparencymask. DETAILS: Three problems have been found with this file. The rangecheck is actually a secondary effect. The actual problem was a typecheck in setrgbcolor. However that error occurred inside a stopped context. 1) The file has a mask group. This group specifies a color space (CS). The previous code set the current color space to the given value. However the FillColorSpace and StrokeColorSpace were not set. As a result, a DeviceRGB color space was being used instead of the specified DeviceGray color space. This resulted in a mismatch in the number of operands when the color as set (1 versus 3). The fix consists of setting both StrokeColorSpace and FillColorSpace when a mask group contains a CS value. 2) The file uses scn for setting color values for a DeviceGray color space. FillColor and StrokeColor can contain wither a single numeric value (which is common but not required for DeviceGray) or an array of values for all other color spaces. The scn and SCN operators were always assuming that these values always contained arrays. The fix consists of checking for the non array cases in the operators. 3) The appearance produced by Ghostscript with the test file does not match Adobe. A solid magenta rectangle is produced by Ghostscript. Adobe shows magenta text. This problem is NOT fixed by this patch. Note: If the test file is opened with Illustrator CS and then saved, Ghostscript does produced the same appearance as Adobe for the saved file. The reason for the differences are not currently known. However there are some more details in the bug report on this issue.</pre> <p>[lib/pdf_draw.ps 1.86, lib/pdf_ops.ps 1.36]</p> </blockquote> <p><strong><a name="2004-09-20_2214"></a> 2004-09-20 22:14 Dan Coby</strong></p> <blockquote> <pre> Fix for 687403 Poor halftoning for 16 color (4 bit) devices. DETAILS: This bug is a brother to bug 687390. That bug was for 256 color (8 bit) devices. Russell Lang suggested testing the 4 bit devices and they were found to have problems caused by the same logical error. The halftoning logic assumes that all components for a device have the same number of shades. This was not true for the implementations of the 4 and 8 bit color devices. This fix converts the 16 color devices to using a 2x2x2 cube. Note: A possible future enhancement would be to convert these devices to using a 4 level gray for shades of pure gray (R = G = B).</pre> <p>[src/gdevbmp.c 1.10, src/gdevdsp.c 1.29, src/gdevmgr.c 1.7, src/gdevmswn.c 1.12, src/gdevpccm.c 1.7, src/gdevpccm.h 1.8, src/gdevpcfb.c 1.6, src/gdevpcx.c 1.8, src/gdevpm.c 1.10, src/gdevpng.c 1.11]</p> </blockquote> <p><strong><a name="2004-09-20_2142"></a> 2004-09-20 21:42 Dan Coby</strong></p> <blockquote> <pre> Fix for 687664 tiffsep sometimes producing apparently corrupt files sometimes. DETAILS: The tiffsep device did not properly handle multiple page input files. This change adds multiple page handling to the tiffsep device. Most of the various tiff related routines already properly handled multiple pages so changes were only required inside the tiffsep device. The changes consists of: 1. Moving several variables which were local to tiffsep_print_page into the tiffsep device structure and adding initialization. These variables provide state information to the general tiff handling routines and the file pointers for the separation files. 2. Add logic for determining if the output file name includes a numeric format specification. If so then we create individual separation files for each page. If not then we create a single file for each separation. 3. A device close procedure was added to ensure that the separation files were closed.</pre> <p>[src/gdevtsep.c 1.4]</p> </blockquote> <p><strong><a name="2004-09-20_1621"></a> 2004-09-20 16:21 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Could merge fonts with insufficient subrs. DETAILS : Bug 687675 "ps2pdf13 gives ERROR -15 closing the device" happened due to an inaccurate computation of Subrs array inclusion. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfcopy.c 1.46]</p> </blockquote> <p><strong><a name="2004-09-20_1306"></a> 2004-09-20 13:06 Igor Melichev</strong></p> <blockquote> <pre> Fix : Degenerate curves could cause a too big number of flattened curve segnments. DETAILS : Bug 687653 "-dNOTRANSPARENCY still allocates large buffers". Actually the problem happens due to the bbox device sets a high resolution, and degenerate curves with zero X or Y variation use "the conservative method" in gx_curve_log2_samples. With this change degenerate curves will render as line segments. EXPECTED DIFFERENCES : golfer.eps At 72dpi (a 2 pixels difference).</pre> <p>[src/gxpcopy.c 1.23]</p> </blockquote> <p><strong><a name="2004-09-20_1050"></a> 2004-09-20 10:50 Russell Lang</strong></p> <blockquote> <pre> Fixes bug #687690 MSVC6 warning in dwimg.c.</pre> <p>[src/dwimg.c 1.16]</p> </blockquote> <p><strong><a name="2004-09-20_0959"></a> 2004-09-20 09:59 Igor Melichev</strong></p> <blockquote> <pre> Fix : vd_save caused a yntax error in a release build. DETAILS : See the comment added to vdtrace.h : /* NOTE : Use vd_save at end of the definition group of a block, because in release build it compiles to the empty operator. */ EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.83, src/vdtrace.h 1.14]</p> </blockquote> <p><strong><a name="2004-09-20_0648"></a> 2004-09-20 06:48 Raph Levien</strong></p> <blockquote> <pre> Changes bbox device forwarding logic so that get_page_device requests are always forwarded to the target. Fixes bug #687421. Note: this change backs out a change made to gdevnfwd.c between GS 4.70 and 4.80, with a confusing explanation in the change notes. Changes to the page device behavior in forwarding devices would not be surprising. See the code review notes linked from the bug for more details.</pre> <p>[src/gdevbbox.c 1.22, src/gdevnfwd.c 1.26, src/gsovrc.c 1.7]</p> </blockquote> <p><strong><a name="2004-09-20_0613"></a> 2004-09-20 06:13 Ray Johnston</strong></p> <blockquote> <pre> Fix handling of CMaps to be able to handle large number of CMap entries seen with some (Adobe) CMap files. Also fix name of a CMap file and remove garbage at the end of one of our CMap files. Bug 687555. Thanks to Alex Cherepanov for the changes to allow large CMaps.</pre> <p>[Resource/CMap/Adobe-CNS1-ETen-B5 1.2, Resource/CMap/Adobe-CNS1-ETenms-B5 1.1, Resource/CMap/Adobe-Korea1-H-Mac 1.2, lib/gs_cmap.ps 1.18, src/zfcmap.c 1.16]</p> </blockquote> <p><strong><a name="2004-09-20_0019"></a> 2004-09-20 00:19 Jack Moffitt</strong></p> <blockquote> <pre> Sets explicit umask for nightly regression run. Fixes Bug #687648.</pre> <p>[toolbin/tests/run_nightly 1.28]</p> </blockquote> <p><strong><a name="2004-09-19_2356"></a> 2004-09-19 23:56 Jack Moffitt</strong></p> <blockquote> <pre> Fix support for filenames that include spaces. Also add '.ai' as a PDF type extension.</pre> <p>[toolbin/tests/gstestgs.py 1.24]</p> </blockquote> <p><strong><a name="2004-09-19_2355"></a> 2004-09-19 23:55 Jack Moffitt</strong></p> <blockquote> <pre> Fix a typo made by someone's previous commit.</pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.23]</p> </blockquote> <p><strong><a name="2004-09-19_1705"></a> 2004-09-19 17:05 Jack Moffitt</strong></p> <blockquote> <pre> Added new gsutil module for utility functions. Changed all file extension checks to use new gsutil.check_extension(). Added support for '.ai' as a file extension. This should fix the problem of several files in comparefiles not making it into the nightly runs.</pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.22, toolbin/tests/gscheck_raster.py 1.13, toolbin/tests/gsutil.py 1.1, toolbin/tests/make_testdb 1.13, toolbin/tests/revert_baseline 1.13, toolbin/tests/revert_pdfbaseline 1.11, toolbin/tests/update_baseline 1.14, toolbin/tests/update_pdfbaseline 1.10]</p> </blockquote> <p><strong><a name="2004-09-19_1632"></a> 2004-09-19 16:32 Jack Moffitt</strong></p> <blockquote> <pre> Add log rotation for the Ghostscript stdout and stderr logs. Fixes Bug #687574.</pre> <p>[toolbin/tests/run_nightly 1.27, toolbin/tests/testing.cfg.example 1.6]</p> </blockquote> <p><strong><a name="2004-09-18_2200"></a> 2004-09-18 22:00 Russell Lang</strong></p> <blockquote> <pre> Fixes bug #687683 "gswin32c : Ctrl+C doesn't stop the application". Make Ctrl+C in the image window act the same as Ctrl+C in the console window, which generates a signal to exit the process.</pre> <p>[src/dwimg.c 1.15]</p> </blockquote> <p><strong><a name="2004-09-17_0614"></a> 2004-09-17 06:14 Dan Coby</strong></p> <blockquote> <pre> Fix for 687625 Incorrect spot color behavior in tiffsep. Garbage text was being printed for the spot color names. DETAILS: The problem was with the allocation and GC enumeration logic for the storage for the storage for the spot color names. Thus the problem was only apparent after the GC relocation logic had executed. The fix involves adding enumeration logic for the gs_param_string structure and correcting the allocation of storage for the data. Note: The file src/gdevdevn.c was missed in the previous commit on this topic.</pre> <p>[src/gdevdevn.c 1.22]</p> </blockquote> <p><strong><a name="2004-09-17_0555"></a> 2004-09-17 05:55 Dan Coby</strong></p> <blockquote> <pre> Fix for 687625 Incorrect spot color behavior in tiffsep. Garbage text was being printed for the spot color names. DETAILS: The problem was with the allocation and GC enumeration logic for the storage for the storage for the spot color names. Thus the problem was only apparent after the GC relocation logic had executed. The fix involves adding enumeration logic for the gs_param_string structure and correcting the allocation of storage for the data.</pre> <p>[src/gsparam.h 1.12]</p> </blockquote> <p><strong><a name="2004-09-17_0542"></a> 2004-09-17 05:42 Ralph Giles</strong></p> <blockquote> <pre> Use PSOBJDIR as a staging area for the name-rewritten scripts at unix install time. We previously used 'sed -i' to modify the installed file in place, but this option is a recent extension and insufficiently portable. The install script also isn't capable enough to accept files through pipes, so we much have an intermediate staging area. PSOBJDIR should be a safe place to write to for this purpose. Fix for 686863.</pre> <p>[src/unixinst.mak 1.37]</p> </blockquote> <p><strong><a name="2004-09-16_1514"></a> 2004-09-16 15:14 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Correctly handle different widths for same glyph. DETAILS : Bug 687672 "incorrect font rendering". An Encoding may specify various character codes for same glyph, and Widths may specify different widths for those codes. Thus same glyph may be used with different widths. This patch continues a long story about the handling of different widths for same glyph, which includes my old hacks (pdf_font.ps Revision 1.22 and 1.26) and Alex's change pdf_font.ps Revision 1.57 . Alex defines new glyph names for same glyph to resolve the widths conflict. After the Alex's change my old hacks appear low useful, and can be removed. This patch 1. Removes the hacks; 2. Improves the Alex's change with the case when CharStrings has no referred glyph (debugged with 1_2001.pdf) 3. Improves the Alex's change with minimizing a number of newly generated names, because the test file of the bug 687672 maps many charcodes to .notdef with various widths. Here is a list of bugs related to this change : 687672 623292 467492 517474 444366 EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_font.ps 1.67, lib/pdf_ops.ps 1.35]</p> </blockquote> <p><strong><a name="2004-09-16_0803"></a> 2004-09-16 08:03 Igor Melichev</strong></p> <blockquote> <pre> Fix : A library context was not provided for bbox device. DETAILS : BBox device needs a library context for gs_next_id called from gx_image_enum_common_init. It was not provided when the bbox device has no target. We assume that the bbox device behavior doesn't depend on availability of a memory pointer - likely it is so from reading the code. Bug 687671 "epswriter it's not working at all." EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevbbox.c 1.21, src/gdevbbox.h 1.6, src/gdevvec.c 1.24, src/gslib.c 1.15, src/gximag3x.c 1.20]</p> </blockquote> <p><strong><a name="2004-09-16_0746"></a> 2004-09-16 07:46 Ralph Giles</strong></p> <blockquote> <pre> Fix a typo in and earlier commit.</pre> <p>[src/unixinst.mak 1.36]</p> </blockquote> <p><strong><a name="2004-09-16_0657"></a> 2004-09-16 06:57 Igor Melichev</strong></p> <blockquote> <pre> Fix : A syntax error in a recent patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevbbox.c 1.20]</p> </blockquote> <p><strong><a name="2004-09-15_1941"></a> 2004-09-15 19:41 Ray Johnston</strong></p> <blockquote> <pre> Remove trailing ^M on lines in several commits by alexcher.</pre> <p>[src/dwimg.h 1.11, src/dwmain.c 1.21, src/dwmainc.c 1.24, src/dwtrace.h 1.7, src/gdevbbox.c 1.19, src/gdevwdib.c 1.9, src/gs.c 1.14, src/iscannum.c 1.10, src/stream.c 1.24, src/unistd_.h 1.12, src/zdevice.c 1.10]</p> </blockquote> <p><strong><a name="2004-09-15_1146"></a> 2004-09-15 11:46 Alex Cherepanov</strong></p> <blockquote> <pre> Fix the problems reported by HP aC++/C compiler but unrelated to the crash. Partial fix for 687643 [DETAILS] gs.c, int.mak - include the prototype of gs_malloc_init() ttfmain.c - fix partly initialized FixMatrix m; gdevpsd.c - allocate 4 elements for CMYK, not 3</pre> <p>[src/gdevpsd.c 1.17, src/gs.c 1.13, src/int.mak 1.130, src/ttfmain.c 1.28]</p> </blockquote> <p><strong><a name="2004-09-15_0759"></a> 2004-09-15 07:59 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 87. DETAILS : Contrary to PLRM3 page 689, Background was not ignored with shfill. Adding gs_pattern2_instance_s::shfill for that. Bug 687673 "Axial shadings differ from Adobe". EXPECTED DIFFERENCES : Background isn't painted with 'shfill' (a progression) : "464-01.ps" "483-01.ps" "483-05-fixed.ps"</pre> <p>[src/gscolor3.c 1.9, src/gsptype2.c 1.15, src/gsptype2.h 1.10, src/lib.mak 1.196]</p> </blockquote> <p><strong><a name="2004-09-15_0721"></a> 2004-09-15 07:21 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 86. DETAILS : 1. Implemented gx_shade_background with a compatible INTERPATCH_PADDING logic for filling a background. 2. The clipping logic in gdevdsha.c must be "any ppart of pixel inside", as it is in other places. 3. Dont need adjust_swapped_boundary for clipping rectangles (gxshade6.c). 4. INTERPATCH_PADDING is enlarged to half pixel. See comment in code. 5. Optimized with a better clipping in gx_shade_trapezoid. Completes the fix for 687585 "A shading renders narrower than its background". EXPECTED DIFFERENCES : Shadings render slightly different : "442-01.ps" "446-01-fixed.ps" "464-01.ps" "478-01.ps" "483-01.ps" "483-05-fixed.ps" "Altona-Testsuite_p2_S_x3.pdf" "BEST8-99-Path.fh7.pdf" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "S2_Digitalproof-Forum_x3k.pdf" "self-intersect2.ps" "shading_prob_800.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"</pre> <p>[src/gdevdsha.c 1.11, src/gsshade.c 1.12, src/gxshade4.h 1.37, src/gxshade6.c 1.82]</p> </blockquote> <p><strong><a name="2004-09-14_2138"></a> 2004-09-14 21:38 Russell Lang</strong></p> <blockquote> <pre> Add custom page size to PostScript Printer Description file.</pre> <p>[lib/ghostpdf.ppd 1.2]</p> </blockquote> <p><strong><a name="2004-09-14_0645"></a> 2004-09-14 06:45 Russell Lang</strong></p> <blockquote> <pre> Fixes bug 687542 Print with pswrite gives 'Could not open the file \\spool\yourprinter'. Add a %printer% IODevice for OS/2, which opens to a temporary file then later copies it to the print spooler. This will need "%printer%yourprinter", not "\\spool\yourprinter". This is needed to make pswrite write to a printer queue.</pre> <p>[doc/Develop.htm 1.139, src/gp_os2.c 1.31, src/gp_os2.h 1.1, src/gp_os2pr.c 1.1, src/os2.mak 1.38]</p> </blockquote> <p><strong><a name="2004-09-14_0642"></a> 2004-09-14 06:42 Russell Lang</strong></p> <blockquote> <pre> Add support for 4-bit/pixel CMYK to the display device clients for Windows and gtk+.</pre> <p>[src/dwimg.c 1.14, src/dxmain.c 1.15, src/gdevdsp.c 1.28]</p> </blockquote> <p><strong><a name="2004-09-13_2232"></a> 2004-09-13 22:32 Ray Johnston</strong></p> <blockquote> <pre> Ignore MediaPosition when selecting a media type. Adobe CPSI does it this way, and the PLRM suggests that this is advisory only. Bug 687547 for customer 780. DETAILS: Adobe CPSI also ignores this parameter without generating any error or warning. The PLRM says: This parameter does not override the normal media selection process described in the text, but if specified it will be honored--provided it can satisfy the input media request in a manner consistent with normal media selection--even if the media source it specifies is not the best available match for the requested attributes. Since an input PS file is unlikely to have a PPD that accurately reflects the 'slot' numbers of our InputAttributes dictionary, we also ignore this option and instead give the 'best fit' based on size and orientation (and other parameters that may exist).</pre> <p>[lib/gs_setpd.ps 1.25]</p> </blockquote> <p><strong><a name="2004-09-13_2208"></a> 2004-09-13 22:08 Ray Johnston</strong></p> <blockquote> <pre> Handle CS/cs PDF operators that have a colorspace array as an operand instead of a name as the specification requires (yet another broken PDF that Acrobat Reader handles without complaint). Issue pdfformaterror when bad CS operands are seen. Bug 687610 for customer 770.</pre> <p>[lib/pdf_draw.ps 1.85]</p> </blockquote> <p><strong><a name="2004-09-13_1832"></a> 2004-09-13 18:32 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 85. DETAILS : Propagate error codes from shade_bbox_transform2fixed. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade1.c 1.33, src/gxshade4.c 1.27, src/gxshade4.h 1.36, src/gxshade6.c 1.81]</p> </blockquote> <p><strong><a name="2004-09-13_1601"></a> 2004-09-13 16:01 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 84. DETAILS : Fixed a Cygwin/gcc warning. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsshade.c 1.11]</p> </blockquote> <p><strong><a name="2004-09-13_1552"></a> 2004-09-13 15:52 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 83. DETAILS : This is a partial fix for the bug 687585 "A shading renders narrower than its background". It fixes various secondary problems : 1. gx_default_fill_linear_color_scanline could miss pixels at the end of the scanline (bug 687585 "A shading renders narrower than its background", the right boundary). 2. decompose_linear_color could miss pixels when swapping axes of the clip rectangle. (bug 687585 "A shading renders narrower than its background", the top boundary). Defined adjust_swapped_boundary and applied for this purpose. 3. mesh_padding cauld miss pixels when swapping axes of the padding. Defined adjust_swapped_boundary and applied for this purpose. 4. Moved the fill adjustment from gx_dc_pattern2_fill_path to gsshade.c and disabled it in the NEW_SHADINGS build, because NEW_SHADINGS build never needs it. Instead that it applies mesh_padding. The new function gx_dc_pattern2_fill_path_adjusted access the new functionality from outside gsshade6.c . Also renamed gx_dc_pattern2_fill_path_adjusted with gx_dc_pattern2_fill_path for a better reflection of its new purpose. 5. Implemented VD_TRACE_DOWN in try_device_linear_color. The old code did a misleading drawing. 6. Fixed a conflict of the 's' flag in the -T argument. Changed the documentation to reflect that. EXPECTED DIFFERENCES : Shading render slightly different : 72 dpi : "446-01-fixed.ps" "483-01.ps" "483-05-fixed.ps" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" (a strong progression) "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai" 300dpi : "442-01.ps" "446-01-fixed.ps" "464-01.ps" "483-01.ps" "483-05-fixed.ps" "BEST8-99-Path.fh7.pdf" (a strong progression) "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "S2_Digitalproof-Forum_x3k.pdf" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai" (a strong progression)</pre> <p>[src/gdevdsha.c 1.10, doc/Use.htm 1.114, src/gsptype2.c 1.14, src/gsptype2.h 1.9, src/gsshade.c 1.10, src/gsshade.h 1.8, src/gxfill.c 1.119, src/gxshade6.c 1.80, src/gxstroke.c 1.12, src/lib.mak 1.195]</p> </blockquote> <p><strong><a name="2004-09-13_0713"></a> 2004-09-13 07:13 Igor Melichev</strong></p> <blockquote> <pre> Fix : Improve the error reporting about a dangling resource map record. DETAILS : When a resource map record pointed to an undefined resource, it printed "undefinedresource in GetSize". With this inprovement it prints the substituted resource name instead GetSize. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_cidfm.ps 1.6]</p> </blockquote> <p><strong><a name="2004-09-12_1912"></a> 2004-09-12 19:12 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 82. DETAILS : The preceeding patch was incorrect in the point (1) "constant_color_quadrangle painted a triangle when the quadrangle is degenerate.". There exist cases when quadrangle degenerates to a triangle, and the patched code skipped it. This putch fixes that. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.79]</p> </blockquote> <p><strong><a name="2004-09-09_2101"></a> 2004-09-09 21:01 Igor Melichev</strong></p> <blockquote> <pre> Fix : Type 3 charproc must inherit flattnes from the text context. DETAILS : Bug 687582 "Flatness in a Type 3 font". The feature has been tested with Adobe CPSI. EXPECTED DIFFERENCES : "012-09.ps" "013-09.ps" "014-09.ps" "015-09.ps" "020-01.ps" "027-05.ps" "032-07.ps" "045-01.ps" "083-09.ps" "093-01.ps" "103-01.ps" "118-01.ps" "136-01.ps" "165-01.ps" "192-01.ps" "205-09.ps" "231-01.ps" "233-01.ps" "238-01.ps" "251-01.ps" "281-01.ps" "289-01.ps" "298-09.ps" "308-04.ps" "311-03.ps" "321-09.ps" "409-01.ps" "a.pdf" "Altona.Page_3.2002-09-27.pdf" "Altona_Technical_1v1_x3.pdf" "Bug687207.ps" "Type3stringwidth.ps"</pre> <p>[src/gxpaint.c 1.5, src/lib.mak 1.194]</p> </blockquote> <p><strong><a name="2004-09-09_2052"></a> 2004-09-09 20:52 Ray Johnston</strong></p> <blockquote> <pre> Fixes for security problems not fixed in previous commit and fixes for other problems identified by SaGS in bug report -- detecting recursion, allowing r/w strings in procedures (but not in PermitFile arrays). Bug 687559.</pre> <p>[lib/gs_lev2.ps 1.35]</p> </blockquote> <p><strong><a name="2004-09-09_1747"></a> 2004-09-09 17:47 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 81. DETAILS : 1. constant_color_quadrangle painted a triangle when the quadrangle is degenerate. 2. rangecheck happened if the path lies entirely within an Extend area of an axial shading. 3. Due to a poor precision of t0, t1, Extend areas were painted when they have a zero width. Bug 687646 <pdfwrite : A strange shading in "Clarke Tate Manns Chinese.ai" >. EXPECTED DIFFERENCES : "442-01.ps" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai"</pre> <p>[src/gxshade1.c 1.32, src/gxshade6.c 1.78]</p> </blockquote> <p><strong><a name="2004-09-09_1244"></a> 2004-09-09 12:44 Igor Melichev</strong></p> <blockquote> <pre> fuzzy.c : Improving the return codes. DETAILS: Return 2 on "out of window", return 1 with a difference within the window, return 0 otherwize (files equal).</pre> <p>[toolbin/tests/fuzzy.c 1.16]</p> </blockquote> <p><strong><a name="2004-09-09_1133"></a> 2004-09-09 11:33 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 7). DETAILS : A flag to be reset when going to the next character. Bug 687660 "incorrect font rendering/missing glyphs from ps2pdf" EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdte.c 1.61]</p> </blockquote> <p><strong><a name="2004-09-09_1124"></a> 2004-09-09 11:24 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 2. DETAILS : Switch on the new code in gxhintn.h, gxhintn.c . See the preceeding log message about the configuration flags : http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004792.html . Fixes bugs 687578 "T1 hinter disturbs stem width" 687579 "Type 1 hinter disturbs glyph height" 687588 "A CJK TT rendering worse" EXPECTED DIFFERENCES : A massive glyph rendering difference : about 50% of files at 72dpi, and about 95% of files at 300dpi.</pre> <p>[src/gxhintn.h 1.22]</p> </blockquote> <p><strong><a name="2004-09-08_1013"></a> 2004-09-08 10:13 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 1. DETAILS : This change is algorithmically equivalent, because new code is disabled wirth configuration switches listed below. 1. FINE_STEM_COMPLEXES 1.1. Stem complex could miss a common boundary. 1.2. Stem width could be distorsed due to a common boundary missing (Bug 687578 "T1 hinter disturbs stem width".). 1.3. Overall hint (if presents) should have a bigger priority. 2. ALIGN_BY_STEM_MIDDLE 2.1. A stem middle could be shifted too much due to independent grid-fitting of boundaries and the change 1.2 - see 'i' in ccc-.pdf attached to Bug 687578. Fixed with an improved alignment with t1_hinter__align_stem_to_grid. 2.2. This isn't applicable for top|bottom zones from the TT stem recognizer, because we want to force outer boundaries to keep the glyph height. 2.3. 033-52-5873.pdf defines "pseodo-stem" hints, which have only one boundary corresponding to real poles. recognize them with t1_hinter__mark_existing_stems, and don't apply the improved alignment, because those stems designate outer glyph boundaries, which we want to force the uniform glyph height. Apparently fixes Bug 687579 "Type 1 hinter disturbs glyph height". 3. OPPOSITE_STEM_COORD_BUG_FIX Aligning a stem width, the resolutions by X and Y were exchenged. 4. TT_AUTOHINT_TOPZONE_BUG_FIX topzone and botzone were mixed when come from the TT stem recognizer. Also improved general comments in gxhintn.c . EXPECTED DIFFERENCES : None (the new code disabled).</pre> <p>[src/gxhintn.c 1.51, src/gxhintn.h 1.21]</p> </blockquote> <p><strong><a name="2004-09-08_0936"></a> 2004-09-08 09:36 Igor Melichev</strong></p> <blockquote> <pre> fuzzy.c : Improving the report message. DETAILS: Print report message if any difference found. Before now it was printed only if out of window. Return error code only if out of window, as it was before.</pre> <p>[toolbin/tests/fuzzy.c 1.15]</p> </blockquote> <p><strong><a name="2004-09-08_0700"></a> 2004-09-08 07:00 Ralph Giles</strong></p> <blockquote> <pre> Translate the name of the gs executable stored in the utility scripts at install-time on unix. Closes bug 686863. DETAILS: The autoconf build supports a --with-gs=<name> option for setting the name of the Ghostscript executable, which is stored in the makefiles as '$(GS)', but scripts such at ps2pdf that expect to make invoke Ghostscript made no use of this variable, causing version skew at best, complete failure of that popular utility at worst. We therefore now rewrite the hard-coded name each time we install the utility scripts.</pre> <p>[src/unixinst.mak 1.35]</p> </blockquote> <p><strong><a name="2004-09-08_0628"></a> 2004-09-08 06:28 Ralph Giles</strong></p> <blockquote> <pre> Propagate autotools build system changes from the GS_8_1X branch. Use the proper macro for the 'rm' function, and a more specific test for locating the local libpng library source.</pre> <p>[src/Makefile.in 1.38, src/configure.ac 1.48]</p> </blockquote> <p><strong><a name="2004-09-06_2123"></a> 2004-09-06 21:23 Ray Johnston</strong></p> <blockquote> <pre> Change regression test flags to use new JOBSERVER flag. Older flags are retained to allow older regression testing to still use this module.</pre> <p>[toolbin/tests/gstestgs.py 1.23]</p> </blockquote> <p><strong><a name="2004-09-06_0726"></a> 2004-09-06 07:26 Ray Johnston</strong></p> <blockquote> <pre> Add some job server related support. The -dJOBSERVER option defines the ^D to start a new encapsulated job, and the ^D is changed to be a self- delimitting token in the scanner. Fixes 687079. DETAILS: For backward compatibility, -dNOOUTERSAVE is retained, but this does *NOT* define the ^D to start a new encapsulated job. As specified in the updates to doc/Use.htm, in order to avoid an /invalidrestore error, the input should be from stdin otherwise the restore done as part of the new job encapsulation (restore returns to the server state) will encounter a file object that was created after the encapsulation save. This allows 289-01.ps to complete IFF the -dJOBSERVER option is used during regression testing. Thus the only (eventual) regression change will be: 289-01.ps</pre> <p>[doc/Use.htm 1.113, lib/gs_init.ps 1.111, lib/gs_lev2.ps 1.34, src/scantab.c 1.5]</p> </blockquote> <p><strong><a name="2004-09-03_2023"></a> 2004-09-03 20:23 Ray Johnston</strong></p> <blockquote> <pre> Add missing memory argument in 'I' interp debug printing. Also remove local prototype for debug_print_ref in favor of using idebug.h. Fixes SEGV when using -ZI or (I) true .setdebug.</pre> <p>[src/int.mak 1.129, src/interp.c 1.20]</p> </blockquote> <p><strong><a name="2004-09-02_2149"></a> 2004-09-02 21:49 Ralph Giles</strong></p> <blockquote> <pre> Use the MTIME define from the stat module rather than a numerical index to specify the modification time in python. Propagates a similar change from gscheck_raster.py.</pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.21]</p> </blockquote> <p><strong><a name="2004-09-02_2130"></a> 2004-09-02 21:30 Ralph Giles</strong></p> <blockquote> <pre> Propagate memory pointer gs_malloc() changes to the optional lj3100sw device. Patch from Harald Koenig. Closes bug 687636.</pre> <p>[src/gdevl31s.c 1.5]</p> </blockquote> <p><strong><a name="2004-09-02_0826"></a> 2004-09-02 08:26 Igor Melichev</strong></p> <blockquote> <pre> Fix : Unwind an unintentional change to setup_image_compression. DETAILS : I guess that gdevpsdi.c revision 1.30 was unintentionally modified with the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-August/004681.html EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpsdi.c 1.31]</p> </blockquote> <p><strong><a name="2004-08-31_2207"></a> 2004-08-31 22:07 Dan Coby</strong></p> <blockquote> <pre> Fix for 687640 Unable to set default halftones for PDF. DETAILS: To support both PS level 1 and PS level 2 interpreting modes, Ghostscript defines two routines for setting a default halftone. PS level 1 does not support resources. Thus for PS 1 we have .setdefaultscreen which sets a default halftone which is defined inside of gs_init.ps. For PS 2, we have .setdefaulthalftone which is similar to .setdefaultscreen except that it also checks for a default halftone resource. The PDF interpreter's handler for the /HT gstate parameter called .setdefaultscreen if the parameter value was /Default. This fix changes the handler to use .setdefaulthalftone instead. This results in the PDF interpreter using the default halftone resource if it is present.</pre> <p>[lib/pdf_draw.ps 1.84]</p> </blockquote> <p><strong><a name="2004-08-31_2036"></a> 2004-08-31 20:36 Ray Johnston</strong></p> <blockquote> <pre> Fix ResourceForAll Category procedure to make sure that the path given by GenericResourceDir systemparam is included in the enumeration. Bug 687641.</pre> <p>[lib/gs_res.ps 1.37]</p> </blockquote> <p><strong><a name="2004-08-31_2005"></a> 2004-08-31 20:05 Ralph Giles</strong></p> <blockquote> <pre> Bump version after the 8.31 beta release.</pre> <p>[doc/News.htm 1.151, lib/gs_init.ps 1.110, src/gscdef.c 1.46, src/version.mak 1.73]</p> </blockquote> <p><strong><a name="2004-08-31_1923"></a> 2004-08-31 19:23 Alex Cherepanov</strong></p> <blockquote> <pre> Trap C stack overflow exception on Borland C and MSVC. Without the trap the application silently terminates when C stack overflows. Fix bug 687461 [DETAILS] Watcom C 1.2 doesn't need the trap. It is also the only compiler tested that converts trailing recursion to iteration. GCC 3.2 on Windows still generates programs that fail silently but I don't know how to fix this. GCC 2.95 on Linux reports the stack overflow.</pre> <p>[src/dwmain.c 1.20, src/dwmainc.c 1.23, src/windows_.h 1.7, src/winint.mak 1.22]</p> </blockquote> <p><strong><a name="2004-08-31_1349"></a> 2004-08-31 13:49 Igor Melichev</strong></p> <blockquote> <pre> Fix : Arcs were imprecise (continued). DETAILS : A previous patch had a minor portability defect : PRECISE_CURRENTPOINT was used before defined. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxmatrix.h 1.10]</p> </blockquote> <p><strong><a name="2004-08-31_1323"></a> 2004-08-31 13:23 Igor Melichev</strong></p> <blockquote> <pre> Fix : Arcs were imprecise. DETAILS : Bug 687584 "An extra element painting a circle.". The problem happened due to the PRECISE_CURRENTPOINT patch http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004333.html appears incomplete : arcs were not improved. This patch fixes that. 1. Applied gs_point_transform2fixed_rounding in arc_add to be consistent with the precise current point. 2. Renamed float2fixed_rounding with float2fixed_rounded and made it global. 3. Moved the definition of PRECISE_CURRENTPOINT to the appropriate scope. We leave many places in code, in which the unrounded transform is still applied, but those places do not deal with the current point. EXPECTED DIFFERENCES : Massive difference with acrs : normal, 72 dpi : "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "027-05.ps" "031-01.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "035-07.ps" "103-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "148-16.ps" "149-05.ps" "150-01.ps" "154-01.ps" "158-01.ps" "192-01.ps" "237-01.ps" "244-01.ps" "289-01.ps" "298-09.ps" "308-04.ps" "311-03.ps" "321-09.ps" "Bug687207.ps" "vasarely.ps" normal 300 dpi : "213-01.ps" "214-01.ps" "244-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "258-01.ps" "270-01.ps" "289-01.ps" "014-01.ps" "014-01.ps" "014-13.ps" "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "027-05.ps" "031-01.ps" "032-01.ps" "034-01.ps" "034-10.ps" "035-07.ps" "103-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "148-16.ps" "149-05.ps" "150-01.ps" "154-01.ps" "158-01.ps" "192-01.ps" "237-01.ps" "244-01.ps" "298-09.ps" "308-04.ps" "311-03.ps" "321-09.ps" "Bug687207.ps" "vasarely.ps" pdfwrite, 72 dpi : "012-01.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-13.ps" "015-01.ps" "015-05.ps" "032-01.ps" "034-10.ps" "123-01.ps" "123-05.ps" "192-01.ps" "298-09.ps" "321-09.ps" "vasarely.ps" pdfwrite 300 dpi : "012-01.ps" "012-05.ps" "012-09.ps" "012-13.ps" "013-01.ps" "013-05.ps" "013-09.ps" "013-13.ps" "014-01.ps" "014-05.ps" "014-09.ps" "014-13.ps" "015-01.ps" "015-05.ps" "015-09.ps" "027-05.ps" "032-01.ps" "032-07.ps" "034-01.ps" "034-10.ps" "109-01.ps" "123-01.ps" "123-05.ps" "123-09.ps" "192-01.ps" "220-01.ps" "237-01.ps" "245-17.ps" "251-01.ps" "255-01.ps" "258-01.ps" "269-01.ps" "270-01.ps" "298-09.ps" "308-04.ps" "321-09.ps" "442-01.ps" "446-01.ps" "Bug687207.ps" "vasarely.ps"</pre> <p>[src/gsmatrix.c 1.8, src/gspath.c 1.10, src/gspath1.c 1.10, src/gxfixed.h 1.9, src/gxmatrix.h 1.9, src/gxstate.h 1.11]</p> </blockquote> <p><strong><a name="2004-08-31_0907"></a> 2004-08-31 09:07 Igor Melichev</strong></p> <blockquote> <pre> Implementing Visual Trace for 'stroke'. DETAILS : It is necessary for analyzing the Bug 687584, and it is useful in general. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Use.htm 1.112, src/gxfill.c 1.118, src/gxstroke.c 1.11, src/lib.mak 1.193, src/vdtrace.h 1.13]</p> </blockquote> <p><strong><a name="2004-08-30_2145"></a> 2004-08-30 21:45 Dan Coby</strong></p> <blockquote> <pre> Fix for 687607 Text missing with TextALphaBits=2 and tiffsep device. DETAILS: The TextAlphaBits and GraphicsAlphaBits device parameters were not working for devices with a depth of more than 32 bits. The fix involves replacing the copy_alpha device procs in the 40, 48, 56, and 64 bit memory devices with the gx_default_copy_alpha routine. These devices previously had a copy_alpha routine which did nothing. This was a mistake from when these devices were created as part of the DeviceN work.</pre> <p>[src/gdevm40.c 1.2, src/gdevm48.c 1.2, src/gdevm56.c 1.3, src/gdevm64.c 1.3]</p> </blockquote> <p><strong><a name="2004-08-30_1645"></a> 2004-08-30 16:45 Ray Johnston</strong></p> <blockquote> <pre> Fix for security problems with user parameters, in particular the /PermitFileReading array. Also corrects handling of parameter arrays that contain a 'mark'. Fixes bug 687559. Thanks to mat. Gh. Savulescu (SaGS) for the bug report and for a suggested patch.</pre> <p>[lib/gs_lev2.ps 1.33]</p> </blockquote> <hr> <h3><a name="Version8.31"></a>Version 8.31 (2004-08-28)</h3> <p> This is a beta release of the development tree. It contains a number of new features and is made available for those interested in testing the new version before it becomes the next stable release. <p> This second beta contains a large number of bug fixes over the earlier 8.30 version. <p> New features since the last stable release: <ul> <li><p> Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for <a href="Language.htm#GridFitTT">GridFitTT</a> for information on this feature. <li><p> The PDF writer now implements PDF 1.4 encryption. See the <a href="Ps2pdf.htm#Encryption">encryption parameter</a> documentation for more information. <li><p> A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions. <li><p> This version contains the first release of Rinkj, an experimental new driver for some inkjet printers using ETS screening. See the <a href="Devices.htm#Rinkj">Rinkj</a> section for more information. <li><p> We now support PDF 1.5 files, including the new compression and encryption modes. <li><p> We have beta support for JPEG 2000 compressed images, using the JasPer compression library. This is only enabled as part of the default build in the autoconf (POSIX) build system in this release. </ul> <p> The following <a href="http://bugs.ghostscript.com/">bug</a> numbers were open at the time of release: <blockquote> 405501, 430175, 446344, 456692, 458780, 463688, 465936, 487953, 493348, 526099, 526491, 530011, 535366, 535932, 578865, 592160, 603934, 610478, 614298, 626295, 634036, 645316, 674418, 677324, 685335, 686747, 686750, 686816, 686819, 686824, 686841, 686842, 686843, 686853, 686863, 686865, 686867, 686902, 686919, 686980, 686996, 687011, 687012, 687013, 687039, 687063, 687079, 687084, 687086, 687095, 687102, 687105, 687108, 687110, 687122, 687125, 687146, 687157, 687168, 687174, 687179, 687193, 687196, 687203, 687219, 687221, 687229, 687231, 687243, 687251, 687257, 687259, 687271, 687275, 687280, 687295, 687297, 687298, 687303, 687314, 687316, 687324, 687327, 687341, 687342, 687345, 687346, 687360, 687373, 687375, 687394, 687397, 687399, 687401, 687403, 687410, 687414, 687421, 687434, 687435, 687445, 687459, 687460, 687461, 687467, 687468, 687473, 687474, 687475, 687479, 687480, 687484, 687485, 687490, 687492, 687497, 687498, 687501, 687512, 687514, 687516, 687518, 687520, 687523, 687524, 687525, 687528, 687529, 687531, 687535, 687536, 687537, 687539, 687541, 687542, 687545, 687547, 687551, 687552, 687554, 687555, 687558, 687559, 687560, 687561, 687571, 687574, 687575, 687577, 687578, 687579, 687581, 687582, 687583, 687584, 687585, 687586, 687588, 687589, 687590, 687592, 687593, 687595, 687600, 687601, 687607, 687608, 687610, 687611, 687612, 687614, 687615, 687616, 687617, 687621, 687622, 687625, 687627, 687628, 687630, 687631, 687632, 687633, 687634. </blockquote> <h3><a name="8.31_Incompatible_changes"></a>Incompatible changes</h3> <p> No known incompatible changes at the time of release. <h3><a name="8.31_changelog"></a>Changelog</h3> <!-- generated from: cvs2cl --utc -T --follow trunk --delta gs8_30:HEAD -U AUTHORS --xml -f doc/changelog.xml --> <p><strong><a name="2004-08-28_2210"></a> 2004-08-28 22:10 Ralph Giles</strong></p> <blockquote> <pre> Update the version and date on the VMS help file.</pre> <p>[doc/gs-vms.hlp 1.29]</p> </blockquote> <p><strong><a name="2004-08-28_2152"></a> 2004-08-28 21:52 Ralph Giles</strong></p> <blockquote> <pre> Update release date on documentation.</pre> <p>[doc/API.htm 1.44, doc/Bug-form.htm 1.41, doc/Bug-info.htm 1.40, doc/C-style.htm 1.47, doc/Commprod.htm 1.32, doc/Copying.htm 1.31, doc/DLL.htm 1.35, doc/Deprecated.htm 1.12, doc/Details8.htm 1.9, doc/Develop.htm 1.138, doc/Devices.htm 1.81, doc/Drivers.htm 1.48, doc/Fonts.htm 1.42, doc/Helpers.htm 1.35, doc/History1.htm 1.31, doc/History2.htm 1.31, doc/History3.htm 1.31, doc/History4.htm 1.31, doc/History5.htm 1.33, doc/History6.htm 1.48, doc/History7.htm 1.36, doc/History8.htm 1.13, doc/Htmstyle.htm 1.36, doc/Install.htm 1.46, doc/Issues.htm 1.41, doc/Language.htm 1.87, doc/Lib.htm 1.34, doc/Maintain.htm 1.42, doc/Make.htm 1.79, doc/New-user.htm 1.51, doc/Projects.htm 1.58, doc/Ps-style.htm 1.29, doc/Ps2epsi.htm 1.33, doc/Ps2pdf.htm 1.70, doc/Psfiles.htm 1.53, doc/Readme.htm 1.56, doc/Release.htm 1.86, doc/Source.htm 1.31, doc/Tester.htm 1.31, doc/Testing.htm 1.26, doc/Unix-lpr.htm 1.31, doc/Use.htm 1.111, doc/Xfonts.htm 1.31, man/dvipdf.1 1.29, man/font2c.1 1.29, man/gs.1 1.30, man/gslp.1 1.29, man/gsnd.1 1.29, man/pdf2dsc.1 1.28, man/pdf2ps.1 1.30, man/pdfopt.1 1.28, man/pf2afm.1 1.29, man/pfbtopfa.1 1.30, man/printafm.1 1.29, man/ps2ascii.1 1.28, man/ps2epsi.1 1.27, man/ps2pdf.1 1.34, man/ps2pdfwr.1 1.33, man/ps2ps.1 1.36, man/wftopfa.1 1.29]</p> </blockquote> <p><strong><a name="2004-08-28_2147"></a> 2004-08-28 21:47 Ralph Giles</strong></p> <blockquote> <pre> Change the product name to BETA RELEASE</pre> <p>[src/gscdef.c 1.45]</p> </blockquote> <p><strong><a name="2004-08-28_2147"></a> 2004-08-28 21:47 Ralph Giles</strong></p> <blockquote> <pre> Add recent new files to the listings in the documentation.</pre> <p>[doc/Develop.htm 1.137, doc/Psfiles.htm 1.52]</p> </blockquote> <p><strong><a name="2004-08-28_2128"></a> 2004-08-28 21:28 Ralph Giles</strong></p> <blockquote> <pre> Update release notes and open bug list for the 8.31 beta release. Bump the release date as well.</pre> <p>[doc/News.htm 1.150, src/version.mak 1.72]</p> </blockquote> <p><strong><a name="2004-08-26_0913"></a> 2004-08-26 09:13 Russell Lang</strong></p> <blockquote> <pre> Fix half-toning for display device, bug 687629. DETAILS: Prior to DeviceN, dither_gray/max_gray were used if ncomp==1. With DeviceN, dither_gray/max_gray are used if gray_index >= 0. The display device was not correctly setting gray_index for native 1-bit/pixel format.</pre> <p>[src/gdevdsp.c 1.27]</p> </blockquote> <p><strong><a name="2004-08-26_0015"></a> 2004-08-26 00:15 Ray Johnston</strong></p> <blockquote> <pre> Fix for image matrix having negative values. Thanks to Len Sorenson for submitting this patch (author unknown). Bug #687411. DETAILS: The error is using floor to round a value without checking if it might be negative first. There were actually two places that did this even though the patch that was originally submitted only was for one of them.</pre> <p>[src/gximag3x.c 1.19]</p> </blockquote> <p><strong><a name="2004-08-26_0004"></a> 2004-08-26 00:04 Ray Johnston</strong></p> <blockquote> <pre> Close the font file after the font has been processed (loaded into VM). This prevents a problem with using up too many file handles detected on Solaris. Thanks to Alex Cherepanov for the patch. Bug #687066. DETAILS: The patch has no effect on the cache. There is no point of not closing the file after the content has been copied to memory. On GNU/Linux GS has 250K VMThreshold and 1024 handles. That's enough. On Windows GS has 1M VNThreshold and 512 handles. This is still OK. On Solaris GS has 1M VMThreshold and 256 handles. Handles can be used up before garbage collection starts. The following program fails on Solaris. (a)(w) file closefile 1000 { (a)(r) file pop } repeat Dependence on VMThreshold indicates that GC is not activated by open(2) failing with EMFILE . This is a real bug, the patch is just a work around that we may need to fix later, but not likely to be a problem.</pre> <p>[lib/gs_type1.ps 1.15]</p> </blockquote> <p><strong><a name="2004-08-25_2352"></a> 2004-08-25 23:52 Ray Johnston</strong></p> <blockquote> <pre> Fix to close streams at EOF (not only filter streams), as required by the PLRM. Thanks to Alex Cherepanov for this patch. Bug #687505. DETAILS: This is similar to a patch that I had developed and tested prior to Alex's patch. I had tested my patch, then Alex's against the regression suite and determined that it does not cause any differences. Alex's patch conforms to my analysis of the problem and the fix.</pre> <p>[src/stream.c 1.23]</p> </blockquote> <p><strong><a name="2004-08-25_1556"></a> 2004-08-25 15:56 Alex Cherepanov</strong></p> <blockquote> <pre> Bind all operators in DefaultGray, DefaultRGB, DefaultCMYK color spaces. Partial fix for the bug 687608</pre> <p>[Resource/ColorSpace/DefaultCMYK 1.3, Resource/ColorSpace/DefaultGray 1.3, Resource/ColorSpace/DefaultRGB 1.3]</p> </blockquote> <p><strong><a name="2004-08-24_1751"></a> 2004-08-24 17:51 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A page compression type change could cause a crash. DETAILS : Bug 687626 "A crash in pdfwrite". It crashed after the compression is changed from none to Flate with setdevparams inside a page. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.98, src/gdevpdfu.c 1.58, src/gdevpdfx.h 1.100]</p> </blockquote> <p><strong><a name="2004-08-24_1536"></a> 2004-08-24 15:36 Igor Melichev</strong></p> <blockquote> <pre> Fix : gs_lib_ctx was wrongly accessed while looking up a dictionary stack extension. DETAILS : Bug 687623 A crash in the interp.c EXPECTED DIFFERENCES : Fixes crash with re-distilled files : 251-01.ps Bug687044.ps Bug687489.ps test-setweightvector.ps, tpc2.ps</pre> <p>[src/idstack.c 1.7]</p> </blockquote> <p><strong><a name="2004-08-24_1536"></a> 2004-08-24 15:36 Igor Melichev</strong></p> <blockquote> <pre> Fix : gs_lib_ctx was not accessible while clist_playback_band. DETAILS : Bug 687624 "A crash in gp_check_interrupts". EXPECTED DIFFERENCES : Fixes crash with re-distilled files : Svd.pdf test.pdf</pre> <p>[src/gxclread.c 1.12]</p> </blockquote> <p><strong><a name="2004-08-24_1252"></a> 2004-08-24 12:52 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : Provide a tolerance to an inconsistent cvt length. DETAILS : Bug 687604 "/invalidfont in --show-- error". We analyzed UFST and Free Type 2. UFST has same problem. FreeType 2 provides a tolerance, which we port now. Note that now we don't port a tolerance for other CVT commands. EXPECTED DIFFERENCES : None.</pre> <p>[src/ttinterp.c 1.14]</p> </blockquote> <p><strong><a name="2004-08-24_1058"></a> 2004-08-24 10:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : A minor portability problem. DETAILS : A preprocessor statement didn't start in the first column. Occasionally discovered readin the code. Some time ago it was claimed as non-portable. EXPECTED DIFFERENCES : None.</pre> <p>[src/ttload.c 1.6]</p> </blockquote> <p><strong><a name="2004-08-24_0910"></a> 2004-08-24 09:10 Igor Melichev</strong></p> <blockquote> <pre> Fix : Makefiles missed a dependency. DETAILS : After rebuilding the last revision got a crash due to gp_mspol.c was not recompiled. Found out that gslibctx_h was wrongly defined in lib.mak . Also changed the including of stdio.h in gslibctx.h to a C library file (IMO it should be so). EXPECTED DIFFERENCES : None.</pre> <p>[src/gslibctx.h 1.4, src/lib.mak 1.192]</p> </blockquote> <p><strong><a name="2004-08-23_0957"></a> 2004-08-23 09:57 Russell Lang</strong></p> <blockquote> <pre> Allow the display device row alignment to be changed from the default 4 bytes to 8, 16, 32 or 64 bytes. DETAILS: If the image is allocated in video display memory, an alignment such as 16 bytes (128-bit memory) may be required. This is implemented by making the underlying memory device use a larger width than the display device.</pre> <p>[src/gdevdsp.c 1.26, src/gdevdsp.h 1.10]</p> </blockquote> <p><strong><a name="2004-08-19_2152"></a> 2004-08-19 21:52 Russell Lang</strong></p> <blockquote> <pre> Changed iapi to use a void* instead of a gs_main_instance pointer.</pre> <p>[src/dmmain.c 1.4, src/dpmain.c 1.12, src/dwmainc.c 1.22, src/dxmain.c 1.14, src/dxmainc.c 1.10]</p> </blockquote> <p><strong><a name="2004-08-19_1933"></a> 2004-08-19 19:33 stefan</strong></p> <blockquote> <pre> Changed iapi to use a void* instead of a gs_main_instance pointer. Cleaned up warning related to function pointer signature miss-matches. DETAILS: iapi.h no longer defines a type for gs_main_instance * This will likely need to be put back in for backward compatibility. The iapi interface now uses a void * instance handle reflecting that it is an opaque type to the outside world. Note that function pointer argument miss-matches generate warnings in msvc but not in gcc. These have been fixed.</pre> <p>[src/dwmain.c 1.19, src/gdevpdtw.c 1.29, src/gdevpsf.h 1.27, src/gdevpsfm.c 1.15, src/gsalloc.c 1.22, src/gsccode.h 1.14, src/gscpixel.c 1.13, src/gscpixel.h 1.7, src/gscspace.c 1.18, src/gsdevice.c 1.23, src/gslibctx.c 1.4, src/gslibctx.h 1.3, src/gxccman.c 1.28, src/gxfcache.h 1.27, src/iapi.c 1.12, src/iapi.h 1.13, src/idict.c 1.12, src/ilocate.c 1.11, src/iutil.c 1.11, src/iutil.h 1.8, src/sdctc.c 1.6, src/zchar32.c 1.5, src/zcssepr.c 1.16, src/zfont.c 1.12, src/zpacked.c 1.7]</p> </blockquote> <p><strong><a name="2004-08-19_1050"></a> 2004-08-19 10:50 Russell Lang</strong></p> <blockquote> <pre> Add a PPD for PostScript to be used by ghostscript ps2pdf.</pre> <p>[doc/Develop.htm 1.136, doc/Ps2pdf.htm 1.69, lib/ghostpdf.inf 1.1, lib/ghostpdf.ppd 1.1]</p> </blockquote> <p><strong><a name="2004-08-19_0738"></a> 2004-08-19 07:38 Russell Lang</strong></p> <blockquote> <pre> Enable progressive updates for the image window of the MS-Windows ghostscript command line program. Change update method to use a Windows timer. DETAILS: In the MS-Windows GUI executable (i.e. text window managed by ghostscript rather than using a system console window), the image window is progressively updated every second or so as each page is drawn. The console executable did not do this. The update code for both GUI and console executables is changed to use a timer. The display update code is called whenever particular device drawing operations happen, and if a timer is not already running, it starts an update timer. The minimum update interval is shortened from 1s to 100ms. The time to refresh the window is measured, and the update interval may be increased to make sure that updates account for no more than 10% of processing. The update interval is decreased if subsequent updates are much quicker. The timer is stopped by any sync.</pre> <p>[src/dwimg.c 1.13, src/dwimg.h 1.10, src/dwmainc.c 1.21]</p> </blockquote> <p><strong><a name="2004-08-18_2225"></a> 2004-08-18 22:25 stefan</strong></p> <blockquote> <pre> Fixed dependancies for gslibctx.h</pre> <p>[src/int.mak 1.128, src/lib.mak 1.191]</p> </blockquote> <p><strong><a name="2004-08-18_2224"></a> 2004-08-18 22:24 stefan</strong></p> <blockquote> <pre> Removed redundant include.</pre> <p>[src/gsmalloc.c 1.13]</p> </blockquote> <p><strong><a name="2004-08-18_2044"></a> 2004-08-18 20:44 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Check for glyph name conflicts while font merging. DETAILS : Bug 687597 pdf created by pdfwrite has garbled text (spr 3994) 1. When a document embeds 2 fonts with same name, same hinting and same glyph names but different charstrings, the old code didn't compare charstrings and erroneusely merged fonts. 2. pdf_obtain_font_resource_encoded didn't compare the hinting because same_type1_hinting computed a too strong condition (this change is not strongly neccessary for the bug). EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtt.c 1.87, src/gxfcopy.c 1.45]</p> </blockquote> <p><strong><a name="2004-08-18_1440"></a> 2004-08-18 14:40 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Wrong glyph positions with CIDFontType2 with no vmtx. DETAILS : Bug 687603 vertical text misplaced after distilling . 1. When computing the glyph position, must account that we write DW2[0 0] when there is no vmtx. 2. Computing a DW2, the advance got a wrong sign. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtt.c 1.86]</p> </blockquote> <p><strong><a name="2004-08-18_0448"></a> 2004-08-18 04:48 Dan Coby</strong></p> <blockquote> <pre> Implementation of 687496 transparency and CMYK support. DETAILS: This change extends our current implementation of the PDF 1.4 transparency to include blending in a DeviceCMYK color space. There is also a partial implementation of a DeviceGray blending space. However I do not have a method of generating test data for a DeviceGray blending space. Currently the choice of a blending color space is based upon the process color model of the output device. Note: There two differences expected in the regression testing. These are with ai2.pdf and dina3_watermark.pdf.</pre> <p>[src/gdevp14.c 1.26, src/gxblend.c 1.6, src/lib.mak 1.190]</p> </blockquote> <p><strong><a name="2004-08-17_2021"></a> 2004-08-17 20:21 Ray Johnston</strong></p> <blockquote> <pre> Add PDFSTEP debug aid. Prints a step number at end of PDFDEBUG line, and sync's the display, then reads a number of steps to skip (<cr> == single step). This is rudimentary but somewhat useful. Invoked with -dPDFSTEP.</pre> <p>[lib/pdf_base.ps 1.44]</p> </blockquote> <p><strong><a name="2004-08-17_1956"></a> 2004-08-17 19:56 Ralph Giles</strong></p> <blockquote> <pre> Bump the version number after the last beta release.</pre> <p>[lib/gs_init.ps 1.109, src/gscdef.c 1.44, src/version.mak 1.71]</p> </blockquote> <p><strong><a name="2004-08-17_1939"></a> 2004-08-17 19:39 Ralph Giles</strong></p> <blockquote> <pre> Remove references to the FreeType license. Artifex Software, Inc. has purchased rights to the FreeType 1 code and the work included here is relicensed under the same terms as with the rest of the Ghostscript code.</pre> <p>[LICENSE 1.4, doc/FTL.txt 1.3]</p> </blockquote> <p><strong><a name="2004-08-17_1859"></a> 2004-08-17 18:59 Ray Johnston</strong></p> <blockquote> <pre> Add support for PDF single stepping debug aid (PDFSTEP). Actual interpreter changes made separately.</pre> <p>[lib/gs_init.ps 1.108]</p> </blockquote> <p><strong><a name="2004-08-17_1753"></a> 2004-08-17 17:53 Ray Johnston</strong></p> <blockquote> <pre> Handle invalid PDF's that use 0.0 font scaling (Tf operator). Fixes bug 687606 for customer number 780. DETAILS: If the font scale is 0.0, then just use a very small value. This may result in a small unwanted dot, but that is probably not an issue since it is an invalid value. The better approach for 'invisible' text is to use TextRenderingMode 3. The 'pdfformaterror' function is used to complain about this so the problem might get fixed by the PDF Creator.</pre> <p>[lib/pdf_ops.ps 1.34]</p> </blockquote> <p><strong><a name="2004-08-14_0206"></a> 2004-08-14 02:06 Russell Lang</strong></p> <blockquote> <pre> Correct the previous MSVC 8 updates to allow compilation with debugging.</pre> <p>[src/msvc32.mak 1.62, src/msvccmd.mak 1.21]</p> </blockquote> <p><strong><a name="2004-08-13_1259"></a> 2004-08-13 12:59 stefan</strong></p> <blockquote> <pre> Added missing parameter types to prototype.</pre> <p>[src/gpcheck.h 1.9]</p> </blockquote> <p><strong><a name="2004-08-13_0457"></a> 2004-08-13 04:57 Russell Lang</strong></p> <blockquote> <pre> Detect the version of Microsoft Visual C++ from the version of nmake.</pre> <p>[doc/Make.htm 1.78, src/msvc32.mak 1.61]</p> </blockquote> <p><strong><a name="2004-08-13_0016"></a> 2004-08-13 00:16 Russell Lang</strong></p> <blockquote> <pre> Add support for compiling with the beta of Microsoft Visual Studio 2005, also known as MSVC 8. DETAILS: Add new MSVC_MINOR_VERSION=1 to distinguish Microsoft Visual Studio .NET 2003 (MSVC 7.1) from Microsoft Visual Studio .NET (MSVC 7.0) Add new MSVC_VERSION=8 for Microsoft Visual Studio 2005 Ignore deprecated warnings from MSVC 8 with /wd4996, because insecure CRTL functions like strcpy and sprintf are now marked as deprecated. Remove /Ze which is always the default and is unknown to MSVC 8. Replace /O with /O2. The former is not documented for MSVC 5 - 8 and is unknown to MSVC 8. Remove /Gs and /Ge for MSVC 8. Stack checking is now always done.</pre> <p>[doc/Make.htm 1.77, src/msvc32.mak 1.60, src/msvccmd.mak 1.20]</p> </blockquote> <p><strong><a name="2004-08-11_1433"></a> 2004-08-11 14:33 stefan</strong></p> <blockquote> <pre> Added memory pointers to gsmalloc use by jpg2000 interface. DETAILS: Added jpx_memory to the stream state since the memory pointer in a normal stream object in often NULL indicating a stack object.</pre> <p>[src/sjpx.c 1.10, src/sjpx.h 1.3, src/zfjpx.c 1.2]</p> </blockquote> <p><strong><a name="2004-08-11_1336"></a> 2004-08-11 13:36 Ray Johnston</strong></p> <blockquote> <pre> When scaling factors of /ImageMatrix in a image mask for ImageType3 are negative, translation offset values for image mask rendering are incorrect and it makes abnormal output (eg. white lines). This patch fixes this bug #686843. Thanks to Len Sorensen for the analysis.</pre> <p>[src/gximag3x.c 1.18]</p> </blockquote> <p><strong><a name="2004-08-11_1333"></a> 2004-08-11 13:33 Ray Johnston</strong></p> <blockquote> <pre> When scaling factors of /ImageMatrix in a image mask for ImageType3 are negative, translation offset values for image mask rendering are incorrect and it makes abnormal output (eg. white lines). This patch fixes this bug #686843. Thanks to Len Sorensen for the analysis.</pre> <p>[src/gximage3.c 1.14]</p> </blockquote> <p><strong><a name="2004-08-11_1258"></a> 2004-08-11 12:58 Ray Johnston</strong></p> <blockquote> <pre> Fix bug 687038 that resulted in a crash if the initial device was not pdfwrite. DETAILS: This was almost fixed by recent changes to gs_pdfwr.ps and gs_setpd.ps for bugs 687325, 687436 and 687458. Unfourtunately, the initialization of parameters only occurred if the initial device was pdfwrite. A second patch removing the initial device constraint on the '1010' .schedule_init process was committed and fixes the problem. Note that there was a work-around that if -dPDFSETTINGS=... was given on the command line, it also worked. EXPECTED DIFFERENCES: none, since we don't test for this usage.</pre> <p>[lib/gs_pdfwr.ps 1.39]</p> </blockquote> <p><strong><a name="2004-08-10_1302"></a> 2004-08-10 13:02 stefan</strong></p> <blockquote> <pre> Added memory_t pointers to gs_malloc() gs_free() calls in devices that aren't normally built.</pre> <p>[src/gdev3b1.c 1.5, src/gdevadmp.c 1.6, src/gdevccr.c 1.5, src/gdevcif.c 1.6, src/gdevcp50.c 1.6, src/gdevcslw.c 1.5, src/gdevhl7x.c 1.10, src/gdevimgn.c 1.7, src/gdevlp8k.c 1.5, src/gdevlxm.c 1.5, src/gdevmgr.c 1.6, src/gdevn533.c 1.6, src/gdevo182.c 1.6, src/gdevokii.c 1.7, src/gdevos2p.c 1.8, src/gdevp14.c 1.25, src/gdevphex.c 1.7, src/gdevpsdi.c 1.30, src/gdevsgi.c 1.6, src/gdevsj48.c 1.5, src/gdevsppr.c 1.8, src/gdevsunr.c 1.7, src/gdevwddb.c 1.7, src/gdevwprn.c 1.10, src/gp_macio.c 1.34]</p> </blockquote> <p><strong><a name="2004-08-10_1259"></a> 2004-08-10 12:59 stefan</strong></p> <blockquote> <pre> fixed bug with iapi, removed gs_lib_finit()'s call of gs_malloc_release. DETAILS: The problem is that single instance and multi instance interfaces both call gs_to_exit() with different meanings. If gs_lib_init0 was called then it should malloc_release single instance exit library means free all. If the iapi interface was used then the memory should not be freed since gs_lib_finit() and gs_to_exit() are called when the interpreter is exited but there is a seperate delete_instance call that should free the memory</pre> <p>[src/gsinit.c 1.7]</p> </blockquote> <p><strong><a name="2004-08-09_1702"></a> 2004-08-09 17:02 stefan</strong></p> <blockquote> <pre> Fixed uninitialized fstdio2 pointer.</pre> <p>[src/gslibctx.c 1.3]</p> </blockquote> <p><strong><a name="2004-08-05_2017"></a> 2004-08-05 20:17 stefan</strong></p> <blockquote> <pre> Fixed incorrect function pointer prototype, const gs_memory_t * argument was missing.</pre> <p>[src/gxfcache.h 1.26, src/gxfcopy.c 1.44]</p> </blockquote> <p><strong><a name="2004-08-05_2015"></a> 2004-08-05 20:15 stefan</strong></p> <blockquote> <pre> Valid memory pointer used create a tile_clip device instead of NULL. Details : This needs to be leak checked.</pre> <p>[src/gxp1fill.c 1.6]</p> </blockquote> <p><strong><a name="2004-08-05_1702"></a> 2004-08-05 17:02 stefan</strong></p> <blockquote> <pre> Windows only: check_interrupts() with a mem pointer to access the poll function. DETAILS : This is windows specific since only windows uses the polling function in check_interrupts() macros. If the gs_dll interface is used then a single instance is forced since the design of that interface forces one thread per process. The iapi interface can not but enabled for more than one thread until the stream calling check_interrupts() calls are fixed. process_interrupts(NULL) calls are currently hacked to access a global memory pointer intended for access to stderr. This is a place holder until the stream object changed that guarantee a valid memory pointer in process_stream calls are committed. Basically it is common to allocate a stream object on the stack and use it in a functional manor with an uninitialized memory pointer in the object.</pre> <p>[src/gdevdbit.c 1.11, src/gdevddrw.c 1.25, src/gdevwpr2.c 1.18, src/gdevwprn.c 1.9, src/gp_macpoll.c 1.2, src/gp_mslib.c 1.6, src/gp_mspol.c 1.5, src/gp_mswin.c 1.24, src/gxclrast.c 1.30, src/gxclread.c 1.11, src/gxclutil.c 1.11, src/gxdtfill.h 1.27, src/sfxfd.c 1.10, src/sfxstdio.c 1.9]</p> </blockquote> <p><strong><a name="2004-08-04_2340"></a> 2004-08-04 23:40 stefan</strong></p> <blockquote> <pre> fixed typo in last commit.</pre> <p>[src/gpcheck.h 1.8]</p> </blockquote> <p><strong><a name="2004-08-04_2333"></a> 2004-08-04 23:33 stefan</strong></p> <blockquote> <pre> gs_memory_t pointer additions for msvc build. DETAILS : Mostly gs_malloc() and gs_free() additions of a gs_memory_t argument. Not gsdll.c forces a single instance.</pre> <p>[src/gdev4081.c 1.6, src/gdev4693.c 1.9, src/gdev8510.c 1.7, src/gdevdm24.c 1.8, src/gdevdsp.c 1.25, src/gdevescp.c 1.7, src/gdevmswn.c 1.11, src/gdevmsxf.c 1.8, src/gdevpjet.c 1.7, src/gdevwpr2.c 1.17, src/gp_mspol.c 1.4, src/gpcheck.h 1.7, src/gsargs.c 1.9, src/gsdll.c 1.12, src/gsmisc.c 1.18, src/gxccache.c 1.32, src/gxclutil.c 1.10, src/imain.h 1.9, src/interp.c 1.19, src/main.h 1.7, src/msvc32.mak 1.59, src/sfxstdio.c 1.8]</p> </blockquote> <p><strong><a name="2004-08-04_1936"></a> 2004-08-04 19:36 stefan</strong></p> <blockquote> <pre> Addition of a Library Context to start the process of removing globals. DETAILS : The goals is to remove globals from the system, this includes static globals that would hinder multiple threads from running at once. gs_lib_ctx is intended to be used as the opaque "handle" object that a client would use to associate with a thread running through the library. Independent of a gs or a language switch build, this needs a new iapi2.h that allows the use of better job control from the client side. gs_lib_ctx is stashed under the gs_memory_t object and all memory objects used by a thread refer to the same gs_lib_ctx. This storage location was choosen as a convenence since a memory_t pointer is common throughout the system. Most of the turmoil is adding memory_t pointers to functions that used global variables but didn't have a memory pointer. FILE stdin, stdout, stderr are one per process by default. stdin and stdout may be changed but stderr may not. FILE stderr is one per process and shouldn't be changed. Note the stderr_fn is also one per process, changing this function pointer will not help as most users of stderr printing do not have a thread handle. Changing to a thread local storage mechanism can solve this. gs_id's are currently per thread with each thread starting over at 1. This can be moved to per process with mutexes if so desired. A library context has a pointer to the top_of_system the intent is that this a void handle avaliable to make top of the system calls without knowing the data type. In a postscript only build this would be gs_main_instance but in a language switched build this would be an object above that main_universe. Other members of gs_lib_ctx_t are nothing more than global objects relocated to this "bag". gs_name_table, dict_autoexpand are examples of this. There are a few more globals that will be moved. At the moment iapi is still constrained to one thread, since some of the globals haven't been removed yet. The display device's callback function setting is supported for now but this interface should be changed to a sDEVICE style call. gs_memory_t is the base type the abstract type gs_raw_memory_t is gone, this means that all memory types must derive from gs_memory_t. In addition to a pointer to the gs_lib_ctx there is a pointer to a non_gc_memory this will always point to a non garbage collected memory, it maybe the current object or an object below the current gargabe collected memory space. This can be used were the previous code used the global gs_malloc_memory. gs_malloc() now takes a memory pointer, it finds the non-gc memory from a valid memory pointer and allocates from it. The gdevbit device has an improved algorthym for converting from cmyk to rgb, this is never used by postscript but for pcl rops it puts the k plane into rgb.</pre> <p>[src/bfont.h 1.10, src/devs.mak 1.117, src/dstack.h 1.6, src/files.h 1.10, src/gdevbj10.c 1.9, src/gdevcdj.c 1.15, src/gdevdcrd.c 1.6, src/gdevepsc.c 1.11, src/gdevepsn.c 1.9, src/gdevijs.c 1.9, src/gdevp14.c 1.24, src/gdevpdfb.c 1.23, src/gdevpdfc.c 1.48, src/gdevpdfg.c 1.58, src/gdevpdfg.h 1.33, src/gdevpdfi.c 1.56, src/gdevpdfk.c 1.8, src/gdevpdfv.c 1.36, src/gdevpdti.c 1.36, src/gdevplnx.c 1.10, src/gdevprn.c 1.18, src/gdevprna.c 1.6, src/gdevpsdi.c 1.29, src/gdevpxat.h 1.6, src/gdevpxen.h 1.6, src/gdevstc.c 1.10, src/gdevupd.c 1.16, src/gdevvec.c 1.23, src/gdevxcmp.c 1.9, src/gdevxxf.c 1.9, src/gp_mac.c 1.16, src/gs.c 1.12, src/gs_dll_call.h 1.1, src/gsalloc.c 1.21, src/gsalloc.h 1.7, src/gsalphac.c 1.7, src/gsccode.h 1.13, src/gscdevn.c 1.21, src/gscolor.c 1.14, src/gscolor1.c 1.11, src/gscolor3.c 1.8, src/gscparam.c 1.10, src/gscpixel.c 1.12, src/gscpixel.h 1.6, src/gscrd.c 1.6, src/gscrd.h 1.7, src/gscscie.c 1.12, src/gscsepr.c 1.27, src/gscspace.c 1.17, src/gscspace.h 1.14, src/gsdevice.c 1.22, src/gsequivc.c 1.5, src/gsexit.h 1.10, src/gsfcid2.c 1.6, src/gsfcmap.c 1.24, src/gsfcmap1.c 1.7, src/gsfont.c 1.33, src/gsht.c 1.22, src/gsht1.c 1.15, src/gshtx.c 1.6, src/gsimage.c 1.12, src/gsinit.c 1.6, src/gsio.h 1.8, src/gsiodevs.c 1.6, src/gsistate.c 1.10, src/gslib.c 1.14, src/gslib.h 1.6, src/gslibctx.c 1.2, src/gslibctx.h 1.2, src/gsmalloc.c 1.12, src/gsmalloc.h 1.6, src/gsmemlok.c 1.6, src/gsmemory.c 1.9, src/gsmemory.h 1.8, src/gsmemraw.h 1.8, src/gsmemret.c 1.5, src/gsmisc.c 1.17, src/gsovrc.c 1.6, src/gspcolor.c 1.14, src/gsptype1.c 1.19, src/gsstate.c 1.24, src/gsstruct.h 1.18, src/gsstype.h 1.6, src/gsutil.c 1.10, src/gsutil.h 1.8, src/gxacpath.c 1.10, src/gxalloc.h 1.11, src/gxccache.c 1.31, src/gxccman.c 1.27, src/gxcht.c 1.13, src/gxclbits.c 1.9, src/gxclrast.c 1.29, src/gxclread.c 1.10, src/gxclrect.c 1.7, src/gxcpath.c 1.12, src/gxcspace.h 1.13, src/gxdevcli.h 1.34, src/gxdevice.h 1.19, src/gxdhtserial.c 1.5, src/gxfcmap.h 1.16, src/gxfcopy.c 1.43, src/gxht.c 1.16, src/gxht.h 1.9, src/gximag3x.c 1.17, src/gximage.c 1.7, src/gxpcmap.c 1.13, src/gxttfb.c 1.34, src/gzht.h 1.13, src/ialloc.c 1.7, src/ialloc.h 1.6, src/iapi.c 1.11, src/ibnum.c 1.8, src/ibnum.h 1.8, src/ichar.h 1.7, src/icharout.h 1.9, src/icid.h 1.8, src/icie.h 1.7, src/icstate.h 1.13, src/idebug.c 1.9, src/idebug.h 1.6, src/idict.c 1.11, src/idict.h 1.6, src/idparam.c 1.9, src/idparam.h 1.7, src/idstack.c 1.6, src/ifapi.h 1.19, src/ifont.h 1.14, src/ifont1.h 1.7, src/ifont42.h 1.9, src/igc.c 1.13, src/igc.h 1.8, src/igcref.c 1.6, src/iimage.h 1.7, src/iinit.c 1.10, src/ilocate.c 1.10, src/imain.c 1.39, src/imainarg.c 1.32, src/iminst.h 1.8, src/iname.h 1.5, src/interp.c 1.18, src/iparam.c 1.10, src/iplugin.c 1.5, src/iplugin.h 1.5, src/isave.c 1.11, src/isave.h 1.7, src/iscan.c 1.18, src/iscanbin.c 1.14, src/iutil.c 1.10, src/iutil.h 1.7, src/lib.mak 1.189, src/sdctc.c 1.5, src/std.h 1.12, src/szlibc.c 1.6, src/ttload.c 1.5, src/zarray.c 1.5, src/zbfont.c 1.27, src/zchar.c 1.14, src/zchar1.c 1.36, src/zcharout.c 1.12, src/zcharx.c 1.7, src/zcid.c 1.9, src/zcie.c 1.12, src/zcolor.c 1.19, src/zcontext.c 1.11, src/zcontrol.c 1.11, src/zcrd.c 1.8, src/zcsdevn.c 1.12, src/zcsindex.c 1.7, src/zcspixel.c 1.5, src/zcssepr.c 1.15, src/zdevice.c 1.9, src/zdevice2.c 1.9, src/zdict.c 1.6, src/zdps.c 1.8, src/zdps1.c 1.7, src/zfapi.c 1.52, src/zfcid0.c 1.22, src/zfcid1.c 1.19, src/zfcmap.c 1.15, src/zfile.c 1.41, src/zfileio.c 1.17, src/zfont.c 1.11, src/zfont0.c 1.7, src/zfont1.c 1.12, src/zfont2.c 1.7, src/zfont32.c 1.5, src/zfont42.c 1.20, src/zfontenum.c 1.4, src/zfrsd.c 1.10, src/zfunc.c 1.14, src/zfunc3.c 1.7, src/zfunc4.c 1.12, src/zgeneric.c 1.8, src/zgstate.c 1.10, src/zht2.c 1.12, src/zht2.h 1.3, src/zicc.c 1.7, src/zimage.c 1.14, src/zimage3.c 1.7, src/ziodevs.c 1.9, src/ziodevsc.c 1.7, src/zmatrix.c 1.8, src/zmedia2.c 1.16, src/zmisc.c 1.7, src/zmisc2.c 1.7, src/zmisc3.c 1.6, src/zpacked.c 1.6, src/zpcolor.c 1.15, src/zrelbit.c 1.6, src/zshade.c 1.15, src/zstring.c 1.6, src/ztoken.c 1.14, src/ztrans.c 1.22, src/ztype.c 1.8, src/zupath.c 1.10, src/zusparam.c 1.13, src/zvmem.c 1.8]</p> </blockquote> <p><strong><a name="2004-08-04_0100"></a> 2004-08-04 01:00 Ralph Giles</strong></p> <blockquote> <pre> add a .cvsignore list for generated files</pre> <p>[contrib/pscolor/.cvsignore 1.1]</p> </blockquote> <p><strong><a name="2004-08-04_0055"></a> 2004-08-04 00:55 Ralph Giles</strong></p> <blockquote> <pre> Add variable declaration for the path to the ghostscript executable to the unix wrapper scripts. This simplifies changing the invocation name. Partial fix for bug 686863.</pre> <p>[lib/bdftops 1.5, lib/dumphint 1.2, lib/dvipdf 1.5, lib/eps2eps 1.6, lib/font2c 1.4, lib/gsbj 1.4, lib/gsdj 1.4, lib/gsdj500 1.4, lib/gslj 1.4, lib/gslp 1.4, lib/gsnd 1.4, lib/pdf2dsc 1.6, lib/pdf2ps 1.7, lib/pdfopt 1.7, lib/pf2afm 1.5, lib/pfbtopfa 1.6, lib/pphs 1.4, lib/ps2ascii 1.7, lib/ps2epsi 1.10, lib/ps2pdfwr 1.10, lib/ps2ps 1.7, lib/pv.sh 1.4, lib/unix-lpr.sh 1.5, lib/wftopfa 1.4]</p> </blockquote> <p><strong><a name="2004-08-02_0333"></a> 2004-08-02 03:33 Igor Melichev</strong></p> <blockquote> <pre> Fix : .OrigFont was not provided when an embeded font is defined. DETAILS : Bug 687598 "Courier CE font problems". The test case embeds a font with an instandard FontMatrix [ 0.00039 0 0 0.00039 0 0 ]. For passing it to pdfwrite, the procedure .completefont adds the /.OrigFont key to the font dictionary. However the key was added after .buildfont1 is called, and the device did not recieve the information at the time. This patch moves the .OrigFont setting ahead to the .buildfont* call. EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_fonts.ps 1.47]</p> </blockquote> <p><strong><a name="2004-07-30_2132"></a> 2004-07-30 21:32 Dan Coby</strong></p> <blockquote> <pre> More work upon 687551 Implement the remaining TN 5044 procedures. This commit implements the setcmykoverprint procedure. DETAILS: We received a posting against 687551. This posting indicated that some files in arXiv.org were failing with the current version of Ghostscript but worked with older versions. The files were all created by a package called Canvas by Deneba Systems. They failed because setcmykoverprint was not defined. Evidently the people at Deneba Systems did not read the following comment from page 15 of TN 5044: "Note The setcmykoverprint operator has not been adopted by the industry. It remains on the list of color convention operators because it has some perceived usefulness, but it is not supported by any shipping host-based separation applications today." The even stranger detail is that the Deneba Systems people have a dummy version of this procedure that does not implement overprinting. Thus if they do not need overprinting, they have no need to use this procedure. The files also fail with Distiller 6.0, Illustrator CS, and Photoshop 6.0. However this change allows these files to work with current Ghostscript. The change consists of putting in a dummy version of the setcmykoverprint procedure. This version does not actually implement overprinting.</pre> <p>[lib/gs_lev2.ps 1.32]</p> </blockquote> <p><strong><a name="2004-07-29_1919"></a> 2004-07-29 19:19 Igor Melichev</strong></p> <blockquote> <pre> Fix : True Type font loader : numLoca run out the PS string size limit. DETAILS : Bug 687599 "/rangecheck in --string--". This patch increases the maximal 'loca' size to 64528 bytes, which is enough for the customer's file. A further improvement would be to allow more 'loca' segments (currently arbitrary restricted with 2 for a minor code simplification). EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_ttf.ps 1.39]</p> </blockquote> <p><strong><a name="2004-07-29_1746"></a> 2004-07-29 17:46 Igor Melichev</strong></p> <blockquote> <pre> 1. Fix (PS interpreter) : The FontBBox validation check was too strong. 2. Fix (pdfwrite) : Explicitely set line parameters in a charproc. DETAILS : Bug 687594 "Barcode Width". See comments in the new code. This solution is a partial one. With the current architecture of the Postscript interpreter, a device can't recognize whether a PS charproc sets line parameters or not. Therefore we copy to PDF the values, which appear at a first use within a charproc. The old code copied only values, which differ from defaults. The new behavior appears closer to Adobe Distiller. A complete solution should copy the PS behavior to PDF, i.e. the PDF charproc should set those and only those parameters, which are set by the PS charproc. For doing that we need flags in the graphic state structure per each graphic state parameter, reset all them before running a charproc, and set whenever a parameter is changed. Without the flag, when the charproc sets a value equal to the old one (which was inherited from the context of the glyph usage), the event of setting is lost and causes a line width and other problems. We don't want such a deep change now, and go with the partial solution, because the partial solution appears enough for customer's needs. Likely Adobe Distiller have same architectural problem, and resolves it in same manner. EXPECTED DIFFERENCES : pdfwrite, 72dpi : 012-09.ps 013-09.ps 014-09.ps 015-09.ps 083-09.ps 123-09.ps 205-09.ps 250-01.ps 296-01.ps 298-09.ps 321-09.ps pdfwrite 300dpi : 012-09.ps 013-09.ps 014-09.ps 015-09.ps 027-05.ps 032-07.ps 034-10.ps 083-09.ps 093-01.ps 123-09.ps 169-09.ps 205-09.ps 212-01.ps 213-01.ps 214-01.ps 222-09.ps 238-01.ps 250-01.ps 296-01.ps 298-09.ps 307-07.ps 321-09.ps</pre> <p>[src/gdevpdtt.c 1.85, src/gslparam.h 1.5, src/zchar.c 1.13]</p> </blockquote> <p><strong><a name="2004-07-28_1946"></a> 2004-07-28 19:46 Ralph Giles</strong></p> <blockquote> <pre> test commit; verifying the cvs announcement list is working.</pre> <p>[src/Makefile.in 1.37]</p> </blockquote> <p><strong><a name="2004-07-28_1009"></a> 2004-07-28 10:09 Igor Melichev</strong></p> <blockquote> <pre> Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 4). DETAILS : FunctionType 3 did not account stitches with reversed interval boundaries : lower > upper. Also added a tolerance to a small noise. 687573 Error: /rangecheck in --.shfill-- EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfunc3.c 1.22]</p> </blockquote> <p><strong><a name="2004-07-26_2333"></a> 2004-07-26 23:33 Dan Coby</strong></p> <blockquote> <pre> Fix for 687572 AFPL Ghostscript 8.14 fails with some PDF files. DETAILS: The given file uses the scn operator inside of a form. The scn operator is used for defining a color with DeviceN color spaces. The scn operator uses .pdfcount (inside of scresolve) to determine the number of parameters. However inside a form, there is an extra dictionary on the stack. The fix consists of adjusting pdfemptycount (which is used by .pdfcount) to match the stack depth while executing a form. After the form is executed, pdfemptycount is returned to its previous value.</pre> <p>[lib/pdf_draw.ps 1.83]</p> </blockquote> <p><strong><a name="2004-07-26_2321"></a> 2004-07-26 23:21 Dan Coby</strong></p> <blockquote> <pre> Fix for 687591 Overprint Preview is not documented. This change adds documentaion for how Ghostscript handles overprinting and spot colors to Use.htm.</pre> <p>[doc/Use.htm 1.110]</p> </blockquote> <p><strong><a name="2004-07-24_0812"></a> 2004-07-24 08:12 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 39 : Implementing embedded TrueType fonts (continued). DETAILS : This fixes the problem with True Type encoding : account 'post' when 'cmap' can't give a character mapping. Debugged wit 159.pdf , the character /registered. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps, UnusualFontMatrix.ps, 159.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.34]</p> </blockquote> <p><strong><a name="2004-07-23_1911"></a> 2004-07-23 19:11 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 39 : Implementing embedded TrueType fonts. DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps, UnusualFontMatrix.ps, 159.pdf . Embedded fonts work, but there exist an encoding problem with 159.pdf . The PS reader must have AdobeGlyphList and MacRomanEncoding. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.33]</p> </blockquote> <p><strong><a name="2004-07-22_1735"></a> 2004-07-22 17:35 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 38 : Implementing embedded Type 1 fonts. DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps, UnusualFontMatrix.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.32]</p> </blockquote> <p><strong><a name="2004-07-22_1304"></a> 2004-07-22 13:04 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 38 : Write font data after the font descriptor. DETAILS : opdfread.ps will use this constraint to provide a proper context for interpreting font data. Rather we need this constraint with ps2write only, we always implement it to simplify the code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtb.c 1.27, src/gdevpdtb.h 1.10, src/gdevpdtd.c 1.16]</p> </blockquote> <p><strong><a name="2004-07-22_1108"></a> 2004-07-22 11:08 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 37 : Don't convert Type 1 into CFF when generating ps2write output. DETAILS : 1. Applied the Type 1 font writer. 2. Rather Type1C is a PDF 1.2 feature, we can't write it into a ps2write output. We use the OrderResources parameter to decide about (not)converting Type 1 into Type1C (i.e. into CFF), because we want to write some PDF1.2 objects into a ps2write output (for example - function objects, because we don't want to convert them in C code). 3. The parameter OrderResources isn't a good switch for deciding about CFF due to the parameter name, but currently we don't want to define one more parameter. Maybe will improve it later. 4. Fixed a bug, which wrote "/Length1 -1" with Type1C. 5. CONVERT_CFF_TO_TYPE1 is reserved for further development. 6. Fixed Cygwin/gcc warnings in gdevpdfg.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.c 1.57, src/gdevpdfx.h 1.99, src/gdevpdtb.c 1.26]</p> </blockquote> <p><strong><a name="2004-07-22_0756"></a> 2004-07-22 07:56 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 36 : Switching on the new code DELAYED_STREAMS, PS2WRITE. DETAILS : See log messages of previous patches. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevvec.h 1.15]</p> </blockquote> <p><strong><a name="2004-07-20_0708"></a> 2004-07-20 07:08 Ray Johnston</strong></p> <blockquote> <pre> Fix to make sure that device deactivation is invoked before final close of the device when exit. Bug #687557. DETAILS: It is not known whether or not this ever worked, but this change does make sure that the .uninstalldevice gets invoked before the final closedevice on exit. EXPECTED DIFFERENCES. None detected with regression suite.</pre> <p>[src/imain.c 1.38]</p> </blockquote> <p><strong><a name="2004-07-17_1844"></a> 2004-07-17 18:44 Ray Johnston</strong></p> <blockquote> <pre> Fix so that compiled fonts have the dictionary permissions set correctly. Bug 687444 for customer #531. DETAILS: Previously the 'dict_attrs' parameter was ignored. I compared the attrs of the compiled font to a font loaded from a PFB file using: %! ------------------------------------------------------------------------- % Procedure to check attributes of all elements of a dictionary % used to check Font dict contents. /dumpattrs { % object dumpattrs - dup { rcheck } stopped { pop (?) } { { (r) } { (-) } ifelse } ifelse print dup { wcheck } stopped { pop (?) } { { (w) } { (-) } ifelse } ifelse print dup { xcheck } stopped { pop (?) } { { (x) } { (-) } ifelse } ifelse print ( ) print type = flush } bind def /chkattrs { % dict chkattrs - and lots of formatted output (Dictionary: ) print dup dumpattrs { exch ( / ) dup dup 4 -1 roll 20 string cvs 5 exch putinterval print ( / ) 0 exch putinterval dumpattrs } forall } bind def /Helvetica findfont chkattrs quit %--------------------------------------------------------------------------</pre> <p>[src/iccfont.c 1.9]</p> </blockquote> <p><strong><a name="2004-07-16_2214"></a> 2004-07-16 22:14 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Provide a delayed stream writing. DETAILS : The ps2write requires length of streams to be written before the stream. This implements pdf_begin_data_stream with opening a stream object in a temporary file, using a methgod similar to pdf_enter_substream. With the new mechanizm the output file doesn't need to be positionable, and the generated PDF appears more effective because the number of objects is smaller. Also fixed a bug in gdevpdfu.c : crashed when encrypted with no page compression. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.97, src/gdevpdfu.c 1.57, src/gdevpdfx.h 1.98, src/gdevpdtb.c 1.25, src/gdevpdtf.c 1.37, src/gdevpdti.c 1.35, src/gdevpdtw.c 1.28, src/gdevpdtw.h 1.5]</p> </blockquote> <p><strong><a name="2004-07-15_1639"></a> 2004-07-15 16:39 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Discard the output file seekability requirement in the /PS pdfmark implementation. DETAILS : The ps2write requires length of streams to be written before the stream. The implementation of /PS pdfmark wrote a length in a separate object after the stream. Now /PS pdfmark is implemented with pdf_enter_substream, which writes the length directly into the object dictionary. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.45]</p> </blockquote> <p><strong><a name="2004-07-15_1237"></a> 2004-07-15 12:37 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : text.operation was inconsistent after replacing TEXT_FROM_GLYPHS. DETAILS : Bug 687563 "segfault during pdfwrite". text.operation became inconsistent after replacing TEXT_FROM_*_GLYPH* with TEXT_FROM_STRING. Declared a stronger constraint for process_text_modify_width, and documented the trick with text indices in process_plain_text. EXPECTED DIFFERENCES : pdfwtite -r300 tpc2.ps</pre> <p>[src/gdevpdtc.c 1.36, src/gdevpdte.c 1.60]</p> </blockquote> <p><strong><a name="2004-07-14_1821"></a> 2004-07-14 18:21 Ray Johnston</strong></p> <blockquote> <pre> Sort the output in filename order to make comparison of daily db's easier.</pre> <p>[toolbin/tests/dump_testdb 1.7]</p> </blockquote> <p><strong><a name="2004-07-14_1757"></a> 2004-07-14 17:57 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 35 : Fixing more problems with color spaces. DETAILS : The alternative space of [/Indexed [/Separation ...] ...] was not resolved. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 473-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.31]</p> </blockquote> <p><strong><a name="2004-07-14_1757"></a> 2004-07-14 17:57 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Don't write DeviceN, DevicePixel colors with CompatibilityLevel<=1.2 . DETAILS : PDF 1.2 doesn't define DeviceN, DevicePixel. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfc.c 1.47, src/gdevpdfg.c 1.56]</p> </blockquote> <p><strong><a name="2004-07-14_1559"></a> 2004-07-14 15:59 Ralph Giles</strong></p> <blockquote> <pre> Include string_.h for missing prototypes of strlen() &c. Bug 687541.</pre> <p>[src/gscdevn.c 1.20, src/gsfcmap.c 1.23, src/gsht1.c 1.14, src/int.mak 1.127, src/lib.mak 1.188, src/zfile1.c 1.12]</p> </blockquote> <p><strong><a name="2004-07-14_1538"></a> 2004-07-14 15:38 Ralph Giles</strong></p> <blockquote> <pre> Cast pointer type to avoid a warning. Bug 687541.</pre> <p>[src/sjpx.c 1.9]</p> </blockquote> <p><strong><a name="2004-07-14_1534"></a> 2004-07-14 15:34 Ralph Giles</strong></p> <blockquote> <pre> Correct some types to unsigned to match the gp_file_name_combine() prototype. Partial fix for bug 687541.</pre> <p>[src/gp_unix_cache.c 1.3]</p> </blockquote> <p><strong><a name="2004-07-14_1424"></a> 2004-07-14 14:24 Ray Johnston</strong></p> <blockquote> <pre> Fix to pdfwrite initialization to make sure initial distiller params are incorporated into the device. Also add collection of distillerparams when building currentpagedevice. Fixes bugs 687325, 687436 and 687458. DETAILS: Earlier change to use .putdeviceparamsonly in gs_pdfwr.ps so that the use of setdistillerparams does not reinitialize the device caused the initial parameter settings to not be set in the device. The change to gs_pdfwr.ps accomplishes this. Part of the investigation by Igor Melichev discovered that the values of disillerparams would not be correctly reflected in the pagedevice. The change to gs_setpd.ps collects the currentdistillerparams when the device is pdfwrite and merges new values into the pagedevice dictionary. The method is similar to that used for the dynamicppkeys such as PageCount that can be changed by the device. For the distillerparams, the values are changed dynamically by setdistillerparams. EXPECTED DIFFERENCES. Rotation of several files is restored to the correct value given by gs8.11: 541.pdf mspro.pdf new_rect_nr.pdf pstopdf.pdf xes2ps-problem.pdf</pre> <p>[lib/gs_pdfwr.ps 1.38, lib/gs_setpd.ps 1.24]</p> </blockquote> <p><strong><a name="2004-07-13_1952"></a> 2004-07-13 19:52 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 34 : Applying filters to the page contents stream. DETAILS : Due to the device parameter problem in the PS interpreter, the distilled PT.ps had a filtered contents stream in spite of we disabled filters. Fixing it now to avoid the dependence on another project. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.30]</p> </blockquote> <p><strong><a name="2004-07-13_1931"></a> 2004-07-13 19:31 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 33 : Fixing problems with color spaces in image XObjects. DETAILS : 1. The Separation color space needs to resolve and substitute the alternative color space. 2. The Pattern color space needs to resolve and substitute the base color space. 3. Removed an obsolete temporary debug printing. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf . EXPECTED DIFFERENCES : None. `</pre> <p>[lib/opdfread.ps 1.29]</p> </blockquote> <p><strong><a name="2004-07-13_1858"></a> 2004-07-13 18:58 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 32 : Fixing problems with color spaces in inline images. DETAILS : Inline images use local allocation mode for image data. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps, 148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.28]</p> </blockquote> <p><strong><a name="2004-07-13_1558"></a> 2004-07-13 15:58 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 31 : Implementing DecodeParms for filters. DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 245-01.ps, 415-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.27]</p> </blockquote> <p><strong><a name="2004-07-13_1513"></a> 2004-07-13 15:13 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 30 : Continue the implementation of color spaces. DETAILS : 1. Implemented Lab. 2. A pattern color space specification can contain an indirect reference. 3. Moved the StreamDumperBuffer definition to the proper place. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 245-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.26]</p> </blockquote> <p><strong><a name="2004-07-13_1344"></a> 2004-07-13 13:44 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 29 : The inplementation of FunctionType 4 was wrong. DETAILS : The test case 245-01.ps . Also implemented a debug printing of the uncompressed data steram. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.25]</p> </blockquote> <p><strong><a name="2004-07-13_1238"></a> 2004-07-13 12:38 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Don't write shadings with CompatibilityLevel<=1.2 . DETAILS : Bug 687567 "pdfwrite : Shadings are written with CompatibilityLevel=1.2" : Shadings are not allowed in PDF 1.2 . This patch simply forwards to the default implementation, causing a shading to decompose into thousands of constant color areas. Probably a convertion to an image would be a better solution - delaying it for a while, because our current goal is to make ps2write working somehow. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.41, src/gdevpdfg.c 1.55]</p> </blockquote> <p><strong><a name="2004-07-13_1202"></a> 2004-07-13 12:02 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Wrong /Matrix from /BP pdfmark (continued). DETAILS : Fixing a misprint in the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004502.html Thanks to SaGS for pointing it out. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.44]</p> </blockquote> <p><strong><a name="2004-07-13_1109"></a> 2004-07-13 11:09 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Dont create the alternative image compression if a loseless compression is only allowed. DETAILS : It is an optimization. The problem was occasionally found when working on the bug 687325, rather that bug is irrelevant. It created 2 alternative streams with same filters. This change rejects the creation of the second stream in such cases. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfi.c 1.55, src/gdevpsdi.c 1.28]</p> </blockquote> <p><strong><a name="2004-07-10_0855"></a> 2004-07-10 08:55 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 28 : Fixing tab characters in the source code (continued). DETAILS : This change is syntactically equivalent. Also removed an unuseful comment. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.24]</p> </blockquote> <p><strong><a name="2004-07-10_0804"></a> 2004-07-10 08:04 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 27 : Implemented FunctionType 4. DETAILS : 245-01.ps contains one. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.23]</p> </blockquote> <p><strong><a name="2004-07-09_2054"></a> 2004-07-09 20:54 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 26 : Fixing tab characters in the source code. DETAILS : This change is syntactically equivalent. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.22]</p> </blockquote> <p><strong><a name="2004-07-09_2028"></a> 2004-07-09 20:28 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 25 : Fixing various problems in functions and color spaces. DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf acrobat.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.21]</p> </blockquote> <p><strong><a name="2004-07-09_1652"></a> 2004-07-09 16:52 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 24 : An initial implementation of functions. DETAILS : 1-argument FunctionType 0 is converted to a Postscript procedure. The Order is ignored. 3d order functions interpolate as 1st order. Maybe we'll convert them in C in pdfwrite. N-argument FunctionType 0 are coded but not tested yet. Other function types are not coded. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.20]</p> </blockquote> <p><strong><a name="2004-07-08_1715"></a> 2004-07-08 17:15 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 23 : Implementing Indexed and Separation (continued). DETAILS : Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.19]</p> </blockquote> <p><strong><a name="2004-07-08_1528"></a> 2004-07-08 15:28 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 22 : Implementing Indexed and Separation. DETAILS : SubstitutePDFColorSpace factored out from ResolveColorSpace. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.18]</p> </blockquote> <p><strong><a name="2004-07-08_1400"></a> 2004-07-08 14:00 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 20 : Implementing CalGray, CalRGB. DETAILS : - implemented the color space cache PDFColorSpaces; - improved the procedure 'error'; - a bug in Register : s|gt|ge; - moved color procedures before image procedures; - a bug in the CompleteOutlineImage comment. - ResolveColorSpace now converts CalGray, CalRGB. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.17]</p> </blockquote> <p><strong><a name="2004-07-08_1112"></a> 2004-07-08 11:12 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 20 : The implementations of Q,q,CharProc were incomplete. DETAILS : Minor change : collected work data definitions in a single place. Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.16]</p> </blockquote> <p><strong><a name="2004-07-08_1006"></a> 2004-07-08 10:06 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 17 : Implementing Patterns. DETAILS : Tested with Bug687546.ps, 035-01.ps, 035-07.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.15]</p> </blockquote> <p><strong><a name="2004-07-08_0803"></a> 2004-07-08 08:03 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 18 : Fix : Length was written to a wrong file position. DETAILS : Fixes a bug in the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-July/004607.html . Thanks to Ray Johnston for pointing it out. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.43]</p> </blockquote> <p><strong><a name="2004-07-07_1519"></a> 2004-07-07 15:19 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 17 : Image XForm implementation. DETAILS : Tested with Bug687546.ps, 035-01.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.14]</p> </blockquote> <p><strong><a name="2004-07-07_1424"></a> 2004-07-07 14:24 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 16 : Inline image implementation. DETAILS : Tested with Bug687546.ps, TESTIMG.PS . The interpretation completes, but some images render wrongly. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.13]</p> </blockquote> <p><strong><a name="2004-07-07_1142"></a> 2004-07-07 11:42 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 15 : Fix : ObjectRegistry expansion code was wrong. DETAILS : Tested with Bug687546.ps, 148-01.ps . 148-01.ps still fails due to unimplemented images. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.12]</p> </blockquote> <p><strong><a name="2004-07-07_1100"></a> 2004-07-07 11:00 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 14 : Fix : fonts may have no Encoding. DETAILS : Tested with Bug687546.ps, 148-01.ps . 148-01.ps still fails due to unimplemented images. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.11]</p> </blockquote> <p><strong><a name="2004-07-07_1040"></a> 2004-07-07 10:40 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 13 : Implementing Type 3 fonts. DETAILS : A minor restructurization of the code and a debug printout improvement. Tested with Bug687546.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.10]</p> </blockquote> <p><strong><a name="2004-07-07_1019"></a> 2004-07-07 10:19 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 12 : Implementing Type 3 fonts. DETAILS : 1. Implemented a delayed stream interpretation. 2. Implemented Type 3 fonts. 3. Renamed UnRefD with ResolveD. 4. Debug switches are bound. Tested with Bug687546.ps - now it renders fine. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.9]</p> </blockquote> <p><strong><a name="2004-07-07_0933"></a> 2004-07-07 09:33 Russell Lang</strong></p> <blockquote> <pre> Fixes bug 687451 "default resolution for display device" Set the display resolution from the MS-Windows display resolution, using a device parameter -dDisplayResolution=DPI. DETAILS: The initial resolution must be set in display_put_params. Setting it in display_open is too late because this leaves the device resolution and currentpagedevice reporting different values. Callbacks can't be used in display_put_params because the callback structure is not yet initialized. This leaves a device parameter on the command line as the cleanest implementation. If HWResolution is set (e.g. from -r72), then use that. Otherwise, if DisplayResolution is set, use that in the initial display_put_params. After that, ignore all further use of DisplayResolution. The Windows client adds -dDisplayResolution=DPI to the command lines, similar to the existing -dDisplayFormat. The Windows client gets the resolution from the GDI. The default Windows display resolution is 96dpi (the same as the display device). This can be changed to 120dpi by selecting "large fonts", or other values in recent versions of Windows.</pre> <p>[doc/Devices.htm 1.80, src/dwmain.c 1.18, src/dwmainc.c 1.20, src/gdevdsp.c 1.24, src/gdevdsp.h 1.9, src/gdevdsp2.h 1.8]</p> </blockquote> <p><strong><a name="2004-07-07_0909"></a> 2004-07-07 09:09 Russell Lang</strong></p> <blockquote> <pre> Fixes bug 687562 "vector devices close output file incorrectly". Vector devices open the output file with gx_device_open_output_file, so should close it with gx_device_close_output_file, not fclose. This was preventing pswrite from correctly closing special files such as "%printer%Printer Name" on Windows and OS/2.</pre> <p>[src/gdevvec.c 1.22]</p> </blockquote> <p><strong><a name="2004-07-07_0907"></a> 2004-07-07 09:07 Russell Lang</strong></p> <blockquote> <pre> In the Windows %printer% IODevice, the existing thread handle is closed automatically when the thread finishes. Duplicate the thread handle so we always have a valid handle for waiting and closing. DETAILS: When the thread finishes, the CRTL _endthread is closing the existing handle. During debugging, it was found that waiting on the thread handle was Ok because the thread was still running, but by the time CloseHandle ran the thread handle was invalid. IODevices are effectively static, so iodev->state is initialized once at the start of the interpreter. There is no need to test if iodev->state is valid.</pre> <p>[src/gp_msprn.c 1.4]</p> </blockquote> <p><strong><a name="2004-07-06_2215"></a> 2004-07-06 22:15 Dan Coby</strong></p> <blockquote> <pre> Fix for 687565 Incorrect equiv color for Orange in Altona test file. The altona test file Altona_Visual_bb_1v1_x3.pdf contains a spot color called Orange. An incorrect equivalent CMYK color is being determined for this spot color. The result is that the spot color is being displayed as black for the devices which handle spot colors and attempt to determine equivalent CMYK colors for the spot colors. These are the psdcmyk, tiffsep, and display (with -dDisplayFormat=16#a0800) devices. DETAILS: The Orange spot color is used in two different DeviceN color spaces. The first color space has components named 'None'. These components are used as part of a special feature described in section 4.5 of the PDF 1.5 spec. This feature uses the None components as a means for passing values to the color space's alternate tint transform function. In the example in the spec., these values are an equivalent color in the alternate color space. Our logic for determining an equivalent CMYK color for a spot colorant sets all color components except for the desired spot color to zero and then uses the tint transform function to form an alternate color. This results in the equivalent CMYK color being black since the None values contain the real information for the tint transform function. This change consists of check for the presence of DeviceN color space components named None. If any are detected then the equivalent CMYK color logic exits rather than determine an invalid color. This is sufficient for this case since the second color space which contains the Orange spot color does not have the None components. For the general case, a solution needs to be found which samples colors given actual values for the None components.</pre> <p>[src/gsequivc.c 1.4]</p> </blockquote> <p><strong><a name="2004-07-06_1927"></a> 2004-07-06 19:27 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 11 : Implementing Metrics for Type 1,2,42 fonts (continued). DETAILS : The previous patch appeares incomplete due to MissingWidth. Now fixing. CID fonts and Type 3 fonts are still stubbed. Tested with Bug687546.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.8]</p> </blockquote> <p><strong><a name="2004-07-06_1904"></a> 2004-07-06 19:04 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 10 : Implementing Metrics for Type 1,2,42 fonts. DETAILS : CID fonts and Type 3 fonts are still stubbed. Tested with Bug687546.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.7]</p> </blockquote> <p><strong><a name="2004-07-06_1744"></a> 2004-07-06 17:44 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 9 : Implementing Encoding for Type 1,2,42 fonts. DETAILS : CID fonts and Type 3 fonts are still stubbed. Tested with Bug687546.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.6]</p> </blockquote> <p><strong><a name="2004-07-06_1348"></a> 2004-07-06 13:48 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 8 : Implementing ExtGState. DETAILS : Function objects are subbed yet. Debugged with Bug687546.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.5]</p> </blockquote> <p><strong><a name="2004-07-06_1205"></a> 2004-07-06 12:05 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 7 : Implementing text rendering operastors. DETAILS : Font loading is stubbed yet. Debugged with Bug687546.ps . TextRenderingMode!=0 isn't debugged yet. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.4]</p> </blockquote> <p><strong><a name="2004-07-05_2116"></a> 2004-07-05 21:16 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 6 : :Providing a page stream execution context. DETAILS : Most operators are eother stubbed or unimplemented, but the interpretation runs and prints a trace. Debugged wioth Bug687546.ps . EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.3]</p> </blockquote> <p><strong><a name="2004-07-05_1703"></a> 2004-07-05 17:03 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 5 : Page streams must interpret immediately. DETAILS : This works against a huge memory consumption. Also improved comments, the module structurization and error processing. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.2]</p> </blockquote> <p><strong><a name="2004-07-05_1703"></a> 2004-07-05 17:03 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 4 : Stream data length must preceed the stream. DETAILS : The new code is disabled with PS2WRITE 0 in gdevvec.h . pdf_begin_data_stream, pdfmark_PS wrote a stream data length after the stream object. With OrderResources true we write a direct object instead that. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.42, src/gdevpdfu.c 1.56, src/gdevpdfx.h 1.97]</p> </blockquote> <p><strong><a name="2004-07-05_1255"></a> 2004-07-05 12:55 Igor Melichev</strong></p> <blockquote> <pre> ps2write step 3 : Initial commit for the Ordered PDF Reader. DETAILS : This revision only reads PDF objects into VM. EXPECTED DIFFERENCES : None.</pre> <p>[lib/opdfread.ps 1.1]</p> </blockquote> <p><strong><a name="2004-07-03_1051"></a> 2004-07-03 10:51 Russell Lang</strong></p> <blockquote> <pre> Log Message: Fixes bug 686956 Display device does not support separations. Add support for separations to display device. This requires a change to the display callback structure. Support is maintained for clients using version 1 of the structure. DETAILS: Add support for a new color format, DISPLAY_COLORS_SEPARATION, which supports CMYK and spot colors. A new callback display_separation() is used to tell the client about the names and CMYK equivalents of each separation. The callback structure version number is incremented to 2 to show that has changed. The display devices checks whether it is passed the older v1 structure or the newer v2 structure, and only calls the new separation callback if it was given a v2 structure. Only 8-bit/pixel, up to 8 components and 64-bit depth are supported. In the Windows and gtk+ clients, a subset of these 8 separations can be selected for display. The new code is based on the tiffsep device.</pre> <p>[doc/API.htm 1.43, doc/Devices.htm 1.79, src/dwimg.c 1.12, src/dwimg.h 1.9, src/dwmain.c 1.17, src/dwmainc.c 1.19, src/dxmain.c 1.13, src/gdevdsp.c 1.23, src/gdevdsp.h 1.8, src/gdevdsp2.h 1.7, src/idisp.c 1.7]</p> </blockquote> <p><strong><a name="2004-07-01_1923"></a> 2004-07-01 19:23 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 6). DETAILS : Bug 687546 pdfwrite : Type 3 glyph variations (was: ps2pdf segfaults) Relates to 687044, 687472, 687489, 687546. charproc_just_accumulated was not properly initialized on some circumstances. EXPECTED DIFFERENCES : Bug687546.ps (new)</pre> <p>[src/gdevpdtt.c 1.84]</p> </blockquote> <p><strong><a name="2004-07-01_1827"></a> 2004-07-01 18:27 Dan Coby</strong></p> <blockquote> <pre> Correct some warnings from the MSVC compiler.</pre> <p>[src/gscdevn.c 1.19, src/gscsepr.c 1.26, src/gsht.c 1.21, src/gzht.h 1.12]</p> </blockquote> <p><strong><a name="2004-07-01_0441"></a> 2004-07-01 04:41 Dan Coby</strong></p> <blockquote> <pre> This change creates common routines for handling the DeviceN related device parameters (SeparationColorNames, SeparationOrder, and MaxSeparations). The change also splits up some common routines that were assuming that the device was a 'printer' device.</pre> <p>[src/devs.mak 1.116, src/gdevdevn.c 1.21, src/gdevdevn.h 1.10, src/gdevnfwd.c 1.25, src/gdevpsd.c 1.16, src/gdevtsep.c 1.3, src/gdevxcf.c 1.9, src/gxcmap.c 1.22, src/gxcmap.h 1.11]</p> </blockquote> <p><strong><a name="2004-06-30_1737"></a> 2004-06-30 17:37 Raph Levien</strong></p> <blockquote> <pre> Fixes nonportable code in the vasarely.ps example file so that keeps to reasonable page size values even when default clippath is very large (as is the case with the bbox device). Fixes bug #687549.</pre> <p>[examples/vasarely.ps 1.3]</p> </blockquote> <p><strong><a name="2004-06-30_1455"></a> 2004-06-30 14:55 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdsfwrite) : Compression of XObjects implicitely depended on CompressFonts (continued). DETAILS : Fixing a compiler error with PS2WRITE 1. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfu.c 1.55]</p> </blockquote> <p><strong><a name="2004-06-30_1450"></a> 2004-06-30 14:50 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdsfwrite) : Compression of XObjects implicitely depended on CompressFonts. DETAILS : This patch makes the dependence explicit. Have no idea which distiller parameter must controll patterns and forms, so keeping the old dependence. With OrderResources=true pages now depend on CompressPages. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfi.c 1.54, src/gdevpdfm.c 1.41, src/gdevpdfu.c 1.54, src/gdevpdfx.h 1.96, src/gdevpdti.c 1.34]</p> </blockquote> <p><strong><a name="2004-06-30_1435"></a> 2004-06-30 14:35 Igor Melichev</strong></p> <blockquote> <pre> ps2write part 2 : Delay writing pages. DETAILS : The new code is disabled with PS2WRITE 0 in gdevvec.h . With OrderResources=true it writes pages at the end of the document, after all resources are written to PDF. Before that pages are accumulated in a temporary file. OrderResources has been moved from distiller parameters to device parameters. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.96, src/gdevpdfg.c 1.54, src/gdevpdfp.c 1.39, src/gdevpdfu.c 1.53, src/gdevpdfx.h 1.95, src/gdevpsdf.h 1.22, src/gdevpsdp.c 1.14]</p> </blockquote> <p><strong><a name="2004-06-30_1154"></a> 2004-06-30 11:54 Igor Melichev</strong></p> <blockquote> <pre> ps2write part 1 : starting the project. DETAILS : Define a new temporary configuration switch PS2WRITE. The new code is disabled with PS2WRITE 0 in gdevvec.h . Our development strategy is to make pdfwrite to generate an output, which a PS interpreter can handle with a special procset. For a while we'll not define a new ps2write device, but enhance the pdfwrite device with a new feature. A new temporary distiller parameter OrderResources will make pdfwrite to keep a proper resource ordering for generating a PS output. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpsdf.h 1.21, src/gdevpsdp.c 1.13, src/gdevvec.h 1.14]</p> </blockquote> <p><strong><a name="2004-06-30_0815"></a> 2004-06-30 08:15 Igor Melichev</strong></p> <blockquote> <pre> Fix : MSVC compiler warning. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevtsep.c 1.2]</p> </blockquote> <p><strong><a name="2004-06-29_2246"></a> 2004-06-29 22:46 Dan Coby</strong></p> <blockquote> <pre> Fix for 687553 rangecheck in .sethalftone5 and SeparationOrder. DETAILS: If a file specifies a type 5 halftone and the SeparationOrder device parameter is specified then a rangecheck can occur. This happens when the halftone includes two or more colorants that are not in the SeparationOrder parameter or one colorant and a 'Default' value. The problem occurs because the get_color_comp_index device procs use GX_DEVICE_COLOR_MAX_COMPONENTS to indicate colorants which are not being imaged due to the colorant not be included in the list for the SeparationOrder device parameter. However the gs_color_name_component_number routine was using the same value to indicate 'Default' halftones. The fix consists of modifying gs_color_name_component_number to look for GX_DEVICE_COLOR_MAX_COMPONENTS from the get_color_comp_index device proc. If found then the component is treated the same as a component that is not present in the device. The halftoning logic is only concerned with the colorants which are actually being used by the device.</pre> <p>[src/gsht.c 1.20]</p> </blockquote> <p><strong><a name="2004-06-29_2227"></a> 2004-06-29 22:27 Dan Coby</strong></p> <blockquote> <pre> Correct spelling in a comment.</pre> <p>[src/gxcmap.h 1.10]</p> </blockquote> <p><strong><a name="2004-06-29_2101"></a> 2004-06-29 21:01 Dan Coby</strong></p> <blockquote> <pre> Change the default handling of the MaxSeparations device parameter. This parameter is only used by some of the DeviceN mode devices (which have their own handling of this parameter). The default handler now simply ignores this parameter. However it does read the parameter. Not reading the parameter was causing problems with PDF files and page devices.</pre> <p>[src/gsdparam.c 1.17]</p> </blockquote> <p><strong><a name="2004-06-29_0105"></a> 2004-06-29 01:05 Ralph Giles</strong></p> <blockquote> <pre> Add contributed pscolor utility by Carsten Hammer. This splits a ps document into two, one consisting only of black and white pages, and one of color pages. Useful for printing on separate devices. Submitted under bug 602263. The Makefile needs updating for the new location.</pre> <p>[contrib/pscolor/Makefile 1.1, contrib/pscolor/instream.yy 1.1, contrib/pscolor/test.c 1.1]</p> </blockquote> <p><strong><a name="2004-06-28_1713"></a> 2004-06-28 17:13 Igor Melichev</strong></p> <blockquote> <pre> Fix : True Type grid fitting must not apply to FAPI fonts. DETAILS : Bug 687543 "FAPI: Type 42 is broken". EXPECTED DIFFERENCES : None.</pre> <p>[src/gxccman.c 1.26, src/lib.mak 1.187]</p> </blockquote> <p><strong><a name="2004-06-24_1010"></a> 2004-06-24 10:10 Igor Melichev</strong></p> <blockquote> <pre> Fix : A dangling pointer from TExecution_Context could cause a memory corruption. DETAILS : The pointed area was never used and the pointer was not listed in the garbager descriptor. Due to the latter it was not relocated and a wrong object was released through it. Bug 687533 "segmentation fault on this PS file" We still keep the pointer defined, because we don't want to change FreeType structures. But now we don't allocate the area for its referent. Minor change (ttinterp.c) : skip allocating a debug data of zero size. EXPECTED DIFFERENCES : None.</pre> <p>[src/ttfmemd.c 1.7, src/ttinterp.c 1.13, src/ttobjs.c 1.7]</p> </blockquote> <p><strong><a name="2004-06-24_0951"></a> 2004-06-24 09:51 Igor Melichev</strong></p> <blockquote> <pre> Fix: Unwinding the recent change to gsdparam.c becauase it breaks the PDF interpreter. DETAILS : All comparefiles/*.pdf failed with -sDEVICE=ppmraw after the change http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004575.html . EXPECTED DIFFERENCES : See DETAILS.</pre> <p>[src/gsdparam.c 1.16]</p> </blockquote> <p><strong><a name="2004-06-24_0720"></a> 2004-06-24 07:20 Dan Coby</strong></p> <blockquote> <pre> Add source file src/gdevtsep.c. This file is part of the implementation 687440 and 542629.</pre> <p>[src/gdevtsep.c 1.1]</p> </blockquote> <p><strong><a name="2004-06-24_0654"></a> 2004-06-24 06:54 Dan Coby</strong></p> <blockquote> <pre> Add the src/gdevtsep.c file. This contains the tiffgray, tiff32nc, and tiffsep devices.</pre> <p>[doc/Develop.htm 1.135]</p> </blockquote> <p><strong><a name="2004-06-24_0651"></a> 2004-06-24 06:51 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : The implementation of INSTCTRL did not follow the TT specification by Apple. DETAILS : Bug 687526 /invalidfont in --show-- See http://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html#INSTCTRL The old implementation comes from FreeType. EXPECTED DIFFERENCES : None.</pre> <p>[src/ttinterp.c 1.12]</p> </blockquote> <p><strong><a name="2004-06-24_0648"></a> 2004-06-24 06:48 Dan Coby</strong></p> <blockquote> <pre> This change implements the enhancements described in 542629 CMYK tiff driver and 687440 Support for outputting PDF separations separately. This change implements three devices: tiffgray which produces an 8 bit gray output with uncompressed data, tiff32nc which produces 32 bit CMYK with uncompressed data, and tiffsep which produces a tiffgray file for each separation (CMYK and spot colors) and it also produces a CMYK output file which is created using the CMYK image data plus the spot colors image data. The spot colors are converted to CMYK using the logic in 687431. DETAILS: This change requires that 687504 be included in the sources. The tiffgray and tiff32nc devices are logically similar to the tiff24nc device except for the use of gray and CMYK process color models. The tiffsep device uses much of the logic which has been created for the psdcmyk and spotcmyk devices. These include logic for implementing the SeparationOrder setpagedevice parameter 687423, logic for determining an equivalent CMYK color to spot colors 687431, and automatically detecting spot colors (without requiring that they be specified via the SeparationColorNames setpagedevice parameter 687504. The tiffsep device also prints the names of any spot colors detected within a document to stderr. (stderr is also use for the output from the bbox device.) For each spot color the name of the color is printed preceded by '%%SeparationName: '. This provides a mechanism for external applications to be informed about the names of spot colors with a document. Due to the 64 bit pixel size limitation, the tiffsep can handle a maximum of 8 colorants per pass. However it is possible to handle more than 8 colorants by doing multiple passes. For each pass after the first one, the names of all of the separations need to be specified via the SeparationColorNames parameter and the names of the desired separations need to be specified via the SeparationOrder parameter. When colorants are selected via the SeparationOrder parameter, the composite CMYK output contains the equivalent CMYK data only from the selected colorants. It is possible to create an overall CMYK composite for more than 8 colorants by then adding together (via an external application like imagemagick) the composite CMYK output files from the individual Ghostscript passes. Internally each spot color is assigned a spot color number. These numbers start with 0 for the first spot color. The spot color numbers are assigned in the same order as the names are printed to stderr (see above). This order also matches the ordering in the SeparationColorNames list, if this parameter is specified. The spot color numbers are not affected by the SeparationOrder parameter. This device creates multiple output files. The file specified via the OutputFile command line parameter is used to contain the composite CMYK equivalent. File names for the separations for the CMYK planes are created by appending '.Cyan.tif', '.Magenta.tif' '.Yellow.tif' or '.Black.tif' to the to the end of the file name specified via the OutputFile parameter. File names for the spot color separation files are created by appending '.sn.tif' (where n is the spot color number) to the end of the file name specified via the OutputFile parameter. The src/gdevtsep.c source file does have a compile time option for including/not the '.tif' at the end of the created file name. It also has a compile time option for using the name of the spot color as part of the file name. However this is not enabled since there may be conflicts with spot color names (in which Adobe allows almost anything) and the operating system's conventions on file naming. This change consists of the new source module src/gdevtsep.c, changes to devs.mak for defining the new devices, changes to the various top level make files for including these devices in their DEVICE_DEVS definitions, and changes to the documentation files.</pre> <p>[doc/Devices.htm 1.78, src/Makefile.in 1.36, src/devs.mak 1.115, src/dvx-gcc.mak 1.26, src/gdevdevn.h 1.9, src/gsdparam.c 1.15, src/macos-mcp.mak 1.25, src/msvc32.mak 1.58, src/openvms.mak 1.36, src/os2.mak 1.37, src/unix-gcc.mak 1.45, src/unixansi.mak 1.36, src/watcw32.mak 1.29]</p> </blockquote> <p><strong><a name="2004-06-24_0647"></a> 2004-06-24 06:47 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 80. DETAILS : A stronger prevention of a tiny decomposition of a color. It works against glitches in function|color monotonity|linearity checks. EXPECTED DIFFERENCES : 72dpi : Altona-Testsuite_p2_S_x3.pdf Clarke Tate Manns Chinese.ai S2_Digitalproof-Forum_x3k.pdf 300dpi : Clarke Tate Manns Chinese.ai S2_Digitalproof-Forum_x3k.pdf</pre> <p>[src/gxshade6.c 1.77]</p> </blockquote> <p><strong><a name="2004-06-24_0503"></a> 2004-06-24 05:03 Dan Coby</strong></p> <blockquote> <pre> Fix for 687534 Unable to determine equivalent CMYK for spot colors that are only used with overprint. DETAILS: The given test file uses spot colors. However the psdcmyk device was creating output files which did not contain equivalent CMYK colors for the spot colors. The cause was that the previous version of the logic was capturing the equivalent CMYK colors when the psdcmyk device's high drawing procs were called. However if overprinting is enabled, then the overprint device was inserting its own versions of these routines. Since it only took one call to a high level drawing handler, the previous logic would capture the equivalent CMYK colors if there were any drawing operations with a spot color that did not have overprinting enabled. The fix consists of moving the capturing of the equivalent CMYK colors to a new device proc. This new device proc is called update_spot_equivalent_colors. This device proc is called whenever a Separation or a DeviceN color space is installed. The default version of the proc does nothing. Thus there is only a small amount of overhead added for the installation of Separation and DeviceN color spaces for devices which do not need the equivalent CMYK colors for spot colors. Most of the change consists of the standard details of adding a new device proc. There are several places that have to be updated when this is done. The documentation in doc/Drivers.htm was updated to include this new proc. The high level drawing handlers in the psdcmyk devices were removed and a new psd_update_spot_equivalent_colors procedure was added. Some minor changes were made in the logic in gsequivc.c since it is no longer necessary to scan through base and alternate color spaces looking for Separation and DeviceN color spaces. The comments at the beginning of gsequivc.c was changed to reflect the changes in the logic for capturing equivalent CMYK colors for spot colors.</pre> <p>[doc/Drivers.htm 1.47, src/gdevbbox.c 1.18, src/gdevdflt.c 1.24, src/gdevnfwd.c 1.24, src/gdevprn.c 1.17, src/gdevpsd.c 1.15, src/gdevrops.c 1.12, src/gscdevn.c 1.18, src/gscsepr.c 1.25, src/gsequivc.c 1.3, src/gsequivc.h 1.2, src/gxclip.c 1.15, src/gxclip2.c 1.11, src/gxclipm.c 1.13, src/gxclist.c 1.14, src/gxdevcli.h 1.33, src/gxdevice.h 1.18]</p> </blockquote> <p><strong><a name="2004-06-24_0317"></a> 2004-06-24 03:17 Ray Johnston</strong></p> <blockquote> <pre> Minor change to avoid a spurious compiler warning about 't' used before initialized. Fixes bug #687412. DETAILS: This is an invalid warning, since 't' is always initialized before use, however the extensive use of macros confuses some compilers. IMO, this is an abuse of macros, but this is endemic in the older GS code.</pre> <p>[src/spdiff.c 1.7]</p> </blockquote> <p><strong><a name="2004-06-23_2037"></a> 2004-06-23 20:37 Alex Cherepanov</strong></p> <blockquote> <pre> Disable idiom recognition feature during execution of .bindnow because it has no effect except burning a few seconds of CPU time. Fix bug 687521</pre> <p>[lib/gs_init.ps 1.107]</p> </blockquote> <p><strong><a name="2004-06-23_1857"></a> 2004-06-23 18:57 stefan</strong></p> <blockquote> <pre> Fixed CMYK to RGB conversion. Used in rop code where RGB -> CMYK -> RGB needs to work correctly in the black and white cases.</pre> <p>[src/gdevbit.c 1.10]</p> </blockquote> <p><strong><a name="2004-06-23_1850"></a> 2004-06-23 18:50 stefan</strong></p> <blockquote> <pre> Fix macro to use it's arguments. Platform specific, under exersized code.</pre> <p>[src/gxfarith.h 1.7]</p> </blockquote> <p><strong><a name="2004-06-23_0904"></a> 2004-06-23 09:04 Igor Melichev</strong></p> <blockquote> <pre> Fix (ps2ascii) : Provide a tolerance to old versions of dvips output. DETAILS : Bug 531300 "ps2ascii chokes on ch-xoff and ch-* routines". Patch from Mike attached to the bug. EXPECTED DIFFERENCES : None.</pre> <p>[lib/ps2ascii.ps 1.10]</p> </blockquote> <p><strong><a name="2004-06-19_0401"></a> 2004-06-19 04:01 Ray Johnston</strong></p> <blockquote> <pre> Add new CMaps and update older ones to latest. Bug #687470. Thanks to A. Cherepanov for providing part of the newer files.</pre> <p>[Resource/CMap/83pv-RKSJ-H 1.2, Resource/CMap/90ms-RKSJ-H 1.2, Resource/CMap/90ms-RKSJ-UCS2 1.1, Resource/CMap/90ms-RKSJ-V 1.2, Resource/CMap/90msp-RKSJ-H 1.1, Resource/CMap/90msp-RKSJ-V 1.1, Resource/CMap/90pv-RKSJ-H 1.2, Resource/CMap/90pv-RKSJ-UCS2 1.1, Resource/CMap/90pv-RKSJ-UCS2C 1.1, Resource/CMap/90pv-RKSJ-V 1.2, Resource/CMap/Add-RKSJ-H 1.2, Resource/CMap/Add-RKSJ-V 1.2, Resource/CMap/Adobe-CNS1-B5pc 1.1, Resource/CMap/Adobe-CNS1-ETen-B5 1.1, Resource/CMap/Adobe-CNS1-H-CID 1.1, Resource/CMap/Adobe-CNS1-H-Host 1.1, Resource/CMap/Adobe-CNS1-H-Mac 1.1, Resource/CMap/Adobe-CNS1-UCS2 1.1, Resource/CMap/Adobe-GB1-GBK-EUC 1.1, Resource/CMap/Adobe-GB1-GBpc-EUC 1.1, Resource/CMap/Adobe-GB1-H-CID 1.1, Resource/CMap/Adobe-GB1-H-Host 1.1, Resource/CMap/Adobe-GB1-H-Mac 1.1, Resource/CMap/Adobe-GB1-UCS2 1.1, Resource/CMap/Adobe-Japan1-90ms-RKSJ 1.1, Resource/CMap/Adobe-Japan1-90pv-RKSJ 1.1, Resource/CMap/Adobe-Japan1-H-CID 1.1, Resource/CMap/Adobe-Japan1-H-Host 1.1, Resource/CMap/Adobe-Japan1-H-Mac 1.1, Resource/CMap/Adobe-Japan1-PS-H 1.1, Resource/CMap/Adobe-Japan1-PS-V 1.1, Resource/CMap/Adobe-Japan1-UCS2 1.1, Resource/CMap/Adobe-Korea1-H-CID 1.1, Resource/CMap/Adobe-Korea1-H-Host 1.1, Resource/CMap/Adobe-Korea1-H-Mac 1.1, Resource/CMap/Adobe-Korea1-KSCms-UHC 1.1, Resource/CMap/Adobe-Korea1-KSCpc-EUC 1.1, Resource/CMap/Adobe-Korea1-UCS2 1.1, Resource/CMap/B5pc-H 1.1, Resource/CMap/B5pc-UCS2 1.1, Resource/CMap/B5pc-UCS2C 1.1, Resource/CMap/B5pc-V 1.1, Resource/CMap/CNS-EUC-H 1.1, Resource/CMap/CNS-EUC-V 1.1, Resource/CMap/EUC-H 1.2, Resource/CMap/EUC-V 1.2, Resource/CMap/Ext-RKSJ-H 1.2, Resource/CMap/Ext-RKSJ-V 1.2, Resource/CMap/GB-EUC-H 1.1, Resource/CMap/GB-EUC-V 1.1, Resource/CMap/GBK-EUC-H 1.2, Resource/CMap/GBK-EUC-UCS2 1.1, Resource/CMap/GBK-EUC-V 1.2, Resource/CMap/GBK2K-H 1.1, Resource/CMap/GBK2K-V 1.1, Resource/CMap/GBKp-EUC-H 1.1, Resource/CMap/GBKp-EUC-V 1.1, Resource/CMap/GBT-EUC-H 1.1, Resource/CMap/GBT-EUC-V 1.1, Resource/CMap/GBpc-EUC-H 1.1, Resource/CMap/GBpc-EUC-UCS2 1.1, Resource/CMap/GBpc-EUC-UCS2C 1.1, Resource/CMap/GBpc-EUC-V 1.1, Resource/CMap/H 1.2, Resource/CMap/HKdla-B5-H 1.1, Resource/CMap/HKdla-B5-V 1.1, Resource/CMap/HKdlb-B5-H 1.1, Resource/CMap/HKdlb-B5-V 1.1, Resource/CMap/HKgccs-B5-H 1.1, Resource/CMap/HKgccs-B5-V 1.1, Resource/CMap/HKm314-B5-H 1.1, Resource/CMap/HKm314-B5-V 1.1, Resource/CMap/HKm471-B5-H 1.1, Resource/CMap/HKm471-B5-V 1.1, Resource/CMap/HKscs-B5-H 1.1, Resource/CMap/HKscs-B5-V 1.1, Resource/CMap/Identity-H 1.2, Resource/CMap/Identity-V 1.2, Resource/CMap/KSC-EUC-H 1.1, Resource/CMap/KSC-EUC-V 1.1, Resource/CMap/KSCms-UHC-H 1.2, Resource/CMap/KSCms-UHC-HW-H 1.1, Resource/CMap/KSCms-UHC-HW-V 1.1, Resource/CMap/KSCms-UHC-UCS2 1.1, Resource/CMap/KSCms-UHC-V 1.2, Resource/CMap/KSCpc-EUC-H 1.1, Resource/CMap/KSCpc-EUC-UCS2 1.1, Resource/CMap/KSCpc-EUC-UCS2C 1.1, Resource/CMap/UCS2-90ms-RKSJ 1.1, Resource/CMap/UCS2-90pv-RKSJ 1.1, Resource/CMap/UCS2-B5pc 1.1, Resource/CMap/UCS2-ETen-B5 1.1, Resource/CMap/UCS2-GBK-EUC 1.1, Resource/CMap/UCS2-GBpc-EUC 1.1, Resource/CMap/UCS2-KSCms-UHC 1.1, Resource/CMap/UCS2-KSCpc-EUC 1.1, Resource/CMap/UniCNS-UCS2-H 1.2, Resource/CMap/UniCNS-UCS2-V 1.2, Resource/CMap/UniGB-UCS2-H 1.2, Resource/CMap/UniGB-UCS2-V 1.2, Resource/CMap/UniJIS-UCS2-H 1.2, Resource/CMap/UniJIS-UCS2-HW-H 1.1, Resource/CMap/UniJIS-UCS2-HW-V 1.1, Resource/CMap/UniJIS-UCS2-V 1.2, Resource/CMap/UniKS-UCS2-H 1.2, Resource/CMap/UniKS-UCS2-V 1.2, Resource/CMap/V 1.2]</p> </blockquote> <p><strong><a name="2004-06-18_1746"></a> 2004-06-18 17:46 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 5). DETAILS : pdf_set_charproc_attrs went out the pw array range, and caused an indeterministic behavior with Bug687044.ps . EXPECTED DIFFERENCES : Not detected on Windows, but the old revision was indeterministic.</pre> <p>[src/gdevpdti.c 1.33, src/gdevpdfx.h 1.94, src/gdevpdtt.c 1.83]</p> </blockquote> <p><strong><a name="2004-06-18_0700"></a> 2004-06-18 07:00 Dan Coby</strong></p> <blockquote> <pre> 687504 Enhancement: Imaging spot colors without using the SeparationColorNames parameter. DETAILS: The purpose of this enhancement is to provide an example of how to implement imaging spot colors without requiring that they be specified in advance via the SeparationColorNames setpagedevice parameter. Note: Spot colors are only supported on a few devices which have output file formats which allow for spot colors. These are currently the psdcmyk, spotcmyk, and xcfcmyk devices. This commit only implements this feature on the psdcmyk, spotcmyk and devicen devices. In order to implement this feature, a device needs to be able to allocate image buffer memory for each colorant and to detect when a new colorant is being used inside of a color space. The implementation has the following pieces: 1. The handling of the MaxSeparation setpagedevice parameter was extended. Previously this parameter was always set to one. For most devices it now indicates the number of colorants being used by the device. For most devices this is a fixed quantity, however for the psdcmyk device, this parameter can be used to tell the device to allocate image buffer memory for up to eight colorants. (The eight colorant limit is due to the fact that the psdcmyk device uses 8 bits per colorant and we currently have a 64 bit maximum pixel size.) 2. The devices already have a 'get_color_comp_index' routine which is used to query if a colorant is supported by the device. However this routine is used for both real components in color spaces and also for some special cases. For instance, the same halftone may be used either for a cyan or a red colorant. To handle this case, the halftoning setup logic will query the get_color_comp_index routine to check if cyan is supported by the device. If not then a query is made to see if the device supports red. By monitoring the names of the components passed to get_color_comp_index routine, a device can detect when a new spot color is being used. However it is necessary to be able to detect the special cases so that the device does not believe that it has a 'red' spot color. To do this the third parameter of the get_color_comp_index device proc was logically modified to indicate if a name represents a name actually in a color space or one of the special case situations. Previously this parameter was not being used. 3. The get_color_comp_index routine for the psdcmyk device was modified to look for new spot colors and to add then to its list of colorants if there was space available. Note: This also required that the psdcmyk device have its own structure descriptor, pointer enumeration and relocation procedures. The macro which was used to define the psdcmyk and psdrgb devices needed to be changed since the previous macro used the st_device_printer structure descriptor instead of the new structure descriptor for the psd devices.</pre> <p>[src/gdevdevn.c 1.20, src/gdevdevn.h 1.8, src/gdevnfwd.c 1.23, src/gdevperm.c 1.4, src/gdevpsd.c 1.14, src/gdevxcf.c 1.8, src/gscdevn.c 1.17, src/gscsepr.c 1.24, src/gscspace.c 1.16, src/gsdparam.c 1.14, src/gsht.c 1.19, src/gxcmap.c 1.21, src/gxcmap.h 1.9]</p> </blockquote> <p><strong><a name="2004-06-17_2142"></a> 2004-06-17 21:42 Ralph Giles</strong></p> <blockquote> <pre> Protect genarch's test for sizeof(long long) with and #ifdef HAVE_LONG_LONG since a number of platforms (particularly MSVC) do not support this type.</pre> <p>[src/genarch.c 1.11, src/stdint_.h 1.5]</p> </blockquote> <p><strong><a name="2004-06-17_1305"></a> 2004-06-17 13:05 Alex Cherepanov</strong></p> <blockquote> <pre> Round elements of Mask array to the nearest integer following implementation of AR4, AR5, AR6. Fix bug 687494 from customer 580.</pre> <p>[lib/pdf_draw.ps 1.82]</p> </blockquote> <p><strong><a name="2004-06-17_1114"></a> 2004-06-17 11:14 Igor Melichev</strong></p> <blockquote> <pre> Fix : Arithmetic errors could cause a function monotonity misrecongition. DETAILS : Bug 687511 "shadinds: infinite recursion". EXPECTED DIFFERENCES : Not detected on Windows. On Linux expecting a difference with : Altona-Testsuite_p2_S_x3.pdf S2_Digitalproof-Forum_x3k.pdf</pre> <p>[src/gsfunc0.c 1.21]</p> </blockquote> <p><strong><a name="2004-06-16_2001"></a> 2004-06-16 20:01 Alex Cherepanov</strong></p> <blockquote> <pre> Fix parsing of -2147483648.5, min_int followed by a fractional part. Fix bug 687500</pre> <p>[src/iscannum.c 1.9]</p> </blockquote> <p><strong><a name="2004-06-16_1122"></a> 2004-06-16 11:22 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Allow named object reference in the Action key of /ANN pdfmark. DETAILS : Bug 687386 "-dEmbedAllFonts does not work". It's a PDF 1.5 feature. We still incompletely support PDF 1.5 . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.40]</p> </blockquote> <p><strong><a name="2004-06-16_0927"></a> 2004-06-16 09:27 Ralph Giles</strong></p> <blockquote> <pre> Protect against cache values containing spaces. This shouldn't be a problem, the change is more for consistency.</pre> <p>[src/configure.ac 1.47]</p> </blockquote> <p><strong><a name="2004-06-16_0927"></a> 2004-06-16 09:27 Ralph Giles</strong></p> <blockquote> <pre> Try to use long long as a 64 bit type in the genarch fallback stdint definitions. Fix for bug 687514.</pre> <p>[src/genarch.c 1.10, src/stdint_.h 1.4]</p> </blockquote> <p><strong><a name="2004-06-15_2028"></a> 2004-06-15 20:28 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A wrong CFF string index randiomization. DETAILS : Bug 687507 "pdfwrite device closes with -15". 1. Randomization parameters for cff_string_index were computed wrongly, causing the search to skip some items. As a consequence, some strings were added to the table many times, causing a groth of the table while CFF size estimation iterations, and psf_write_type2_font returned error due to "offset > End_offset". 2. If an error happened writing a font after pdf_begin_fontfile is done, unconditionally call pdf_end_fontfile to provide a consistent stream state. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtb.c 1.24, src/gdevpsf2.c 1.31, src/lib.mak 1.186]</p> </blockquote> <p><strong><a name="2004-06-15_1527"></a> 2004-06-15 15:27 Alex Cherepanov</strong></p> <blockquote> <pre> Make pdf_dominant_rotation() return unknown text rotation for the file without text. It returned 0 rotation before, which excluded consideration of DSC comments later on. Fix bug 687515</pre> <p>[src/gdevpdf.c 1.95]</p> </blockquote> <p><strong><a name="2004-06-10_1909"></a> 2004-06-10 19:09 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 4). DETAILS : Recent changes about charproc variations caused an appearence of idle entries in the xref table. Those entries pointed to zero length objects and were never referred. Idle entries appeared due to the substream accumulator reserved an object id before entering a substream, but later the object (a charproc) was cancelled. This patch delays the reservation of an object id until we decide that the object won't be cancelled. Added a new argument of pdf_enter_substream for this purpose. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfi.c 1.53, src/gdevpdfm.c 1.39, src/gdevpdfx.h 1.93, src/gdevpdti.c 1.32]</p> </blockquote> <p><strong><a name="2004-06-10_1641"></a> 2004-06-10 16:41 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 80. DETAILS : Propagated error codes from is_color_monotonic, is_color_linear. Should fix the bug 687511 "shadinds: infitite recursion". EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.76]</p> </blockquote> <p><strong><a name="2004-06-09_2047"></a> 2004-06-09 20:47 Igor Melichev</strong></p> <blockquote> <pre> Fix (type 1 hinter) : an indeterministic bug in t1_hinter__simplify_representation. DETAILS : Bug 687508 "segfault with cvs head". 1. An old defect in the code : when contour_count is greater than hint_count, and the hinting is disabled by one axis, random hints could appear, causing indeterministic effects. 2. this->grid_fit_x ans this->grid_fit_y were erroneusely exchanged. EXPECTED DIFFERENCES : 72dpi : 036-01.ps Bug687044.ps Faktura.pdf kazmir.pdf RealCities.pdf test.pdf xgfddg.pdf</pre> <p>[src/gxhintn.c 1.50]</p> </blockquote> <p><strong><a name="2004-06-09_1207"></a> 2004-06-09 12:07 Igor Melichev</strong></p> <blockquote> <pre> Fix (type 1 hinter) : 1. Ever align the Y-coordinate of a glyph origin to pixels. 2. Improve the unaligned pole interpolation; 3. Set a waeaker angle threshold in t1_hinter__is_stem_hint_applicable. 4. Allow an offset fuzz in t1_hinter__is_stem_hint_applicable. 5. Align upper/lower horizontal stems by the upper/lower edge. 6. A dependency was missed in lib.mak . DETAILS : Bug 687419 "poor font rendering on X11 with gs 8.14". The intention of this change is to improve the rendering quality with TextAlphaBits > 1, but actually it modifies glyph rendering in all cases. 1. The test file of the bug 687419 shows that we had 3 inconsistent requirements : - the analigned glyph origin; - uniform glyph size; - and contrast stems. Since an uniform glyph height looks critical, we drop the analygned Y-coordinate of the glyph origin. In other words, now we ever align the Y-coordinate of the glyph origin to pixels. This also reduces the number of glyph raster variants in the cache. 2. The old interpolation algorithm could cause significant distortions with flex-like serifs, which are not marked with flex. The character 'L' in the test document of the bug 687419 demonstrates that. If the path goes outside the interpolation interval and have no turns, now we shift the "outer" parts rather than breaking the path at extremal poles. (We wanted this change a long ago but haven't got a strong reason for it.) 3. The threshold in t1_hinter__is_stem_hint_applicable changed from 1/3 to 9/10. This makes more stems to recognize. The reason for that is the same character "L". 4. Allowed a blue_fuzz offset t1_hinter__is_stem_hint_applicable. Debugged with comparefiles/tpc2.ps . 5. In the test file of the bug 687419 the small font has no upper alignment zone for lowercase. This caused an uniform glyph height due to wide and norrow horizontal stems aligned ocasionally by top or bottom. Implemented a choice of the aligned edge depending on the Y-coordinate of stem middle relative to the glyph middle. 6. gxhintn_h was defined in lib.mak after it is used at once. EXPECTED DIFFERENCES : Almost all comparefiles render differently.</pre> <p>[src/gxchar.c 1.43, src/gxhintn.c 1.49, src/lib.mak 1.185, src/gxhintn.h 1.20]</p> </blockquote> <p><strong><a name="2004-06-08_1142"></a> 2004-06-08 11:42 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Merge equal ExtGState objects. DETAILS : Bug 687487 "(pdfwrite) redundant ExtGState objects". Now we represent ExtGState objects as cos_dict_t instances, and perform a full comparizon before writing them into the output PDF. Redundant equal objects are being substituted and skipped. This patch consists of 4 parts : 1. Creting an ExtGstate object, replaced old calls to stream functions with calls to cos_dict_t functions. 2. Implemented the comparizon/substitution logic in pdf_end_gstate. 3. pdf_prepare_drawing now doesn't pass keys to pdf_update_halftone, pdf_update_transfer, pdf_write_transfer_map, because we don't want them to become a part of a value. Instead that we made them to be keys of the cos_dict_t instance. 4. Defined new functions cos_dict_put_c_key_bool and cos_dict_put_string_copy to simplify the new code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.c 1.53, src/gdevpdfo.c 1.30, src/gdevpdfo.h 1.19]</p> </blockquote> <p><strong><a name="2004-06-03_1712"></a> 2004-06-03 17:12 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 3). DETAILS : Must check FontMatrix when deciding about same charproc. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdti.c 1.31]</p> </blockquote> <p><strong><a name="2004-06-02_1745"></a> 2004-06-02 17:45 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : 1. After used a process color, continue using it for same client color space. 2. A bug in pdf_set_initial_color could miss some color commands. DETAILS : 1. Bug 687197 "ps2pdf creates incorrect PDF". Defined nad maintained new flags pdev->fill_used_process_color and pdev->stroke_used_process_color for vector devices. The function pdf_reset_color use them when the cclient color space isn't embeddable. 2. Occasionally found that pdf_set_initial_color set saved colors to pdev->vg_initial rather than to argument pointers. This could loose some color commands with a small probability, so that some objects could get a wrong color. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfb.c 1.22, src/gdevpdfd.c 1.40, src/gdevpdfg.c 1.52, src/gdevpdfg.h 1.32, src/gdevpdfp.c 1.38, src/gdevpdtt.c 1.82, src/gdevpdfx.h 1.92, src/gdevvec.h 1.13]</p> </blockquote> <p><strong><a name="2004-06-02_1319"></a> 2004-06-02 13:19 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : ConvertCMYKImagesToRGB crashed. DETAILS : Bug 687428 "ConvertCMYKImagesToRGB does not produce a PDF-File". It made a pointer from global memory to C stack. Fixed with allocating the structure dinamically. It produces a small garbage, which is not critical in pdfwrite. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpsdi.c 1.27]</p> </blockquote> <p><strong><a name="2004-06-02_1214"></a> 2004-06-02 12:14 Igor Melichev</strong></p> <blockquote> <pre> Fix : 'midpoint' formula was wrong. DETAILS : Bug 687463 "The 'midpoint' formula is wrong". EXPECTED DIFFERENCES : I didn't detect any on Windows. After recent changes this stuff works only with curves, which can't flatten with 2^12 segments, and which are not a part of a shading, so likely the probability of a difference is small.</pre> <p>[src/gxpflat.c 1.41, src/gxshade6.c 1.75]</p> </blockquote> <p><strong><a name="2004-06-02_0037"></a> 2004-06-02 00:37 Ralph Giles</strong></p> <blockquote> <pre> Correct a typo. Thanks to Russell for catching this one.</pre> <p>[doc/Make.htm 1.76]</p> </blockquote> <p><strong><a name="2004-06-01_2113"></a> 2004-06-01 21:13 Dan Coby</strong></p> <blockquote> <pre> Fix for 687477 Bad incremental update to a PDF file. DETAILS: The given test file had a bad incremental update. This update has two problems: 1. The trailer dict only had a Prev entry. None of the required entries were present. To fix this problem, entries from previous trailer dicts are placed into the initial trailer dict if there is no entry with the same key in the initial trailer dict. 2. The update had an xref table with two entries. One of them was bad. (Not a very good percentage.) To fix this problem, all entries in the composite xref table are scanned to verify that they point to a valid objects. If not then the rebuild logic is used to attempt to recover the xref data. This can be disabled by adding -dNoVerifyXref to the command line. In most cases, the verification time is not noticeable but I did find a file with 104,000 xref entries and it took about 2 seconds to verify the xref table.</pre> <p>[lib/pdf_base.ps 1.43, lib/pdf_main.ps 1.87, lib/pdf_rbld.ps 1.7]</p> </blockquote> <p><strong><a name="2004-06-01_1720"></a> 2004-06-01 17:20 Igor Melichev</strong></p> <blockquote> <pre> Fix : A Cygwin/gcc warning. DETAILS : The prefious patch appeared incomplete. Now fixing. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfx.h 1.91]</p> </blockquote> <p><strong><a name="2004-06-01_1706"></a> 2004-06-01 17:06 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 2). DETAILS : This is a final step of fixing the bug 687489 "pdfwrite creates invalid Type3 font -- missing characters". This patch provides a check whether a color was changed while a PS charproc interpretation. A color command is written into the PDF charproc if and only if the PS charproc changed the color. This patch discovers a bug in Adobe Acrobat Reader 5 : with the test document of the bug 687489 it paints an "invisible" text in the 4th page. That text isn't visible when viewing with Adobe reader 6 and with GS. The text is painted with a white color, but AR 5 erroneusly paints it with black. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.39, src/gdevpdfg.c 1.51, src/gdevpdfg.h 1.31, src/gdevpdtt.c 1.81]</p> </blockquote> <p><strong><a name="2004-06-01_1703"></a> 2004-06-01 17:03 Igor Melichev</strong></p> <blockquote> <pre> High level devices may need a device color while executing stringwidth. DETAILS : This is second step of fixing the bug 687489 "pdfwrite creates invalid Type3 font -- missing characters". The problem happens due to the old code could run a charproc while executing a stringwidth, when device color is not evaluated. This patch provides the device color loading with no dependence on the text operation. dev_proc(dev, text_begin) now receives a device color in any case. THIS IS AN INCOMPATIBLE CHANGE : if an old device depends on a device color ability, it will malfunction. EXPECTED DIFFERENCES : None.</pre> <p>[src/gstext.c 1.18]</p> </blockquote> <p><strong><a name="2004-06-01_1342"></a> 2004-06-01 13:42 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued). DETAILS : This is a preparation for fixing the bug 687489 "pdfwrite creates invalid Type3 font -- missing characters". The problem happens due to the old code could run a charproc while executing a stringwidth, when the PDF viewer state isn't syncronized with the PS graphic state. We don't synchronize in this case because stringwidth doesn't paint. Our intention is to know whether a charproc changes graphic state parameters : current color, line width, etc. For doing so we need (1) to save the viewer state in the viewer state stack, and then (2) synchronize with the PS graphic state without writing commands to the PDF. This patch does provide (1) but does not implement (2) because we want to check the change (1) for no regressions. The change (2) will be a separate step. Saving a viewer state in a stack when entering a charproc was contributed with the recent patch http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004507.html as an improvement of pdf_enter_substream, which was called from pdf_install_charproc_accum called from pdf_text_set_cache. In other words, the viewer state saving was deferred until setcachedevice/setcharwidth. However we need to save the viewer state in the beginning of a PS charproc. This patch moves the call to pdf_enter_substream from pdf_install_charproc_accum to the TEXT_PROCESS_RENDER branch of pdf_text_process. We believe that the new logic is more straight : we start the charproc stream accumulation immediately before the PS interpreter enters a charproc interpretation. Minor changes : 1. Defined pdf_start_charproc_accum as a symmetric one for pdf_end_charproc_accum. 2. Renamed pdf_install_charproc_accum into pdf_set_charproc_attrs. 3. Improved the argument list of pdf_prepare_text_drawing. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdti.c 1.30, src/gdevpdfx.h 1.90, src/gdevpdtt.c 1.80]</p> </blockquote> <p><strong><a name="2004-06-01_0237"></a> 2004-06-01 02:37 Alex Cherepanov</strong></p> <blockquote> <pre> Aviod a PostScript error in ps2ascii when the source file uses composite fonts. For now, dump the strings in the unmodified encoding when the corresponding font is composite. Fix bug 687466.</pre> <p>[lib/ps2ascii.ps 1.9]</p> </blockquote> <hr> <h2><a name="Version8.30"></a>Version 8.30 (2004-05-29)</h2> <p> This is an beta release of the development tree. It contains numerous new features and is made available for those interested in testing out the new version before it becomes the next stable release. <p> New features in this version : <ul> <li><p> Topological grid fitting, an original method developed for Ghostscript by Dr. Igor V. Melichev, improves the rendering of True Type fonts at small resolutions. See the documentation for <a href="Language.htm#GridFitTT">GridFitTT</a> for information on this feature. <li><p> The PDF writer now implements PDF 1.4 encryption. See the <a href="Ps2pdf.htm#Encryption">encryption parameter</a> documentation for more information. <li><p> A new rendering method for shadings, developed for Ghostscript by Dr. Igor V. Melichev, improves the quality and performance of rasterization on continuous tone devices. The new method allows hardware or software acceleration with help of customizable routines for filling areas with a linearly varying color. functions. <li><p> This version contains the first release of Rinkj, an experimental new driver for some inkjet printers using ETS screening. See the <a href="Devices.htm#Rinkj">Rinkj</a> section for more information. <li><p> We now support PDF 1.5 files, including the new compression and encryption modes. <li><p> We have beta support for Jpeg2000 compressed images, using the JasPer compression library. This is only enabled as part of the default build in the autoconf (POSIX) build system in this release. </ul> <p> The following <a href="http://bugs.ghostscript.com/">bug</a> numbers were open at the time of the last release: <blockquote> 405501, 414947, 430175, 446344, 456692, 458780, 463688, 465936, 487460, 487953, 493348, 509829, 513731, 514194, 526099, 526491, 530011, 535366, 535932, 542629, 555072, 558151, 572865, 578865, 592160, 592837, 601336, 602263, 603934, 605830, 607850, 610478, 611898, 614298, 617523, 626295, 634036, 634358, 645316, 651644, 667301, 669654, 674417, 674418, 677324, 677430, 680301, 681469, 685335, 686747, 686750, 686752, 686816, 686819, 686824, 686833, 686834, 686841, 686842, 686843, 686853, 686860, 686863, 686865, 686867, 686873, 686889, 686896, 686897, 686902, 686904, 686919, 686930, 686936, 686937, 686954, 686956, 686958, 686963, 686980, 686996, 686999, 687011, 687012, 687013, 687020, 687021, 687029, 687038, 687039, 687050, 687063, 687066, 687072, 687079, 687084, 687085, 687086, 687093, 687095, 687102, 687105, 687108, 687110, 687122, 687123, 687125, 687137, 687145, 687146, 687155, 687157, 687163, 687168, 687171, 687174, 687179, 687181, 687193, 687196, 687197, 687203, 687211, 687214, 687219, 687221, 687229, 687230, 687231, 687243, 687251, 687257, 687259, 687271, 687275, 687280, 687289, 687295, 687297, 687298, 687303, 687304, 687314, 687316, 687322, 687324, 687325, 687327, 687331, 687341, 687342, 687345, 687346, 687355, 687360, 687364, 687369, 687373, 687375, 687380, 687386, 687388, 687392, 687394, 687395, 687397, 687398, 687399, 687401, 687403, 687406, 687407, 687410, 687411, 687412, 687414, 687419, 687421, 687424, 687426, 687428, 687434, 687435, 687436, 687437, 687438, 687440, 687441, 687442, 687444, 687445, 687446, 687448, 687451, 687452, 687454, 687458, 687459, 687460, 687461, 687463, 687465, 687466, 687467, 687468, 687470, 687471, 687473, 687474, 687475, 687476, 687477, 687479, 687480, 687481, 687484, 687485, 687486, 687487, 687489, 687490, 687491. </blockquote> <h3><a name="8.30_Incompatible_changes"></a>Incompatible changes</h3> <p> No known incompatible changes at this point <h3><a name="8.30_changelog"></a>Changelog</h3> <!-- generated from: cvs2cl --utc -T --follow trunk --delta gs8_12:HEAD -U AUTHORS --xml -f doc/changelog.xml --> <p><strong><a href="2004-05-31_0602"></a> 2004-05-31 06:02 Dan Coby</strong></p> <blockquote> <pre> Correct various compiler warnings from MSVC and gcc. Fix for 687441.</pre> <p>[src/gdevdevn.h1.7, src/gdevdevn.c 1.19, src/gdevpsd.c 1.13, src/gsequivc.c 1.2]</p> </blockquote> <p><strong><a name="2004-05-31_0534"></a> 2004-05-31 05:34 Ralph Giles</strong></p> <blockquote> <pre> JPXDecode support is only enabled for the autoconf build. Mention this in the release notes, and add some brief notes to the MSVC makefile about how to make it build.</pre> <p>[doc/News.htm 1.149, src/msvc32.mak 1.57]</p> </blockquote> <p><strong><a name="2004-05-31_0508"></a> 2004-05-31 05:08 Ralph Giles</strong></p> <blockquote> <pre> Update the open bug list in the release notes.</pre> <p>[doc/News.htm 1.148]</p> </blockquote> <p><strong><a name="2004-05-30_0950"></a> 2004-05-30 09:50 Russell Lang</strong></p> <blockquote> <pre> Enable separable_and_linear and separable for the display device. Fixes bug #687442. DETAILS: Enable separable_and_linear for gray, RGB and CMYK formats. The display device needs to explicitly call check_device_separable because it is closed and reopened when the callback is set, which causes linear_and_separable to be reset. Set the gray_index which is not set by check_device_separable. Prevent the unimplemented DISPLAY_ALPHA_FIRST and DISPLAY_ALPHA_LAST from being used. Make it clear that the display_map_rgb_color_rgb and display_map_color_rgb_rgb functions only work with 8bits/pixel.</pre> <p>[src/gdevdsp.c 1.22]</p> </blockquote> <p><strong><a name="2004-05-29_2107"></a> 2004-05-29 21:07 Raph Levien</strong></p> <blockquote> <pre> Added more news items, in preparation for 8.30 release.</pre> <p>[doc/News.htm 1.147]</p> </blockquote> <p><strong><a name="2004-05-29_0219"></a> 2004-05-29 02:19 Ralph Giles</strong></p> <blockquote> <pre> Relocate the gxhldevc_h macro out of order so all its dependencies are available.</pre> <p>[src/lib.mak 1.184]</p> </blockquote> <p><strong><a name="2004-05-29_0210"></a> 2004-05-29 02:10 Ralph Giles</strong></p> <blockquote> <pre> Correct a dependency typo.</pre> <p>[src/lib.mak 1.183]</p> </blockquote> <p><strong><a name="2004-05-29_0121"></a> 2004-05-29 01:21 Ralph Giles</strong></p> <blockquote> <pre> Update documenation dates and version category for release.</pre> <p>[doc/API.htm 1.42, doc/Bug-form.htm 1.40, doc/Bug-info.htm 1.39, doc/C-style.htm 1.46, doc/Commprod.htm 1.31, doc/Copying.htm 1.30, doc/DLL.htm 1.34, doc/Deprecated.htm 1.11, doc/Details8.htm 1.6, doc/Develop.htm 1.134, doc/Devices.htm 1.77, doc/Drivers.htm 1.46, doc/Fonts.htm 1.41, doc/Helpers.htm 1.34, doc/History1.htm 1.30, doc/History2.htm 1.30, doc/History3.htm 1.30, doc/History4.htm 1.30, doc/History5.htm 1.32, doc/History6.htm 1.47, doc/History7.htm 1.35, doc/History8.htm 1.10, doc/Htmstyle.htm 1.35, doc/Install.htm 1.45, doc/Issues.htm 1.40, doc/Language.htm 1.86, doc/Lib.htm 1.33, doc/Maintain.htm 1.41, doc/Make.htm 1.75, doc/New-user.htm 1.50, doc/News.htm 1.146, doc/Projects.htm 1.57, doc/Ps-style.htm 1.28, doc/Ps2epsi.htm 1.32, doc/Ps2pdf.htm 1.68, doc/Psfiles.htm 1.51, doc/Readme.htm 1.55, doc/Release.htm 1.85, doc/Source.htm 1.30, doc/Tester.htm 1.30, doc/Testing.htm 1.25, doc/Unix-lpr.htm 1.30, doc/Use.htm 1.109, doc/Xfonts.htm 1.30, man/dvipdf.1 1.28, man/font2c.1 1.28, man/gs.1 1.29, man/gslp.1 1.28, man/gsnd.1 1.28, man/pdf2dsc.1 1.27, man/pdf2ps.1 1.29, man/pdfopt.1 1.27, man/pf2afm.1 1.28, man/pfbtopfa.1 1.29, man/printafm.1 1.28, man/ps2ascii.1 1.27, man/ps2epsi.1 1.26, man/ps2pdf.1 1.33, man/ps2pdfwr.1 1.32, man/ps2ps.1 1.35, man/wftopfa.1 1.28, src/gscdef.c 1.43, src/version.mak 1.70]</p> </blockquote> <p><strong><a name="2004-05-29_0111"></a> 2004-05-29 01:11 Ralph Giles</strong></p> <blockquote> <pre> Add new rinkj driver files to the index in Develop.htm.</pre> <p>[doc/Develop.htm 1.133]</p> </blockquote> <p><strong><a name="2004-05-28_2358"></a> 2004-05-28 23:58 Raph Levien</strong></p> <blockquote> <pre> Add sample setup file for Rinkj driver, more documentation.</pre> <p>[doc/Devices.htm 1.76, lib/rinkj-2200-setup 1.1]</p> </blockquote> <p><strong><a name="2004-05-28_2350"></a> 2004-05-28 23:50 Raph Levien</strong></p> <blockquote> <pre> Adds basic documentation for Rinkj driver, update copyright banners.</pre> <p>[doc/Devices.htm 1.75, src/rinkj/evenbetter-rll.c 1.2, src/rinkj/evenbetter-rll.h 1.2, src/rinkj/rinkj-byte-stream.c 1.2, src/rinkj/rinkj-byte-stream.h 1.2, src/rinkj/rinkj-config.c 1.2, src/rinkj/rinkj-config.h 1.2, src/rinkj/rinkj-device.c 1.2, src/rinkj/rinkj-device.h 1.2, src/rinkj/rinkj-dither.c 1.2, src/rinkj/rinkj-dither.h 1.2, src/rinkj/rinkj-epson870.c 1.2, src/rinkj/rinkj-epson870.h 1.2, src/rinkj/rinkj-screen-eb.c 1.2, src/rinkj/rinkj-screen-eb.h 1.2]</p> </blockquote> <p><strong><a name="2004-05-28_2326"></a> 2004-05-28 23:26 Dan Coby</strong></p> <blockquote> <pre> This change implements "687431 Add determining equivalent CMYK colors for spot colors". This change currently only affects the psdcmyk device. DETAILS: For a description of the implementation see the comments at the beginning of gsequivc.c. In addition to the comments in gsequivc.c, the gs_separation structure was changed to simplify it. The gs_separation_info structure was removed and the names filed moved into the gs_separations structure.</pre> <p>[src/devs.mak 1.114, src/gdevdevn.c 1.18, src/gdevdevn.h 1.6, src/gdevprn.c 1.16, src/gdevpsd.c 1.12, src/gsequivc.c 1.1, src/gsequivc.h 1.1]</p> </blockquote> <p><strong><a name="2004-05-28_2309"></a> 2004-05-28 23:09 Ralph Giles</strong></p> <blockquote> <pre> Use ST_MTIME instead of the ctime to determine the date of the last baseline update. Partial fix for bug 687481.</pre> <p>[toolbin/tests/gscheck_raster.py 1.12]</p> </blockquote> <p><strong><a name="2004-05-28_2302"></a> 2004-05-28 23:02 Raph Levien</strong></p> <blockquote> <pre> Initial commit of rinkj (resplendent inkjet) drivers, using ETS screening.</pre> <p>[src/devs.mak 1.113, src/gdevrinkj.c 1.1, src/rinkj/evenbetter-rll.c 1.1, src/rinkj/evenbetter-rll.h 1.1, src/rinkj/rinkj-byte-stream.c 1.1, src/rinkj/rinkj-byte-stream.h 1.1, src/rinkj/rinkj-config.c 1.1, src/rinkj/rinkj-config.h 1.1, src/rinkj/rinkj-device.c 1.1, src/rinkj/rinkj-device.h 1.1, src/rinkj/rinkj-dither.c 1.1, src/rinkj/rinkj-dither.h 1.1, src/rinkj/rinkj-epson870.c 1.1, src/rinkj/rinkj-epson870.h 1.1, src/rinkj/rinkj-screen-eb.c 1.1, src/rinkj/rinkj-screen-eb.h 1.1]</p> </blockquote> <p><strong><a name="2004-05-28_0708"></a> 2004-05-28 07:08 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Wrong processing of a big CIDToGIDMap. DETAILS : Bug 687471 problem with japanese fonts EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_font.ps 1.66]</p> </blockquote> <p><strong><a name="2004-05-27_1905"></a> 2004-05-27 19:05 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : 1. Implementing a dynamic recongnition for Type 3 charproc variations; 2. Bug : Viewer state could desynchronize when entering a charproc accumulation. DETAILS : Bug 687472 "barcode wrongly converted to type3 font". Type 3 glyph variations may appear if BuildChar uses setcharwidth. If a charproc uses setcharwidth, we perform the charproc accumulation for each character occurance, and compare the accumulated stream with older ones if they exist. In the case of exact equality (including the character name and character code), the old charproc is used. Othervise we embed a new one. If the character code was used with another charproc, we create another PDF font to resolve the conflict. Thus a single PS Type 3 font may convert into several PDF Type 3 fonts, and the text may be broken into smaller pieces. Particularly this happens with the test file of the bug 687472. Viewers must account that implementing the text serchability. A new array pdfont->u.simple.s.type3.cached is used to remember whether a charproc uses setcachedevice[2]. If a character used it at ones, we assume that all further its occurances to do same. We think that this assumption is implied by PLRM. Viewer state was not saved when entering a charproc accumulation, and was not restored after exiting it (a bug). This could cause wrong object attributes and excessive commands written into PDF. This patch fixes that. Some PDFs become longer due to excessive ExtGState objects generated for dropped copies of charprocs. Opened a new bug 687487 for tracking this issue. EXPECTED DIFFERENCES : An unimportant difference with pdfwrite -r72 : 136-01.ps prob1.pdf tpc2.ps xes2ps-problem.pdf An unimportant difference with pdfwrite -r300 : 260-01.ps tpc2.ps xes2ps-problem.pdf</pre> <p>[src/gdevpdf.c 1.94, src/gdevpdfg.c 1.50, src/devs.mak 1.112, src/gdevpdfg.h 1.30, src/gdevpdfj.c 1.31, src/gdevpdfu.c 1.52, src/gdevpdfx.h 1.89, src/gdevpdte.c 1.59, src/gdevpdtf.c 1.36, src/gdevpdtf.h 1.22, src/gdevpdti.c 1.29, src/gdevpdtt.c 1.79, src/gdevpdtt.h 1.23]</p> </blockquote> <p><strong><a name="2004-05-27_1028"></a> 2004-05-27 10:28 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Delaying the charproc insertion until it is accumulated. DETAILS : This change is a part of the work on the bug 687472 "barcode wrongly converted to type3 font". Our intention is to recognize Type 3 glyph variations, which may appear if BuildChar uses setcharwidth. For the case of no error while charproc accumulation this change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtt.c 1.78, src/gdevpdfx.h 1.88]</p> </blockquote> <p><strong><a name="2004-05-27_1025"></a> 2004-05-27 10:25 Igor Melichev</strong></p> <blockquote> <pre> (pdfwrite) : Delaying the charproc insertion until it is accumulated. DETAILS : This change is a part of the work on the bug 687472 "barcode wrongly converted to type3 font". Our intention is to recognize Type 3 glyph variations, which may appear if BuildChar uses setcharwidth. For the case of no error while charproc accumulation this change should be algorithmically equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.93, src/gdevpdti.c 1.28]</p> </blockquote> <p><strong><a name="2004-05-27_0322"></a> 2004-05-27 03:22 Ralph Giles</strong></p> <blockquote> <pre> Handle some errors that could halt the regression run. DETAILS: When running a raster comparison, the test case generates a ShortDescription that includes the modification date of the baseline raster date. If no such file exists, the baseline gs is run to create an entry. However, if that insertion attempt fails, there is no baseline raster for reference. While the test case itself handled this properly, the ShortDescription logic did not, throwing an error that terminated the whole run. Also, makesum was returning '0' instead of None on failure, which was incompatible with the use of its return value as a dbm key. It now returns None in that case, and when it cannot stat the file argument at all.</pre> <p>[toolbin/tests/gscheck_raster.py 1.11, toolbin/tests/gssum.py 1.7]</p> </blockquote> <p><strong><a name="2004-05-26_1549"></a> 2004-05-26 15:49 Ray Johnston</strong></p> <blockquote> <pre> Fix reference count of overprint compositor so that it doesn't get freed too early. Fixes SEGV of bug #687425 for customer #1110. DETAILS: This only showed up when banding was being used. This only showed up when a high level image was being rendered from the clist since this installed a 'clipper' device on top of the overprint compositor. When the clipper device was closed, the finalization proc decremented the reference count for the 'target' device of the clipper which was the overprint compositor. When the overprint reference count was decremented to 0, it was freed even though it was being used by the clist renderer. EXPECTED DIFFERENCES: None.</pre> <p>[src/gxclrast.c 1.28]</p> </blockquote> <p><strong><a name="2004-05-26_0844"></a> 2004-05-26 08:44 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Wrong /Matrix from /BP pdfmark. DETAILS : Bug 687430 "Wrong transformation matrix with Form XObjects". Patch from sags5495 at hotmail dot com (SaGS), adopted by igorm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.38]</p> </blockquote> <p><strong><a name="2004-05-26_0410"></a> 2004-05-26 04:10 Dan Coby</strong></p> <blockquote> <pre> Log message: Revised fix for 687418 WTS does not work with bitcmyk driver. DETAILS: The changes in this revised fix are pretty extensive. Note: This patch includes several items from Russell Lang. I am including these since they are required for the proper execution of the patch and it does not seem reasonable to require possible testers or reviewers to have to track down and install these patches separately. The list of changes includes: 1. Added logic to check_device_separable to also set the gray_index value. This suggestion came from Russell Lang. 2. Add verification that a colorants bits are consecutive. (from Russell Lang in: http://www.ghostscript.com/pipermail/gs-code-review/2004-May/004501.html 3. Changes to gx_default_encode_color and gx_default_decode_color to use position and bit count info from the device's color_info data. (Also from Russell Lang in the previously mentioned submission.) (See the comments in item 21 below about the gx_default_decode_color routine.) 4. Included test routines. (Also from Russell Lang in the previously mentioned submission.) 5. Added calls to check_device_separable prior to calls to the various 'fill_in_procs' routines (gx_device_fill_in_procs, gx_forward_fill_in_procs, fill_in_procs). The fill_in_procs routines use the separable information in choosing default routines for the encode_color and decode_color routines. Thus we have a chicken and egg problem since check_device_separable also uses the device's encode_color routine. The test routines from Russell were a great help in debugging Also various changes that were found while testing this patch: 6. The various color deskjet drivers (gdevcdj.c) was incorrectly setting the dither_grays and dither_colors values to 5 instead of 256. (I have no idea why.) The max_gray and max_color values were set to being set correctly to 255. 7. The color deskjet devices (gdevcdj.c) were doing BG and UCR removal inside of the encode_color routines. These devices use the default color_mapping_procs which also do these tasks. The code in the encode_color_routine was removed since it could cause conflicts with the overprint routines. The code in the encode_color routine was also using a fixed BG/UCR logic (from PS level 2). 8. Corrected a problem in the color desk jet decode_color routine which was always returning zero for the black value. 9. Changed the casting for values assigned to the std_colorant_names field. Note: MSVC and gcc complain about different conditions. There does not seem to be a combination that will keep both happy. This set produces no complaints from gcc. 10. Corrected the setting of dither_grays and dither_colors for the devicen device. Previously this was being set to 1 when it should have been set to 256. Found by Russell Lang. 11. Modified check_device_separable to only check for appropriate values of the max_gray/dither_grays and max_color/dither_colors pairs only for gray/color devices. 12. Added check for encode_color routines which encode zero bits for a colorant. Previously this condition would have caused an infinitely in check_device_separable. Change suggested by Russell Lang. 13. Removed a previous call to set_linear_color_bits_mask_shift in gx_default_fill_in_procs. This has been logically replaced by the calls to check_device_separable which have been added. 14. Corrected a problem in the ppm_map_rgb_color in gdevpbm.c. This routine was calling gx_default_encode_color which requires 15. Corrected problem in pcx256 device which incorrectly setting the dither_grays and dither_colors values. 16. Removed the check_process_color_names routine from gdevpsd.c since it not used. 17. Modified the dci_alpha_values macro in gxdevcli.h. This macro was setting some devices as 'separable' but was not setting the related color_info fields (comp_shift, comp_bits, comp_mask). Now this macro sets a devices as 'unknown'. The check_device_separable routine will change this for devices which are separable. Devices which want to change their process color model need to either set themselves as 'unknown' and let check_device_separable handle things or else the device needs to setup its own values for separable color_info fields. 18. Added a call to check_device_separable into gdev_x_open in gdevxini.c. With this addition, the x11 device is detected as being sperable. This is need since the x11 device sets up a color map in gdev_x_open. Prior to this, the encode_color routine for he x11 device returns 0 regardless of its input. 19. Modified the uniprint device (gdevupd.c) and color laser jet devices (gdevcljc.) to use 256 instead of 5 for its dither_gray and dither_color values with devices that have 8 bits per colorant. This is appropriate since the the max_gray and max_color values are 255. (I do not know why these values were being set to 5. This same error was found in gdevcdj.c. My only guess is that it was a typo in gdevcdj.c. Since this device is recommended as an example of how to code a color raster device (in Devices.htm), the error was propogated into the other devices. 20. Added more comments to gxdevcli.h explaining the use of the gray_index, max_gray, dither_grays, max_color, and dither_colors fields in the device color_info structure. 21. Changed the gx_default_decode_color routine (again). Russell Lang created two revisions to this routine as part of his efforts on this task. However one version was slow but produced the desired results. The second version was faster but its output was slightly different. This revision produces the same output as the first version but does so without the while loops that slowed its operation. Note: There is another related submission from Russell Lang that is not included in this patch. This consists of changes to the display device for making it 'separable'. This change is needed for Igor's linear shading work. http://www.ghostscript.com/pipermail/gs-code-review/2004-May/004500.html</pre> <p>[src/gdevcdj.c 1.14, src/gdevcljc.c 1.7, src/gdevcmap.c 1.6, src/gdevdevn.c 1.17, src/gdevdevn.h 1.5, src/gdevdflt.c 1.23, src/gdevdsp.c 1.21, src/gdevmem.c 1.8, src/gdevp14.c 1.23, src/gdevp2up.c 1.6, src/gdevpbm.c 1.11, src/gdevpcx.c 1.7, src/gdevplnx.c 1.9, src/gdevpnga.c 1.9, src/gdevprn.c 1.15, src/gdevpsd.c 1.11, src/gdevrops.c 1.11, src/gdevupd.c 1.15, src/gdevxalt.c 1.11, src/gdevxcf.c 1.7, src/gdevxini.c 1.14, src/gsdevice.c 1.21, src/gslib.c 1.13, src/gxcmap.c 1.20, src/gxdevcli.h 1.32, src/gximag3x.c 1.16, src/gximage3.c 1.13, src/gxpcmap.c 1.12, src/zcolor.c 1.18, doc/Language.htm 1.85]</p> </blockquote> <p><strong><a name="2004-05-25_1041"></a> 2004-05-25 10:41 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Form XObject`s /BBox could contain reals in exponential format. DETAILS : Bug 687429 Form XObject`s /BBox may contain reals in exponential format. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.37]</p> </blockquote> <p><strong><a name="2004-05-25_0920"></a> 2004-05-25 09:20 Igor Melichev</strong></p> <blockquote> <pre> Fix an MSVC compiler warning. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdte.c 1.58]</p> </blockquote> <p><strong><a name="2004-05-24_2335"></a> 2004-05-24 23:35 Ralph Giles</strong></p> <blockquote> <pre> Add a missing header include for gsutil.h which provides the prototype for bytes_compare(). Corrects a gcc warning.</pre> <p>[src/devs.mak 1.111, src/gdevpdte.c 1.57]</p> </blockquote> <p><strong><a name="2004-05-24_1756"></a> 2004-05-24 17:56 Dan Coby</strong></p> <blockquote> <pre> Fix for 687453 Problem with overprinting and shading. DETAILS: The given test file is a PDF file. PDF allows for separate overprint parameters for stroke and fill operations. (There are also separate parameters for other conditions in PDF.) Usually this is handled by the PDF interpreter by calling either setfillstate or setstrokestate at the start of the handler for each operator. However this call was missing from the sh (shfill) handler.</pre> <p>[lib/pdf_draw.ps 1.81]</p> </blockquote> <p><strong><a name="2004-05-24_1221"></a> 2004-05-24 12:21 Alex Cherepanov</strong></p> <blockquote> <pre> Add /WhiteIsOpaque page device parameter to provide user interface to the corresponding bbox device flag. Fix a bug introduced in gdevbbox.c v.1.9 (for bug 645531) that left bdev->white and bdev->black uninitialized, resulting in black objects skipped as white. Fix bugs 687410, 687478</pre> <p>[src/gdevbbox.c 1.17, doc/Devices.htm 1.74]</p> </blockquote> <p><strong><a name="2004-05-20_1706"></a> 2004-05-20 17:06 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Add Encoding element even if the font has no glyph. DETAILS : Debugged with the test file of the bug 687464 "Problem converting from PS to PDF. 2 latin characters did not convert properly." : different PDFs generated with URW fonts and with Soft Horizon fonts rather none of them were embeded. The old code did not add a glyph to Encoding if the PS font has no glyph defined. Due to that, if the source encoding uses an instand glyph, the instandard glyph was not written to Differences, causing a standard glyph erroneusely appeared instead the instandard glyph. With this patch an Encoding element and a ToUnicode element are created in any case : either the glyph is defined in the PS font, or not. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdte.c 1.56]</p> </blockquote> <p><strong><a name="2004-05-20_0741"></a> 2004-05-20 07:41 Ralph Giles</strong></p> <blockquote> <pre> Apply a recursive 'configure' step to the autoconf build to generate required code for the jasper library. DETAILS: The jasper library also ships with an autoconf build framework for POSIX systems. Unfortunately, it relies on this framework to generate a header file with defines describing the local system. This header, located in jasper/src/libjasper/include/jas_config.h can be generated by hand from the jas_config.h.in template, but it must be available when we're directly compiling the source as part of Ghostscript. We could attempt to construct one of our own, but within the confines of an autoconf build, using jasper's native configure is more robust. We could also go ahead and use recursive make to build the library natively, but we would need a static makefile for non-autoconf builds. Jasper provides an alternate header, jas_config2.h for use with MSVC.</pre> <p>[src/configure.ac 1.46]</p> </blockquote> <p><strong><a name="2004-05-20_0734"></a> 2004-05-20 07:34 Ralph Giles</strong></p> <blockquote> <pre> Add the jasper include path when compiling the JPXDecode filter so the headers can be found if they're not already installed on the system. Required to compile in the jasper library source from a fresh distribution of the third-party library.</pre> <p>[src/int.mak 1.126, src/lib.mak 1.182]</p> </blockquote> <p><strong><a name="2004-05-19_1109"></a> 2004-05-19 11:09 Igor Melichev</strong></p> <blockquote> <pre> Documenting the new implementation of shadings.</pre> <p>[doc/News.htm 1.145]</p> </blockquote> <p><strong><a name="2004-05-18_1342"></a> 2004-05-18 13:42 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 79. DETAILS : Removed unused variables. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.74]</p> </blockquote> <p><strong><a name="2004-05-18_1107"></a> 2004-05-18 11:07 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 78. DETAILS : Implementing gx_color_map_procs::is_halftoned and use it in shadings to know whether linear color functions are applicable. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevp14.c 1.22, src/gdevplnx.c 1.8, src/gxcmap.c 1.19, src/gxcmap.h 1.8, src/gxshade6.c 1.73]</p> </blockquote> <p><strong><a name="2004-05-18_1036"></a> 2004-05-18 10:36 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 78. DETAILS : Implementing gx_color_map_procs::is_halftoned and use it in shadings to know whether linear color functions are applicable. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevp14.c 1.21]</p> </blockquote> <p><strong><a name="2004-05-18_0957"></a> 2004-05-18 09:57 Igor Melichev</strong></p> <blockquote> <pre> Documenting the new implementation of shadings.</pre> <p>[doc/Drivers.htm 1.45]</p> </blockquote> <p><strong><a name="2004-05-17_1727"></a> 2004-05-17 17:27 Ralph Giles</strong></p> <blockquote> <pre> Reword the description of the new shading implementation.</pre> <p>[doc/News.htm 1.144]</p> </blockquote> <p><strong><a name="2004-05-17_1224"></a> 2004-05-17 12:24 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 77 (release candidate). DETAILS : 1. A bug in is_quadrangle_color_linear caused an indeterministic choice of subdivision. 2. Provided a better order of filling wedges. 3. Mesh padding now stronger follows the V-boundary of a patch. EXPECTED DIFFERENCES : "442-01.ps" "446-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "self-intersect2.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai"</pre> <p>[src/gxshade6.c 1.72]</p> </blockquote> <p><strong><a name="2004-05-13_1524"></a> 2004-05-13 15:24 Alex Cherepanov</strong></p> <blockquote> <pre> Remove unused label. Partial fix for bug 687441.</pre> <p>[src/gdevwpr2.c 1.16]</p> </blockquote> <p><strong><a name="2004-05-13_1303"></a> 2004-05-13 13:03 Igor Melichev</strong></p> <blockquote> <pre> Documenting the new implementation of shadings, step 76.</pre> <p>[doc/News.htm 1.143]</p> </blockquote> <p><strong><a name="2004-05-13_1252"></a> 2004-05-13 12:52 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 76. Switching new radial shadings on. Radial shadings render in 3...10 times faster. Radial shadings are not longer restricted with 8bpc. EXPECTED DIFFERENCES : "442-01.ps" "483-01.ps" "Clarke Tate Manns Chinese.ai" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 2(radial).ai" "STEUER-RollingMesh 3(Final).ai"</pre> <p>[src/gxshade4.h 1.35]</p> </blockquote> <p><strong><a name="2004-05-13_1246"></a> 2004-05-13 12:46 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 75. DETAILS : This is a continuation to the previous patch : 4. Optimized for constant color : Fix : pfs->monotonic_color was not properly restored. EXPECTED DIFFERENCES : "442-01.ps" "464-01.ps" "483-01.ps" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "STEUER-RollingMesh 1(linear).ai"</pre> <p>[src/gxshade6.c 1.71]</p> </blockquote> <p><strong><a name="2004-05-13_1140"></a> 2004-05-13 11:40 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 74. DETAILS : In the enabled code : 1. Non-linear color quadrangles are subdivided into quadrangles. This complies the color approximation with the specified smoothness. 2. Skipped quadrangles and triangles outside the clipping area. 3. Fixed the 'midpoint' formula. It was wrong and coused excessive subdivision. In the disabled code (NEW_RADIAL_SHADINGS 0 in gxshade4.h) : 1. Debugged Extensions. 2. mesh_padding and wedges with zero length sides were tested. 3. Skipped painting outside the clipping area. 4. Optimized for constant color. Known problems left : 1. With self-intersecting patches, outer wedges may paint in a wrong order. This can cause such dropout that a lower part of the patch penetrates through the upper part in single pixels. EXPECTED DIFFERENCES : "442-01.ps" "446-01.ps" "464-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "chilis_black.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "self-intersect2.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"</pre> <p>[src/gxshade1.c 1.31, src/gxshade4.h 1.34, src/gxshade6.c 1.70]</p> </blockquote> <p><strong><a name="2004-05-12_2133"></a> 2004-05-12 21:33 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 73. DETAILS : The new code is disabled with NEW_RADIAL_SHADINGS in gxshade4.h . The old implementation of the radial shading extensions appears incompatible with the tensor representation of the radial shading due to different spatial subdivision. Collisions at extension boundaries caused dropouts. Besides that, the old implementation can't handle the case in which circles contact each another and one circle is inside another. Also we suspect that with the old implementation the trailing extension can overlap the shading when represented as "triangles". This patch implements extensions with tensor patches. Rather they have a constant color, we need the wedge logics to work with them. Also we reworked the analyzis of special cases of mutual placement of the base circles. The new code works, but there are known problems : 1. Extensions to be tested systematically. 2. Debug mesh_padding and wedges with zero length sides. 3. Skip painting outside the clipping area. 4. Optimize for constant color. 5. Why "STEUER-RollingMesh 2(radial).ai-.pdf" generates so many triangles ? 6. Outer wedges may break the order of painting. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade1.c 1.30, src/gxshade4.h 1.33, src/gxshade6.c 1.69]</p> </blockquote> <p><strong><a name="2004-05-12_2012"></a> 2004-05-12 20:12 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 72. DETAILS : 1. Another continuation for the bug in LAZY_WEDGES of the step 65 : "color was desynchronized with vertices when filling a wedge." Previous attempts to fix it appear wrong. This one implements entirely different logics. The division count is now a property of a division point. 2. Fixed the wrong order of colors in ln 2800 in the function "triangles". EXPECTED DIFFERENCES : "442-01.ps" "483-01.ps"</pre> <p>[src/gxdtfill.h 1.26, src/gxshade4.h 1.32, src/gxshade6.c 1.68]</p> </blockquote> <p><strong><a name="2004-05-12_1808"></a> 2004-05-12 18:08 Jack Moffitt</strong></p> <blockquote> <pre> Fix regression reports (the previous commit accidentally did the exact opposite of what we wanted). Also, cleaned up the way the report is built so that it is much less confusing.</pre> <p>[toolbin/tests/run_nightly 1.26]</p> </blockquote> <p><strong><a name="2004-05-12_1537"></a> 2004-05-12 15:37 Alex Cherepanov</strong></p> <blockquote> <pre> Avoid a numeric exception; throw /rangecheck when .getbitsrect operator is invoked with raster width = 0. Fix bug 687223.</pre> <p>[src/zdevice.c 1.8]</p> </blockquote> <p><strong><a name="2004-05-12_1133"></a> 2004-05-12 11:33 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 72. DETAILS : 1. A continuation for the bug in LAZY_WEDGES of the step 65 : "color was desynchronized with vertices when filling a wedge." : open_wedge_median did not set l->from_last_side. 2. A bug : Color linearity check missed the shading function linearity check. Debugged with "MLC2\PROB322-shadings\Clarke Tate Manns Chinese-1.ai.pdf" (the big yellow radial gradient) and NEW_RADIAL_SHADINGS 1. EXPECTED DIFFERENCES : "442-01.ps" "464-01.ps" "483-01.ps" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "STEUER-RollingMesh 1(linear).ai"</pre> <p>[src/gxshade6.c 1.67]</p> </blockquote> <p><strong><a name="2004-05-12_0004"></a> 2004-05-12 00:04 Alex Cherepanov</strong></p> <blockquote> <pre> Fix some warnings about unused variables and undeclared functions generated by MSVC with warning level 3. Move the definition of WARNOPT and add ifdef's. Partial fix for bug 687441. [DETAILS] Although nmake overrides internal definitions when called from command line, it doesn't do so when the makefile is invoked from Development Studio.</pre> <p>[src/dwimg.c 1.11, src/dwimg.h 1.8, src/dwmain.c 1.16, src/dwmainc.c 1.18, src/dwtrace.h 1.6, src/gdevm64.c 1.2, src/gdevwdib.c 1.8, src/msvc32.mak 1.56, src/msvccmd.mak 1.19, src/unistd_.h 1.11]</p> </blockquote> <p><strong><a name="2004-05-11_2048"></a> 2004-05-11 20:48 Alex Cherepanov</strong></p> <blockquote> <pre> GCC with -ffast-math compiles ang/90. as ang*(1/90.), losing precission. This doesn't happen when the numeral is replaced with a non-const variable. So we define the variable to work around the GCC problem. Fix bug 687420.</pre> <p>[src/gsmisc.c 1.16]</p> </blockquote> <p><strong><a name="2004-05-11_2026"></a> 2004-05-11 20:26 Alex Cherepanov</strong></p> <blockquote> <pre> Ignore 0-length tables that occur in PDF files generated by Crystal. Fix bug 687457.</pre> <p>[lib/gs_ttf.ps 1.38]</p> </blockquote> <p><strong><a name="2004-05-11_1113"></a> 2004-05-11 11:13 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 70. DETAILS : Fixing a bug in fill_wedge_from_list_rec : wedge vertices can't identify by their coordinates, because dividing a short bar could get same coordinates as one of its end. wedge_vertex_list_elem_t::level now works for the identification. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.h 1.31, src/gxshade6.c 1.66]</p> </blockquote> <p><strong><a name="2004-05-11_1041"></a> 2004-05-11 10:41 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 69. DETAILS : Implementing radial shading with tensor shadings. The new code is disabled with NEW_RADIAL_SHADINGS in gxshade4.h . The new code works but it discovered a problem in fill_wedge_from_list_rec : wedge vertices can't identify by their coordinates. The problem appears an important bug to be fixed separately. EXPECTED DIFFERENCES : None.</pre> <p>[src/gspath.h 1.7, src/gspath1.c 1.9, src/gxshade1.c 1.29, src/gxshade4.h 1.30]</p> </blockquote> <p><strong><a name="2004-05-06_1906"></a> 2004-05-06 19:06 Dan Coby</strong></p> <blockquote> <pre> Correct a problem in the fix for 687418 detected by Russell Lang. Also make the routine check_device_separable public for use by the display device. The prototype is in gxdevice.h.</pre> <p>[src/gdevdflt.c 1.22, src/gxdevice.h 1.17]</p> </blockquote> <p><strong><a name="2004-05-06_1719"></a> 2004-05-06 17:19 Dan Coby</strong></p> <blockquote> <pre> Disable the fix for 687418. This is causing many errors in the regression tests. These need to be investigated.</pre> <p>[src/gdevdflt.c 1.21]</p> </blockquote> <p><strong><a name="2004-05-06_1626"></a> 2004-05-06 16:26 Jack Moffitt</strong></p> <blockquote> <pre> Repress the full report except on Mondays.</pre> <p>[toolbin/tests/run_nightly 1.25]</p> </blockquote> <p><strong><a name="2004-05-06_1401"></a> 2004-05-06 14:01 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 68. Switching linear color device fucntions on. EXPECTED DIFFERENCES : "442-01.ps" "446-01.ps" "464-01.ps" "478-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "BEST8-99-Path.fh7.pdf" "chilis_black.pdf" "chilis_red.pdf" "Clarke Tate Manns Chinese.ai" "gradmesh.ai" "Openhuis_pdf_zw.pdf" "self-intersect2.ps" "SmoothShading.pdf" "STEUER-RollingMesh 1(linear).ai" "STEUER-RollingMesh 3(Final).ai" "Testform.v1.0.2.pdf"</pre> <p>[src/gxshade4.h 1.29]</p> </blockquote> <p><strong><a name="2004-05-06_1325"></a> 2004-05-06 13:25 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 67. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Provided a consistency of 'unlenear' to 'is_color_linear' EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.65]</p> </blockquote> <p><strong><a name="2004-05-06_1303"></a> 2004-05-06 13:03 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 66. DETAILS : Improving the recognition of linear devices with a hack for a halftone check. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Debugged with pkmraw. This to be rivised by the color team. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.64]</p> </blockquote> <p><strong><a name="2004-05-06_1234"></a> 2004-05-06 12:34 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 65. DETAILS : A bug in LAZY_WEDGES : color was desynchronized with vertices when filling a wedge. The bug was not detected because the color difference appears small due to small wedges. It appears big with USE_LINEAR_COLOR_PROCS 1 with -r300 483-01.ps. EXPECTED DIFFERENCES : 300dpi : "442-01.ps" "446-01.ps" "464-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "gradmesh.ai" "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai" "442-01.ps" 72dpi: "442-01.ps" "446-01.ps" "483-01.ps" "483-05-fixed.ps" "483-05.ps" "gradmesh.ai" "SmoothShading.pdf" "STEUER-RollingMesh 3(Final).ai"</pre> <p>[src/gxshade6.c 1.63, src/gxshade4.h 1.28]</p> </blockquote> <p><strong><a name="2004-05-06_0841"></a> 2004-05-06 08:41 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 64. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Fixing various problems with linear color : 1. Clipping didn't work with linear color. 2. gx_default_fill_linear_color_scanline missed some clipping by X. 3. Zero smoothness caused an infinite recursion. 4. The number of device color components was wrong. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevdsha.c 1.9, src/gxclip.c 1.14, src/gxshade6.c 1.62]</p> </blockquote> <p><strong><a name="2004-05-06_0746"></a> 2004-05-06 07:46 Ralph Giles</strong></p> <blockquote> <pre> Limit the number of timing runs we're willing to do to detect the cache size, preventing an infinite loop if the os timing calls never measure appreciable elapsed time. After a patch from Patrick TJ McPhee. Bug 687095. DETAILS: It looks like there's a bug in some versions of FreeBSD which cause time_clear() to always return 0, even though the loop is being run. This is clearly incorrect behaviour of clock() on these systems, or the user is mistaken in debugging the problem, since we've been unable to reproduce. But in either case our code is arguably wrong. The later measurements will obviously not detect a nonlinearity if the timing loop continues to return 0. However, they will terminate at MAX_BLOCK (4MB) and so the misdetection isn't egregious. It was only the estimation of the measurement error that could loop forever.</pre> <p>[src/genarch.c 1.9]</p> </blockquote> <p><strong><a name="2004-05-06_0620"></a> 2004-05-06 06:20 Dan Coby</strong></p> <blockquote> <pre> Make check_device_separable private to avoid a warning from gcc.</pre> <p>[src/gdevdflt.c 1.20]</p> </blockquote> <p><strong><a name="2004-05-06_0549"></a> 2004-05-06 05:49 Dan Coby</strong></p> <blockquote> <pre> Fix for 687455. The overprint logic creates a temporary device which is used to initialize a set of procedures. This temp device is only paritally initialized. The partially initialized device is being set up as a forwarding device but the target device is not yet present. This created a problem when check_device_separable executed. This change sets the temp device to 'not separable' so check_device_separable does not try to do anything.</pre> <p>[src/gsovrc.c 1.5]</p> </blockquote> <p><strong><a name="2004-05-06_0519"></a> 2004-05-06 05:19 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 63. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Fixing various problems with linear color : 1. Applyed compiler independent data types int32_t. 2. Implemented ends_from_fa with X-independent gradients, because the decomposiotion by color linearity breaks at coordinates which are not trapezoid corners. Added a comment to gxdevcli.h to document it. 3. X-gradient denominator was wrong. 4. X-gradient numerator left wrong from the step 58. 5. gx_default_fill_linear_color_scanline ignored the clipping by X. 6. A_fill_region missed the path bbox. 7. Implemented is_color_linear for a proper subdivision by color. 8. decompose_linear_color now applies a linear color instead fill_triangle_wedge. See a comment in fill_triangle_wedge. Also for mesh_padding. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.24, src/gdevdsha.c 1.8, src/gdevnfwd.c 1.22, src/gxdevcli.h 1.31, src/gxdtfill.h 1.25, src/gxshade1.c 1.28, src/gxshade6.c 1.61]</p> </blockquote> <p><strong><a name="2004-05-06_0517"></a> 2004-05-06 05:17 Igor Melichev</strong></p> <blockquote> <pre> Implementing is_monotonic for cubic interpolation functions (continued 2). DETAILS : Some monotonic functions were not recognized. 1. Fix : A bug (identifier conflict) in clamp_poles, dimension_monotonity. 2. Fix : Allow the reversed order of boundaries (gsfunc0.c ln 980-983). EXPECTED DIFFERENCES : 464-01.ps</pre> <p>[src/gsfunc0.c 1.20]</p> </blockquote> <p><strong><a name="2004-05-05_2355"></a> 2004-05-05 23:55 Dan Coby</strong></p> <blockquote> <pre> Fix for 687418 WTS does not work with bitcmyk driver. This fix is applicable to most devices. DETAILS: WTS screening, overprinting, halftoning for more than five colorants and the fast halftoning logic need to be able to create gx_color_index values without using the encode_color routine. This only works if a device is 'separable'. However, by default, most devices indicate 'unknown'. This change implements a heuristic for checking if a device is separable. If so then it also determines the various related parameter values (comp_shift, comp_bits, comp_mask).</pre> <p>[src/gdevdflt.c 1.19]</p> </blockquote> <p><strong><a name="2004-05-05_2252"></a> 2004-05-05 22:52 Ralph Giles</strong></p> <blockquote> <pre> Document that we no longer support loading truetype CJK fonts directly from /Resources/CIDFont as worked in 7.0x for Japanese fonts. This has been replaced by the more general, if less convenience, cidfmap mechanism. Closes bug 686949.</pre> <p>[doc/Fonts.htm 1.40, doc/Use.htm 1.108]</p> </blockquote> <p><strong><a name="2004-05-05_0945"></a> 2004-05-05 09:45 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 62. DETAILS : 1. Implemented gx_cspace_is_linear_in_line and applied it for checking the stripe transversal color lnearity. 2. Generalized 'is_halftoned' to 'unlinear'. 3. is_color_span_v_linear must not apply when 'unlinear'. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . EXPECTED DIFFERENCES : None.</pre> <p>[src/gscspace.c 1.15, src/gxshade4.h 1.27, src/gxshade6.c 1.60]</p> </blockquote> <p><strong><a name="2004-05-05_0902"></a> 2004-05-05 09:02 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 61. DETAILS : 1. is_color_span_v_linear allows wider stripes. 2. quadrangle_color_change doesn't yield color_change_gradient with USE_LINEAR_COLOR_PROCS. Thus it prefers color_change_linear, allowing bigger quadrangles. Both changes improve the performance. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . In the enabled code removed redundant computations from quadrangle_color_change. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.59]</p> </blockquote> <p><strong><a name="2004-05-05_0901"></a> 2004-05-05 09:01 Igor Melichev</strong></p> <blockquote> <pre> Implementing is_monotonic for cubic interpolation functions (continued 1). DETAILS : 1. Fix : subcurve expression applied wrong signs to t01, t11. 2. Suppress small noize while computing a subcurve. Both changes recognize more monotonic curves. EXPECTED DIFFERENCES : 464-01.ps</pre> <p>[src/gsfunc0.c 1.19]</p> </blockquote> <p><strong><a name="2004-05-05_0635"></a> 2004-05-05 06:35 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 60. DETAILS : Define frac31 with int32_t to minimize compiler dependence. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . EXPECTED DIFFERENCES : None.</pre> <p>[src/gxdevcli.h 1.30, src/lib.mak 1.181]</p> </blockquote> <p><strong><a name="2004-05-04_2131"></a> 2004-05-04 21:31 Ralph Giles</strong></p> <blockquote> <pre> Replace locally-defined (u)int32 typedefs with the stdint_.h types now that they're universally available. This avoids conflict with typedefs that are pulled in from sys/types.h on some systems. Bug 687404.</pre> <p>[src/gdevupd.c 1.14]</p> </blockquote> <p><strong><a name="2004-05-04_1814"></a> 2004-05-04 18:14 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 59. DETAILS : Moved the device pointer from gs_fill_attributes to a separate argument in order to simplify the implementation of forwarding devices. A farwarding device 'clipper' works for almost all shadings. Also fixed a bug in middle_frac31_color from the previous patch. It was not detected because normally this function isn't called. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.23, src/gdevdsha.c 1.7, src/gdevnfwd.c 1.21, src/gxdevcli.h 1.29, src/gxdtfill.h 1.24, src/gxshade6.c 1.58]</p> </blockquote> <p><strong><a name="2004-05-04_1753"></a> 2004-05-04 17:53 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 58. DETAILS : Replaced frac32 with frac31 to represent negative color difference. We could do with frac32 and with additional arguments about the ending color, but we don't want the performance flaw. 31 bits should be enough precise. Also removed hacks about fitting negative differences into int32_t. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.22, src/gdevdsha.c 1.6, src/gdevnfwd.c 1.20, src/gxdevcli.h 1.28, src/gxdtfill.h 1.23, src/gxshade6.c 1.57]</p> </blockquote> <p><strong><a name="2004-05-02_2124"></a> 2004-05-02 21:24 Ralph Giles</strong></p> <blockquote> <pre> Add recent new files to the listing in the developer documentation.</pre> <p>[doc/Develop.htm 1.132]</p> </blockquote> <p><strong><a name="2004-05-02_2030"></a> 2004-05-02 20:30 Ralph Giles</strong></p> <blockquote> <pre> Add the JPXDecode implementation to the list of files in the documentation.</pre> <p>[doc/Develop.htm 1.131]</p> </blockquote> <p><strong><a name="2004-05-02_1937"></a> 2004-05-02 19:37 Ralph Giles</strong></p> <blockquote> <pre> Add a missing file to the testsuite documentation.</pre> <p>[doc/Testing.htm 1.24]</p> </blockquote> <p><strong><a name="2004-05-02_1926"></a> 2004-05-02 19:26 Ralph Giles</strong></p> <blockquote> <pre> Return the number of failures on exit so an external program can take action on the results. Previously, our tests always returned 0. ----------------------------------------------------------------------</pre> <p>[toolbin/tests/gstestutils.py 1.12]</p> </blockquote> <p><strong><a name="2004-05-02_1923"></a> 2004-05-02 19:23 Ray Johnston</strong></p> <blockquote> <pre> Remove dependency on python2.2. Tested with python 2.3.3. Primary problem was that calendar module no longer has a localtime member, used time instead.</pre> <p>[toolbin/tests/check_all.py 1.6, toolbin/tests/check_comments.py 1.4, toolbin/tests/check_dirs.py 1.9, toolbin/tests/check_docrefs.py 1.10, toolbin/tests/check_source.py 1.10, toolbin/tests/dump_testdb 1.6, toolbin/tests/get_baselines 1.3, toolbin/tests/gscheck_all.py 1.6, toolbin/tests/gscheck_fuzzypdf.py 1.8, toolbin/tests/gscheck_pdfwrite.py 1.20, toolbin/tests/gscheck_raster.py 1.10, toolbin/tests/make_testdb 1.12, toolbin/tests/make_two_pdfversions 1.8, toolbin/tests/make_two_versions 1.13, toolbin/tests/revert_baseline 1.12, toolbin/tests/revert_pdfbaseline 1.10, toolbin/tests/run_nightly 1.24, toolbin/tests/run_regression 1.13, toolbin/tests/testdiff 1.5, toolbin/tests/update_baseline 1.13, toolbin/tests/update_pdfbaseline 1.9]</p> </blockquote> <p><strong><a name="2004-05-02_1900"></a> 2004-05-02 19:00 Ralph Giles</strong></p> <blockquote> <pre> Avoid failing when testing.cfg isn't available. This allows check_all.py to be run on a fresh checkout just by passing --gsroot=. on the commandline. Previously this option could only be used to override a required version in testing.cfg</pre> <p>[toolbin/tests/gstestutils.py 1.11]</p> </blockquote> <p><strong><a name="2004-04-30_2231"></a> 2004-04-30 22:31 Ralph Giles</strong></p> <blockquote> <pre> Provide a dummy 'make check' target in the autoconf build. Some users have requested this, and it's available on the GPL 7.0x releases.</pre> <p>[src/Makefile.in 1.35]</p> </blockquote> <p><strong><a name="2004-04-29_1851"></a> 2004-04-29 18:51 Dan Coby</strong></p> <blockquote> <pre> Remove some more compiler warnings. Found by Igor. 687441.</pre> <p>[src/gdevpsd.c 1.10]</p> </blockquote> <p><strong><a name="2004-04-29_1618"></a> 2004-04-29 16:18 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 57. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . 1. Likely QUADRANGLES 1 appears unusefil. Documenting that. 2. Implementing mesh_padding with linear color. 3. Minor improvements to conmments. 4. Stronger conditions against color stairs in triangle_by_4, color_change_small. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxdevcli.h 1.27, src/gxshade4.h 1.26, src/gxshade6.c 1.56]</p> </blockquote> <p><strong><a name="2004-04-29_1347"></a> 2004-04-29 13:47 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 56. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . The previous patch appears incomplete. Now fixed. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.h 1.25]</p> </blockquote> <p><strong><a name="2004-04-29_1340"></a> 2004-04-29 13:40 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 55. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . Implemented a check whether the device halftones. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.55]</p> </blockquote> <p><strong><a name="2004-04-29_1238"></a> 2004-04-29 12:38 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 54. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . 1. Color computations were wrong. 2. clist didn't implement linear color functions. This patch stubs them, but fill_linear_color_trapesoid should write into clist. 3. The clipping rectangle was missed for shading Type 0, 5. It still has problems with clipping with 446-01.ps . Also likely we should replace frac32 with frac31 to provide signed values. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.21, src/gdevdsha.c 1.5, src/gdevnfwd.c 1.19, src/gxclist.c 1.13, src/gxdevcli.h 1.26, src/gxdtfill.h 1.22, src/gxshade1.c 1.27, src/gxshade4.c 1.26]</p> </blockquote> <p><strong><a name="2004-04-29_0614"></a> 2004-04-29 06:14 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 53. DETAILS : The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . This patch implements wedges with a linear color. USE_LINEAR_COLOR_PROCS 1 passed a simple test with ppmraw. Other devices are not yet supported due to problems with checking for a halftoning. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.20, src/gxdtfill.h 1.21, src/gxshade6.c 1.54]</p> </blockquote> <p><strong><a name="2004-04-29_0437"></a> 2004-04-29 04:37 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 52. DETAILS : Linear color passed a simple test with ppmraw, except wedges. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . This patch fixes numerows errors in the desabled code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.19, src/gdevdsha.c 1.4, src/gscspace.c 1.14, src/gxdtfill.h 1.20, src/gxshade6.c 1.53, src/lib.mak 1.180]</p> </blockquote> <p><strong><a name="2004-04-28_1641"></a> 2004-04-28 16:41 Dan Coby</strong></p> <blockquote> <pre> Fix for 687441 New: MSVC warnings. Correct some warning messages from MSVC.</pre> <p>[src/devs.mak 1.110, src/gdevpsd.c 1.9, src/gdevdevn.c 1.16, src/gdevdevn.h 1.4]</p> </blockquote> <p><strong><a name="2004-04-28_1524"></a> 2004-04-28 15:24 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 51. DETAILS : Colors were wrongly converted to frac32. Should do through device color. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . The new code is not debugged yet. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.52]</p> </blockquote> <p><strong><a name="2004-04-28_0939"></a> 2004-04-28 09:39 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 50. DETAILS : 1. gx_default_fill_linear_color_triangle wrongly checked for a large color span. 2. fill_linear_color_* procs were not set for clip devices. 3. cs_is_linear were defined with a wrong argument list. 4. Optimized the prototype of cs_proc_is_linear. 5. Gradient buffers were not allocated in gxdtfill.h . 6. Attaching fill_linear_color_triangle to triangle_by_4 in shadings. The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h . The new code is not debugged yet. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.18, src/gdevrops.c 1.10, src/gscspace.c 1.13, src/gxclip.c 1.13, src/gxclip2.c 1.10, src/gxclipm.c 1.12, src/gxcspace.h 1.12, src/gxdtfill.h 1.19, src/gxshade4.h 1.24, src/gxshade6.c 1.51]</p> </blockquote> <p><strong><a name="2004-04-28_0539"></a> 2004-04-28 05:39 Dan Coby</strong></p> <blockquote> <pre> Implement 687423 Implement SeparationOrder for psdcmyk device. DETAILS: The following changes are for implementing the SeparationOrder parameter for the psdcmyk device. The change consists of the following: 1. Several routines which were duplicated in the spotcmyk and psdcmyk devices were restructured to allow the use of common subroutines. As part of this effort the various common DeviceN related parameters were separated into a substructure (call devn_params). This allows the use of common routines even though the devices do not have the same overall device description structure. 2. Changes to the src/gdevpsd.c module for actually collecting the SeparationOrder parameter data and then using it. Note: The treatment of separations is different for the process color model colorants versus the spot colors. The colorants for the process color model do not have their order changed. The output file always starts with information for the CMYK channels. If one of these colorants is not specified in the SeparationOrder, then the output channel data in the file will simply be 'blank'. Spot colors follow CMYK data. They are rearranged. Only the spot colors specified are output. 3. Several checks in src/gdevdflt.c and src/gxcmap.c had to be removed or modified. These checks were assuming that a device with a single component uses a gray process color model and a device with three components used RGB.</pre> <p>[src/gdevdevn.c 1.15, src/gdevdevn.h 1.3, src/gdevdflt.c 1.18, src/gdevpsd.c 1.8, src/gsdparam.c 1.13]</p> </blockquote> <p><strong><a name="2004-04-28_0406"></a> 2004-04-28 04:06 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 49. DETAILS : 1. gx_default_fill_linear_color_trapezoid wrongly subdivided big areas : the edge height was not reduced. It could cause an infinite loop. 2. Removed c_prec, x_prec. The new code is never called and never tested. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.17, src/gxdtfill.h 1.18]</p> </blockquote> <p><strong><a name="2004-04-28_0235"></a> 2004-04-28 02:35 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 48a. DETAILS : Removing the unused gdevdsha.h . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevdsha.h 1.2]</p> </blockquote> <p><strong><a name="2004-04-28_0226"></a> 2004-04-28 02:26 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 48. DETAILS : Removing a code of dead development branches. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.h 1.23, src/gxshade6.c 1.50]</p> </blockquote> <p><strong><a name="2004-04-27_0826"></a> 2004-04-27 08:26 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 47. DETAILS : Implementing gx_default_fill_linear_color_triangle, step 2 : fixing interface problems. The new code is never called and never tested. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.16, src/gxdevcli.h 1.25]</p> </blockquote> <p><strong><a name="2004-04-27_0812"></a> 2004-04-27 08:12 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 46. DETAILS : Implementing gx_default_fill_linear_color_triangle. The new code is never called and never tested. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.15, src/gxdevcli.h 1.24]</p> </blockquote> <p><strong><a name="2004-04-27_0604"></a> 2004-04-27 06:04 Ralph Giles</strong></p> <blockquote> <pre> Add makefile support for compiling in the jasper JPEG 2000 library, needed to support the JPXDecode filter in PDF 1.5. Currently only enabled in the autoconf build, but porting the changes to other top-level makefiles should now work.</pre> <p>[src/Makefile.in 1.34, src/configure.ac 1.45, src/gs.mak 1.26, src/jasper.mak 1.1, src/lib.mak 1.179]</p> </blockquote> <p><strong><a name="2004-04-27_0601"></a> 2004-04-27 06:01 Ralph Giles</strong></p> <blockquote> <pre> Correct two typos in the jasper local source directory detection. It was erroneously resetting the jbig2dec local source directory and not reporting the found location correctly.</pre> <p>[src/configure.ac 1.44]</p> </blockquote> <p><strong><a name="2004-04-27_0543"></a> 2004-04-27 05:43 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 45. DETAILS : Implementing a linear color for filling a trapezoid. This patch provides necessary data exchange. The new code is never called and never tested. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.14, src/gdevdsha.c 1.3, src/gdevnfwd.c 1.18, src/gxdevcli.h 1.23, src/gxdtfill.h 1.17, src/lib.mak 1.178]</p> </blockquote> <p><strong><a name="2004-04-23_1230"></a> 2004-04-23 12:30 Alex Cherepanov</strong></p> <blockquote> <pre> Keep calculation in signed types to avoid conversion of the negative int to the big positive long, which caused infinite loop on Alpha in t1_hinter__adjust_matrix_precision() inline function. Fix bug 687417.</pre> <p>[src/gxhintn.c 1.48]</p> </blockquote> <p><strong><a name="2004-04-22_0638"></a> 2004-04-22 06:38 Ralph Giles</strong></p> <blockquote> <pre> Document the use of .setpdfwrite and the relation of vmthreshold to the accumulation of shared object data in the pdfwrite device. Closes bug 687409.</pre> <p>[doc/Language.htm 1.84, doc/Ps2pdf.htm 1.67, doc/Use.htm 1.107]</p> </blockquote> <p><strong><a name="2004-04-17_1830"></a> 2004-04-17 18:30 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 44. DETAILS : The function fill_pixel appears unuseful. Now it is replaced with fill_linear_color_scanline. This patch also defines a default implementation. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevdflt.c 1.17, src/gdevdsha.c 1.2, src/gdevnfwd.c 1.17, src/gxdevcli.h 1.22, src/gxdevice.h 1.16, src/lib.mak 1.177]</p> </blockquote> <p><strong><a name="2004-04-15_2250"></a> 2004-04-15 22:50 Igor Melichev</strong></p> <blockquote> <pre> Implementing color mapping linearity checks, step 2. DETAILS : Fix the color index decomposition in gx_cspace_is_linear_in_triangle. EXPECTED DIFFERENCES : None.</pre> <p>[src/gscspace.c 1.12]</p> </blockquote> <p><strong><a name="2004-04-15_1726"></a> 2004-04-15 17:26 Ray Johnston</strong></p> <blockquote> <pre> Fix to make sure that both stroke (CA) and non-stroke (ca) opacity is set. Support for customer #32 that wants to create transparent effects in PDF from PostScript input. DETAILS: Previously the opacity was set for one or the other (whichever was first) and only updated when the value changed. Since the 'state' only retained a single value, the following PS snippet would not set the CA value as it should to 0.5. Since we never use the 'b/B' fill + stroke painting methods (our graphics library currently has no device function for this), a PDF that contains a 'b' method will be decomposed into a 'f' followed by 's' operation, setting the opacity from the PDF interpreter's retained ca/CA between the operations. PostScript snippet to test this: << /CompatibilityLevel 1.4 >> setpagedevice % work around rectfill mapping directly to device fill_rectangle /rectfill { gsave 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath fill grestore } bind def % Do some background -- not transparent painting mode 0 0 0 setrgbcolor 0 0 600 700 rectfill .7 .7 .7 setrgbcolor 200 0 400 700 rectfill 1 1 1 setrgbcolor 400 0 200 700 rectfill % Go to a transparent painting mode /Normal .setblendmode .5 .setshapealpha % paint some shapes transparently .9 .8 .1 setrgbcolor 100 100 450 450 rectfill % The next stroke is non-transparent w/o the patch .2 .2 .9 setrgbcolor 50 setlinewidth 50 700 moveto 450 -650 rlineto stroke .7 .setshapealpha .9 .3 .3 setrgbcolor 50 setlinewidth 50 50 moveto 450 650 rlineto stroke showpage quit</pre> <p>[src/gdevpdfg.c 1.49]</p> </blockquote> <p><strong><a name="2004-04-15_1647"></a> 2004-04-15 16:47 Ray Johnston</strong></p> <blockquote> <pre> Correction to previous commit that caused Subtype value to be consumed if it was not a null name. Valid files would fail.</pre> <p>[lib/pdf_font.ps 1.65]</p> </blockquote> <p><strong><a name="2004-04-14_0002"></a> 2004-04-14 00:02 Dan Coby</strong></p> <blockquote> <pre> Fix 687189 for bbox_forward_add_rect infinite recursion. This problem caused segment faults or apparent hangs with the x11alpha device. This fix also works for 656414 segfault when using x11alpha DETAILS: The problem was due to the bounding box device creating more and more bounding box devices in the device chain when the overprint compositor was being used. The x11alpha device uses the bounding box device. The overprint logic uses the 'create compositor' logic when a change is made in the status of the overprint or overprint mode parameters. However a new compositor is not created each time. Instead the overprint device simply updates its parameters. The bounding box device has its own create compositor. This routine would call its target device's create compositor routine and then wraps a new bounding box device around the target's compositor. The combination of many create compositor calls from the overprint logic and the fact that the bounding box device adds a new bounding box device could result in hundreds of bounding devices in the chain. The fix consists of checking if the bounding box's target device actually created a new compositor device. Only when a new compositor was added is a new bounding box also added to the chain.</pre> <p>[src/gdevbbox.c 1.16]</p> </blockquote> <p><strong><a name="2004-04-13_2325"></a> 2004-04-13 23:25 Dan Coby</strong></p> <blockquote> <pre> Fix for 687402 Missing color on annots.pdf. This is actually not an error. Instead it is due to some confusion about the displaying of link annotations. DETAILS: To prevent confusion, the following two paragraphs of explanation were added to the first page of the examples/annots.pdf example file. "IMPORTANT NOTE ABOUT THIS PAGE: This page was created for the testing the display of link annotation parameters. The file was created using Adobe Acrobat 5.0 (and modified using Acrobat 6.0). The displaying of each annotation is specified in the annotation. By default, Acrobat sets link annotations so that they are normally displayed by 'viewer' applications. They are not normally displayed in printed output. That is the case with these annotations. Ghostscript checks the display specifications for each annotation. By default, Ghostscript assumes that the output is 'printed' if the 'OutputFile' parameter is defined. Adding '-dPrinted=false' to the command line will force Ghostscript to display 'viewer' annotations in all output. Adding '-dPrinted=true' will disable the displaying of these annotations."</pre> <p>[examples/annots.pdf 1.2]</p> </blockquote> <p><strong><a name="2004-04-13_1632"></a> 2004-04-13 16:32 Ray Johnston</strong></p> <blockquote> <pre> Handle (yet another) invalid PDF that Adobe Acrobat can open. If the Font /Subtype is / then assume Type1. Also issue a **** WARNING message. Bug #687422 for Artifex customer #670. DETAILS: This is a simple patch, with known limitations if the actual font type cannot be handled by the buildType1 procedure. Only Type1 and MMfonts will work correctly. Since the PDF is invalid, we will leave more vigorous handling until another different PDF file surfaces.</pre> <p>[lib/pdf_font.ps 1.64]</p> </blockquote> <p><strong><a name="2004-04-10_1714"></a> 2004-04-10 17:14 Alex Cherepanov</strong></p> <blockquote> <pre> Use ld_length instead of length because RMap is a long dictionary. Fix bug 687363.</pre> <p>[toolbin/pdfinflt.ps 1.5]</p> </blockquote> <p><strong><a name="2004-04-09_0620"></a> 2004-04-09 06:20 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 44. DETAILS : Propagate return codes frpom patch_color_to_device_color. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.49]</p> </blockquote> <p><strong><a name="2004-04-08_1618"></a> 2004-04-08 16:18 Ralph Giles</strong></p> <blockquote> <pre> Correct DOS line endings accidentally committed to the repository. Bug 687415.</pre> <p>[lib/dumphint.ps 1.2, src/dwdll.c 1.7, src/dwimg.c 1.10, src/dwnodll.c 1.6, src/errors.h 1.10, src/gp_dosfs.c 1.17, src/gp_vms.c 1.38, src/gscolor.c 1.13, src/gscolor1.c 1.10, src/math_.h 1.7, src/windows_.h 1.6, src/zfont42.c 1.19, toolbin/tests/fuzzy.c 1.14]</p> </blockquote> <p><strong><a name="2004-04-08_0759"></a> 2004-04-08 07:59 Igor Melichev</strong></p> <blockquote> <pre> Implementing color mapping linearity checks, step 1. DETAILS : Color mapping linearity check rutines will be used to improve the performance and quality of shadings. They check whether a color mapping is quazi-linear within a subdomain. The subdomain is specified as a convex hull of a set of colors. This patch defines prototypes and the default implemetation. They are not called and not debugged. The purpose of this commit is a codebase synchronization before a project switch. EXPECTED DIFFERENCES : None.</pre> <p>[src/gscdevn.c 1.16, src/gscolor2.c 1.20, src/gscpixel.c 1.11, src/gscscie.c 1.11, src/gscsepr.c 1.23, src/gscspace.c 1.11, src/gsicc.c 1.13, src/gspcolor.c 1.13, src/gxcspace.h 1.11]</p> </blockquote> <p><strong><a name="2004-04-07_1510"></a> 2004-04-07 15:10 Raph Levien</strong></p> <blockquote> <pre> Fix: Disables platfonts when antialiasing is in effect. Improves rendering quality, and fixes bug 687368.</pre> <p>[src/gxchar.c 1.42]</p> </blockquote> <p><strong><a name="2004-04-02_1421"></a> 2004-04-02 14:21 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : /XObject <<-1 0 R>> was written to a pattern dictionary. DETAILS : Bug 687396 "PDF Conversion of PS doc fails with large image" happened to a delayed object ID assignment. Delay adding the resource until an ID is assigned. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfj.c 1.30]</p> </blockquote> <p><strong><a name="2004-04-02_0706"></a> 2004-04-02 07:06 Igor Melichev</strong></p> <blockquote> <pre> Fix : Restoring the non-cache-device constraint in setcolor. DETAILS : It was removed by a recent patch, but PLRM3 page 215 requires it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gscolor2.c 1.19]</p> </blockquote> <p><strong><a name="2004-04-02_0219"></a> 2004-04-02 02:19 Ray Johnston</strong></p> <blockquote> <pre> Dump output from 'attrib -H dosdefault' to the bit bucket (nul:) to eliminate a potentially confusing warning.</pre> <p>[src/msvccmd.mak 1.18]</p> </blockquote> <p><strong><a name="2004-04-01_2039"></a> 2004-04-01 20:39 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : Skip empty hint ranges, improved. DETAILS : The previous patch caused a regression with 86554321.pdf . This one fixes that. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.47]</p> </blockquote> <p><strong><a name="2004-04-01_1958"></a> 2004-04-01 19:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : Skip empty hint ranges. DETAILS : Bug 687393 "Hang with 8.14 from command line". The test document embeds a font with a hint mask, which defines a stem range with 'closepath' only. t1_hinter__skip_stem couldn't handle this case, because we exclude 'closepath' from the pole list. We believe that the font is buggy, but provide a tolerance. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.46]</p> </blockquote> <p><strong><a name="2004-04-01_1335"></a> 2004-04-01 13:35 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc compiler warnings. DETAILS : ./src/gstext.c:83: warning: suggest explicit braces to avoid ambiguous `else' EXPECTED DIFFERENCES : None.</pre> <p>[src/gstext.c 1.17]</p> </blockquote> <p><strong><a name="2004-04-01_1323"></a> 2004-04-01 13:23 Igor Melichev</strong></p> <blockquote> <pre> Fix : MSVC6 compiler warnings. DETAILS : An "initialized data" warning appeared when MSVC6 performs a release build with inline optimizations on (The inline optimization inlines small function bodies, being not marked with the inline keyword). 1. The "uninitialized data" warning in alloc_name_index_is_since_save in isave.c was a real bug with an indeterministic behavior : nref.tas.rsize was accessed by names_index_inline from names_string_inline from alloc_name_is_since_save from alloc_name_index_is_since_save with no advance initialization. This bug was not detected because this function is only invoked when a 'save' unwinds glyph names added to an incremental font, but doesn't unwind the font - we have no such examples. IMO existing PS drivers never cvreate such documents. 2. The "uninitialized data" warning in cos_array_add_object appears due to cos_copy_element_value copies entire 'value' when another variant of an union has a bigger size and was uninitialized. The copying of the uninitialized data looks not harmful due to the 'int' type, but generally it could cause an interrupt on platforms with a tagged memory. We prefer to suppress the warning with an unuseful initialization, because the processor time consumption is pretty small and happens not frequently. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfo.c 1.29, src/isave.c 1.10]</p> </blockquote> <p><strong><a name="2004-04-01_1143"></a> 2004-04-01 11:43 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 43. DETAILS : Defining new device virtual functions for filling with a linear color. This only defines but never uses them. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevdflt.c 1.16, src/gdevdsha.c 1.1, src/gdevdsha.h 1.1, src/gdevnfwd.c 1.16, src/gxdevcli.h 1.21, src/gxdevice.h 1.15, src/lib.mak 1.176]</p> </blockquote> <p><strong><a name="2004-04-01_1130"></a> 2004-04-01 11:30 Igor Melichev</strong></p> <blockquote> <pre> Fix : setcachedevice must not depend on a BuildChar color and on gx_show_text_retry. DETAILS : 1. The bug 687391 "assert src/gxccman.c:557 again" happened because BuildChar changed the current color before setcachedevice calls compute_glyph_raster_params, and the raster params computed differently than during the advance glyph raster cache lookup. 2. Removed if (pgs->in_cachedevice) return_error(gs_error_undefined); from gs_setcolor, because I can't guess it's reason/purpose. It looks as a rudiment from a pre-repository versions. 3. The assertion also failed with "-dTextAlphaBits=4 -dLastPage=1 comparefiles\xgfddg.pdf". In gx_add_cached_char added the case "cc->pair == NULL" : /* gx_show_text_retry could reset it when bbox_draw discovered an insufficient FontBBox and enlarged it. Glyph raster params could change then. */ 4. gx_show_text_retry must reset penum->pair due to possible FontBBox change, see (3). 5. The cc_set_pair macro to be applied for changing cc->pair to provide consistent data for font_dir_reloc_ptrs. EXPECTED DIFFERENCES : None with regular regression test. Normal with -r72 -dTextAlphaBits=4 -dAlignToPixels=0 : "213-01.ps" "214-01.ps" "244-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "258-01.ps" "270-01.ps" Normal with -r300 -dTextAlphaBits=4 -dAlignToPixels=0 : "245-07.ps" "270-01.ps" -dTextAlphaBits=2 : not tested. -dAlignToPixels=1 : not tested.</pre> <p>[src/gscolor2.c 1.18, src/gxccache.c 1.30, src/gxccman.c 1.25, src/gxchar.c 1.41, src/gxtext.h 1.15]</p> </blockquote> <p><strong><a name="2004-04-01_0646"></a> 2004-04-01 06:46 Ray Johnston</strong></p> <blockquote> <pre> Fix for premature freeing of a 'image' device (makeimagedevice or the similar makewordimagedevice). Bug #687227. Thanks to Alex Cherepanov for the patch.</pre> <p>[src/gsdevmem.c 1.6]</p> </blockquote> <p><strong><a name="2004-04-01_0614"></a> 2004-04-01 06:14 Ray Johnston</strong></p> <blockquote> <pre> Fix for inherited MediaBox for the page Group dictionary (transparency). Bug #687293. Thanks to Felix Pahl for the analysis and fix.</pre> <p>[lib/pdf_main.ps 1.86]</p> </blockquote> <p><strong><a name="2004-04-01_0451"></a> 2004-04-01 04:51 Dan Coby</strong></p> <blockquote> <pre> Fix for 687390 GhostScript 8.11 inserts rendering artifacts with GIFs as source. The actual problem is an error which resulted in a pale yellow being shown as a pale pink. This occurs when dithering on devices which use a 256 color palette. DETAILS The halftoning logic assumes that there are the same number of shades of each color. However the 256 color palette devices were using a 7x7x5 color cube. I.e. there were 7 shades of red and green, however there were only 5 shades of blue. The data in the device's color_info (max_color, max_gray, dither_colors, and dither_grays) indicated that there were 7 shades. The halftoning logic, using this information, was attempting to display the given pale yellow color by dithering between 6/7ths and 7/7ths of each component. However the encode_color routine returned colors which include solid blue for all cases. This biased the resulting halftoned color toward blue. The fix involves changing the 256 color palette devices to use a 6x6x6 color cube. The same routine pc_8bit_map_rgb_color is used for all of the 256 color palette devices. Thus the change consists of modifying this routine and the associated pc_8bit_map_color_rgb routine. The specification of each of the devices has to be changed to represent the change in the cube size.</pre> <p>[src/gdevbmp.c 1.9, src/gdevcgm.c 1.10, src/gdevp2up.c 1.5, src/gdevpccm.c 1.6, src/gdevpccm.h 1.7, src/gdevpcx.c 1.6, src/gdevpng.c 1.10, src/gdevsvga.c 1.6]</p> </blockquote> <p><strong><a name="2004-03-25_1735"></a> 2004-03-25 17:35 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Stack balance was broken when a CID font is not embedded. DETAILS : It was broken since pdf_font.ps rev.1.59. Bug 687384 "/invalid font in -dict-". EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_font.ps 1.63]</p> </blockquote> <p><strong><a name="2004-03-25_1446"></a> 2004-03-25 14:46 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : Use a weaker condition for horizontal stem recognition. DETAILS : Alignment zones were not applied due to a quazy horizontal segment was not considered as a hiorizontal one. We think that the font has an inaccurate glyph design, but we provide more tolerance. Likely Adobe does the same. Bug 687385 "fonts different heights with 75 dpi". EXPECTED DIFFERENCES : 72 dpi : 251-01.ps 289-01.ps 455690.pdf 86554321.pdf alphabet.ps dave.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf prob.pdf" RealCities.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test.pdf test2.pdf test2a.pdf 300 dpi : 033-52-5873.pdf 289-01.ps 455690.pdf 86554321.pdf alphabet.ps bulletin.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf pdfopt_bug.pdf prob.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test.pdf test2.pdf test2a.pdf</pre> <p>[src/gxhintn.c 1.45]</p> </blockquote> <p><strong><a name="2004-03-24_2346"></a> 2004-03-24 23:46 Ralph Giles</strong></p> <blockquote> <pre> Remove an empty '#' line. Closes bug 687377.</pre> <p>[src/stdint_.h 1.3]</p> </blockquote> <p><strong><a name="2004-03-24_0856"></a> 2004-03-24 08:56 Ray Johnston</strong></p> <blockquote> <pre> Fix for unnecessary re-link when building on Windows. Bug #687059. DETAILS: Since 'dosdefault' was not being made, make always did the link. Create a dummy "result" being a file named dosdefault and make works as Igor wants.</pre> <p>[src/msvccmd.mak 1.17]</p> </blockquote> <p><strong><a name="2004-03-24_0730"></a> 2004-03-24 07:30 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : TK was written into a charproc. DETAILS : Bug 687382 "fonts not printed with pdf 1.4". EXPECTED DIFFERENCES : None. Ghostscript PDF interpreter appears insensible to it. Adobe does.</pre> <p>[src/gdevpdfg.c 1.48]</p> </blockquote> <p><strong><a name="2004-03-24_0729"></a> 2004-03-24 07:29 Ralph Giles</strong></p> <blockquote> <pre> Make use of the SYS_TYPES_HAS_STDINT_TYPES define we set in the configure script. After a patch from Alex Cherepanov. Bug 687377. Also, adopt elif, since we've been using it elsewhere to no ill effect.</pre> <p>[src/stdint_.h 1.2]</p> </blockquote> <p><strong><a name="2004-03-24_0638"></a> 2004-03-24 06:38 Ray Johnston</strong></p> <blockquote> <pre> Fix for incorrect Annotation scaling when an Appearance (/AP) had scaling that was not unity (1) and the Subtype was not /Stamp. Fixes Bug #687288 for customer #32. DETAILS: The scaling difference in the annotation (object 14 0) was due to Ghostscript not recognizing the bsiTextStamp annotation Subtype. Careful reading of the Adobe PDF specification says that if there is an Appearace stream (/AP dict), then the Form XObject should be scaled using the method that we perviously only used for /Stamp Subtype annotations (calcstampscale). The section of the PDF 1.5 Reference Manual is 8.4.4. The patch is fairly simple, but testing of the regression suite showed one file, foo.pdf, that was missing the require /Rect entry in the Annot dict. The patch includes a check and warning for this problem. EXPECTED DIFFERENCES: With this patch, some of the regression files will have slightly different scaling for some of the annotations, but the differences are all too small to compare to Adobe. The largest variations are seen with annots.pdf (our test file) where the scaling ranges from a low of 0.979191 to a high of 1.01636. The files are: filename scaling range (was 1) 01_001.PDF 1.0 SyscoCorrugatedprintcard.pdf 1.0 .. 1.00268 annots.pdf 0.979191 .. 1.01636 rf1025.PDF 0.998471 IMO, these are all close enough to be considered progressions.</pre> <p>[lib/pdf_draw.ps 1.80]</p> </blockquote> <p><strong><a name="2004-03-24_0620"></a> 2004-03-24 06:20 Ralph Giles</strong></p> <blockquote> <pre> Adobe no longer provides a public link to DistillerParameters.pdf. Link to a hopefully somewhat stable directory from which the inspired user can register and download the documentation.</pre> <p>[doc/Ps2pdf.htm 1.66]</p> </blockquote> <p><strong><a name="2004-03-24_0612"></a> 2004-03-24 06:12 Dan Coby</strong></p> <blockquote> <pre> Fix for 687364 rangecheck in buildshading2 from Quark XPress PS file. This fix involves the creation of the findcmykcustomcolor and setcustomcolor functions. DETAILS: Ray found that the error message was due to an invalid shading dictionary being given to shfill. The dictionary has a function which has a single input and a single output. The numbers are determined from the sizes of the Domain and Range arrays. Since the shading dictionary is using a DeviceCMYK color space, Ghostscript is generating a rangecheck since the function does not have four outputs. The file is generating an invalid shading dictionary. Specifically it generates: sh: << /Coords [0 0 0 1] /ColorSpace [/DeviceCMYK] /Function << /BitsPerSample 8 /Ra nge [0 1] /FunctionType 0 /Domain [0 1] /DataSource (\200\200\200\201\201\202\202\203 \203\204\204\205\205\206\206\207\207\210\210\211\211\212\212\213\213\214\214 \215\215\ 216\216\217\217\220\220\221\221\222\222\223\223\224\224\225\225\226\226\227\ 227\230\2 30\231\231\232\232\233\233\234\234\235\235\236\236\237\237\240\240\241\241\2 42\242\24 3\243\244\244\245\245\246\246\247\247\250\250\251\251\252\252\253\253\254\25 4\255\255 \256\256\257\257\260\260\261\261\262\262\263\263\264\264\265\265\266\266\267 \267\270\ 270\271\271\272\272\273\273\274\274\275\275\276\276\277\277\300\300\301\301\ 302\302\3 03\303\304\304\305\305\306\306\307\307\310\310\311\311\312\312\313\313\314\3 14\315\31 5\316\316\317\317\320\320\321\321\322\322\323\323\324\324\325\325\326\326\32 7\327\330 \330\331\331\332\332\333\333\334\334\335\335\336\336\337\337\340\340\341\341 \342\342\ 343\343\344\344\345\345\346\346\347\347\350\350\351\351\352\352\353\353\354\ 354\355\3 55\356\356\357\357\360\360\361\361\362\362\363\363\364\364\365\365\366\366\3 67\367\37 0\370\371\371\372\372\373\373\374\374\375\375\376\376\377) /Order 1 /Size [256] >> /S hadingType 2 >> The file was sent into Adobe Distiller 6.0. Inside the resulting PDF file there is a very different shading dictionary: Specifically: /sh: << /ColorSpace [/Separation /MEZZO__1 /DeviceCMYK -array-] /Coords [0 0 0 1] /Function << /Decode [0 1] /FilePosition 460412 /Range [0 1] /Filter /FlateDecode /BitsPerSample 8 /Encode [0 255] /Length 255 /FunctionType 0 /File -file- /Domain [0 1] /DataSource (\200\200\200\201\201\202\202\203\203\204\204\205\205\206\206\207\207\210\21 0\211\211\212\212\213\213\214\214\215\215\216\216\217\217\220\220\221\221\22 2\222\223\223\224\224\225\225\226\226\227\227\230\230\231\231\232\232\233\23 3\234\234\235\235\236\236\237\237\240\240\241\241\242\242\243\243\244\244\24 5\245\246\246\247\247\250\250\251\251\252\252\253\253\254\254\255\255\256\25 6\257\257\260\260\261\261\262\262\263\263\264\264\265\265\266\266\267\267\27 0\270\271\271\272\272\273\273\274\274\275\275\276\276\277\277\300\300\301\30 1\302\302\303\303\304\304\305\305\306\306\307\307\310\310\311\311\312\312\31 3\313\314\314\315\315\316\316\317\317\320\320\321\321\322\322\323\323\324\32 4\325\325\326\326\327\327\330\330\331\331\332\332\333\333\334\334\335\335\33 6\336\337\337\340\340\341\341\342\342\343\343\344\344\345\345\346\346\347\34 7\350\350\351\351\352\352\353\353\354\354\355\355\356\356\357\357\360\360\36 1\361\362\362\363\363\364\364\365\365\366\366\367\367\370\370\371\371\372\37 2\373\373\374\374\375\375\376\376\377) /Size [256] >> /ShadingType 2 >> This dictionary has a Separation color space. The given function is a reasonable function to use with the Separation color space. As Ray mentioned, it is not correct for a DeviceCMYK color space. The file is generating a different dictionary for the two interpreters. In the case of Ghostscript, the dictionary is invalid, Backtracking through the various procsets inside of the given file shows that is a mess of function definitions, followed by replacement of the functions with new definitions. Some of it may be Quarks. Some of it is labeled: %%BeginResource: file Jaws_custom_colour_blend_level3_emulation 2.1 0 The results of the search are: 1. Ghostscript does not define 'setcustomcolor' but Adobe Distiller 6.0 does define it. 2. The procsets in the file do provide a definition for setcustomcolor. Actually the file provides about 16 versions of setcustomcolor. However the versions provided in the file do not work. The PLRM does not mention setcustomcolor. However it is described in Adobe's "Technical Note #5044 Color Separation Conventions for PostScript Language Programs". TN 5044 says: "The following "operators" are not defined in the PostScript Language Reference Manual, but should be used as pseudo-operators in your PostScript language output. Separation applications from Adobe Systems and other vendors will redefine these convention operators to separate your documents. Your application should conditionally define procedures with these special names, as shown later in this document." The fix to the problem is to provide the functions: findcmykcustomcolor and setcustomcolor. These are placed at the end of the lib/gs_lev2.ps. They are placed there because the implementation requires Separation color spaces which is a level 2 feature.</pre> <p>[lib/gs_lev2.ps 1.31]</p> </blockquote> <p><strong><a name="2004-03-23_1230"></a> 2004-03-23 12:30 Igor Melichev</strong></p> <blockquote> <pre> Fix : GenericResourceDir was not listed in PermitFileReading. DETAILS : Problems happened when gs/lib is specified with -I, and gs/Resource is not. Bug 687381 "pdfwrite can't start with -dSAFER -Id:/path/lib". EXPECTED DIFFERENCES : None.</pre> <p>[lib/gs_init.ps 1.106]</p> </blockquote> <p><strong><a name="2004-03-23_0659"></a> 2004-03-23 06:59 Ralph Giles</strong></p> <blockquote> <pre> Correct a number of warnings. DETAILS: Apply const appropriately so gcc doesn't warn about assignment of string literals. Remove an inappropriate const in a function argument. ifdef out the debug printout function since it's not called without JPX_DEBUG.</pre> <p>[src/sjpx.c 1.8]</p> </blockquote> <p><strong><a name="2004-03-22_0123"></a> 2004-03-22 01:23 Ralph Giles</strong></p> <blockquote> <pre> SunOS 5.9 does not properly replace files with ln -sf. Unlink the existing files instead. Closes bug 687378.</pre> <p>[autogen.sh 1.4]</p> </blockquote> <p><strong><a name="2004-03-21_2235"></a> 2004-03-21 22:35 Ray Johnston</strong></p> <blockquote> <pre> Fix for a long standing problem that could cause characters to be dropped when reading a file with the 'read' operator. Bug #687374 for customer #310. DETAILS: This was caused by the zread function reading the character (sgetc) prior to invoking the 'push' macro which could return with e_stackoverflow (discarding the character). The stackoverflow can happen more frequently than at MaxOpStack level since the stack is allocated as blocks, using the e_stackoverflow to signal the need to add more stack blocks, then retrying the operation. Fix for characters dropped from a file when using the 'read' operator. Bug #687374 for customer #310. DETAILS: This was caused by the zread function reading the character (sgetc) prior to invoking the 'push' macro which could return with e_stackoverflow (discarding the character). The stackoverflow can happen more frequently than at MaxOpStack level since the stack is allocated as blocks, using the e_stackoverflow to signal the need to add more stack blocks, then retrying the operation.</pre> <p>[src/zfileio.c 1.16]</p> </blockquote> <p><strong><a name="2004-03-19_1008"></a> 2004-03-19 10:08 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT interpreter) : Subglyphs could be placed to wrong coordinates. DETAILS : 1. When a subglyph position is specified with a reference to an outline point, the index of the point was interpreted wrongly and could use an undefined data with an indeterministic result. Bug 687366 "Font missing umlaut". 2. Shifting a subglyph, matrices like [xx 0 0 1 0 0] were misinterpreted as identity. EXPECTED DIFFERENCES : Testform.v1.0.2.pdf - a progression with umlaut over 'u' in the word "Drummer".</pre> <p>[src/ttfmain.c 1.27]</p> </blockquote> <p><strong><a name="2004-03-19_0952"></a> 2004-03-19 09:52 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Zero text length caused an access to an uninitialized data. DETAILS : Detected by Dan with MSVC .NET 2003. Rather the result did not depend on the data, the access could cause a floating point interrupt. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdte.c 1.55]</p> </blockquote> <p><strong><a name="2004-03-19_0830"></a> 2004-03-19 08:30 Ray Johnston</strong></p> <blockquote> <pre> Fix to implement PDF specification for '/' as a valid name as opposed to the PS token scanning. Previously //name would be incorrectly scanned as an immediately evaluated name rather than two names '/' and '/name' which is correct. Fixes Bug #687277 for customer #440. DETAILS: Care is taken to reset the scanner behaviour after a PDF file is finished and also after an invalid number is scanned. Note that to reset the flag, the parameter must be set to 'null', not 'false' due to the implementation in the ztoken.c. Caveat impelementor. Previously the PDFScanRules was set when an invalid number was found and was never reset, so this may result is *LOTS* of pdfformaterror messages for files that have lots of invalid format numbers, but that's what they get. If this is ever a problem, reseting the PDFScanInvNum can be moved to pdf_main.ps where PDFScanRules is set to null. No expected differences.</pre> <p>[lib/pdf_base.ps 1.42, lib/pdf_main.ps 1.85, src/iscan.c 1.17, src/iscan.h 1.9, src/iscannum.c 1.8, src/ztoken.c 1.13]</p> </blockquote> <p><strong><a name="2004-03-19_0537"></a> 2004-03-19 05:37 Ralph Giles</strong></p> <blockquote> <pre> Rename the DEBUG_JPX symbol to JPX_DEBUG to match the others we've defined for the JPXDecode source.</pre> <p>[src/sjpx.c 1.7]</p> </blockquote> <p><strong><a name="2004-03-19_0536"></a> 2004-03-19 05:36 Ralph Giles</strong></p> <blockquote> <pre> Correct our YCrCb to RGB conversion code. Subtract the proper bias to center the chromaticity channels around zero if they are returned unsigned. Move the clamp routines to after the conversion to RGB where it does some good. Thanks to Raph Levien for his help with this code. We now use our conversion code by default, since there are some problems with the jasper library's conversion on big-endian platforms. The jasper conversion can be reenabled by defining JPX_USE_JASPER_CM in the preprocessor.</pre> <p>[src/sjpx.c 1.6]</p> </blockquote> <p><strong><a name="2004-03-18_1756"></a> 2004-03-18 17:56 Ray Johnston</strong></p> <blockquote> <pre> Fix name of file in raster directory so that update_pdfbaseline will be run when needed (when new files are added).</pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.19]</p> </blockquote> <p><strong><a name="2004-03-18_1659"></a> 2004-03-18 16:59 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 43. DETAILS : 1. An optimization : If an area has a monotonic color, each subarea has a monotonic color as well, so the color monotonity doesn't need to recompute. Doing so because the color monotonity function is not fast when appied to a ShadingType 1 with a bicubic color interpolation. 2. Bug: is_color_monotonic returned 'true' when the intrval has zero width by the 1st coordinate. This is wrong for with ShadingType 1, which uses a 2-argument function. ( The check was a rudiment from a 1 month old implementation of fn_Sd_is_monotonic, which returned 'false' when the low boundary is at the end of some cell, and the upper boundary is at the beginning of the next cell. Actually this case is a zero width interval and the function must return true. ) EXPECTED DIFFERENCES : A minor difference in colors : 442-01.ps 464-01.ps Clarke Tate Manns Chinese.ai STEUER-RollingMesh 1(linear).ai</pre> <p>[src/gxshade4.h 1.22, src/gxshade6.c 1.48]</p> </blockquote> <p><strong><a name="2004-03-18_1233"></a> 2004-03-18 12:33 Igor Melichev</strong></p> <blockquote> <pre> Implementing is_monotonic for cubic interpolation functions. DETAILS : The old code ignores extremes of a cubic interpolation function (except ones at a cell boundary). It could cause a wrong rendering of shadings with replacing a randomly big part of the shading near an extremum with a constant color. The new code fixes that. The new code caches the interpolation coefficients. This may cause problems if the function data stream is modified after the function is build. Likely this must not cause problems due to gs/lib caches the stream with ReusableStreamDecode. Also we don't know practical cases. POLE_CACHE_IGNORE 1 avoids this problem with some slowdown, (the slowdown exponentially grows with >=3 arguments, but again we don't know practical examples with >=3 arguments). The configuration flag POLE_CACHE allows to revert to the old code. Bug 687352 "is_monotonic isn't implemented for 3d order sampled function". EXPECTED DIFFERENCES : 464-01.ps - A minor difference in color.</pre> <p>[src/gsfunc0.c 1.18, src/gsfunc0.h 1.6]</p> </blockquote> <p><strong><a name="2004-03-17_2306"></a> 2004-03-17 23:06 Ralph Giles</strong></p> <blockquote> <pre> Clamp and origin shift the chromaticity values in our JPXDecode filter's YUV to RGB conversion code. This still does not produce correct output with libjasper's output, but is an improvement. This change affects disabled code only.</pre> <p>[src/sjpx.c 1.5]</p> </blockquote> <p><strong><a name="2004-03-16_1139"></a> 2004-03-16 11:39 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A floating point interrupt. DETAILS : MSVC7 applies a floating point (FP) operations to copy FP data. This may cause interrupts if the data is not initialized and represent an invalid FP number. gdev_vector_dopath_segment passed an unitialized data as an argument. Rather the callee never use them, an interrupt happens while building the argument list. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevvec.c 1.21]</p> </blockquote> <p><strong><a name="2004-03-16_0300"></a> 2004-03-16 03:00 Ralph Giles</strong></p> <blockquote> <pre> Use the jasper library's internal color conversion function to convert non-rgb multicomponent images to sRGB. DETAILS: As of jasper 1.701.0 this function does not work correctly on powerpc. However, it's better than our own routine, which I've had trouble getting working with the Y(')CbCr samples returned from the library.</pre> <p>[src/sjpx.c 1.4]</p> </blockquote> <p><strong><a name="2004-03-16_0216"></a> 2004-03-16 02:16 Dan Coby</strong></p> <blockquote> <pre> Fix for 687337 Zerodivide in cie_cache_mult. Note: There was a typo in the previous fix. DETAILS: The direct cause of the problem, and also the reason that we have not seen this problem in real world files is that the 050-01.ps test file contains the following color rendering dictionary. /RenderDict2 12 dict begin /BlackPoint [ 0 0 0 ] def /ColorRenderingType 1 def /EncodeABC [ {} {} {} ] def /EncodeLMN [ {} {} {} ] def /MatrixABC [ 0 0 0 0 0 0 0 0 0 ] def /MatrixLMN [ 0 0 0 0 0 0 0 0 0 ] def /RangeABC [ 0 1 0 1 0 1 ] def /RangeLMN [ 0 1 0 1 0 1 ] def /RangePQR [ 0 1 0 1 0 1 ] def /TransformPQR [ {} {} {} ] def /WhitePoint [ 1 1 1 ] def Note: The matrices full of zeroes do not represent real world data. The zero matrices will result in all output component values being zero no matter what the inputs. Using this data, Ghostscript uses the given ranges and matrices to calculate values for DomainABC and DomainLMN. The results are [0, 0] for each domain. The domain values are later used to calculate a scaling factors which is also 0. Calculations, which use one of these values as a divisor, then generate a divide by zero exception. One option to fix this problem would be to check for zero before doing any calculations with the scaling factors. However another and simpler option is to check for the zero factors when they are crated and set the value to a value which will not cause the divide problem. Note: Even though we are using a dummy factor (1.0), the zero matrices still result in zero output values from the calculations.</pre> <p>[src/gscie.c 1.16]</p> </blockquote> <p><strong><a name="2004-03-16_0207"></a> 2004-03-16 02:07 Dan Coby</strong></p> <blockquote> <pre> Fix for 687337 Zerodivide in cie_cache_mult. DETAILS: The direct cause of the problem, and also the reason that we have not seen this problem in real world files is that the 050-01.ps test file contains the following color rendering dictionary. /RenderDict2 12 dict begin /BlackPoint [ 0 0 0 ] def /ColorRenderingType 1 def /EncodeABC [ {} {} {} ] def /EncodeLMN [ {} {} {} ] def /MatrixABC [ 0 0 0 0 0 0 0 0 0 ] def /MatrixLMN [ 0 0 0 0 0 0 0 0 0 ] def /RangeABC [ 0 1 0 1 0 1 ] def /RangeLMN [ 0 1 0 1 0 1 ] def /RangePQR [ 0 1 0 1 0 1 ] def /TransformPQR [ {} {} {} ] def /WhitePoint [ 1 1 1 ] def Note: The matrices full of zeroes do not represent real world data. The zero matrices will result in all output component values being zero no matter what the inputs. Using this data, Ghostscript uses the given ranges and matrices to calculate values for DomainABC and DomainLMN. The results are [0, 0] for each domain. The domain values are later used to calculate a scaling factors which is also 0. Calculations, which use one of these values as a divisor, then generate a divide by zero exception. One option to fix this problem would be to check for zero before doing any calculations with the scaling factors. However another and simpler option is to check for the zero factors when they are crated and set the value to a value which will not cause the divide problem. Note: Even though we are using a dummy factor (1.0), the zero matrices still result in zero output values from the calculations.</pre> <p>[src/gscie.c 1.15]</p> </blockquote> <p><strong><a name="2004-03-16_0125"></a> 2004-03-16 01:25 Dan Coby</strong></p> <blockquote> <pre> Fix for 687349 A wrong comment for gx_device_color_s. This change modifies the comment on ccolor and the related variable ccolor_valid.</pre> <p>[src/gsdcolor.h 1.14]</p> </blockquote> <p><strong><a name="2004-03-15_2047"></a> 2004-03-15 20:47 Ralph Giles</strong></p> <blockquote> <pre> Correctly calculate row offsets for copying JPXDecode filter results so multi-component images are indexed correctly. Also split the jpxd process code into several helper functions for readability. Support subsampled YUV images properly. Subsampled pixels are replicated, not interpolated. Colorspace conversion from YCrCb to RGB is still incorrect.</pre> <p>[src/sjpx.c 1.3, src/sjpx.h 1.2]</p> </blockquote> <p><strong><a name="2004-03-15_0954"></a> 2004-03-15 09:54 Igor Melichev</strong></p> <blockquote> <pre> MSVC compiler: allowing Precompiled Headers, Incremental Compilation, Edit & Continue. DETAILS : These options are applied to debug build only. They dramatically improve the development technology. Automated Precompiled Header speeds up the compilation slightly. For best results should reorganize gs header files. Incremental Compilation speeds up the rebuilding after editing source code. Edit&Continue is a powerful tool for debugging. Together with incremental compilation it allows to regenerate the object code during a debug session, and continue the debugging with the new code without restarting the program. Press F10 after you changes source code and enjoy. F7 resets the session - forget it. Another related tool is the "Set instruction pointer" debugger command, which is available only from Tools/Customize/Commands/Debug. It looks as an yellow arrow with a blue thin curved arrow. Move it to your toolbar and enjoy. Also enabled the incremental linking. YOU NEED TO REBUILD ALL AT ONCE to activate these tools. Tested with MSVC 6, should also work wirth MSVC 7. Had no chance to test MSVC 5. A help wanted. EXPECTED DIFFERENCES : None.</pre> <p>[src/msvccmd.mak 1.16]</p> </blockquote> <p><strong><a name="2004-03-14_2210"></a> 2004-03-14 22:10 Igor Melichev</strong></p> <blockquote> <pre> Fix : A Cygwin/gcc warning. EXPECTED DIFFERENCES : None.</pre> <p>[src/zpcolor.c 1.14]</p> </blockquote> <p><strong><a name="2004-03-14_2202"></a> 2004-03-14 22:02 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : CIDMap was wrongly created from CIDToGIDMap. DETAILS : CIDMap size was equal to CIDCount, which gs_ttf.ps sets to the number of glyphs. With a non-Identity CIDToGIDMap it appears wrong, causing some valid CIDs to be out of range and to print as a notdef character. Bug 687351 "Embedded TTF font in PDF incorrectly displayed.". EXPECTED DIFFERENCES : Bug687351.pdf</pre> <p>[lib/gs_ttf.ps 1.37, lib/pdf_font.ps 1.62]</p> </blockquote> <p><strong><a name="2004-03-14_2201"></a> 2004-03-14 22:01 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Crash after adding a glyph over a preallocated limit of a CIDFontType 2. DETAILS : Working on bug 687351 with CAIB_highres_page4.pdf, we detected a set of old bugs. They caused a heap corruption and crash. To reproduce the crash apply the patch of the bug 687351 to lib/pdf_font.ps (that patch will be committed AFTER this one). 1. pdf_resize_resource_arrays was called with a wrong array size (gdevpdtc.c). 2. pdf_resize_resource_arrays did not expand CIDToGIDMap (gdevpdtf.c). 3. gs_type42_glyph_info accepted a wrong type of the return value of get_glyph_index. 4. Copying a CIDFontType 2, CIDCount was wrong (gxfcopy.c). 5. pdf_obtain_cidfont_resource wrongly processed the case of shared font descendents : font compatibility was not checked, rather they may have different Metrics, Metrics2, CDevProc, CIDMap (gdevpdtt.c). 6. Implemented a dynamic expansion of CIDMap for copied fonts. 7. In font copies CIDMap used the code 0xFFFF for representing unmapped glyphs. 8. Inserted the comment into gdevpdtf.c : /* fixme : Likely pdfont->u.cidfont.CIDToGIDMap duplicates pdfont->FontDescriptor->base_font->copied->client_data->CIDMap. Only difference is 0xFFFF designates unmapped CIDs. */ 9. same_cid0_hinting must not check FDBytes (gxfcopy.c). EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtc.c 1.35, src/gdevpdtf.c 1.35, src/gdevpdtt.c 1.77, src/gstype42.c 1.44, src/gxfcopy.c 1.42]</p> </blockquote> <p><strong><a name="2004-03-14_1126"></a> 2004-03-14 11:26 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : XObject's resources were placed wrongly. DETAILS : Bug 687350 "Wrong placement for Form XObjects' resources" For Form XObjects created using /BP pdfmarks, the resources dictionary entries are placed into the dict part of the XObject itself, instead of being placed into a dictionary referenced by the /Resources key. Patch from SaGS (See the bug report). Thanks to SaGS (Sorry, never got his/her name.). EXPECTED DIFFERENCES : Bug687350.ps</pre> <p>[src/gdevpdfm.c 1.36]</p> </blockquote> <p><strong><a name="2004-03-13_2231"></a> 2004-03-13 22:31 Ray Johnston</strong></p> <blockquote> <pre> Add support for 16 bit deep images that is part of PDF 1.5. Expected Differences: None.</pre> <p>[src/gxi16bit.c 1.1, src/gximage.h 1.7, src/gxino16b.c 1.1, src/gxipixel.c 1.10, src/int.mak 1.125, src/lib.mak 1.175, src/spdiff.c 1.6, src/spdiffx.h 1.5, src/zfdecode.c 1.6, src/zimage.c 1.13]</p> </blockquote> <p><strong><a name="2004-03-13_1828"></a> 2004-03-13 18:28 Igor Melichev</strong></p> <blockquote> <pre> Implementing current point with double precision. DETAILS : The old code stores the current point in pgs->ppath->position with the 'fixed' representation in the device space coordinates. This appears insufficiently precise if a document constructs a path with multiple 'rlineto' or 'rcurveto'. A significant to error accumulation happens. We implement the current point with 'double', duplicating pgs->ppath->position with the new field gs_imager_state::current_point. We can't replace pgs->ppath->position with the new one due to several reasons : - Sometimes (in the text processing, in arc processing and in reversepath) a new current point is computed when imager state is not accessible. - Don't want to spend processor time for conversion double to fixed, whenever a fixed is needed. - Don't want to modify many of low level modules; Text operation always round the current point to 'fixed'. Note that the convertion from fixed to double is always precise, therefore we widely use it with text operations. Thus this improves the precision of moveto, lineto, curveto, rmoveto, rlineto, rcurveto, but the precision of other operators left as it was. Likely there is no strong need to improve text operations due to pixel rounding, but it would be useful to improve arc, arcn, arct, arcto. However an improvement of arc operations isn't a high priority, and after this patch becomes a local change. We removed ppath->outside_position, because pgs->current_point now effectively handles this feature. Due to that the rounded pgs->current_point may be unequal to pgs->ppath->position when the current point is outside the range. The configuration flag PRECISE_CURRENTPOINT defined in gxstate.h helps to debug the new code with raster comparizon with the old code. PRECISE_CURRENTPOINT 0 works same as the old code except the coordinate clamping. Therefore once tested with the comparison, the further validation reduced to a validation of the code swtched by the flag - this part pof code is pretty small. The mode (PRECISE_CURRENTPOINT 0) **MUST**NOT** go to production due to the dropped clamping. PRECISE_CURRENTPOINT 1 handles the clamping. Bug 687359 "Current point is inprecise". EXPECTED DIFFERENCES : Almost all comparefiles render differently.</pre> <p>[src/gdevpdtc.c 1.34, src/gdevpdte.c 1.54, src/gdevpdtt.h 1.22, src/gscoord.c 1.9, src/gspaint.c 1.9, src/gspath.c 1.9, src/gspath.h 1.6, src/gspath1.c 1.8, src/gstype1.c 1.31, src/gstype2.c 1.35, src/gstype42.c 1.43, src/gxchar.c 1.40, src/gxistate.h 1.21, src/gxmatrix.h 1.8, src/gxpath.c 1.10, src/gxpath.h 1.13, src/gxstate.h 1.10, src/gzpath.h 1.37, src/gzstate.h 1.10, src/lib.mak 1.174, src/zupath.c 1.9]</p> </blockquote> <p><strong><a name="2004-03-13_0033"></a> 2004-03-13 00:33 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT grid fitting) : Hints could be lost. DETAILS : When passing hints from the stem recognizer to the hinter, glyph origin was not properly initialized, causing an occasional shift of hints. This bug appeared with gxttfb.c revision 1.32. EXPECTED DIFFERENCES : 72dpi: 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf budget2_ai87.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf ICPconcept.pdf japan.ps keyboard.pdf korea.ps MagicEye.pdf S2_Digitalproof-Forum_x3k.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf Type11CDevProc.ps type42_glyph_index.ps fonts.pdf 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf japan.ps 300dpi: 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf budget2_ai87.pdf bugsample.pdf CAIB_highres_page4.pdf Faktura.pdf fonts.pdf ICPconcept.pdf Jahr2000.pdf japan-.ps japan.ps 01_001.pdf keyboard.pdf korea.ps MagicEye.pdf S2_Digitalproof-Forum_x3k.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf Type11CDevProc.ps type42_glyph_index.ps</pre> <p>[src/gxttfb.c 1.33]</p> </blockquote> <p><strong><a name="2004-03-12_0653"></a> 2004-03-12 06:53 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Fall back to the default implementation when the output document can't handle current color. DETAILS : This case is important when the output PDF uses a low PDF level. Particularly if the source file is a PDF 1.4 with a transparency, and the output is PDF 1.3, which can't represent a transparency. Bug 687338 "/rangecheck in --fill--". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfd.c 1.38, src/gdevpdtt.c 1.76]</p> </blockquote> <p><strong><a name="2004-03-12_0158"></a> 2004-03-12 01:58 Dan Coby</strong></p> <blockquote> <pre> Fix for 687349 A wrong comment for gx_device_color_s. This change modifies the comment on ccolor and the related variable ccolor_valid.</pre> <p>[src/gsdcolor.h 1.13]</p> </blockquote> <p><strong><a name="2004-03-12_0155"></a> 2004-03-12 01:55 Dan Coby</strong></p> <blockquote> <pre> Log message: Implement 687347: Implementation of the PDF encryption feature: EncryptMetadata. Past versions of the PDF encryption have always encrypted metadata. With this feature it is possible to NOT encrypt metadata streams. I.e. By adding '/EncryptMetadata false' to the encryption dictionary. DETAILS: There are two pieces to the implementation: 1. The calculation of the user password key includes an additional step of feeding 0xffffffff to the md5 input if EncryptMetadata is false. (Ask Adobe, not me.) The PDF 1.5 spec. says that EncryptMetadata is an undocumented feature of PDF 1.4. This implies that this action needs to be done for values of R in the Encrypt dictionary of 3 or higher. However testing with Acrobat 5.0 and Acrobat 6.0 shows that this is not done for R = 3. Thus we check for R >= 4. 2. Testing with Acrobat 5.0 and 6.0 has verified that the encryption of metadata streams is controlled by EncryptMetadata in both versions. Thus we check for PDF 1.4 and higher (R >= 3) and if so then we check the stream type and the EncryptMetadata flag to determine if a stream needs to be decrypted.</pre> <p>[lib/pdf_sec.ps 1.15]</p> </blockquote> <p><strong><a name="2004-03-11_1458"></a> 2004-03-11 14:58 Igor Melichev</strong></p> <blockquote> <pre> Fix : Some Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.109, src/gdevpdfi.c 1.52]</p> </blockquote> <p><strong><a name="2004-03-11_1450"></a> 2004-03-11 14:50 Igor Melichev</strong></p> <blockquote> <pre> Fix : Some Sun ONE Studio 7 compiler warnings (Solaris 8). DETAILS : Bug 687355 "warnings on Solaris (ghostscript-8.14)". This fixes all warnings which I understande, except "implicit function declaration", which probably require a Solaris-dependent fix to "memory_.h". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevdevn.c 1.14, src/gdevijs.c 1.8, src/gdevnfwd.c 1.15, src/gdevpdfx.h 1.87, src/gdevpng.c 1.9, src/gdevpsd.c 1.7, src/gdevpsdu.c 1.21, src/gdevpsu.c 1.17, src/gdevxcf.c 1.6, src/gscpixel.c 1.10, src/gsdfilt.c 1.9, src/gximag3x.c 1.15, src/szlibd.c 1.7, src/ttfmain.c 1.26]</p> </blockquote> <p><strong><a name="2004-03-11_0701"></a> 2004-03-11 07:01 Igor Melichev</strong></p> <blockquote> <pre> Fix : Changing the default value of AlignToPixels to 0. THIS IS INCOMPATIBLE CHANGE. DETAILS : AlignToPixels=0 produces a better results with antialiased text. This is especially important after the True Type grid fitting is on. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Use.htm 1.106, src/gsfont.c 1.32]</p> </blockquote> <p><strong><a name="2004-03-11_0536"></a> 2004-03-11 05:36 Ralph Giles</strong></p> <blockquote> <pre> Some systems require a longer link line with the default static jasper.</pre> <p>[toolbin/jpxtopdf.c 1.2]</p> </blockquote> <p><strong><a name="2004-03-11_0522"></a> 2004-03-11 05:22 Ralph Giles</strong></p> <blockquote> <pre> Add a simple C program that uses the jasper library to parse JPX (jpeg2k) image files and embed them in a PDF 1.5 document. Useful for testing as there are few producers available at the moment. DETAILS: We make no attempt to parse the required metadata (resolution and so on) ourselves. It would be simple to add this so that the program can stand alone. On the other hand, jasper is capable of opening a number of other image formats and encoding them to jpx streams. We don't do that either, but it would also be easy to add support for so that JPXDecode versions of arbitrary images could be embedded. Because of this, it's possible to embed e.g. baseline jpeg data instead of a jpx stream if you feed the program the wrong file. Caveat executor. Based on the jpegtopdf program by Tor Andersson.</pre> <p>[toolbin/jpxtopdf.c 1.1]</p> </blockquote> <p><strong><a name="2004-03-10_1906"></a> 2004-03-10 19:06 Ralph Giles</strong></p> <blockquote> <pre> Revert documentation change. Apparenlty the problem was that the user specified an ICC colorspace and it does have an effect with pswrite if one uses the usual RGB, etc. colorspaces. Bug 687357.</pre> <p>[doc/Use.htm 1.105]</p> </blockquote> <p><strong><a name="2004-03-10_1901"></a> 2004-03-10 19:01 Ralph Giles</strong></p> <blockquote> <pre> Clarify that -dNOSUBSTDEVICECOLORS has no effect on the pswrite device. Bug 687357.</pre> <p>[doc/Use.htm 1.104]</p> </blockquote> <p><strong><a name="2004-03-10_0549"></a> 2004-03-10 05:49 Ralph Giles</strong></p> <blockquote> <pre> Correct yet another typo that was preventing the regression from running.</pre> <p>[toolbin/tests/run_nightly 1.23]</p> </blockquote> <p><strong><a name="2004-03-10_0452"></a> 2004-03-10 04:52 Raph Levien</strong></p> <blockquote> <pre> Fix problem with dci.max_components introduced with DeviceN changes. Closes bug #677383.</pre> <p>[src/gdevijs.c 1.7]</p> </blockquote> <p><strong><a name="2004-03-09_2131"></a> 2004-03-09 21:31 Ralph Giles</strong></p> <blockquote> <pre> Check for jpeg, zlib, and libpng headers as well as libraries before using the shared versions. Bug 687261.</pre> <p>[src/configure.ac 1.43]</p> </blockquote> <p><strong><a name="2004-03-09_1330"></a> 2004-03-09 13:30 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Wrong metrics when 2 font resources for same embeded font. DETAILS : Bug 687308 "Text in PDF Form field renders incorrectly". The document contains 2 font resources for same embedded font. PDF interpreter first creates a copy of the font, replacing the metrics with Widths. Then it creates another copy of the with no replaced metrics. But it used the first copy (through findfont) instead the original font, and the Metrics in the second copy appears wrong. This patch applies pdfcachefont for embedded fonts, to allow retrieving original fonts for subsequeent font resources. EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_font.ps 1.61]</p> </blockquote> <p><strong><a name="2004-03-09_1038"></a> 2004-03-09 10:38 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Annotations encrypted with a wrong object id. DETAILS : Bug 687333 "pdfwrite: A wrong encryption of bookmarks". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfm.c 1.35]</p> </blockquote> <p><strong><a name="2004-03-09_0931"></a> 2004-03-09 09:31 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 2 charstrings) : More tolerance and conformity. DETAILS : 1. Some Type 2 charstrings omit the vstemhm operator before rmoveto, even though this is only allowed before hintmask and cntrmask. Bug 687311 "could make more sense of invalid stem hints". 2. Subglyph offset was not crrect. 3. Removing an outdated comment. Thanks to Felix Pahl for these improvements. EXPECTED DIFFERENCES : None.</pre> <p>[src/gstype2.c 1.34]</p> </blockquote> <p><strong><a name="2004-03-09_0542"></a> 2004-03-09 05:42 Dan Coby</strong></p> <blockquote> <pre> Remove some extra carriage returns (^M) at the ends of lines. These keep sneaking into the sources. Presumably the cause has to do with copying files from unix to windows or vice versa.</pre> <p>[lib/pdf_base.ps 1.41]</p> </blockquote> <p><strong><a name="2004-03-08_1645"></a> 2004-03-08 16:45 Ralph Giles</strong></p> <blockquote> <pre> Correct a typo in the whitelist keyword changes.</pre> <p>[toolbin/tests/run_nightly 1.22]</p> </blockquote> <p><strong><a name="2004-03-07_1226"></a> 2004-03-07 12:26 Igor Melichev</strong></p> <blockquote> <pre> Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 3). DETAILS : Remove unused variables. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfunc3.c 1.21]</p> </blockquote> <p><strong><a name="2004-03-07_1206"></a> 2004-03-07 12:06 Igor Melichev</strong></p> <blockquote> <pre> Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 2). DETAILS : 1. Remove gs_function_effort_t because it is not longer useful. 2. Update the documentation in comments. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfunc.c 1.10, src/gsfunc.h 1.11, src/gsfunc0.c 1.17, src/gsfunc3.c 1.20, src/gsfunc4.c 1.15, src/gxfunc.h 1.9, src/gxshade1.c 1.26, src/gxshade6.c 1.47]</p> </blockquote> <p><strong><a name="2004-03-07_1204"></a> 2004-03-07 12:04 Igor Melichev</strong></p> <blockquote> <pre> Fix : gs_function_is_monotonic computed an unused auxiliary result (continued). DETAILS : Bug 687328 fn_is_monotonic_proc_t slows down ShadingType 1 in 3 times Actually the result appears used while checking the monotonity of a stiching function. But we believe that it doesn't worth the processor time expence. I simpler way is to consider the stitches as a monotonity breaks. EXPECTED DIFFERENCES : None</pre> <p>[src/gsfunc3.c 1.19]</p> </blockquote> <p><strong><a name="2004-03-07_0002"></a> 2004-03-07 00:02 Igor Melichev</strong></p> <blockquote> <pre> Fix (dropout prevention) : extra pixels at small serifs. DETAILS : It appears a long standing bug. It caused a section was not cleaned before reusage. The reason was an interval to clean was added to the list of a another margin_set. This bug frequently caused a missed serif suppression (i.e. extra pixels at small serifs). EXPECTED DIFFERENCES : A massive rendering difference at small resolutions : 72dpi : "000040cf.000_60.pdf" "001-01.ps" "001-13.ps" "001-25.ps" "002-09.ps" "002-21.ps" "002-33.ps" "003-01.ps" "012-01.ps" "012-05.ps" "013-01.ps" "013-05.ps" "014-01.ps" "014-05.ps" "015-01.ps" "015-05.ps" "018-01.ps" "01_001.pdf" "021-01.ps" "023-01.ps" "027-01.ps" "027-05.ps" "027-09.ps" "032-01.ps" "033-01.ps" "034-01.ps" "036-01.ps" "040-01.ps" "045-01.ps" "046-01.ps" "050-01.ps" "055-01.ps" "061-01.ps" "070-01.ps" "076-01.ps" "083-01.ps" "083-05.ps" "084-01.ps" "091-01.ps" "093-01.ps" "094-01.ps" "096-01.ps" "103-01.ps" "104-01.ps" "109-01.ps" "110-01.ps" "113-01.ps" "118-01.ps" "119-01.ps" "119-10.ps" "119-16.ps" "119-47.ps" "120-01.ps" "123-01.ps" "123-05.ps" "124-01.ps" "129-01.ps" "141-01.ps" "148-05.ps" "148-11.ps" "149-01.ps" "154-01.ps" "158-01.ps" "159.pdf" "162-01.ps" "166-01.ps" "169-01.ps" "169-05.ps" "170-01.ps" "176-01.ps" "177-01.ps" "181-01.ps" "184-01.ps" "192-01.ps" "200-01.ps" "205-01.ps" "205-05.ps" "206-01.ps" "212-01.ps" "213-01.ps" "214-01.ps" "215-01.ps" "219-01.ps" "220-01.ps" "220-07.ps" "222-01.ps" "222-05.ps" "226-01.ps" "227-01.ps" "231-01.ps" "233-01.ps" "244-01.ps" "245-01.ps" "245-07.ps" "245-13.ps" "245-17.ps" "246-01.ps" "250-01.ps" "251-01.ps" "255-01.ps" "257-01.ps" "258-01.ps" "260-01.ps" "263-01.ps" "269-01.ps" "270-01.ps" "272-01.ps" "276-01.ps" "282-01.ps" "297-01.ps" "298-01.ps" "298-05.ps" "299-01.ps" "303-01.ps" "304-01.ps" "307-01.ps" "308-04.ps" "311-03.ps" "313-01.ps" "316-07.ps" "321-01.ps" "321-05.ps" "322-01.ps" "327-01.ps" "328-01.ps" "330-01.ps" "334-01.ps" "335-01.ps" "336-01.ps" "401-01.ps" "405-01.ps" "409-01.ps" "415-01.ps" "421-01.ps" "430-01.ps" "438-01.ps" "450-01.ps" "455690.pdf" "460-01.ps" "463-01.ps" "477-01.ps" "477-03.ps" "477-04.ps" "477-05.ps" "478-01.ps" "483-05-fixed.ps" "483-05.ps" "86554321.pdf" "a.pdf" "aaon97_p7.pdf" "acrobat.pdf" "adesso1.pdf" "adesso5.pdf" "adesso7.pdf" "adesso8.pdf" "AdobeLic.pdf" "alphabet.ps" "besttest.pdf" "brochurep1.pdf" "bulletin.pdf" "CAIB_highres_page4.pdf" "chess.ps" "CIDembedded.pdf" "Faktura.pdf" "Fixed_Original.pdf" "HeiseiMinStd.pdf" "japan.ps" "korea.ps" "KozukaB-ILEmbed.pdf" "loremIpsum.pdf" "mbb-with-space.ps" "ngnews1.pdf" "Original.pdf" "pdftops.pdf" "prfmm.pdf" "prob.pdf" "RealCities.pdf" "rf1025.pdf" "RodinCIDEmbed.pdf" "S2_Digitalproof-Forum_x3k.pdf" "Svd.pdf" "textsavematrix.pdf" "tpc2.ps" "type1-ce1_setcurrentpoint.ps" "type42_glyph_index.ps" "waterfal.ps" "womanface.pdf" 300 dpi : "000040cf.000_60.pdf" "001-01.ps" "093-01.ps" "a.pdf" "aaon97_p7.pdf" "alphabet.ps" "bug-gstest.pdf" "chess.ps" "Fixed_Original.pdf" "fonttest.pdf" "HeiseiMinStd.pdf" "japan-.ps" "japan.ps" "KozukaB-ILEmbed.pdf" "mbb-with-space.ps" "Original.pdf" "RodinCIDEmbed.pdf" "S2_Digitalproof-Forum_x3k.pdf" "tpc2.ps" "Type11CDevProc.ps"</pre> <p>[src/gxfdrop.c 1.14]</p> </blockquote> <p><strong><a name="2004-03-06_1515"></a> 2004-03-06 15:15 Alex Cherepanov</strong></p> <blockquote> <pre> Immediately return the success for 0-length read from a string array. Don't seek to the offset because it may be invalid in some broken fonts. Fix bug 687340</pre> <p>[src/zfont42.c 1.18]</p> </blockquote> <p><strong><a name="2004-03-05_2325"></a> 2004-03-05 23:25 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.108, src/gdevpdfv.c 1.35, src/gdevpdtt.c 1.75, src/gsfunc0.c 1.16, src/gsfunc3.c 1.18, src/ttfmain.c 1.25]</p> </blockquote> <p><strong><a name="2004-03-05_2226"></a> 2004-03-05 22:26 Igor Melichev</strong></p> <blockquote> <pre> Fix : Raster depended on bands, step 4, final. DETAILS : This change is algorithmically equivalent. 1. Removed the old code BAND_INDEPENDENT 0. 2. Simplified fill_slant_adjust with removing low useful variables. 3. Optimized the gxfilltr.h template with excluding some branches from the scope of le, re. 4. Renamed function templates with a (new) regular convention. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.117, src/gxfillsl.h 1.4, src/gxfilltr.h 1.6, src/gxfillts.h 1.3]</p> </blockquote> <p><strong><a name="2004-03-05_1535"></a> 2004-03-05 15:35 Igor Melichev</strong></p> <blockquote> <pre> Fix : Raster depended on bands, step 3. DETAILS : Bug 687222 "Raster depends on bands". Switching to the new code. Now trapezoid sides are independent on bands, clipping and scans. Any trapesoid side is equal to some flattened piece of an outline segment. A massive difference happens due to the old code recognized low trapezoids as rectangles. The new code does not because it checks the verticality with longer bars. EXPECTED DIFFERENCES : Almost all comparefiles render differently., but mist differences are single pixels. A dozen of files give dual pixel differences.</pre> <p>[src/gxfill.c 1.116]</p> </blockquote> <p><strong><a name="2004-03-05_1439"></a> 2004-03-05 14:39 Ralph Giles</strong></p> <blockquote> <pre> correct a typo in the recent comment revision</pre> <p>[doc/Make.htm 1.74]</p> </blockquote> <p><strong><a name="2004-03-05_1436"></a> 2004-03-05 14:36 Ralph Giles</strong></p> <blockquote> <pre> add a missing '.' to a comment</pre> <p>[src/msvc32.mak 1.55]</p> </blockquote> <p><strong><a name="2004-03-05_1416"></a> 2004-03-05 14:16 Igor Melichev</strong></p> <blockquote> <pre> Fix : Raster depended on bands, step 2. DETAILS : Bug 687222 "Raster depends on bands". For the enabled code this change is algorithmically equivalent. It fixes rectangle coordinates in the disabled code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfilltr.h 1.5]</p> </blockquote> <p><strong><a name="2004-03-05_1317"></a> 2004-03-05 13:17 Igor Melichev</strong></p> <blockquote> <pre> Fix : Raster depended on bands, step 1. DETAILS : Bug 687222 "Raster depends on bands". This is a continuation for http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003986.html This patch defines a configuration flag BAND_INDEPENDENT. The enabled code should be equivalent to the old one. The disabled code passes band-independent data for low level functions. The disabled code is not debugged yet. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.115, src/gxfilltr.h 1.4, src/gxfillts.h 1.2]</p> </blockquote> <p><strong><a name="2004-03-05_0537"></a> 2004-03-05 05:37 Ralph Giles</strong></p> <blockquote> <pre> Remove a debug tracing message.</pre> <p>[src/sjpx.c 1.2]</p> </blockquote> <p><strong><a name="2004-03-04_2250"></a> 2004-03-04 22:50 Ralph Giles</strong></p> <blockquote> <pre> Add support for our whitelist keyword filter to the regression run.</pre> <p>[toolbin/tests/run_nightly 1.21]</p> </blockquote> <p><strong><a name="2004-03-04_2234"></a> 2004-03-04 22:34 Ralph Giles</strong></p> <blockquote> <pre> Improve wording in the MSVC debug flag descriptions.</pre> <p>[doc/Make.htm 1.73]</p> </blockquote> <p><strong><a name="2004-03-04_2228"></a> 2004-03-04 22:28 Ralph Giles</strong></p> <blockquote> <pre> Improve wording in a comment.</pre> <p>[src/msvc32.mak 1.54]</p> </blockquote> <p><strong><a name="2004-03-04_1641"></a> 2004-03-04 16:41 Igor Melichev</strong></p> <blockquote> <pre> Fix : gs_function_is_monotonic computed an unused auxiliary result. DETAILS : Bug 687328 fn_is_monotonic_proc_t slows down ShadingType 1 in 3 times The function fn_is_monotonic_proc_t computes a result consisting of 2 things : (1) whether the function is monotonic, (2) if so, whether it is encreesing or decreesing. The part (2) consumes a huge time and never used. Intending to cancel it. On necessity clients can compute (2) by calling 'evaluate'. EXPECTED DIFFERENCES : Clarke Tate Manns Chinese.ai STEUER-RollingMesh 1(linear).ai</pre> <p>[src/gsfunc.h 1.10, src/gsfunc0.c 1.15, src/gsfunc3.c 1.17]</p> </blockquote> <p><strong><a name="2004-03-04_1627"></a> 2004-03-04 16:27 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Reject encryption options if no password is specified, improved. DETAILS : Bug 687334 "pdfwrite: Encryption with no password". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.92]</p> </blockquote> <p><strong><a name="2004-03-04_1613"></a> 2004-03-04 16:13 Igor Melichev</strong></p> <blockquote> <pre> Fix : "KeyLength" option name was misspelled in the documentation. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2pdf.htm 1.65]</p> </blockquote> <p><strong><a name="2004-03-04_1613"></a> 2004-03-04 16:13 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Reject encryption options if no password is specified. DETAILS : Bug 687334 "pdfwrite: Encryption with no password". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.91]</p> </blockquote> <p><strong><a name="2004-03-04_1550"></a> 2004-03-04 15:50 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Floating point aritmetic applied to uninitialized data. DETAILS : Rather the result was not used, the oprtation could cause floating point interrupts. Debugged with test-setweightvector.ps . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdte.c 1.53, src/gdevpdtt.c 1.74]</p> </blockquote> <p><strong><a name="2004-03-04_1434"></a> 2004-03-04 14:34 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT grid fitting) : The glyph trailing moveto got wrong coordinates. DETAILS : Advance width was scaled wrongly. EXPECTED DIFFERENCES : japan.ps S2_Digitalproof-Forum_x3k.pdf Testform.v1.0.2.pdf</pre> <p>[src/gxttfb.c 1.32, src/ttfmain.c 1.24]</p> </blockquote> <p><strong><a name="2004-03-04_0506"></a> 2004-03-04 05:06 Dan Coby</strong></p> <blockquote> <pre> Implementation of 687326 Enhancement: Handling of PDF 1.5encryption. DETAILS: The PDF 1.5 specification has added several some features for encryption of PDF documents. 1. The new encryption changes are indicated by a /R value of 4 in the Encryption dictionary. Note: The encryption algorithm is the same as /R = 3. 2. The encryption handling for strings and streams may now be specified independently. Current possibilities are 'Identity' and the standard handler. Note: There are more encryption features in the PDF 1.5 specification. HowevertThe only means that I have for generating test files for these new encryption features is Acrobat 6.0. This patch will decode files which are encrypted using Acrobat 6.0. There is one more feature (EncryptMetaData) which will be the subject of a separate patch. Between the features covered by the current patch and the EncryptMetaData patch, this includes all of the capabilities that are available to a user of Acrobat 6.0. Since Acrobat 6.0 is the major producer of files with these new encryption features, Ghostscript will have the ability to decrypt files which we are likely to see in the near future.</pre> <p>[lib/pdf_sec.ps 1.14]</p> </blockquote> <p><strong><a name="2004-03-03_1353"></a> 2004-03-03 13:53 Igor Melichev</strong></p> <blockquote> <pre> Fix : Shading could cause a floating point exception. DETAILS : It caused an a floating point interrupts if they are unmasked. The problem in gxshade6.c apeared with NEW_SHADINGS with ppmraw -r72 050-01.ps . The problem in gxshade1.c ln 638 apeared with NEW_SHADINGS with ppmraw -r72 "STEUER-RollingMesh 2*.ai" . Another one looks as a long standing bug with ppmraw -r72 442-01.ps EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade1.c 1.25, src/gxshade6.c 1.46]</p> </blockquote> <p><strong><a name="2004-03-03_1010"></a> 2004-03-03 10:10 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT grid fitting) : AlignToPixels=0 aligned to pixels. DETAILS : Bug 687318 'A poor TT grid fitting with TextAlphaBits>1". This patch doesn't close the bug. An StdHW, StdVW reconstruction is necesseary for perfect result. AlignToPixels=0 still gives a varying stem width. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxttfb.c 1.31]</p> </blockquote> <p><strong><a name="2004-03-03_0816"></a> 2004-03-03 08:16 Igor Melichev</strong></p> <blockquote> <pre> Fix (type 1 hinter) : small resolutions caused a rangecheck. DETAILS : Bug 687301 "/limitcheck in --.type42execchar-- at 13 dpi". When CTM is too small, its rational representation appears degenerate, and we pass the character with no hinting. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.44]</p> </blockquote> <p><strong><a name="2004-03-03_0514"></a> 2004-03-03 05:14 Dan Coby</strong></p> <blockquote> <pre> Fix for 687274 White areas appear shaded. DETAILS: This 'problem' is caused by a 'feature'. The high resolution transfer function deliberately has a piece of logic that forces any shade of gray that is not pure white (i.e. greater than 0.998) to halftone with at least one pixel being set in the output. This keeps nearly white shades from being washed out. We have seen several instances in which this 'feature' causes a problem. The fax output format tiffg4 has been bitten by this problem since it is commonly used at 204 dpi. This change removes this feature.</pre> <p>[lib/gs_init.ps 1.105]</p> </blockquote> <p><strong><a name="2004-03-02_1147"></a> 2004-03-02 11:47 Igor Melichev</strong></p> <blockquote> <pre> Improving the MSVC debug build options. DETAILS : 1. The implementation of switches DEBUG and TDEBUG in msvc32.mak did not comply to their explanation in comments. Bug 687276 "mscv32.mak : DEBUG and TDEBUG don't comply to documentation" 2. Defined a new switch DEBUGSYM : + # Setting DEBUGSYM=1 is only useful with TDEBUG=0 for advanced developers. + # It includes symbol table information for the debugger to the release build. 3. Updated doc\Make.htm about that. EXPECTED DIFFERENCES : None.</pre> <p>[src/msvc32.mak 1.53, src/msvccmd.mak 1.15, doc/Make.htm 1.72]</p> </blockquote> <p><strong><a name="2004-03-02_1014"></a> 2004-03-02 10:14 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Errors were missed processing a shading data stream. DETAILS : Bug 687307 "A ShadingType 7 differs from Adobe." shade_next_flag interpreted a wrong data as End-Of-Data, so that some wrong documents were passed with no error. Now pdfwrite handles the bad shading data exception separately from other errors: the shading is fully written and the error is signaled to the PS interpreter after that. Note that other errors terminate immediately with inconsistent data written to the PDF output. We did the special processing to provide a better conformity to some buggy Genoa tests, which paint a shading with a wrong data in a stopped context. Besides that, we cancelled the default implementation fallback when pdf_setfillcolor fails. The old implementation caused shadings to convert into a huge set of rectangles written to PDF. We believe that signalling an error is the right reaction for this case. EXPECTED DIFFERENCES : pdfwrite : 446-01.ps now prints error message to the raster. This is a progression. 483-05.ps now prints error message to stdout. This is a progression.</pre> <p>[src/gdevpdfd.c 1.37, src/gdevpdfg.c 1.47, src/gdevpdfv.c 1.34]</p> </blockquote> <p><strong><a name="2004-03-02_0834"></a> 2004-03-02 08:34 Igor Melichev</strong></p> <blockquote> <pre> Fix : Errors were missed processing a shading data stream. DETAILS : Bug 687307 "A ShadingType 7 differs from Adobe." shade_next_flag interpreted a wrong data as End-Of-Data, so that some wrong documents were passed with no error. With pdfwrite the logic is different, and we didn't fix it. EXPECTED DIFFERENCES : 446-01.ps now prints error message to the raster. This is a progression. 483-05.ps now prints error message to stdout. This is a progression.</pre> <p>[src/gxshade.c 1.21, src/gxshade4.c 1.25, src/gxshade6.c 1.45, src/gxshade.h 1.11]</p> </blockquote> <p><strong><a name="2004-03-01_2359"></a> 2004-03-01 23:59 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 42. DETAILS : Big triangle meshes could overflow wedge_vertex_list_elem_buffer. See comment in code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.44]</p> </blockquote> <p><strong><a name="2004-03-01_1239"></a> 2004-03-01 12:39 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 41, release candidate 2. DETAILS : Implemented intersection_of_small_bars with int64_t, and improved the documentation about it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.43]</p> </blockquote> <p><strong><a name="2004-03-01_1044"></a> 2004-03-01 10:44 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 40. DETAILS : 1. Improved various constraints for patch size, which are caused by the arithmetic precision. Now all them are collected in curve_samples. 2. Improved the documentation about secondary branches. 3. Fixed minor bugs in secondary branches. 3. Improved the formatting with easier distinguishing a multiplication " * x" from dereferencing " *x". It was important for finding arithmetic constraints. EXPECTED DIFFERENCES : SmoothShading.pdf at 300dpi.</pre> <p>[src/gxshade4.h 1.21, src/gxshade6.c 1.42]</p> </blockquote> <p><strong><a name="2004-02-29_1659"></a> 2004-02-29 16:59 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 39. DETAILS : The previous patch appears wrong. This one replaces it. Fixed the order of painting pixels : U and V were exchanged. Debugged with examples attached to the bug 687307. Besides that, the smoothness condition is changed : the case with strong equality must not decompose. A special test for this is 478-01.ps - now it is decomposed with monotonic intervals only. EXPECTED DIFFERENCES : Since the previous patch appears wrong, here is a difference from a revision before it : 446-01.ps 478-01.ps 483-05.ps gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 3(Final).ai</pre> <p>[src/gxshade1.c 1.24, src/gxshade6.c 1.41]</p> </blockquote> <p><strong><a name="2004-02-29_1447"></a> 2004-02-29 14:47 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 38. DETAILS : Fixed the order of painting pixels : U and V were exchanged. Debugged with examples attached to the bug 687307. EXPECTED DIFFERENCES : 72dpi : 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf chilis_red.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf 300dpi: 289-01.ps 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf chilis_red.pdf Clarke Tate Manns Chinese.ai gradmesh.ai Openhuis_pdf_zw.pdf SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf</pre> <p>[src/gxshade6.c 1.40]</p> </blockquote> <p><strong><a name="2004-02-29_1303"></a> 2004-02-29 13:03 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 37. DETAILS : Fixed a bug in LAZY_WEDGES 1 : fill_wedge_from_list_rec missed non-leaf triangles. Also defined dbg_wedge_triangle_cnt for debug purpose. EXPECTED DIFFERENCES : 72dpi : 446-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 3(Final).ai 300dpi: 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai</pre> <p>[src/gxshade6.c 1.39]</p> </blockquote> <p><strong><a name="2004-02-28_1230"></a> 2004-02-28 12:30 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 36. DETAILS : Implemented lazy wedges : do not create a wedge, if both neighbours of a line were divided at same point. It reduces the number of constant color triangles to fill. Since this algorithm consumes an exponential RAM of the wedge nesting, we restrict the wedge nesting with 9. For doing that we enforce subdivision of large patches into chunks with <=512 pixels length sides - see LAZY_WEDGES_MAX_LEVEL. EXPECTED DIFFERENCES : 72dpi : 289-01.ps 442-01.ps 446-01.ps 464-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai 300dpi: 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf</pre> <p>[src/gxshade1.c 1.23, src/gxshade4.c 1.24, src/gxshade6.c 1.38, src/gxshade4.h 1.20]</p> </blockquote> <p><strong><a name="2004-02-27_0924"></a> 2004-02-27 09:24 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 35. DETAILS : 1. Improving the filling order for self-overlapping patches. The old code filled them wrongly (a bug). This patches fixes that. With self-overlapping patches the new code is slower. 2. Improved the numeric error processing in intersection_of_big_bars. With negative bars the old code could give a bias in fixed_1, rather negative bars probably never come here. EXPECTED DIFFERENCES : 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf chilis_red.pdf Clarke Tate Manns Chinese.ai gradmesh.ai SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf</pre> <p>[src/gxshade6.c 1.37]</p> </blockquote> <p><strong><a name="2004-02-26_2055"></a> 2004-02-26 20:55 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 34. DETAILS : Improving the ShadingType 1 with applying the generic algorithm. The generic algorithm is extended for 2-argument functions. Also fixing the configuration switch DIVIDE_BY_PARALLELS, which was unintentionally set to 1 by the previous patch. EXPECTED DIFFERENCES : 289-01.ps 442-01.ps 446-01.ps 464-01.ps 478-01.ps 483-01.ps 483-05.ps gradmesh.ai</pre> <p>[src/gxshade.c 1.20, src/gxshade1.c 1.22, src/gxshade4.c 1.23, src/gxshade4.h 1.19, src/gxshade6.c 1.36, src/lib.mak 1.173]</p> </blockquote> <p><strong><a name="2004-02-26_2010"></a> 2004-02-26 20:10 Ray Johnston</strong></p> <blockquote> <pre> Revert to the correct version of gs_setpd.ps and Use.htm. DETAILS: A local CVS problem resulted in an update from a directory that did not have the changes, causing me to think that the files needed to be updated, but instead removed the previous update. What a mess!</pre> <p>[doc/Use.htm 1.103, lib/gs_setpd.ps 1.23]</p> </blockquote> <p><strong><a name="2004-02-26_1955"></a> 2004-02-26 19:55 Igor Melichev</strong></p> <blockquote> <pre> Fix : A bug in fn_Sd_is_monotonic. DETAILS : Monotonic intervals were computed wrongly due to a wrong cell boundary condition. With no Encode it overestimated the number of cells in 1. This patch also extends fn_Sd_is_monotonic for multi-argument functions. Actually it checks whether both points are within same cell. This is fine with linear functions, but for 3d order we would like to check for zero derivatives within the interval specified by 2 vectors. EXPECTED DIFFERENCES : 300dpi: 442-01.ps 483-01.ps</pre> <p>[src/gsfunc0.c 1.14]</p> </blockquote> <p><strong><a name="2004-02-26_0718"></a> 2004-02-26 07:18 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 33. DETAILS : Improves the performance of radial shadings : For a faster painting, we apply fill adjustment to outer annula only. Inner annula are painted with no fill adjustment. It can't cause a dropout, because the outer side of an annulus gets same flattening as the inner side of the neighbour outer annulus. For other shadings this chande is algorithmically equivalent. EXPECTED DIFFERENCES : A minor difference with axial shadings : 442-01.ps 446-01.ps 483-01.ps 483-05.ps Altona-Testsuite_p2_S_x3.pdf Clarke Tate Manns Chinese.ai gradmesh.ai S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 2(radial).ai STEUER-RollingMesh 3(Final).ai</pre> <p>[src/gxshade.c 1.19, src/gxshade.h 1.10, src/gxshade1.c 1.21, src/gxshade4.c 1.22, src/gxshade4.h 1.18]</p> </blockquote> <p><strong><a name="2004-02-25_2038"></a> 2004-02-25 20:38 Russell Lang</strong></p> <blockquote> <pre> Fixes bug 687317. Fix pdfwrite allowable Permissions for EncryptionR=2. Fix default Permissions. DETAILS: The code was assuming that the extra permissions should be 0's, when in fact they should be 1's. The fixed code is a bit more conservative and requires that all reserved bits match the PDF specification. Set the default permissions to -4 which allows everything.</pre> <p>[src/gdevpdf.c 1.90]</p> </blockquote> <p><strong><a name="2004-02-25_2037"></a> 2004-02-25 20:37 Ray Johnston</strong></p> <blockquote> <pre> Clean up dict stack after loading an embedded Type1 font from a PDF file. While the font is buggy, Adobe doesn't complain. Bug #687315.</pre> <p>[lib/pdf_font.ps 1.60]</p> </blockquote> <p><strong><a name="2004-02-25_2035"></a> 2004-02-25 20:35 Ray Johnston</strong></p> <blockquote> <pre> Add an option to prevent the 'range' type PageSize from being added to the InputAttribute dictionary. This option is useful for printers that want the requested pages to be rotated to fit one of the available page sizes. Option is -dNORANGEPAGESIZE. Fix for bug #629335.</pre> <p>[lib/gs_setpd.ps 1.22, doc/Use.htm 1.102]</p> </blockquote> <p><strong><a name="2004-02-25_1621"></a> 2004-02-25 16:21 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 32. DETAILS : 1. Implemented axial shading with a Coons patch. It gives more regularity with area decomposition and trapping. 2. Optimized tensor shadings for the case when the gradient is parallel to the quadrangle sides. Note that the old code applies 1/2 pixels fill adjustment when painting stripes of the shading, generating overlapped stripes. Instead that the new code generates non-overlapping stripes, and applies a trapping emulation at the shading boundaries with 1/8 pixels. EXPECTED DIFFERENCES : A minor difference with axial shadings : 442-01.ps 446-01.ps 464-01.ps 483-01.ps 483-05.ps BEST8-99-Path.fh7.pdf chilis_black.pdf chilis_red.pdf gradmesh.ai Openhuis_pdf_zw.pdf SmoothShading.pdf STEUER-RollingMesh 1(linear).ai STEUER-RollingMesh 3(Final).ai Testform.v1.0.2.pdf An area shift in Testform.v1.0.2.pdf at 72dpi appears due to the fill adjustment is replaced with the trapping emulation.</pre> <p>[src/gxshade1.c 1.20, src/gxshade4.h 1.17, src/gxshade6.c 1.35, src/lib.mak 1.172]</p> </blockquote> <p><strong><a name="2004-02-24_2227"></a> 2004-02-24 22:27 Jack Moffitt</strong></p> <blockquote> <pre> Add support for specifying CVS repository location, which requires a new configuration key, 'gsconf.repodir'.</pre> <p>[toolbin/tests/testing.cfg.example 1.5, toolbin/tests/update_specific 1.2]</p> </blockquote> <p><strong><a name="2004-02-24_2220"></a> 2004-02-24 22:20 Jack Moffitt</strong></p> <blockquote> <pre> Script to update baselines for a specific CVS version of Ghostscript. The script requires a new configuration key, 'gsconf.fontdir'.</pre> <p>[toolbin/tests/testing.cfg.example 1.4, toolbin/tests/update_specific 1.1]</p> </blockquote> <p><strong><a name="2004-02-24_1907"></a> 2004-02-24 19:07 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 31. DETAILS : 1. Removed an undefined macro call (a portability bug). 2. Disabled some unused functions. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.21, src/gxshade4.h 1.16]</p> </blockquote> <p><strong><a name="2004-02-24_1857"></a> 2004-02-24 18:57 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 30. DETAILS : 1. Triangle meshes were passed to the rasterizer with no color resolved. It is assumed to be resolved in advance (a bug). 2. Improved external names with adding a scope prefix. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.20, src/gxshade4.h 1.15, src/gxshade6.c 1.34]</p> </blockquote> <p><strong><a name="2004-02-24_1212"></a> 2004-02-24 12:12 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 29 - release candidate 1. DETAILS : Switching to the new implementation. It fixes a number of bugs, works 2.5 times faster and produces a better view. Also documented secondary development branches. Bug 687291 "problems in patch_fill". Bug 687310 "Wrong color interpolation with ShadingType 4,5.". EXPECTED DIFFERENCES : 446-01.ps 483-05.ps</pre> <p>[src/gxshade4.h 1.14]</p> </blockquote> <p><strong><a name="2004-02-24_1157"></a> 2004-02-24 11:57 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 28. DETAILS : Removing debug helpers. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.19, src/gxshade4.h 1.13, src/gxshade6.c 1.33]</p> </blockquote> <p><strong><a name="2004-02-24_1150"></a> 2004-02-24 11:50 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 27. DETAILS : It simplifies visual trace commands with the new macros. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.18, src/gxshade6.c 1.32]</p> </blockquote> <p><strong><a name="2004-02-24_1143"></a> 2004-02-24 11:43 Igor Melichev</strong></p> <blockquote> <pre> Improving the visual trace macros. DETAILS : It defines a raugh implementation for a temporary trace disabling. EXPECTED DIFFERENCES : None.</pre> <p>[src/vdtrace.h 1.12]</p> </blockquote> <p><strong><a name="2004-02-24_1108"></a> 2004-02-24 11:08 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 26. DETAILS : This patch changes a disabled code only. It fixes a bug computing ku[3], which missed some wedges, and improves some visual trace commands. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.31]</p> </blockquote> <p><strong><a name="2004-02-24_0957"></a> 2004-02-24 09:57 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 25. DETAILS : This patch changes a disabled code only. This change is algorithmically equivalent. During a trianglulation it avoids redundant computation of the color span and the triangle size. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.30]</p> </blockquote> <p><strong><a name="2004-02-24_0928"></a> 2004-02-24 09:28 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 24. DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004243.html unintentionally switched on the new code. Now switching it back to the old one. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.h 1.12]</p> </blockquote> <p><strong><a name="2004-02-24_0908"></a> 2004-02-24 09:08 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 23. DETAILS : This patch changes a disabled code only. 1. Wedges were missed in triangle_by_4. 2. Improved a debug mode in gxshade4.c . 3. Fixed cygwin/gcc warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.17, src/gxshade6.c 1.29]</p> </blockquote> <p><strong><a name="2004-02-24_0814"></a> 2004-02-24 08:14 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 22. DETAILS : This patch changes a disabled code only. It implements a division of a quadrangle into 4 triangles, like the old code does. It doesn't change the performance and the view appears slightly better. This mode is useful with DIVIDE_BY_PARALLELS 0. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.28]</p> </blockquote> <p><strong><a name="2004-02-24_0758"></a> 2004-02-24 07:58 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 21. DETAILS : This patch changes a disabled code only. It implements a division of a triangle into 4 triangles, like the old code does. This appears some slower, but gives a better view when the smooothness is smaller than the color resolution. Minor changes : - Implemented VD_TRACE_DOWN to gxshade6.c; - Changed some visual trace commands; - COLOR_CONTIGUITY specifies a coefficient for divide_triangle_by_parallels. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.h 1.11, src/gxshade6.c 1.27]</p> </blockquote> <p><strong><a name="2004-02-23_2041"></a> 2004-02-23 20:41 Ralph Giles</strong></p> <blockquote> <pre> Check for local jpeg library source by looking for the jpeglib.h header rather than just the jpeg directory. Also try looking for jpeg-6b if the jpeg fails; this lets us find the source as it unpacks from the upstream tarball. Patch from ESP Ghostscript.</pre> <p>[src/configure.ac 1.42]</p> </blockquote> <p><strong><a name="2004-02-23_0307"></a> 2004-02-23 03:07 Ray Johnston</strong></p> <blockquote> <pre> Add a parameter which prevents the non-standard four element PageSize entry in the InputAttributes from being included. This prevents problems with PostScript programs that examine the InputAttributes entries in an attempt to pick the 'best fit' rather than relying on the setpagedevice logic. Also most 'real' printer devices don't support arbitrary page sizes, so automatic rotation is defeated if the range type page size in included. The option is -dNORANGEPAGESIZE. Bug #629335.</pre> <p>[doc/Use.htm 1.101, lib/gs_setpd.ps 1.21]</p> </blockquote> <p><strong><a name="2004-02-23_0144"></a> 2004-02-23 01:44 Ray Johnston</strong></p> <blockquote> <pre> Add the path to the code directory (gsconf.codedir) for invocation of the update_baseline/update_pdfbaseline.</pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.18, toolbin/tests/gscheck_raster.py 1.9]</p> </blockquote> <p><strong><a name="2004-02-22_2354"></a> 2004-02-22 23:54 Ralph Giles</strong></p> <blockquote> <pre> Initial implementation of the JPXDecode filter using the JasPer library for decoding the JPEG 2000 data. This version only implements a postscript-level filter; PDF support will follow in another commit. DETAILS: A new FEATURE_DEV, 'jpx.dev', is added to the makefile to enable support. The jasper library must be available to link with in this case. The library is autodetected in the autoconf build, but not yet enabled on other platforms. The implementation leaves a little to be desired. While JasPer is robust, it provides no way to connect its internal stream architecture to ours, so we end up buffering all the data. This seems to be the best we can do without modifying the library. We try to handle data from a number of colorspaces, but the spec is a little vague on what is required. We convert YUV to RGB internally, but do not handle sub-sampled planes.</pre> <p>[src/Makefile.in 1.33, src/configure.ac 1.41, src/int.mak 1.124, src/lib.mak 1.171, src/sjpx.c 1.1, src/sjpx.h 1.1, src/zfjpx.c 1.1]</p> </blockquote> <p><strong><a name="2004-02-22_1511"></a> 2004-02-22 15:11 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 20. DETAILS : This fixes an unintentional regression in gxshade4.c, which appeared from a recent patch. Also it optimises the access to pis->smoothness. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.16, src/gxshade6.c 1.26]</p> </blockquote> <p><strong><a name="2004-02-22_1414"></a> 2004-02-22 14:14 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 19. DETAILS : This change is algorithmically equivalent. It simplifies internal interfaces with the new type quadrangle_patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.25]</p> </blockquote> <p><strong><a name="2004-02-22_1306"></a> 2004-02-22 13:06 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 18. DETAILS : This change is algorithmically equivalent. It simplifies the interface of fill_triangle_wedge. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.24]</p> </blockquote> <p><strong><a name="2004-02-22_1059"></a> 2004-02-22 10:59 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 17. DETAILS : This change is algorithmically equivalent. It simplifies intermodule interfaces with using shading_vertex_t instead a pair of a point and a color. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.15, src/gxshade4.h 1.10, src/gxshade6.c 1.23]</p> </blockquote> <p><strong><a name="2004-02-22_0943"></a> 2004-02-22 09:43 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 16. DETAILS : This patch changes a disabled code only. In the disabled code it fixes the bug 687310 "Wrong color interpolation with ShadingType 4,5.". In the old code the interpolation is still done in the color space rather than in the function domain. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade.c 1.18, src/gxshade.h 1.9, src/gxshade4.c 1.14, src/gxshade4.h 1.9, src/gxshade6.c 1.22, src/lib.mak 1.170]</p> </blockquote> <p><strong><a name="2004-02-21_1825"></a> 2004-02-21 18:25 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 15. DETAILS : This patch changes a disabled code only. Optimized the patch decomposition. 1. Triangles are divided along the color gradient. Since the color gradient is vector, actually we divide along the gradient of the Manhattan"s color norm. 2. Rectangles are divided into 2 triangles by the diagonal with smaller color difference. 3. Improved conditions for compiling wedge_buf. 4. Implemented VD_TRACE_TRIANGLE_PATCH. This revision appears faster than the old code NEW_SHADINGS 0 in about 1.4 times. A code optimization is wanted. See "fixme" comments. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.13, src/gxshade4.h 1.8, src/gxshade6.c 1.21]</p> </blockquote> <p><strong><a name="2004-02-20_1504"></a> 2004-02-20 15:04 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 14. DETAILS : This patch changes a disabled code only. Optimized the trapping emulation. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.12, src/gxshade4.h 1.7, src/gxshade6.c 1.20]</p> </blockquote> <p><strong><a name="2004-02-20_1358"></a> 2004-02-20 13:58 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 13. DETAILS : 1. Aplied the new triangulation to triangle meshes. 2. Enhanced the scope of configuration flags and some structures. 3. Improved visual trace commands. The trapping emulation appears too slow and should be optimized. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade4.c 1.11, src/gxshade4.h 1.6, src/gxshade6.c 1.19, src/lib.mak 1.169]</p> </blockquote> <p><strong><a name="2004-02-20_1053"></a> 2004-02-20 10:53 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.114]</p> </blockquote> <p><strong><a name="2004-02-20_1051"></a> 2004-02-20 10:51 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 12. DETAILS : 1. Emulated an interpatch trapping for poorly designed documents - see 'padding', 'interpatch_padding', 'inpatch_wedge'. 2. Improved some debug helpers (TENSOR_SHADING_DEBUG 1). 3. Removed some unused variables. 4. Improved some comments and C-style. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.18]</p> </blockquote> <p><strong><a name="2004-02-20_0646"></a> 2004-02-20 06:46 Dan Coby</strong></p> <blockquote> <pre> Fix for 687279 Linker warnings with Visual Studio 6 and .NET 2003. The changes consist of removing the keyword INITINSTANCE from the def files. The DESCRIPTION lines are changed to a comment and put at the beginning of the files.</pre> <p>[src/dw32c.def 1.4, src/dwmain16.def 1.2, src/dwmain32.def 1.4, src/dwsetup.def 1.5, src/dwuninst.def 1.5, src/gsdll32.def 1.5]</p> </blockquote> <p><strong><a name="2004-02-20_0004"></a> 2004-02-20 00:04 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 11. DETAILS : Simplified wedges with wedge_by_triangles. It makes a big part of the code to be unused with NEW_TENSOR_SHADING 1 QUADRANGLES 0 POLYGON_WEDGES 0. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.17]</p> </blockquote> <p><strong><a name="2004-02-19_2005"></a> 2004-02-19 20:05 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 10. DETAILS : 1. Implemented a decomposition by triangles. 2. Applied restrict_color to colors, to avoid lots of pieces then basic color values are significantly out of range. The 483-07 box of 483-05.ps contains such shadings. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.16]</p> </blockquote> <p><strong><a name="2004-02-19_1132"></a> 2004-02-19 11:32 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 9. DETAILS : 1. Inserted some visual trace instructions in the old algorithm. 2. Moved configurations macro definitions upper, to use them in the old code. 3. Remaned NEW_TENSOR_SHADING_DEBUG with TENSOR_SHADING_DEBUG. 4. In the new code fixed the wedge color. 5. Improved the decomposition of bended patches. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.15]</p> </blockquote> <p><strong><a name="2004-02-19_1121"></a> 2004-02-19 11:21 Igor Melichev</strong></p> <blockquote> <pre> Improving visual trace macros. DETAILS : This patch implements a nesting of trace allowing conditions specified in different modules, and applies it to the filling algorithm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.113, src/vdtrace.h 1.11]</p> </blockquote> <p><strong><a name="2004-02-19_0744"></a> 2004-02-19 07:44 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C22. DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004127.html appears incomplete. This one fixes that. Bug 687306 "CVS head crashes with pkmraw, 300 dpi, with recent changes." EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.112]</p> </blockquote> <p><strong><a name="2004-02-18_1505"></a> 2004-02-18 15:05 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 8. DETAILS : This patch changes a disabled code only. 1. is_curve_small uses a better thresholds. 2. is_xy_monotonic_by_v was wrong. Replaced with is_bended. 3. Optimized wedge_trap_decompose. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.14]</p> </blockquote> <p><strong><a name="2004-02-18_1500"></a> 2004-02-18 15:00 Igor Melichev</strong></p> <blockquote> <pre> Improving the filling algorithm, step D8. DETAILS : Removed floating point arithmetics, which recently appeared by a hack. A rounding is now done slightly different. EXPECTED DIFFERENCES : Normal, 72 dpi : LD.pdf Normal, 300 dpi : 012-01.ps 012-05.ps 013-05.ps 032-01.ps 123-01.ps 123-05.ps 205-01.ps pdfwrite, 72 dpi : LD.pdf pdfwrite, 300 dpi : 123-01.ps 123-05.ps 169-13.ps</pre> <p>[src/gxfill.c 1.111, src/lib.mak 1.168]</p> </blockquote> <p><strong><a name="2004-02-18_1441"></a> 2004-02-18 14:41 Igor Melichev</strong></p> <blockquote> <pre> Fix: Documented rounding formulas in the character processing. EXPECTED DIFFERENCES : None.</pre> <p>[src/fapiufst.c 1.24, src/gxhintn.c 1.43, src/ttfmain.c 1.23]</p> </blockquote> <p><strong><a name="2004-02-18_0954"></a> 2004-02-18 09:54 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Converting an image type 4 into imagemask, a wrong color was written. DETAILS : This problem was discovered with ghostpcl and owlfoo.pcl from Stefan. Thanks to Stefan for detecting it. This fix is kinda hacky. Let it live for a while, because we want to study its consequences before applying more efforts. A right fix should not modify the interpreter graphic state, but we have no a 'const' copy function for gs_state, because gx_gstate_clone shares imager state parts. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfi.c 1.51]</p> </blockquote> <p><strong><a name="2004-02-18_0535"></a> 2004-02-18 05:35 Dan Coby</strong></p> <blockquote> <pre> Add '!ifndef'/'endif' around varaious parameters in the makefile for the Borland compiler (bcwin32.mak). This allows the parameters to be specified on the command line without editting the makefile.</pre> <p>[src/bcwin32.mak 1.32]</p> </blockquote> <p><strong><a name="2004-02-17_1512"></a> 2004-02-17 15:12 Igor Melichev</strong></p> <blockquote> <pre> Fix : MSVC7 wrongly optimizes zpcolor.c . DETAILS : It's an aliasing problem in the optimizer. See comment in code. EXPECTED DIFFERENCES : None.</pre> <p>[src/int.mak 1.123, src/zpcolor.c 1.13]</p> </blockquote> <p><strong><a name="2004-02-16_1629"></a> 2004-02-16 16:29 Igor Melichev</strong></p> <blockquote> <pre> Improving the filling algorithm, step D7. DETAILS : When filling an individual trapezoid, a shortcut for parallelograms could miss some pixels. When the left boundary rounds to a vertical line and the right one does not, for the right boundary it wrongly applied same zero sampling as for the left one, in spite of the right boundary can cross pixel centers. We realize that the shortcut could improve a view of some parallelograms. But in same time we detected that in alphabet.ps with 72dpi a parallelogram was replaced with a wider one, causing a worse view of the character '#'. So its usefullness is arguable. Both features can't provide simultaneousely due to the device interface can't pass a flag whether an exact coverage is required. Therefore we drop the shortcut. EXPECTED DIFFERENCES : normal 72dpi : 020-01.ps 175-01.ps 1_2001.pdf 289-01.ps 446-01.ps 483-05.ps 86554321.pdf acrobat.pdf ADOBE1-4.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf chess.ps dina3_watermark.pdf kazmir.pdf PixelisAd.pdf RealCities.pdf spec_gs.pdf spec_gv.pdf test.pdf vsem0093.pdf xes2ps-problem.pdf xgfddg.pdf normal 300dpi : 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf adesso3.pdf adesso5.pdf adesso7.pdf AdobeLic.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf besttest.pdf brochurep1.pdf bugsample.pdf ca.pdf CAIB_highres_page4.pdf chess.ps dave.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf file.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf japan.ps kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf kshow_with_grestore.ps loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf ngnews.pdf ngnews1.pdf Openhuis_pdf_zw.pdf pdftops.pdf prfmm.pdf prob.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test.pdf test2.pdf test2a.pdf textsavematrix.pdf type42_glyph_index.ps waterfal.ps xgfddg.pdf xngnews.pdf pdfwrite 72 dpi : 020-01.ps 175-01.ps 1_2001.pdf 446-01.ps 483-05.ps 86554321.pdf acrobat.pdf ADOBE1-4.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf chess.ps kazmir.pdf PixelisAd.pdf RealCities.pdf spec_gs.pdf spec_gv.pdf test.pdf vsem0093.pdf xes2ps-problem.pdf xgfddg.pdf pdfwrite 300 dpi : 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf adesso3.pdf adesso5.pdf adesso7.pdf AdobeLic.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf besttest.pdf brochurep1.pdf bugsample.pdf ca.pdf CAIB_highres_page4.pdf chess.ps dave.pdf DisplayedGood.pdf DisplayedWrong.pdf file.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf japan-.ps japan.ps kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf kshow_with_grestore.ps loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf ngnews.pdf ngnews1.pdf Openhuis_pdf_zw.pdf pdftops.pdf prfmm.pdf prob.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test.pdf test2.pdf test2a.pdf textsavematrix.pdf tpc2.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf xngnews.pdf</pre> <p>[src/gxdtfill.h 1.16]</p> </blockquote> <p><strong><a name="2004-02-16_1526"></a> 2004-02-16 15:26 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 7. DETAILS : Documenting the current state of the development, because we need to delay the project. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.13]</p> </blockquote> <p><strong><a name="2004-02-16_1506"></a> 2004-02-16 15:06 Ralph Giles</strong></p> <blockquote> <pre> Adapt makefile support for compiling in zlib to support v1.2.x rather than 1.1.x. Linking to a shared version is unaffected. DETAILS: The zlib source was re-arranged from the 1.1.4 to the 1.2.x releases. While binary compatibility was maintained, and we link just fine to a separately build dynamic zlib, our custom makefile support for compiling in the library source no longer works. Rather than add a 'ZLIB_VERSION' makefile variable and the attendent configuration costs, we've simply migrated completely to the new (much faster) 1.2.x series. 1.2.1 is now the minimum version to be used if you wish to compile zlib as part of Ghostscript.</pre> <p>[doc/Make.htm 1.71, src/zlib.mak 1.8]</p> </blockquote> <p><strong><a name="2004-02-16_1351"></a> 2004-02-16 13:51 Igor Melichev</strong></p> <blockquote> <pre> Improving the filling algorithm, step D6. DETAILS : The algorithm for for filling an individual trapezoid used a wrong formula when rounding a coordinate to pixel index. An intersection of a trapezoid boundary with a scanline is represented as a rational value, in which the fraction represent a part of an unit of 'fixed'. Computing a pixel index, the fraction was ignored. Due to that the spot sides were biased into about 1/256 pixels. The bias appears important when some trapezoids are fixed with swapped coordinate axes, because the bias appears in an opposite direction to one with unswapped axes. Therefore a decomposition of a shading missed pixels, which fall exactly into the biased boundary, causing a dropout. Here is the analyzis of the old rounding : We must paint pixels with index i such that Xl <= i + 0.5 < Xr The condition is is equivalent to Xl - 0.5 <= i < Xr - 0.5 which is equivalent to (is_integer(Xl - 0.5) ? Xl - 0.5 : ceil(Xl - 0.5)) <= i < (is_integer(Xr - 0.5) ? Xr - 0.5 : floor(Xr - 0.5) + 1) (the last '+1" happens due to the strong comparizon '<') which is equivalent to ceil(Xl - 0.5) <= i < ceil(Xr - 0.5) trap_line represents the intersectiion coordinate as a rational value : Xl = xl + e - fl Xr = xr + e - fr gxdtfill.c computes l.x = x0l + (fixed_half - fixed_epsilon). In our notation it is equal to : xl' := xl + 0.5 - e xr' := xr + 0.5 - e Then xl = xl' - 0.5 + e xr = xr' - 0.5 + e Xl = xl' - 0.5 + 2e - fl Xr = xr' - 0.5 + 2e - fr ceil(xl' - 0.5 + 2e - fl - 0.5) <= i < ceil(xr' - 0.5 + 2e - fr - 0.5) which is equivalent to ceil(xl' + 2e - fl) - 1 <= i < ceil(xr' + 2e - fr) - 1 We have : ceil(xl' + 2e - fl) - 1 == (is_integer(xl' + 2e - fl) ? xl' + 2e - fl - 1 : ceil(xl' + 2e - fl) - 1) == (is_integer(xl' + 2e - fl) ? xl' + 2e - fl - 1 : floor(xl' + 2e - fl)) Since -e <= fl < 0, it is equal to (is_integer(xl' + e) && e == fl ? xl' + 2e - fl - 1 : floor(xl' + 2e - fl)) == (is_integer(xl' + e) && e == fl ? xl' + e - 1 : is_integer(xl' + e) && e != fl ? floor(xl' + 2e - fl) !is_integer(xl' + e) && e != fl ? floor(xl' + 2e - fl) !is_integer(xl' + e) && e == fl ? floor(xl' + 2e - fl)) == (is_integer(xl' + e) && e == fl ? xl' + e - 1 : is_integer(xl' + e) && e != fl ? xl' + e : !is_integer(xl' + e) && e != fl ? floor(xl' + e) !is_integer(xl' + e) && e == fl ? floor(xl' + e)) == (is_integer(xl' + e) && e == fl ? xl' + e - 1 : floor(xl')) And the condition is equivalent to (is_integer(xl' + e) && e == fl ? xl' + e - 1 : floor(xl')) <= i < (is_integer(xr' + e) && e == fr ? xl' + e - 1 : floor(xr')) But the old code computes floor(xl') <= i < floor(xr')) Thus when is_integer(xl' + e) && e == fl, it wrongly shifts the rounded boundary in 1 pixel to the left. EXPECTED DIFFERENCES : Almost all tests render differently. Normal 72 dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf bc_02a01_cal.pdf BEST8-99-Path.fh7.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687207.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf CAT_LOGO.ps ccc.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf doretree.ps Es001-01.pdf escher.ps Faktura.pdf file.pdf file2.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf font_issue.pdf frosch.pdf golfer.eps gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan.ps john_clippedimage.pdf js.pdf kazmir.pdf keyboard.pdf knight.pdf KozukaB-ILEmbed.pdf kshow_with_grestore.ps laballade.pdf LD.pdf LMG-40-7161-RU-DUC-01.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf motor.pdf mspro.pdf muur.eps new_rect_nr.pdf ngnews.pdf ngnews1.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf Page01.pdf pdfopt_bug.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf rotate0.pdf rotate270.pdf S2_Digitalproof-Forum_circles.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps si_tg_brochure.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test.pdf test2.pdf test2a.pdf Testform.v1.0.2.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf two_encodings.ps type2accent.pdf type3xshow.eps type42_glyph_index.ps unihaken-color.pdf vasarely.ps vsem0093.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf normal, 300dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf BEST8-99-Path.fh7.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687156.ps Bug687207.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf ccc.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf doretree.ps Encoding.ps Es001-01.pdf escher.ps Faktura.pdf file.pdf file2.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf font_issue.pdf foo.pdf frosch.pdf golfer.eps gs.anotherfailure.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf GS_Stroke_error.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf InstandardBuildChar.ps Jahr2000.pdf japan.ps john_clippedimage.pdf js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf kshow_with_grestore.ps laballade.pdf LD.pdf LMG-40-7161-RU-DUC-01.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf motor.pdf muur.eps NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf Page01.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf probe3.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf ridt91.eps RodinCIDEmbed.pdf rotate0.pdf rotate180.pdf rotate270.pdf rotate90.pdf S2_Digitalproof-Forum_circles.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps si_tg_brochure.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-hyperref.pdf test.pdf test2.pdf test2a.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type2accent.pdf type3xshow.eps type42_glyph_index.ps unihaken-color.pdf UnusualFontMatrix.ps vasarely.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf pdfwrite 72dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf bc_02a01_cal.pdf BEST8-99-Path.fh7.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687207.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf CAT_LOGO.ps ccc.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf doretree.ps Es001-01.pdf escher.ps Faktura.pdf file.pdf file2.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf font_issue.pdf frosch.pdf golfer.eps gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan.ps john_clippedimage.pdf js.pdf kazmir.pdf keyboard.pdf knight.pdf KozukaB-ILEmbed.pdf kshow_with_grestore.ps laballade.pdf LD.pdf LMG-40-7161-RU-DUC-01.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf motor.pdf mspro.pdf muur.eps new_rect_nr.pdf ngnews.pdf ngnews1.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf Page01.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf ridt91.eps RodinCIDEmbed.pdf rotate0.pdf S2_Digitalproof-Forum_circles.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps si_tg_brochure.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test.pdf test2.pdf test2a.pdf Testform.v1.0.2.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type2accent.pdf type3xshow.eps type42_glyph_index.ps unihaken-color.pdf vasarely.ps vsem0093.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf pdfwrite, 300 dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf BEST8-99-Path.fh7.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687156.ps Bug687207.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf CAT_LOGO.ps ccc.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf doretree.ps Encoding.ps Es001-01.pdf escher.ps Faktura.pdf file.pdf file2.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf font_issue.pdf foo.pdf frosch.pdf golfer.eps gs.anotherfailure.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf GS_Stroke_error.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf InstandardBuildChar.ps Jahr2000.pdf japan.ps john_clippedimage.pdf js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf kshow_with_grestore.ps laballade.pdf LD.pdf LMG-40-7161-RU-DUC-01.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf motor.pdf mspro.pdf muur.eps NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf Page01.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf probe3.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf ridt91.eps RodinCIDEmbed.pdf rotate0.pdf rotate180.pdf rotate270.pdf rotate90.pdf S2_Digitalproof-Forum_circles.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps si_tg_brochure.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-hyperref.pdf test.pdf test2.pdf test2a.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type2accent.pdf type3xshow.eps type42_glyph_index.ps unihaken-color.pdf UnusualFontMatrix.ps vasarely.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf</pre> <p>[src/gxdtfill.h 1.15]</p> </blockquote> <p><strong><a name="2004-02-16_0947"></a> 2004-02-16 09:47 Igor Melichev</strong></p> <blockquote> <pre> Improving the filling algorithm, step D5. DETAILS : It's a preparation for fixing a problem while filling a single trapezoid. This change improved a debug drawing. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxdtfill.h 1.14]</p> </blockquote> <p><strong><a name="2004-02-16_0913"></a> 2004-02-16 09:13 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 6. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. 1. Implemented a debug drawer draw_wedge. 2. dbg_nofill was not properly initialized. 3. Removed a debuging hack. 4. removed unused variables. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.12]</p> </blockquote> <p><strong><a name="2004-02-16_0910"></a> 2004-02-16 09:10 Igor Melichev</strong></p> <blockquote> <pre> Improving the filling algorithm, step D4. DETAILS : It's a preparation for fixing a problem while filling a single trapezoid. This change is algorithmicaly equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxdtfill.h 1.13]</p> </blockquote> <p><strong><a name="2004-02-16_0821"></a> 2004-02-16 08:21 Igor Melichev</strong></p> <blockquote> <pre> Improving the filling algorithm, step D2. DETAILS : It's a preparation for fixing a problem while filling a single trapezoid. This change is algorithmicaly equivalent. It branches out the rectangle case and simplifies it. Some macros are moved by necessity. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxdtfill.h 1.12]</p> </blockquote> <p><strong><a name="2004-02-16_0601"></a> 2004-02-16 06:01 Dan Coby</strong></p> <blockquote> <pre> Fix for 687294 psdcmyk device does not write resolution correctly to PSD files. This change adds a 'ResolutionInfo structure' into the 'Image Resources' section of the output file. This structure specifies the horizontal and vertical resolution of the image. (Note: Adobe's support of asymetric resolutions is poor.)</pre> <p>[src/gdevpsd.c 1.6]</p> </blockquote> <p><strong><a name="2004-02-15_1451"></a> 2004-02-15 14:51 Igor Melichev</strong></p> <blockquote> <pre> Fix: Improving the documentation (comments) about the filling algorithm, improved. DETAILS : The prevoius change to the comment appears wrong, i.e. the old expression "x + xf/h + 1" appears correct due to compute_ldx subtracts h from the remainder but doesn't add 1 to the integer part, which is x. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.13]</p> </blockquote> <p><strong><a name="2004-02-15_1131"></a> 2004-02-15 11:31 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 5. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. It fixes some dropouts. 1. Improved the documentation (comments). 2. Improved the debug painting with NEW_TENSOR_SHADING_DEBUG. 3. Fixed bugs in the linear equation solver. 4. Improved the wedge generation. 5. Reduced the usage of transpozed coordinates. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.11]</p> </blockquote> <p><strong><a name="2004-02-15_1128"></a> 2004-02-15 11:28 Igor Melichev</strong></p> <blockquote> <pre> Fix: Improving the documentation (comments) about the filling algorithm. DETAILS : We believe that the comment about "x, xf" was wrong. Note tha the old expression was "x + xf/h + 1", and we changed it to "x + xf/h". We believe that the new one corresponds to the code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.12, src/gxdtfill.h 1.11]</p> </blockquote> <p><strong><a name="2004-02-14_1157"></a> 2004-02-14 11:57 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 4. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. In the new code wedges were wrong. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.10]</p> </blockquote> <p><strong><a name="2004-02-14_0904"></a> 2004-02-14 09:04 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 3. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. In the new code fixed internal wegdes. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.9, src/lib.mak 1.167]</p> </blockquote> <p><strong><a name="2004-02-14_0844"></a> 2004-02-14 08:44 Igor Melichev</strong></p> <blockquote> <pre> Fix : Visual trace could miss the current color when reinitialized. EXPECTED DIFFERENCES : None.</pre> <p>[src/dwtrace.c 1.6]</p> </blockquote> <p><strong><a name="2004-02-13_1751"></a> 2004-02-13 17:51 Ralph Giles</strong></p> <blockquote> <pre> Propagate a change from the GS_8_1X branch. AC_CHECK_TYPES takes a comma-sparated list.</pre> <p>[src/configure.ac 1.40]</p> </blockquote> <p><strong><a name="2004-02-13_1643"></a> 2004-02-13 16:43 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 2. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. In the new code fixed the decomposition except wegdes. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.8, src/lib.mak 1.166]</p> </blockquote> <p><strong><a name="2004-02-13_0815"></a> 2004-02-13 08:15 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : NoEncrypt option by a special customer request, improved. DETAILS : Improving the condition for empty keys. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfo.c 1.28]</p> </blockquote> <p><strong><a name="2004-02-13_0808"></a> 2004-02-13 08:08 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : NoEncrypt option by a special customer request. DETAILS : The implementation isn't fool proof : an inaccurate specification may generate an inconforming document. The specified key is not encrypted in any dictionary. The specification must use an external representation : a name to be prepended with slash, a string to be bracketed, and so on. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.89, src/gdevpdfo.c 1.27, src/gdevpdfp.c 1.37, src/gdevpdfu.c 1.51, src/gdevpdfx.h 1.86]</p> </blockquote> <p><strong><a name="2004-02-12_1629"></a> 2004-02-12 16:29 Igor Melichev</strong></p> <blockquote> <pre> Fix : Intel C and Cygwin/gcc compiler warnings. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtc.c 1.33, src/gxcht.c 1.12, src/gxdhtserial.c 1.4, src/gxht.c 1.15, src/gxttfb.c 1.30]</p> </blockquote> <p><strong><a name="2004-02-12_1519"></a> 2004-02-12 15:19 Igor Melichev</strong></p> <blockquote> <pre> Improving the filling algorithm, step D1. DETAILS : 1. The 'peak' condition was too weak. Caused minor differences in rasters with dropout prevention. 2. Expanded loop_fill_trap_np in the inner trapezoid loop. This change is algorithmically equivalent. 3. Cleaned the inner loop with moving out the computations if ybot, ytop. This change is algorithmically equivalent. 4. Moved the (ybot < ytop) check outside the trapezoid loop. This change is algorithmically equivalent. 5. Inserted 'const' into loop_fill_trap_np. 6. Inserted the section "Reserved to improve the banding" to simplify experiments with it. EXPECTED DIFFERENCES : 72dpi : 86554321.pdf adesso1.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf CAIB_highres_page4.pdf pstopdf.pdf smdf.90441.102.pdf sports.pdf waterfal.ps 300dpi : Altona.Page_3.2002-09-27.pdf</pre> <p>[src/gxfill.c 1.110, src/gxfilltr.h 1.3]</p> </blockquote> <p><strong><a name="2004-02-12_1205"></a> 2004-02-12 12:05 Igor Melichev</strong></p> <blockquote> <pre> Fix : Some Intel C compiler warnings. DETAILS : Bug 687292 "General bugs in ghostscript source". "double wxy[2]" was a real bug, but this code fragment never executes with current Ghostscript and GhostPCL interpreters. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfcopy.c 1.41]</p> </blockquote> <p><strong><a name="2004-02-12_1028"></a> 2004-02-12 10:28 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Charproc can change scale before calling setcachedevice. DETAILS : Bug 687290 "pdfwrite generate too large glyphs". To know that CTM changed by a charproc before setcachedevice or setcharwidth, we set identity CTM before entering the charproc. If setcachedevice or setcharwidth decides to fall back to the default implementation, we restore the CTM in there. The condition in gdevpdtt.c 1931 is changed, causing minor differences with Bug687044.ps and muur.eps . We found that a further improvement would be useful for a better handling of a composite font with a Type 3 descendent. Opened the new bug 687298 about this issue. Differences with Bug687044.ps and muur.eps may be related to it. EXPECTED DIFFERENCES : A minor shift of glyphs with pdfwrite : Bug687044.ps muur.eps</pre> <p>[src/gdevpdf.c 1.88, src/gdevpdfx.h 1.85, src/gdevpdtt.c 1.73]</p> </blockquote> <p><strong><a name="2004-02-11_1120"></a> 2004-02-11 11:20 Igor Melichev</strong></p> <blockquote> <pre> Fix : GS_LIB_DEFAULT was wrong on OpenVMS. DETAILS : Bug 687258 "(VMS) Illustrator 10 eps with spot color crashes ghostscript". EXPECTED DIFFERENCES : None.</pre> <p>[src/openvms.mak 1.35]</p> </blockquote> <p><strong><a name="2004-02-11_1100"></a> 2004-02-11 11:00 Igor Melichev</strong></p> <blockquote> <pre> A new implementation of shadings, step 1. DETAILS : The new code is disabled with NEW_TENSOR_SHADING 0. The new code compiles but never tested. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxshade6.c 1.7, src/lib.mak 1.165]</p> </blockquote> <p><strong><a name="2004-02-10_2231"></a> 2004-02-10 22:31 Ralph Giles</strong></p> <blockquote> <pre> Update our copy of the ijs source to the latest cvs source, which includes libtool support for building a shared library version. Closes bug 687278.</pre> <p>[ijs/Makefile.am 1.1, ijs/Makefile.in 1.3, ijs/README 1.2, ijs/autogen.sh 1.1, ijs/configure.ac 1.1, ijs/configure.in 1.2, ijs/ijs.c 1.2, ijs/ijs.h 1.2, ijs/ijs.pc.in 1.1, ijs/ijs_client.c 1.2, ijs/ijs_client.h 1.2, ijs/ijs_client_example.c 1.2, ijs/ijs_exec_unix.c 1.2, ijs/ijs_exec_win.c 1.2, ijs/ijs_server.c 1.2, ijs/ijs_server.h 1.2, ijs/ijs_server_example.c 1.2, ijs/ijs_spec.sgml 1.2, ijs/install-sh 1.2, ijs/unistd_.h 1.2]</p> </blockquote> <p><strong><a name="2004-02-08_1735"></a> 2004-02-08 17:35 Igor Melichev</strong></p> <blockquote> <pre> Fix: Improving the decision whether the dropout prevention to be applied. DETAILS : 1. The old code applied the dropout prevention if gx_fill_params::adjust = 0. It worked since the latter was set to 0 only for characters. Now we intend to discontinue the fill adjustment with shadings, so the old condition won't be applicable in further revisions. Therefore we reserve the value -1 of gx_fill_params::adjust especially for designating characters with a dropout prevention, and percept it in the filling algorithm (We tried to use new special flag for designeting characters, but it requires an enhancement to the clist language.). 2. The old code has a problem with PaintType 2 fonts : it applied the dropout prevention to strokes. This patch fixes that with checking PaintType in gxtype1.c . EXPECTED DIFFERENCES : A progression with CAT_LOGO.ps due to (2).</pre> <p>[src/gxfill.c 1.109, src/gxistate.h 1.20, src/gxtype1.c 1.36, src/zchar42.c 1.15]</p> </blockquote> <p><strong><a name="2004-02-08_1129"></a> 2004-02-08 11:29 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C21. DETAILS : Removing the old code DONT_FILTER_SMALL_SEGMENTS 0. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.42, src/gxfill.c 1.108, src/gxfill.h 1.22, src/gxpflat.c 1.40, src/gzpath.h 1.36]</p> </blockquote> <p><strong><a name="2004-02-08_1023"></a> 2004-02-08 10:23 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C20. DETAILS : Removing the old code SCANLINE_USES_ITERATOR 0. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.41, src/gxfill.c 1.107, src/gxfill.h 1.21, src/gxfillsl.h 1.3, src/gxpcopy.c 1.22, src/gzpath.h 1.35]</p> </blockquote> <p><strong><a name="2004-02-08_0146"></a> 2004-02-08 01:46 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C19a. DETAILS : Fixing a comment. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxdtfill.h 1.10]</p> </blockquote> <p><strong><a name="2004-02-08_0141"></a> 2004-02-08 01:41 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C19. DETAILS : This is an optimization of the trapezoid algorithm : 1. gx_fill_trapezoid_narrow derives a specialization from fill_loop_by_trapezoids__pr. 2. Simplified the GX_FILL_TRAPEZOID template with moving the fill_direct check outside the template. 3. Renamed gx_default_fill_trapezoid_as, gx_default_fill_trapezoid_ns, gx_fill_trapezoid_narrow. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.11, src/gdevddrw.h 1.4, src/gxdtfill.h 1.9, src/gxfilltr.h 1.2]</p> </blockquote> <p><strong><a name="2004-02-06_1105"></a> 2004-02-06 11:05 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C18. DETAILS : This is an optimization of the new scanline algorithm. merge_ranges doesnt need to enumerate flattened pieces of monotonic curves. Minor change : renamed "monotonic" into "monotonic_y". EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.106, src/gxfill.h 1.20]</p> </blockquote> <p><strong><a name="2004-02-05_1759"></a> 2004-02-05 17:59 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C17. DETAILS : Do not filter out short flattened segments. We believe that the old code was not conforming to PLRM due to filtering small segments after flatteingng a curve. We believe that the filtering has 2 purposes : 1. Prevent the filling algorythms from zero length segments; 2. Speed up the filling with reducing the number of vertices in a polygon. The new filling algorithm handles zero length segments with no problem, and the speeding up appears within 1% except for shadings. We believe that the rendering quality is more important. The performance of shadings to be fixed separately. EXPECTED DIFFERENCES : This patch causes rendering differences with almost all of comparefiles : Normal, 72 dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687156.ps bugsample.pdf bulletin.pdf ca.pdf CAIB_highres_page4.pdf ccc.pdf chess.ps chilis_black.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf frosch.pdf golfer.eps gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan-.ps japan.ps js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-setweightvector.ps test.pdf test2.pdf test2a.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps Type11CDevProc.ps Type3stringwidth.ps type42_glyph_index.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps xgfddg.pdf xngnews.pdf Normal, 300dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf CAT_LOGO.ps ccc.pdf chess.ps chilis_black.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf foo.pdf frosch.pdf golfer.eps gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf GS_Stroke_error.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-hyperref.pdf test.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type1-ce1_setcurrentpoint.ps Type3stringwidth.ps type42_glyph_index.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf pdfwrite, 72dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps Bug687156.ps bugsample.pdf bulletin.pdf ca.pdf CAIB_highres_page4.pdf ccc.pdf chess.ps chilis_black.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf frosch.pdf golfer.eps gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-setweightvector.ps test.pdf test2.pdf test2a.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps Type11CDevProc.ps Type3stringwidth.ps type42_glyph_index.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps xgfddg.pdf xngnews.pdf pdfwrite, 300dpi : 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 01_001.pdf 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 290.pdf 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf ats-3-5-99.pdf bc_02a01_cal.pdf besttest.pdf brochurep1.pdf budget2.pdf budget2_ai87.pdf bug-gstest.pdf Bug687044.ps bugsample.pdf bulletin.pdf BW0696FOLD1FRONT.pdf ca.pdf CAIB_highres_page4.pdf ccc.pdf chess.ps chilis_black.pdf chstudy.pdf CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf foo.pdf frosch.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf GS_Stroke_error.pdf H00216q.pdf HeiseiMinStd.pdf ICPconcept.pdf Jahr2000.pdf japan-.ps japan.ps js.pdf kazmir.pdf keyboard.pdf knight.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf p2b-100.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test-hyperref.pdf test-setweightvector.ps test.pdf test3.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps vsem0093.pdf Vu989qfj.pdf waterfal.ps womanface.pdf xgfddg.pdf xngnews.pdf</pre> <p>[src/gx.h 1.40]</p> </blockquote> <p><strong><a name="2004-02-05_1608"></a> 2004-02-05 16:08 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C16. DETAILS : Switching to the new scanline algorithm based on the flattened iterator. Now both the trapezoid and the scanline algorithm use same flattened path. Differences in rasters appears due to 2 reasons : 1. An inprecise expressions used in the old algorithm in gx_curve_x_at_y : the iteration of midpoint_fast accumulates a big rounding error. The new algorithm have smaller error due to 3*log2(N) fraction bits while the coordinate accumulation, where N is the number of flattened segments. 2. The old algorithm used inprecise expressions in pco_monotonize. The new algorithm applies a flattening instead the monotonization. EXPECTED DIFFERENCES : Normal, 72 dpi : 012-09.ps 013-09.ps 020-01.ps 027-05.ps 027-13.ps 045-01.ps 093-01.ps 103-01.ps 118-01.ps 165-01.ps 231-01.ps 233-01.ps 251-01.ps 281-01.ps 289-01.ps 308-04.ps 311-03.ps 442-01.ps 483-01.ps a.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf Bug687207.ps bugsample.pdf chilis_black.pdf DisplayedGood.pdf DisplayedWrong.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps Normal, 300dpi : 012-09.ps 013-09.ps 020-01.ps 027-13.ps 045-01.ps 093-01.ps 103-01.ps 118-01.ps 136-01.ps 165-01.ps 231-01.ps 233-01.ps 251-01.ps 281-01.ps 289-01.ps 442-01.ps 483-01.ps a.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf Bug687207.ps bugsample.pdf chilis_black.pdf chilis_red.pdf DisplayedGood.pdf DisplayedWrong.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps xgfddg.pdf pdfwrite, 72dpi : 012-09.ps 013-09.ps 020-01.ps 027-05.ps 027-13.ps 045-01.ps 093-01.ps 103-01.ps 231-01.ps 233-01.ps 251-01.ps 281-01.ps 308-04.ps 311-03.ps 442-01.ps 483-01.ps 483-05.ps a.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps pdfwrite, 300dpi : 012-09.ps 013-09.ps 020-01.ps 027-13.ps 045-01.ps 093-01.ps 103-01.ps 118-01.ps 136-01.ps 165-01.ps 231-01.ps 233-01.ps 251-01.ps 281-01.ps 442-01.ps 483-01.ps 483-05.ps a.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf Bug687207.ps bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps xgfddg.pdf</pre> <p>[src/gx.h 1.39]</p> </blockquote> <p><strong><a name="2004-02-05_1439"></a> 2004-02-05 14:39 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C15. DETAILS : This patch changes a disabled code only. The new scanline algorithm performed extra scans within a sampling band. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.105, src/gxfillsl.h 1.2]</p> </blockquote> <p><strong><a name="2004-02-04_1142"></a> 2004-02-04 11:42 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C14. DETAILS : Fixing Cygwin/gcc warnings of the previous patch. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.10, src/gxdtfill.h 1.8]</p> </blockquote> <p><strong><a name="2004-02-04_1133"></a> 2004-02-04 11:33 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C13. DETAILS : This is a code optimization. It applies templates for generating specialized variants of generic algorithms used for filling a path. Also removed 'assret' which are not longer needed. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevddrw.c 1.9, src/gdevpdtc.c 1.32, src/gxdtfill.h 1.7, src/gxfdrop.c 1.13, src/gxfill.c 1.104, src/gxfill.h 1.19, src/gxfillsl.h 1.1, src/gxfilltr.h 1.1, src/gxfillts.h 1.1, src/lib.mak 1.164]</p> </blockquote> <p><strong><a name="2004-02-04_1009"></a> 2004-02-04 10:09 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : provide a compatibility of TEXT_FROM_CHARS to GhostPCL. DETAILS : This is a port of a patch from ghostpcl by Henry Stiles. This btanch never executes with Ghostscript. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtt.c 1.72]</p> </blockquote> <p><strong><a name="2004-02-02_2117"></a> 2004-02-02 21:17 Igor Melichev</strong></p> <blockquote> <pre> Allow auto-inline optimization with MSVC. DETAILS : MSVC doesn't assume /Ob2 when /O2 is specified. EXPECTED DIFFERENCES : None.</pre> <p>[src/msvccmd.mak 1.14]</p> </blockquote> <p><strong><a name="2004-02-02_2024"></a> 2004-02-02 20:24 Alex Cherepanov</strong></p> <blockquote> <pre> Perform sign extension on 64-bit platforms. Partial fix for bug 687029. DETAILS: Genoa test suite considers 64-bit integers to be an error. If we decide to use 32-bit integer arithmetic on any platform this patch should be undone.</pre> <p>[lib/gs_ttf.ps 1.36]</p> </blockquote> <p><strong><a name="2004-02-02_2014"></a> 2004-02-02 20:14 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C12. DETAILS : This is a code optimization. Some functions are expanded inline. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.103]</p> </blockquote> <p><strong><a name="2004-02-02_1625"></a> 2004-02-02 16:25 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C11. DETAILS : This is a code optimization. It reduces the data copying with removing arguments and local variables xlbot, xbot, xltop, xtop, y, y1. Also add_y_line is made inline. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.102]</p> </blockquote> <p><strong><a name="2004-02-02_1409"></a> 2004-02-02 14:09 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C10. DETAILS : 1. Scanline algorithm must not apply to spotan device; 2. Removed low useful macro DOUBLE_WRITE_OK. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.101]</p> </blockquote> <p><strong><a name="2004-02-02_1353"></a> 2004-02-02 13:53 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C9. DETAILS : This is a code optimization. Removed unuseful computations of a trapeziod widths. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.100]</p> </blockquote> <p><strong><a name="2004-02-02_1229"></a> 2004-02-02 12:29 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C8. DETAILS : Reduced outlines for both the trapezoid and the scanline algorithms should be same. This patch fixes that with dropping few rare cases, which never appear with our testbase. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.99]</p> </blockquote> <p><strong><a name="2004-02-02_1148"></a> 2004-02-02 11:48 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C7. DETAILS : This is a preparation for removing the coord_near filter from the flattening algorithm. We believe that the the coord_near filter was implemented for two purposes : (1) prevent the filling algorithm from zero-height segments, and (2) speed up the filling with reducing the number of vertices in the polygon. Now the filling algorithms can handle zero length segments due to conformity to gx_flattened_iterator. Thus the reason (1) is not longer important. The skipping of some vertices speeds up in 3% at 600dpi rendering with ppmraw to null file. But sometimes it produces raster distortions, such as an asymmetric raster for symmetric outlines. When we fixed the distortions, the speeding up appears within 0.5%. We decided to remove the coord_near filter, because so small echonony of processor time is less important than the distortions. This patch introduces a new swicth DONT_FILTER_SMALL_SEGMENTS, and make the compilation of coord_near filter to depend on it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.38, src/gxfill.c 1.98, src/gxfill.h 1.18, src/gxpflat.c 1.39, src/gzpath.h 1.34]</p> </blockquote> <p><strong><a name="2004-02-02_0844"></a> 2004-02-02 08:44 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 14. DETAILS : Elements of pdfmark elements were not encryptrd. Since gs/lib/gs_pdfwr.ps serializes pdfmark elements, we would like to encrypt them before the serialization. However it would require to implement a new PS operator to pass the encription keys from the device to the PDF interpreter. Since this way appears cumbersome, we decided to unserialize data in the device. For doing that we implement a simple parser in pdf_put_composite. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfu.c 1.50]</p> </blockquote> <p><strong><a name="2004-01-31_0048"></a> 2004-01-31 00:48 Ralph Giles</strong></p> <blockquote> <pre> [no log message]</pre> <p>[doc/Release.htm 1.84]</p> </blockquote> <p><strong><a name="2004-01-30_2312"></a> 2004-01-30 23:12 Ralph Giles</strong></p> <blockquote> <pre> Replace the license header of some of the test scripts with the generic version.</pre> <p>[toolbin/tests/check_all.py 1.5, toolbin/tests/check_comments.py 1.3, toolbin/tests/check_dirs.py 1.8, toolbin/tests/check_docrefs.py 1.9, toolbin/tests/check_source.py 1.9, toolbin/tests/gscheck_all.py 1.5, toolbin/tests/gscheck_fuzzypdf.py 1.7, toolbin/tests/gscheck_pdfwrite.py 1.17, toolbin/tests/gscheck_raster.py 1.8, toolbin/tests/gsconf.py 1.10, toolbin/tests/gssum.py 1.6, toolbin/tests/gstestgs.py 1.22, toolbin/tests/gstestutils.py 1.10]</p> </blockquote> <p><strong><a name="2004-01-30_0851"></a> 2004-01-30 08:51 Russell Lang</strong></p> <blockquote> <pre> Document that the copyright year needs to be updated in some Windows files for each release.</pre> <p>[doc/Release.htm 1.83]</p> </blockquote> <p><strong><a name="2004-01-30_0840"></a> 2004-01-30 08:40 Russell Lang</strong></p> <blockquote> <pre> Update copyright date for Windows release to 2004.</pre> <p>[src/dwsetup.rc 1.11, src/winint.mak 1.21]</p> </blockquote> <p><strong><a name="2004-01-30_0732"></a> 2004-01-30 07:32 Ralph Giles</strong></p> <blockquote> <pre> Correct the link to History8.htm.</pre> <p>[doc/Readme.htm 1.54]</p> </blockquote> <p><strong><a name="2004-01-30_0405"></a> 2004-01-30 04:05 Ray Johnston</strong></p> <blockquote> <pre> Fix typo.</pre> <p>[doc/Use.htm 1.100]</p> </blockquote> <p><strong><a name="2004-01-29_1840"></a> 2004-01-29 18:40 Ray Johnston</strong></p> <blockquote> <pre> Change notice in some headers that had been missed during original update to the unified notice.</pre> <p>[src/gdevdljm.h 1.8]</p> </blockquote> <p><strong><a name="2004-01-29_1819"></a> 2004-01-29 18:19 Ray Johnston</strong></p> <blockquote> <pre> Change notice in some headers that had been missed during original update to the unified notice.</pre> <p>[src/gdevatx.c 1.9, src/gdevdjet.c 1.11, src/gdevdljm.c 1.11, src/gsovrc.c 1.4, src/gsovrc.h 1.3, src/gxoprect.c 1.5, src/gxoprect.h 1.2]</p> </blockquote> <p><strong><a name="2004-01-29_0934"></a> 2004-01-29 09:34 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 13. DETAILS : 1. Disable Encryption version 2 revision 2 with KeyLength > 40 due to an incompatibility to many viewers. 2. Improves the error message format. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.87]</p> </blockquote> <p><strong><a name="2004-01-28_1654"></a> 2004-01-28 16:54 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C6. DETAILS : This is a code optimization. It factors out internal constants. The change is algorithmically equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfdrop.c 1.12, src/gxfill.c 1.97, src/gxfill.h 1.17]</p> </blockquote> <p><strong><a name="2004-01-28_1508"></a> 2004-01-28 15:08 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C5. DETAILS : This is a code optimization. It simplifies argument lists. The change is algorithmically equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfdrop.c 1.11, src/gxfill.c 1.96, src/gxfill.h 1.16]</p> </blockquote> <p><strong><a name="2004-01-28_0905"></a> 2004-01-28 09:05 Igor Melichev</strong></p> <blockquote> <pre> Fix (the new TT interpreter) : A bad pointer enumerated relocating gx_ttfReader. DETAILS : gx_ttfReader::pfont from a global to a local memory. Now we set it to a non-NULL value only during a TT data access, when the garbager is not invoked. EXPECTED DIFFERENCES : None.</pre> <p>[src/gstype42.c 1.42, src/gxccman.c 1.24, src/gxttfb.c 1.29, src/gxttfb.h 1.10]</p> </blockquote> <p><strong><a name="2004-01-27_1607"></a> 2004-01-27 16:07 Igor Melichev</strong></p> <blockquote> <pre> Fix (TT grid fitting) : A garbager descriptor was wrong. DETAILS : It caused a crash running all comparefiles with ppmraw in a single job. EXPECTED DIFFERENCES : None.</pre> <p>[src/gzspotan.h 1.6]</p> </blockquote> <p><strong><a name="2004-01-27_1605"></a> 2004-01-27 16:05 Igor Melichev</strong></p> <blockquote> <pre> Fix : Partially restoring the old behavior of the filling algorithm. DETAILS : When we dropped the compatibility with the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004061.html, one case of the flattening condition was not perfect. Sorry for detecting this late. Now we put another condition, which differs from both the old and the last one, but the new one is symmetric and provides lesser distortions. EXPECTED DIFFERENCES : This change causes a massive difference, which may partially undo the difference of the patch mentioned above. Here is a list of expected differences agains the current CVS HEAD : normal, 72dpi : 000040cf.000_60.pdf 001-01.ps 01_001.pdf 020-01.ps 027-09.ps 045-01.ps 093-01.ps 109-01.ps 159.pdf 175-01.ps 251-01.ps 281-01.ps 289-01.ps 335-01.ps 336-01.ps 455690.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso7.pdf adesso8.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf besttest.pdf budget2.pdf budget2_ai87.pdf Bug687044.ps bulletin.pdf ccc.pdf dave.pdf Dave_Barry.pdf Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf Jahr2000.pdf japan.ps js.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf prfmm.pdf prob.pdf pstopdf.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf Svd.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf normal, 300dpi : 289-01.ps a.pdf adesso6.pdf Altona-Testsuite_p2_S_x3.pdf besttest.pdf Bug687044.ps bulletin.pdf BW0696FOLD1FRONT.pdf fonts.pdf HeiseiMinStd.pdf japan.ps js.pdf keyboard.pdf mbb-with-space.ps NIL_0003.pdf pdftops.pdf prob.pdf pstopdfO3.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test_multipage_prob.pdf waterfal.ps womanface.pdf pdfwrite 72 dpi : 000040cf.000_60.pdf 001-01.ps 01_001.pdf 020-01.ps 045-01.ps 093-01.ps 109-01.ps 159.pdf 175-01.ps 251-01.ps 281-01.ps 335-01.ps 336-01.ps 455690.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso7.pdf adesso8.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf besttest.pdf budget2.pdf budget2_ai87.pdf Bug687044.ps bulletin.pdf ccc.pdf dave.pdf Dave_Barry.pdf Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf Jahr2000.pdf japan.ps js.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf prfmm.pdf prob.pdf pstopdf.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf Svd.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf pdfwrite, 300 dpi : a.pdf adesso6.pdf Altona-Testsuite_p2_S_x3.pdf besttest.pdf Bug687044.ps bulletin.pdf BW0696FOLD1FRONT.pdf fonts.pdf HeiseiMinStd.pdf japan.ps js.pdf keyboard.pdf mbb-with-space.ps NIL_0003.pdf pdftops.pdf prob.pdf pstopdfO3.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test_multipage_prob.pdf waterfal.ps womanface.pdf</pre> <p>[src/gxpflat.c 1.38]</p> </blockquote> <p><strong><a name="2004-01-27_0510"></a> 2004-01-27 05:10 Ralph Giles</strong></p> <blockquote> <pre> Pass on the CPPFLAGS settings from the configure script into GCFLAGS. Some users expect to be able to add include paths through the environment this way. Suggestion from Len Makin.</pre> <p>[src/Makefile.in 1.32]</p> </blockquote> <p><strong><a name="2004-01-26_2351"></a> 2004-01-26 23:51 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C4. DETAILS : In the enabled code this change is algorithmically equivalent. In the disabled code it provides a variable threshold for the 'coord_near' predicate. Doing so because the old scanline algorithm uses a zero threshold. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.95, src/gxfill.h 1.15, src/gxpflat.c 1.37, src/gzpath.h 1.33]</p> </blockquote> <p><strong><a name="2004-01-26_2235"></a> 2004-01-26 22:35 Igor Melichev</strong></p> <blockquote> <pre> Updating the ps2pdf documentation.</pre> <p>[doc/Ps2pdf.htm 1.64]</p> </blockquote> <p><strong><a name="2004-01-26_2216"></a> 2004-01-26 22:16 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C3. DETAILS : The enabled variant of the scanline algorithm was unintentionally modified by a recent patch. Rather the change was equivalent, we prefer to clean it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.94]</p> </blockquote> <p><strong><a name="2004-01-26_2054"></a> 2004-01-26 20:54 Ray Johnston</strong></p> <blockquote> <pre> Correct typo -- position of " in example command. Thanks to Ulf-Dietrich Braumann of Leipzig University for this.</pre> <p>[doc/Ps2pdf.htm 1.63]</p> </blockquote> <p><strong><a name="2004-01-26_1527"></a> 2004-01-26 15:27 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C2. DETAILS : This change modifies a disabled code only. It fixes a bug discovered with chilis_black.pdf . EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.93]</p> </blockquote> <p><strong><a name="2004-01-26_1320"></a> 2004-01-26 13:20 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step C1. DETAILS : This starts a neqw series about the scanline algorithm. The purpose is to use same numeric method as in the trapezoid algorithm. This change modifies a disabled code only. 1. Defines new switch SCANLINE_USES_ITERATOR in gx.h . 2. Replaces curve_cursor with gx_flattened_iterator in the scanline algorithm. 3. Provides same Y-list contents as for the trapezoid algorithm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.37, src/gxfill.c 1.92, src/gxfill.h 1.14, src/gxpcopy.c 1.21, src/gzpath.h 1.32]</p> </blockquote> <p><strong><a name="2004-01-26_1313"></a> 2004-01-26 13:13 Igor Melichev</strong></p> <blockquote> <pre> Fix : gx_flattened_iterator::last_filtered1_i could left uninitialized. DETAILS : It was a bug, which our testbase did not detect. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.91, src/gxpflat.c 1.36, src/gzpath.h 1.31]</p> </blockquote> <p><strong><a name="2004-01-26_1115"></a> 2004-01-26 11:15 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B10, final in this series. DETAILS : Oops, the previous patch appears not final in B series. This one is. It removes an obsolete code from gxpcopy.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpcopy.c 1.20]</p> </blockquote> <p><strong><a name="2004-01-25_1423"></a> 2004-01-25 14:23 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B9, final in this series. DETAILS : It finally removes macros, which are not longer useful. It doesn't change the algorithm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.35]</p> </blockquote> <p><strong><a name="2004-01-25_1355"></a> 2004-01-25 13:55 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B8. DETAILS : It finally drops the compatibility to the old code, making the result to get the maximal regularity. Minor change : improved a comment. EXPECTED DIFFERENCES : Normal, 72 dpi : 000040cf.000_60.pdf 001-01.ps 01_001.pdf 020-01.ps 027-09.ps 045-01.ps 093-01.ps 109-01.ps 159.pdf 175-01.ps 251-01.ps 281-01.ps 289-01.ps 335-01.ps 336-01.ps 455690.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso7.pdf adesso8.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf besttest.pdf budget2.pdf budget2_ai87.pdf Bug687044.ps bulletin.pdf ccc.pdf dave.pdf Dave_Barry.pdf Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf Jahr2000.pdf japan.ps js.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf prfmm.pdf prob.pdf pstopdf.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf Svd.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf pdfwrite, 72dpi : 000040cf.000_60.pdf 001-01.ps 01_001.pdf 020-01.ps 045-01.ps 093-01.ps 109-01.ps 159.pdf 175-01.ps 251-01.ps 281-01.ps 335-01.ps 336-01.ps 455690.pdf 86554321.pdf a.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso7.pdf adesso8.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf besttest.pdf budget2.pdf budget2_ai87.pdf Bug687044.ps bulletin.pdf ccc.pdf dave.pdf Dave_Barry.pdf Faktura.pdf file.pdf Fixed_Original.pdf fonts.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf Jahr2000.pdf japan.ps js.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf prfmm.pdf prob.pdf pstopdf.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf Svd.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf tpc2.ps two_encodings.ps type42_glyph_index.ps waterfal.ps xgfddg.pdf normal, 300 dpi : 289-01.ps a.pdf adesso6.pdf Altona-Testsuite_p2_S_x3.pdf besttest.pdf Bug687044.ps bulletin.pdf BW0696FOLD1FRONT.pdf fonts.pdf HeiseiMinStd.pdf japan.ps js.pdf keyboard.pdf mbb-with-space.ps NIL_0003.pdf pdftops.pdf prob.pdf pstopdfO3.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps sports.pdf test_multipage_prob.pdf waterfal.ps womanface.pdf pdfwrite, 300 dpi : a.pdf adesso6.pdf Altona-Testsuite_p2_S_x3.pdf besttest.pdf Bug687044.ps bulletin.pdf BW0696FOLD1FRONT.pdf fonts.pdf HeiseiMinStd.pdf japan.ps js.pdf keyboard.pdf mbb-with-space.ps NIL_0003.pdf pdftops.pdf prob.pdf pstopdfO3.pdf S2_Digitalproof-Forum_x3k.pdf sports.pdf test_multipage_prob.pdf waterfal.ps womanface.pdf</pre> <p>[src/gxpflat.c 1.34]</p> </blockquote> <p><strong><a name="2004-01-25_1149"></a> 2004-01-25 11:49 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B7. DETAILS : 1. Removed FLATTENED_ITERATOR_HEAVY_SELFTEST 0 because it is unuseful. 2. Simplified gx_flattened_iterator__next_filtered. This change is algorithmically equivalent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.33]</p> </blockquote> <p><strong><a name="2004-01-25_1121"></a> 2004-01-25 11:21 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B6. DETAILS : The previous patch left some rudinents, removing them now : 1. Switch off the self-testing. 2. Remove gx_check_nearly_collinear. 3. Removed the CURVED_TRAPEZOID_FILL0_COMPATIBLE 0 section from gx_flattened_iterator__prev_filtered because it can't provide the backscan consistency. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.32]</p> </blockquote> <p><strong><a name="2004-01-24_2349"></a> 2004-01-24 23:49 Dan Coby</strong></p> <blockquote> <pre> Fix for Bug 687255 pcl output shifted to bottom of page. Correct the order of the PCL commands at the start of page for the ljet devices. DETAILS: This problem surfaced when a previous fix 686815 was made. That fix corrected a line of code which was setting the page seize in the output file. With the correct page size being specified in the output file, there were some side effects. Setting the page size resets several other items, including the starting page X and Y offsets. The fix for this problem consists of simply moving the setting of the page size three lines earlier in the file. Now the page size is set prior to the page X and Y offsets, which are set as part of this line: fputs(page_init, prn_stream);</pre> <p>[src/gdevdljm.c 1.10]</p> </blockquote> <p><strong><a name="2004-01-24_1045"></a> 2004-01-24 10:45 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B5. DETAILS : 1. Removed the 'filtered2' subclass of gx_flattened_iterator; 2. Renamed the 'filtered1' subclass to 'filtered'. 3. Removed CURVED_TRAPEZOID_FILL_HEAVY_TEST. 4. Removed the CURVED_TRAPEZOID_FILL0_COMPATIBLE 0 section from gx_flattened_iterator__prev_filtered because it can't provide the backscan consistency. 5. Made other configuration flags to be local for gxpflat.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.36, src/gxfill.c 1.90, src/gxpflat.c 1.31, src/gzpath.h 1.30]</p> </blockquote> <p><strong><a name="2004-01-23_1735"></a> 2004-01-23 17:35 Ray Johnston</strong></p> <blockquote> <pre> Add check for missing raster image before getting the date of the raster. If raster is missing, run update_***baseline script to generate it since the file must be new since the last regression run. Bug 687245.</pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.16, toolbin/tests/gscheck_raster.py 1.7]</p> </blockquote> <p><strong><a name="2004-01-23_1646"></a> 2004-01-23 16:46 Igor Melichev</strong></p> <blockquote> <pre> Removed the obsolete configuration switches NEW_TT_INTERPRETER and TT_GRID_FITTING. DETAILS : It doesn't change the algorithm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfont.c 1.31, src/gsfont.h 1.10, src/gstext.c 1.16, src/gstype42.c 1.41, src/gx.h 1.35, src/gxccache.c 1.29, src/gxccman.c 1.23, src/gxchar.c 1.39, src/gxfcache.h 1.25, src/gxfont42.h 1.19, src/gxtext.h 1.14, src/gxttfb.c 1.28, src/zchar42.c 1.14, src/zusparam.c 1.12]</p> </blockquote> <p><strong><a name="2004-01-23_1641"></a> 2004-01-23 16:41 Igor Melichev</strong></p> <blockquote> <pre> Fix (the new TT interpreter) : st_gs_text_enum_max_ptrs was wrong. DETAILS : This doesn't change the algorithm because this constant is never used. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxtext.h 1.13]</p> </blockquote> <p><strong><a name="2004-01-23_1635"></a> 2004-01-23 16:35 Igor Melichev</strong></p> <blockquote> <pre> Fix (the new TT interpreter) : A bad pointer enumerated relocating gs_text_enum_s. DETAILS : gs_text_enum_s::pair pointed to an array element, rather than to to an object start. Improving text_enum_enum_ptrs and text_enum_reloc_ptrs with a special processing of this pointer, being similat to one used in font_dir_enum_ptrs. EXPECTED DIFFERENCES : None.</pre> <p>[src/gstext.c 1.15, src/gxfcache.h 1.24, src/lib.mak 1.163]</p> </blockquote> <p><strong><a name="2004-01-23_1405"></a> 2004-01-23 14:05 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B4. DETAILS : Removed old configuration flags from gxfill.c . It doesn't change the algorithm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.89]</p> </blockquote> <p><strong><a name="2004-01-23_1325"></a> 2004-01-23 13:25 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B3. DETAILS : 1. Removed the disabled code MERGE_COLLINEAR_SEGMENTS 0 2. Removed the disabled code CURVED_TRAPEZOID_FILL 0 3. Removed the dependence on TT_GRID_FITTING from gxfill.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.34, src/gxfdrop.c 1.10, src/gxfill.c 1.88, src/gxfill.h 1.13, src/gxpath.h 1.12, src/gxpcopy.c 1.19, src/gxpflat.c 1.30, src/gzpath.h 1.29]</p> </blockquote> <p><strong><a name="2004-01-23_1235"></a> 2004-01-23 12:35 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B2. DETAILS : This patch disables the MERGE_COLLINEAR_SEGMENTS section. It was an old unuseful optimization, which we decided to cancel. For more information see the log message of the previous patch. EXPECTED DIFFERENCES : Normal, 72dpi : 014-13.ps 027-09.ps 036-01.ps 045-01.ps 083-13.ps 175-01.ps 1_2001.pdf 245-01.ps 255-01.ps 268-04.ps 268-05.ps 281-01.ps 298-09.ps 321-09.ps 477-03.ps 86554321.pdf a.pdf acrobat.pdf adesso5.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf besttest.pdf brochurep1.pdf bugsample.pdf ca.pdf CAIB_highres_page4.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf dave.pdf fonttest.pdf H00216q.pdf HeiseiMinStd.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf mbb-with-space.ps messenger16.pdf NECPNTD.pdf prob.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf Svd.pdf tiger.eps time1.pdf vasarely.ps waterfal.ps womanface.pdf xgfddg.pdf Normal, 300dpi : Almost ALL FILES RENDER DIFFERENTLY. 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-06.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf acrobat.pdf adesso1.pdf adesso3.pdf adesso5.pdf adesso7.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf brochurep1.pdf budget2.pdf bug-gstest.pdf bugsample.pdf bulletin.pdf CAIB_highres_page4.pdf CAT_LOGO.ps chess.ps chilis_black.pdf chstudy.pdf dave.pdf DisplayedGood.pdf DisplayedWrong.pdf Faktura.pdf file.pdf fonts.pdf fonttest.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf mspro.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf p2b-100.pdf pdfopt_bug.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf rotate90.pdf S2_Digitalproof-Forum_x3k.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test.pdf test2.pdf test2a.pdf TextRize.pdf textsavematrix.pdf tiger.eps type2accent.pdf waterfal.ps wrapper-gs7.pdf xgfddg.pdf xngnews.pdf pdfwrite, 72dpi : 012-09.ps 013-09.ps 014-13.ps 027-09.ps 036-01.ps 045-01.ps 083-09.ps 083-13.ps 175-01.ps 1_2001.pdf 205-05.ps 205-09.ps 245-01.ps 255-01.ps 268-04.ps 268-05.ps 281-01.ps 477-03.ps 86554321.pdf a.pdf acrobat.pdf adesso5.pdf alphabet.ps Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf besttest.pdf brochurep1.pdf Bug687044.ps bugsample.pdf ca.pdf CAIB_highres_page4.pdf chess.ps chilis_black.pdf chilis_red.pdf chstudy.pdf dave.pdf fonttest.pdf golfer.eps H00216q.pdf HeiseiMinStd.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf LD.pdf mbb-with-space.ps messenger16.pdf NECPNTD.pdf prob.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf shading_prob_800.ps smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf Svd.pdf tiger.eps time1.pdf tpc2.ps waterfal.ps womanface.pdf xgfddg.pdf pdfwrite, 300dpi : Almost ALL FILES RENDER DIFFERENTLY. 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 033-52-5873.pdf 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_2001.pdf 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-06.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 455690.pdf 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf a.pdf acrobat.pdf adesso1.pdf adesso3.pdf adesso5.pdf adesso7.pdf ADOBE1-4.pdf AdobeLic.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf brochurep1.pdf budget2.pdf bug-gstest.pdf Bug687044.ps bugsample.pdf bulletin.pdf CAIB_highres_page4.pdf chess.ps chilis_black.pdf chstudy.pdf dave.pdf DisplayedGood.pdf DisplayedWrong.pdf Faktura.pdf file.pdf fonts.pdf fonttest.pdf golfer.eps gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf japan.ps js.pdf kazmir.pdf keyboard.pdf korea.ps KozukaB-ILEmbed.pdf laballade.pdf LD.pdf loremIpsum.pdf MagicEye.pdf mbb-with-space.ps messenger.pdf messenger16.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf p2b-100.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf prob.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf QuickNews_Nov22.pdf RealCities.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf smdf.90441.102.pdf spec_gs.pdf spec_gv.pdf sports.pdf Svd.pdf test.pdf test2.pdf test2a.pdf TextRize.pdf textsavematrix.pdf tiger.eps time1.pdf tpc2.ps type2accent.pdf waterfal.ps wrapper-gs7.pdf xgfddg.pdf xngnews.pdf</pre> <p>[src/gx.h 1.33]</p> </blockquote> <p><strong><a name="2004-01-23_1005"></a> 2004-01-23 10:05 Igor Melichev</strong></p> <blockquote> <pre> Simplifying the filling algorithm, step B1. DETAILS : This starts a new sequence of patches to the filling algorithm. It's goal is a further simplification. We deetected that MERGE_COLLINEAR_SEGMENTS 1 section is an old optimization, which speeds up in 1.3% and complicates the code in 30%. Besides that, it causes inprecise results with the dropout prevention. At last, the name "MERGE_COLLINEAR_SEGMENTS" doesn't reflect its effect : actually it merges segments nearly parallwel to coordinate axis, which may be unlimitedly long and have an unlimited angle. Therefore we believe that this optimization is not well defined, appears unuseful, and to be cancelled. This patch is a preparation for removing the MERGE_COLLINEAR_SEGMENTS section. We made this switch global and we bracketed more code sections, which appear unuseful without MERGE_COLLINEAR_SEGMENTS. This patch almost is a change to a disabled code. But the change to gxfill.c ln 1238,1241 goes to the enabled code and appears algorithmically equivalent : with MERGE_COLLINEAR_SEGMENTS 1 this branch is equivalent to noop. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.32, src/gxfill.c 1.87, src/gxpflat.c 1.29]</p> </blockquote> <p><strong><a name="2004-01-22_1136"></a> 2004-01-22 11:36 Igor Melichev</strong></p> <blockquote> <pre> Fix : A bug in ttfmain.c caused a heap damage. DETAILS : Bug 687254 "writing pcl segfaults". EXPECTED DIFFERENCES : None with comparefiles.</pre> <p>[src/ttfmain.c 1.22]</p> </blockquote> <p><strong><a name="2004-01-22_0922"></a> 2004-01-22 09:22 Igor Melichev</strong></p> <blockquote> <pre> Fix : pco_accurate didn't work for curves with zero derivative. DETAILS : Bug 687266 "Accurate curves may be inaccurate.". EXPECTED DIFFERENCES : None, because normally PS doesn't use "true .setaccuratecurves". Testing with "true .setaccuratecurves", got no difference with -r72. Thus our testbase doesn't contain interesting curves.</pre> <p>[src/gxpcopy.c 1.18]</p> </blockquote> <p><strong><a name="2004-01-22_0916"></a> 2004-01-22 09:16 Ralph Giles</strong></p> <blockquote> <pre> Create a new dynamic header 'gconfigd.h' for non-platform-specific defines. Variables like GS_LIB_DEFAULT which were previously tacked onto the end of gconfig.h have been moved to the new header. This change is necessary to pass the default path for the persistent cache from the makefile. DETAILS: The persistent cache is implemented in the gp layer, but previously it was illegal to access gconfig.h from code inside the graphics library, it the sense that the build would fail. This is because of the crazy way operator definitions are collected in dev files before they are consolidated in gconfig.h. We don't want to use gconfigv.h because that header is platform-specific is generated by different code on every platform. Therefore, while this isn't a real fix for gconfig.h circular inclusion issue, a new header is reasonably motivated.</pre> <p>[src/gp_unix_cache.c 1.2, src/gs.mak 1.25, src/gscdef.c 1.42, src/iconf.c 1.7, src/int.mak 1.122, src/lib.mak 1.162, src/unix-aux.mak 1.12]</p> </blockquote> <p><strong><a name="2004-01-21_1355"></a> 2004-01-21 13:55 Igor Melichev</strong></p> <blockquote> <pre> Fix : Don't apply pco_accurate when filling a path. DETAILS : When a path is is being stroked, it first converts to the stroke outline, and pco_accurate is being applied. When the stroke outline is being filled, pco_accurate was applied at second time with no useful reason. When it fills a character, pco_accurate disturbs the hinted outline. Thus it must not apply with 'fill' in any case. EXPECTED DIFFERENCES : None, because normally PS doesn't use "true .setaccuratecurves". Testing with "true .setaccuratecurves", almost all tests render differently due to characters, and we believe it's a progression.</pre> <p>[src/gxfill.c 1.86]</p> </blockquote> <p><strong><a name="2004-01-21_1338"></a> 2004-01-21 13:38 Igor Melichev</strong></p> <blockquote> <pre> Fix : The dropout prevetion did not work with "true .setaccuratecurves". DETAILS : Bug 687265 "adjust_point_to_tangent goes out the bbox". EXPECTED DIFFERENCES : None, because normally PS doesn't use "true .setaccuratecurves".</pre> <p>[src/gxpcopy.c 1.17]</p> </blockquote> <p><strong><a name="2004-01-21_1017"></a> 2004-01-21 10:17 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Type 3 characters were missed in the Widths array. DETAILS : Bug 687242 "ghostscript generates incorrect pdf file". A wrong character index was used passing characters to adjust_first_last_char, causing the domain of the Widths array be smaller than necessary. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdte.c 1.52]</p> </blockquote> <p><strong><a name="2004-01-20_1911"></a> 2004-01-20 19:11 Ralph Giles</strong></p> <blockquote> <pre> Replace a fixed-filename tempfile fopen with gp_open_scratch_file() for improved robustness in the pnga device. Part of the fix for bug 687243. DETAILS: This is an experimental device to preserve pdf transparency into a png rasterization and is distinct from the pngalpha device. I doesn't actually work for me and so may be suffering from bit rot; however the change compiles and should be correct.</pre> <p>[src/gdevpnga.c 1.8]</p> </blockquote> <p><strong><a name="2004-01-20_1905"></a> 2004-01-20 19:05 Ralph Giles</strong></p> <blockquote> <pre> Some additional clarification on the new pdfwrite encryption user parameters.</pre> <p>[doc/Ps2pdf.htm 1.62]</p> </blockquote> <p><strong><a name="2004-01-20_1900"></a> 2004-01-20 19:00 Ralph Giles</strong></p> <blockquote> <pre> Improve wording and html formatting of recent documentation additions.</pre> <p>[doc/News.htm 1.142, doc/Ps2pdf.htm 1.61]</p> </blockquote> <p><strong><a name="2004-01-20_1508"></a> 2004-01-20 15:08 Igor Melichev</strong></p> <blockquote> <pre> Fix : The PCL interpreter doesn't provide pattern streams (continued). DETAILS : 1. Restored the PATTERN_STREAM_ACCUMULATION 0 code from gdevpdfv.c revision 1.27. It provides a conversion of a pattern tile into a PDF pattern object. 2. Passed have_pattern_streams to corresponding parts of pdfwrite. 3. Added a check for have_pattern_streams into zpcolor.c . It is useful for debugging PS interpreter with passing have_pattern_streams=false to gs_state_set_client. With PS interpreter the new code never executes (unless one changes the call to gs_state_set_client). EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.c 1.46, src/gdevpdfg.h 1.29, src/gdevpdfv.c 1.33, src/int.mak 1.121, src/zpcolor.c 1.12]</p> </blockquote> <p><strong><a name="2004-01-20_0139"></a> 2004-01-20 01:39 Ralph Giles</strong></p> <blockquote> <pre> Correct a typo in the previous commit.</pre> <p>[src/gp_unifs.c 1.17]</p> </blockquote> <p><strong><a name="2004-01-20_0124"></a> 2004-01-20 01:24 Ralph Giles</strong></p> <blockquote> <pre> Save the original filename template for use in the error message when mkstemp() fails. According to the man page mkstemp() can clobber the contents of fname if it does not succeed. Part of the fix for bug 687243.</pre> <p>[src/gp_unifs.c 1.16]</p> </blockquote> <p><strong><a name="2004-01-19_2319"></a> 2004-01-19 23:19 Ralph Giles</strong></p> <blockquote> <pre> Remove some very old scripts which contain /tmp races, a security risk should someone actually try to use them. Part of the fix for bug 687243.</pre> <p>[lib/pj-gs.sh 1.4, lib/sysvlp.sh 1.4]</p> </blockquote> <p><strong><a name="2004-01-19_2015"></a> 2004-01-19 20:15 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 12. DETAILS : With no encryption strings in the Info dictionary got excessive brackets. Bug 687263 "Invalid producer / author / creator fields in PDF". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfu.c 1.49]</p> </blockquote> <p><strong><a name="2004-01-19_1652"></a> 2004-01-19 16:52 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : CropBox computed wrongly. DETAILS : Bug 687244 "wrong interpretation of negative mediabox coordinates". The bug title appears incorrect. Actually the problem is caused by negative CropBox coordinates. .pdfshowpage_Install translates the coordinate system to provide positive coordinates, but pdfshowpage_finish did not account the translation when writing the CropBox. Therefore it the resulting CropBox was inconsistent with the painting when the source CropBox uses negative coordinates. EXPECTED DIFFERENCES : A progression with vtm2k.pdf .</pre> <p>[lib/pdf_main.ps 1.84]</p> </blockquote> <p><strong><a name="2004-01-19_1232"></a> 2004-01-19 12:32 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Merge redundant images (continued). DETAILS : Bug 687224 "large pdf file size". The patch http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003988.html appears incomplete, because it works only with << /EncodeColorImages false >> setdistillerparams The problem happens due to Decode arrays considered always unequal. This patch : 1. Implemets cos_array_equal. 2. Applies it properly to subobjects (particularly to Decode). 3. Fixes the function cos_dict_equal - it was asymmetric. 4. Improves the error processing while object comparizon. EXPECTED DIFFERENCES : None in rasters, some PDFs become shorter.</pre> <p>[src/gdevpdfo.c 1.26]</p> </blockquote> <p><strong><a name="2004-01-19_0941"></a> 2004-01-19 09:41 Igor Melichev</strong></p> <blockquote> <pre> Fix : The PCL interpreter doesn't provide pattern streams. DETAILS : gx_pattern_cache_lookup falied when called by the PCL interpreter because the PCL interpreter doesn't provide high level pattern streams. Actially the compatibility of the graphics library to the PCL interpreter was broken since gsptype1.c revision 1.16. This patch introdices a new argument for the function gs_state_set_client. Using the argument, a client tells to the graphics library whether the client provides pattern streams. If not, the graphics librery emulates the old behavior based on raster parretns only. The new flag gs_imager_state::have_pattern_streams stores the compatibility mode. We would prefer it to be a member of the graphics library instance, but the instance is not implemented yet. Storing it to gs_imager_state may cause some undeserable effects, especially when a device creates a temporary graphic state for an internal use (the clist device is an example). We assume that none of devices provides pattern streams, and this assumption should be reasonable for current applications. The mechanizm for generating patters streams is still coded specifically to the PS interpreter in pattern_paint_prepare in zpcolor.c . This solution to be considered as a temporary one. We should refactor it into 2 parts : one specific for the PS interpreter, and another one being common for all applications, which should be a part of the graphics library. This patch had passed the regression test with the PS interpreter, but it was not tested with the PCL interpreter. Debugging it with PCL to be a next step. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsistate.c 1.9, src/gsptype1.c 1.18, src/gsstate.c 1.23, src/gxistate.h 1.19, src/gxstate.h 1.9, src/zgstate.c 1.9]</p> </blockquote> <p><strong><a name="2004-01-17_2046"></a> 2004-01-17 20:46 Dan Coby</strong></p> <blockquote> <pre> Fix for "687252 subfiledecode errors on includes greater than the size of a uint". In spite of the bug name, the problem is not related to the actual size of the subfile or to the size of a uint. The actual problem is a missing required parameter: EODCount. However Adobe once again ignores the missing parameter and what is specified in the PRLM-3rd. DETAILS: The given test file has a SubFileDecode filter without the required EODCount parameter. Ghostscript is rejecting the test file because the parameter is not defined. The RangeCheck error message is the result of the following piece of code in zfilter.c: if ((code = dict_int_param(op, "EODCount", 0, max_int, -1, &count)) < 0) return code; This sets a default value of -1 for EODCount and then checks it against the range 0 to max_int. Thus when EODCount is not found we get the rangecheck since -1 is outside the allowed range. In spite of the fact that the EODCount is a required parameter, Adobe Distiller 6.0, my CP1700PS printer, and CPSI 3010.105 print this file without complaint. This fix changes the default value to 0 to match Adobe and adds a comment explaining why the code differs from the spec.</pre> <p>[src/zfilter.c 1.10]</p> </blockquote> <p><strong><a name="2004-01-16_1236"></a> 2004-01-16 12:36 Igor Melichev</strong></p> <blockquote> <pre> Fix (type 1 hinter) : Wrong outline with a huge scale. DETAILS : An arithmetic error happened when scaling a glyph to a huge size (about 100000 pixels), causing a wrong outline. Actually some coordinate values were replaced with zeros. Thanks to Jeong Kim for detecting that. The bug was detected with -r1500 with the test file of the bug 686975 "Black box when converting to tiff". Note that the bug report is wrong : it says that the document with -r150 is bad and -r1500 is good. Comparing rasters with Adobe we concluded exactly vise versa : -r150 was compatible and -r1500 was incompatible. After this patch both resolutions are compatible to Adobe. Probably the user won't like them due to a bug in the document : it paints a huge glyph, which is a hundred times bigger than the page size. The document needs a fix. EXPECTED DIFFERENCES : None with comparefiles.</pre> <p>[src/gxhintn.c 1.42]</p> </blockquote> <p><strong><a name="2004-01-16_0947"></a> 2004-01-16 09:47 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 11. DETAILS : Improving a PDF 1.3 parameter conformity check. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.86]</p> </blockquote> <p><strong><a name="2004-01-16_0924"></a> 2004-01-16 09:24 Igor Melichev</strong></p> <blockquote> <pre> Documenting new features of gs8.30 . DETAILS : This inserts some new reference points in the documentation. Maybe someone will like to restructurize it.</pre> <p>[doc/Language.htm 1.83, doc/News.htm 1.141, doc/Ps2pdf.htm 1.60, doc/Use.htm 1.99]</p> </blockquote> <p><strong><a name="2004-01-16_0636"></a> 2004-01-16 06:36 Dan Coby</strong></p> <blockquote> <pre> Fix for 687247 x11 device fails with CMYK on 8bit display. DETAILS: Inside gxcmap.c, the handling of color mapping for most devices is either halftoned or direct. However the x11 device when in 8 bit mode, and possibly other 256 color devices, use a slightly different path. First the color is processed in direct mode. If a color is not in the palatte and halftoning is required, then gx_no_color_index is returned as a color value. Then the color is processed as being halftoned. However this last path was dropped from CMYK colors with revision 8.0.</pre> <p>[src/gxcmap.c 1.18]</p> </blockquote> <p><strong><a name="2004-01-16_0231"></a> 2004-01-16 02:31 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 10 - beta release. DETAILS : This provides the related documentation. EXPECTED DIFFERENCES : None.</pre> <p>[doc/Ps2pdf.htm 1.59]</p> </blockquote> <p><strong><a name="2004-01-16_0211"></a> 2004-01-16 02:11 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 9. DETAILS : This fixes the key length problem with << /V 2 /R 3 >> . With << /V 2 /R 2 >> the patched version is still incompatible to Adobe when Length is not 40, but it appears compatible to XPDF. This revision can go to beta. Use << /V 2 /R 2 /Length 40 >> or << /V 2 /R 3 /Length not40 >> - they both should work. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.85]</p> </blockquote> <p><strong><a name="2004-01-16_0202"></a> 2004-01-16 02:02 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) Bug in encryption revision 3. DETAILS : It wrongly generated the encryption key with << /V 2 /R 3 >> . With << /V 2 /R 3 >> the patched version is compatible to Adobe. With << /V 2 /R 2 >> the patched version is still incompatible to Adobe when Length is not 40, but it appears compatible to XPDF. EXPECTED DIFFERENCES : None.</pre> <p>[lib/pdf_sec.ps 1.13]</p> </blockquote> <p><strong><a name="2004-01-15_2144"></a> 2004-01-15 21:44 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 8. DETAILS : This fixes minor problems with parameter consistency. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.84]</p> </blockquote> <p><strong><a name="2004-01-15_1745"></a> 2004-01-15 17:45 Ralph Giles</strong></p> <blockquote> <pre> Add an RCS Id line to the documentation stylesheet. There's no reason to exempt it.</pre> <p>[doc/gs.css 1.3, toolbin/tests/check_source.py 1.8]</p> </blockquote> <p><strong><a name="2004-01-15_1741"></a> 2004-01-15 17:41 Ralph Giles</strong></p> <blockquote> <pre> Add the Freetype Licence text to the exemptions list for RCS Id lines.</pre> <p>[toolbin/tests/check_source.py 1.7]</p> </blockquote> <p><strong><a name="2004-01-15_1735"></a> 2004-01-15 17:35 Ralph Giles</strong></p> <blockquote> <pre> Add gp_unix_cache.c to the developer documentation's file listing.</pre> <p>[doc/Develop.htm 1.130]</p> </blockquote> <p><strong><a name="2004-01-15_1608"></a> 2004-01-15 16:08 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 7. DETAILS : The previous patch wrote a dubugging stub. Removing it now. Also improving the log messages because this revision appears better than was explained. It works fine with 40 bits keys and with 128 bits keys. With other key lengthes it creates PDFs that GS can open with either user or owner password, but Adobe Reader 6 doesn't open them, reporting a wrong password. That's a problem though. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.83]</p> </blockquote> <p><strong><a name="2004-01-15_1502"></a> 2004-01-15 15:02 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 6. DETAILS : 1. Provide pdfwrite device parameters for encryption revision 3 (PDF 1.5). 2. Check them for consistency and provide reasonable defaults. 3. Provide the encryption version 2 revision 3 (i.e. 48-128 bits keys). It works fine with 40 bits keys. With longer keys it creates PDFs that GS can open with either user or owner password, but Adobe Reader 6 doesn't open them, reporting a wrong password. That's a problem though. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdf.c 1.82, src/gdevpdfp.c 1.36, src/gdevpdfx.h 1.84]</p> </blockquote> <p><strong><a name="2004-01-15_1009"></a> 2004-01-15 10:09 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 5. DETAILS : 1. Encrypt strings in CIDSystemInfo. 2. Provide a parent object id writing a cos object. 3. Encrypt strings serializing a cos object. All comparefiles are now passed. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.107, src/gdevpdf.c 1.81, src/gdevpdfc.c 1.46, src/gdevpdfo.c 1.25, src/gdevpdfo.h 1.18, src/gdevpdfu.c 1.48, src/gdevpdfx.h 1.83, src/gdevpdtf.c 1.34, src/gdevpdti.c 1.27, src/gdevpdtw.c 1.27, src/gdevpdtw.h 1.4]</p> </blockquote> <p><strong><a name="2004-01-15_0927"></a> 2004-01-15 09:27 Ralph Giles</strong></p> <blockquote> <pre> Initial commit of the persistent cache implementation. This version supports only the *nix platform and does not include any eviction logic. Also currently the cache directory and empty 'gs_cache' index file must be created manually. DETAILS: Two new calls have been added to the gp layer: gp_cache_insert() and gp_cache_query(). These take a byte buffer as a key under which another buffer can be stored or recalled. In addition to the key, buffers are filed by 'type' which provides a separate namespace for each kind of data. These types should be one of the GP_CACHE_TYPE_* defines in gp.h. The query call takes a callback for allocating the buffer to be filled. Thus, all memory management for the key and value buffers is handled by the client and the query returns the data (if any) within a single call. A pair of postscript test operators, .pcacheinsert and .pcachequery are provided in zmisc.c, however they are disabled by default to prevent access to the cache by malicious postscript programs. They operate only with the 'test' type, so a denial-of-service attack is the only real risk; however we anticipate all access will be from C code. Compile with the DEBUG_CACHE preprocessor symbol to enable these. Improvements and implementations for other platforms are to follow.</pre> <p>[src/Makefile.in 1.31, src/gp.h 1.27, src/gp_dvx.c 1.11, src/gp_iwatc.c 1.17, src/gp_mac.c 1.15, src/gp_mswin.c 1.23, src/gp_os2.c 1.30, src/gp_os9.c 1.12, src/gp_unix.c 1.13, src/gp_unix_cache.c 1.1, src/gp_vms.c 1.37, src/gs.mak 1.24, src/unix-aux.mak 1.11, src/zmisc.c 1.6]</p> </blockquote> <p><strong><a name="2004-01-14_1805"></a> 2004-01-14 18:05 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 4. DETAILS : It fixes problems with encrypting strings in Indexed color spaces. Strings are not encrypted yet. All comparefiles are now passed except korea.ps . EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.106, src/gdevpdfc.c 1.45]</p> </blockquote> <p><strong><a name="2004-01-14_1604"></a> 2004-01-14 16:04 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 3. DETAILS : It fixes problems with encryption of streams. Strings are not encrypted yet (this may affect some color spaces). Most of Genoa tests now passed. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfj.c 1.29, src/gdevpdfu.c 1.47, src/gdevpdfx.h 1.82, src/gdevpdtb.c 1.23, src/gdevpdti.c 1.26, src/gdevpdtw.c 1.26]</p> </blockquote> <p><strong><a name="2004-01-14_1407"></a> 2004-01-14 14:07 Alex Cherepanov</strong></p> <blockquote> <pre> Check for hypot() availability on the configure step, fix the hypot() replacement macro, and deal with MSVC specially. Fix bug 687238.</pre> <p>[src/Makefile.in 1.30, src/configure.ac 1.39, src/math_.h 1.6]</p> </blockquote> <p><strong><a name="2004-01-14_1345"></a> 2004-01-14 13:45 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 2. DETAILS : It implements the encryption of most PDF streams. Strings are not done yet. It can process 001-01.ps, but there are problems with other files. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.105, src/gdevpdf.c 1.80, src/gdevpdfo.c 1.24, src/gdevpdfu.c 1.46, src/gdevpdfx.h 1.81, src/gdevpdti.c 1.25, src/sarc4.c 1.10, src/sarc4.h 1.6]</p> </blockquote> <p><strong><a name="2004-01-14_0750"></a> 2004-01-14 07:50 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the PDF 1.4 encryption, step 1. DETAILS : This defines new pdfwrite device parameters OwnerPassword, UserPassword, KeyLength, Permissions, and outputs the Encrypt dictionary if OwnerPassword is specified. PDF data are not encrypted yet. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.104, src/gdevpdf.c 1.79, src/gdevpdfp.c 1.35, src/gdevpdfx.h 1.80, src/sarc4.c 1.9, src/sarc4.h 1.5]</p> </blockquote> <p><strong><a name="2004-01-14_0638"></a> 2004-01-14 06:38 Ray Johnston</strong></p> <blockquote> <pre> Fix to prevent setdistillerparams from erasing the page device or reset the page device parameters. Fixes bugs 563287 and 607425. DETAILS: The .putdeviceparamsonly function defined in gs_setpd.ps is designed to set device properties without clearing or resetting the pagedevice. Both code snippets execute as expected with this change. While the 563287 bug report mentions an attached file, it does not appear to exist anywhere (any more) unless it refers to the little code snippet. Expected Differences: none. Only one of the regression test files, PT.ps, invokes setdistillerparams and this invocation doesn't trip over the problem since distiller params are set before painting anything.</pre> <p>[lib/gs_pdfwr.ps 1.37]</p> </blockquote> <p><strong><a name="2004-01-13_1403"></a> 2004-01-13 14:03 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing the file ID. DETAILS : File ID will be used in PDF encryption. See comment in pdf_compute_fileID. A new function s_MD5E_make_stream is defined to simplify internal interfaces. I'm not sure about the trick "s->strm = s" in s_MD5E_make_stream. Want an approval. EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.103, src/gdevpdf.c 1.78, src/gdevpdfx.h 1.79, src/lib.mak 1.161, src/smd5.c 1.6, src/smd5.h 1.5]</p> </blockquote> <p><strong><a name="2004-01-13_0728"></a> 2004-01-13 07:28 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Cygwin/gcc compiler warnings.</pre> <p>[src/gdevpdfd.c 1.36, src/gdevpdfo.c 1.23]</p> </blockquote> <p><strong><a name="2004-01-13_0728"></a> 2004-01-13 07:28 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Adobe glitches with a small FontMatrix. DETAILS : Bug 687207 "PS file incorrectly converted to PDF". Actually the PDF was fine but Adobe has a precision problem with small FontMatrix. This patch adjusts the FontMatrix of a Type 3 font to a reasonable interval. EXPECTED DIFFERENCES : None with old comparefiles.</pre> <p>[src/gdevpdte.c 1.51, src/gdevpdtt.c 1.71, src/gdevpdtt.h 1.21]</p> </blockquote> <p><strong><a name="2004-01-13_0532"></a> 2004-01-13 05:32 Igor Melichev</strong></p> <blockquote> <pre> Fixing a punctuation inaccuracy in documentation.</pre> <p>[doc/Language.htm 1.82, doc/Use.htm 1.98]</p> </blockquote> <p><strong><a name="2004-01-13_0206"></a> 2004-01-13 02:06 Ray Johnston</strong></p> <blockquote> <pre> Fix problems with the "image" device when the palette is an 8-bit gray palette (uses the image8 device with num_components == 1). Since the DeviceN changes, changing num_components requires also setting the gray_index value appropriately. Also the rgb to color mapping function did not allow for num_components == 1 and used uninitialized values for the green and blue comonents. Fixes bugs 458261, 686909 and 687204. DETAILS: The gray_index value was being left at GX_CINFO_COMP_NO_INDEX, so the gx_device_has_color macro indicated a color device. This means that when the gs_initialize_wordimagedevice function changed the num_components value to 1, the gray_index was incorrect (should be 0 for a gray shade device). Also the mem_mapped_map_rgb_color function didn't check for num_components == 1, thus using uninitialized cv[1] and cv[2] values and getting incorrect palette selections. Also I optimized the single component case a bit as well as an "early out" for both color and monochrome when diff == 0 (can't get any better than a perfect match). I guess 8-bit monochrome image devices haven't been used much. Expected Differences: none. (we don't test ps2epsi in the regression suite).</pre> <p>[src/gdevmem.c 1.7, src/gsdevmem.c 1.5]</p> </blockquote> <p><strong><a name="2004-01-12_2316"></a> 2004-01-12 23:16 Ralph Giles</strong></p> <blockquote> <pre> Clarify wording in the updated GridFitTT documentation.</pre> <p>[doc/Language.htm 1.81, doc/Use.htm 1.97]</p> </blockquote> <p><strong><a name="2004-01-12_2304"></a> 2004-01-12 23:04 Ralph Giles</strong></p> <blockquote> <pre> Clarify wording and correct some spelling errors in a recent documentation change.</pre> <p>[doc/Ps2pdf.htm 1.58]</p> </blockquote> <p><strong><a name="2004-01-12_1435"></a> 2004-01-12 14:35 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A misprint in the previous patch. DETAILS : Don't use the previous revision of gdevpdf.c - it's wrong.</pre> <p>[src/gdevpdf.c 1.77]</p> </blockquote> <p><strong><a name="2004-01-12_1428"></a> 2004-01-12 14:28 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Merge redundant images. DETAILS : Bug 687224 "large pdf file size". With this change pdfwrite compares images for equality and merges same images into a single XObject, except for inline images. A new pdfwrite device parameter MaxInlineImageSize controls inline images. See gs\doc\Ps2pdf.htm . Use it to disable inline images if the source document contains multiple redundant small images. A new vitrtual function cos_object_t::cos_procs->equal is implemented for object comparizon. But the current implementation is restricted with current needs. Particularly it doesn't implement cos arrays, and assumes equal stream segmentation for equal streams. To be improved someday. Note that an image is copied to temporary file before a comparizon. If the image appears redundant, the current implementation sometimes doesn't release the space consumed in the temporary file. Therefore the disk must have enough space for storing all copies. We could improve this using a smarter method than cos_stream_release_pieces, because an image can interlive only with same image of an alternative compression. To be improved someday. EXPECTED DIFFERENCES : None in rasters, some PDFs become shorter.</pre> <p>[doc/Ps2pdf.htm 1.57, src/gdevpdf.c 1.76, src/gdevpdfb.c 1.21, src/gdevpdfg.h 1.28, src/gdevpdfi.c 1.50, src/gdevpdfj.c 1.28, src/gdevpdfo.c 1.22, src/gdevpdfo.h 1.17, src/gdevpdfp.c 1.34, src/gdevpdfu.c 1.45, src/gdevpdfx.h 1.78]</p> </blockquote> <p><strong><a name="2004-01-11_1353"></a> 2004-01-11 13:53 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A mangled CFF was written when an Encoding uses 256 glyphs. DETAILS : Bug 687217 "pdfwrite erases a certain type1 font when I used 'space' character" Thanks to Inoue Koich and to Mr. Hirata for the useful information in the Comment #4 of 687217. The reason was an old "NYI" : /* * The count of encoded characters is only a single byte, so we * have to use a supplement for the last character. */ /****** NYI ******/ This patch implements that. EXPECTED DIFFERENCES : None with old compartefiles. mbb-with-space.ps to be added to comparefiles.</pre> <p>[src/gdevpsf2.c 1.30]</p> </blockquote> <p><strong><a name="2004-01-11_1121"></a> 2004-01-11 11:21 Igor Melichev</strong></p> <blockquote> <pre> Fix : removed dependence on bands in the filling algorithm. DETAILS : Bug 687222 "Raster depends on bands". This patch fixes a known dependence, but doesn't include an attempt to find or fix all possible dependences. It copmutes a next evaluation point over the top band boundary as it would be without a banding, store it into line_list::y_break, and use in proper places of fill_loop_by_trapezoids and fill_loop_by_scan_lines. EXPECTED DIFFERENCES : normal, 72dpi -dMaxBitmap=10000 : None. normal, 72dpi -dMaxBitmap=30000000 : None. normal, 300dpi -dMaxBitmap=10000 : 012-09.ps 036-01.ps 123-05.ps 175-01.ps 226-01.ps 231-01.ps motor.pdf Openhuis_pdf_zw.pdf normal, 300dpi -dMaxBitmap=30000000 : Openhuis_pdf_zw.pdf pdfwrite was not tested.</pre> <p>[src/gxfill.c 1.85, src/gxfill.h 1.12]</p> </blockquote> <p><strong><a name="2004-01-10_1800"></a> 2004-01-10 18:00 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Mark copied font's glyph names when reclaiming memory. DETAILS : Bug 687187 "pdfwrite can duplicate glyphs embedding a font". If a font is freed and then reloaded, the glyph names could get different name indices, if the garbager freed the names before the second loading of the font. As the result, the copied font could embed duplicated charstrings. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfcopy.c 1.40]</p> </blockquote> <p><strong><a name="2004-01-10_1224"></a> 2004-01-10 12:24 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Improving heuristics in the compression chooser. DETAILS : Gradients' area was wrongly computed. Fixing it and adjust thresholds to comply with the new computation. Bug 687169 "(pdfwrite) : An imperfect compression choice with dina3_watermark.pdf". Processing comparefiles, with this patch pdfwrite chooses a compression closer to the original document. I noticed 3 tests differing from source : Fixed_Original.pdf loremIpsum.pdf S2_Digitalproof-Forum_x3k.pdf In all 3 tests the images are like a photo, so DCT is the right choice rather than the original Flate or LZW. EXPECTED DIFFERENCES : After pdfwrite the following tests generate a different raster due to DCT/Flate changes : adesso2.pdf adesso5.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf BEST8-99-Path.fh7.pdf besttest.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf Faktura.pdf Fixed_Original.pdf foo.pdf H00216q.pdf kazmir.pdf loremIpsum.pdf MagicEye.pdf Original.pdf S2_Digitalproof-Forum_x3k.pdf si_tg_brochure.pdf test.pdf All them generate a shorter PDF.</pre> <p>[src/gdevpdfj.c 1.27, src/gdevpsds.c 1.10]</p> </blockquote> <p><strong><a name="2004-01-10_1212"></a> 2004-01-10 12:12 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A big stack consumption writing a CFF with many glyphs. DETAILS : This is a continuation of the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003887.html . The test file of the Bug 686875 contains a Type 1 font with 1280 glyphs, which overflowed tables in the CFF writer. Now we provide a dynamic allocation of the tables. Bugs 687212, 687233, 687212. The table size for CID fonts are still hardcoded. We believe that they must not be big because with CID fonts glyph names are not used. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpsf.h 1.26, src/gdevpsf2.c 1.29]</p> </blockquote> <p><strong><a name="2004-01-09_1427"></a> 2004-01-09 14:27 Igor Melichev</strong></p> <blockquote> <pre> Fix : Improving vdtrace macros. DETAILS : This fixes the bug 687216 "syntactical problems with vd_* macros", and implements a reading of the view parameters from an ini file. It allows to adjust the view without editing GS sources. The ini file is intentionally made global for all GS installations to simplify their comparizon. EXPECTED DIFFERENCES : None.</pre> <p>[src/dwtrace.c 1.5, src/vdtrace.h 1.10]</p> </blockquote> <p><strong><a name="2004-01-09_1340"></a> 2004-01-09 13:40 Igor Melichev</strong></p> <blockquote> <pre> Fix : Some of Sun ONE Studio 7 and Cygwin/gcc compiler warnings. DETAILS : Bug 687234 "warnings on Solaris (ghostscript-8.13)" EXPECTED DIFFERENCES : None.</pre> <p>[src/devs.mak 1.102, src/gdevpdtc.c 1.31, src/gdevpdtt.c 1.70, src/gxpcopy.c 1.16, src/zfapi.c 1.51]</p> </blockquote> <p><strong><a name="2004-01-09_1302"></a> 2004-01-09 13:02 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Empty clip was written into a charproc. DETAILS : See comment in gdevpdtt.c . Bug 687239 "tiling bug in pdfwrite". This patch also improves a comment in gdevpdti.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdti.c 1.24, src/gdevpdtt.c 1.69]</p> </blockquote> <p><strong><a name="2004-01-08_1402"></a> 2004-01-08 14:02 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 12, final. DETAILS : This patch switches on the new grid fitter, and provides related changes to the documentation. Minor change : fixed Cygwin/gcc compiler warnings in gzspotan.c . EXPECTED DIFFERENCES : All True type fonts render differently. They present in the following tests : 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf budget2_ai87.pdf bugsample.pdf Faktura.pdf fonts.pdf ICPconcept.pdf keyboard.pdf MagicEye.pdf ngnews.pdf ngnews1.pdf S2_Digitalproof-Forum_x3k.pdf test_multipage_prob.pdf Testform.v1.0.2.pdf xngnews.pdf japan.ps japan-.ps korea.ps MyTest5.ps MyTest6.ps Type11CDevProc.ps type42_glyph_index.ps</pre> <p>[src/gx.h 1.31, src/gzspotan.c 1.8, doc/Language.htm 1.80, doc/Use.htm 1.96]</p> </blockquote> <p><strong><a name="2004-01-07_1950"></a> 2004-01-07 19:50 Ralph Giles</strong></p> <blockquote> <pre> Unequivocally include stdlib.h in echogs.c to avoid a warning on the Sun ONE Studio 7 compiler as reported in bug 687234. DETAILS: The code in echogs.c calls exit() which is defined in stdlib.h. However it was not including that header (except) on VMS because of portability concerns, resulting in the reported 'implicit function definition' warning. The echogs program must be available before genarch runs and the std.h-based portability headers are available, so wide build support for this code is important. However, such platforms are now very old and comments elsewhere in the code suggest that any compiler supporting ANSI prototypes as we now require will also have a stdlib.h that defines exit(). If this change causes a problem, #ifdef code similar to what was used in gp_unix.c can be used instead.</pre> <p>[src/echogs.c 1.7]</p> </blockquote> <p><strong><a name="2004-01-07_1112"></a> 2004-01-07 11:12 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 11. DETAILS : This patch changes a disabled code only. It's a furter improvement if the hint generator and the hinter. 1. Improved comments about "overall" hints. 2. Implemented the "autohinting" flag, which tells that alignment zones to be guessed from the hint orientation. 3. Implemented a hint orientation for horizontal stems. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.41, src/gxhintn.h 1.19, src/gxttfb.c 1.27]</p> </blockquote> <p><strong><a name="2004-01-06_2036"></a> 2004-01-06 20:36 Ralph Giles</strong></p> <blockquote> <pre> Fix a typo in the 64-bit type selection logic. Bug 687237.</pre> <p>[src/configure.ac 1.38]</p> </blockquote> <p><strong><a name="2004-01-06_1332"></a> 2004-01-06 13:32 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 10. DETAILS : This patch changes a disabled code only. It fixes minor problems with hint generation : 1. Implemented an "overall" hint, which designates an outer side of a glyph, being nearly parallel to a coordinate axis. It aligns a stem end rather than stem sides, and simulates top/bottom alignment zones. This branch appears low useful and was not enabled. Maybe will remove it later. 2. Change to gxhintn.c is algorithmically equivalent. 3. The default value of GritFitTT is changed to 2, because we can't to provide a compatibility of the autohinted glyph size to the TT interpreter. 4. Improved hint_by_tangent : some slower but a better choice. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfont.c 1.30, src/gxhintn.c 1.40, src/gxhintn.h 1.18, src/gxttfb.c 1.26, src/gzspotan.c 1.7, src/gzspotan.h 1.5]</p> </blockquote> <p><strong><a name="2004-01-05_2334"></a> 2004-01-05 23:34 Ralph Giles</strong></p> <blockquote> <pre> Fix some warnings reported by the Sun One Studio 7 compiler (and others). Bug 687228.</pre> <p>[src/devs.mak 1.101, src/gdevdevn.c 1.13, src/gdevpdfc.c 1.44, src/gdevpdtb.c 1.22, src/gdevpsu.c 1.16, src/gp_unifn.c 1.16, src/gsht.c 1.18, src/gxcmap.c 1.17, src/int.mak 1.120, src/lib.mak 1.160, src/zfapi.c 1.50, src/zfile.c 1.40]</p> </blockquote> <p><strong><a name="2004-01-05_2306"></a> 2004-01-05 23:06 Ralph Giles</strong></p> <blockquote> <pre> Correct a typo in the checks for stdint fixed-size types. This did not materially affect the behavior of the configure script. Bug 687235.</pre> <p>[src/configure.ac 1.37]</p> </blockquote> <p><strong><a name="2004-01-05_2213"></a> 2004-01-05 22:13 Ralph Giles</strong></p> <blockquote> <pre> Bump the development branch version to 8.30 now that the stable branch has been released as 8.13 and update the date stamp.</pre> <p>[doc/News.htm 1.140, lib/gs_init.ps 1.104, src/gscdef.c 1.41, src/version.mak 1.69]</p> </blockquote> <p><strong><a name="2004-01-05_1915"></a> 2004-01-05 19:15 Alex Cherepanov</strong></p> <blockquote> <pre> Transliterate '\0' character in PDF names to "BnZr" instead of '?' to reduce the chance of name collision. DETAILS: TeX generates Type 3 fonts with single character glyph names equal to the character codes, i.e. /Encoding [(\000) cvn (\001) cvn ... /? ...] . PDF writer used to transliterate '\0' to '?' because #00 escape is invalid. This conflicts with /? glyph name, which also occurs in the same font. Fix bug 687232.</pre> <p>[src/gdevpdfu.c 1.44]</p> </blockquote> <p><strong><a name="2004-01-05_1511"></a> 2004-01-05 15:11 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 9. DETAILS : This patch changes a disabled code only. It fixes minor problems with hing generation. Now the TT grid fitting is working with TextAlphaBits=1, but some improvements still would be useful. TextAlphaBits=1 is not tested yet. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxttfb.c 1.25]</p> </blockquote> <p><strong><a name="2004-01-05_1305"></a> 2004-01-05 13:05 Igor Melichev</strong></p> <blockquote> <pre> Fix : Removed gx_curve_split due to inprecise implementation. DETAILS : The implemetation of gx_curve_split w3as inprecise. Bug 687177 "gx_curve_split disturbs the bounding box". Removing it because it is not longer in use. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpcopy.c 1.15, src/gzpath.h 1.28]</p> </blockquote> <p><strong><a name="2004-01-05_1252"></a> 2004-01-05 12:52 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 8. DETAILS : 1. Renamed monotonize_internal to gx_curve_monotonize. 2. Allowed the curved trapezoid algorithm for non-characters. 2 fragments changed for this purpose : passed all_bands to intersect_al and removed the restriction in gxfill.c ln 482. This causes minor differences in rasters listed below. 3. Introduced false_stub for better readability. This change is algorithmically equivalent. 4. Improved 2 cases in scan_contour with p.monotonic check. The old code was wrong, but our testbase doesn't have such cases in characters. Discovered with (2). 5. In gxttfb.c applied a curve monotonization after decoding a True Type glyph. It allows to apply Type 1 hints to non-monotonic stems. This change currently is disabled. 6. Added some initializations to quiet the compiler warnings. EXPECTED DIFFERENCES : normal 72dpi : tiger.eps normal 300dpi Es001-01.pdf shading_prob_800.ps type3xshow.eps pdfwrite 72dpi : 027-09.ps pdfwrite 300dpi : 123-05.ps Es001-01.pdf type3xshow.eps None.</pre> <p>[src/gxfill.c 1.84, src/gxpcopy.c 1.14, src/gxttfb.c 1.24, src/gzpath.h 1.27]</p> </blockquote> <p><strong><a name="2004-01-05_0611"></a> 2004-01-05 06:11 Ray Johnston</strong></p> <blockquote> <pre> Fix for fonts being displayed using .notdef character (empty boxes or other appearance). While the test file doesn't follow the PDF 1.3 or later manual recommendations for providing a [1,0] cmap for an embedded symbolic TT font, Adobe Acrobat Reader can display these characters. When the 'post' table doesn't provide the glyphs required by the /Differences list, try another cmap [3,0] to get the correct glyph (names and glyph #'s). Bug #686959 for customer #1060. DETAILS: The Adobe PDF 1.4 Reference Manual has some "hints" for producing portable PDF's, but as far as reading PDF's that don't follow these hints, all that is said (in section 5.5.5, p.333) is: Note: Some popular TrueType font programs contain incorrect encoding information. Implementations of TrueType font interpreters have evolved heuristics for dealing with such problems; those heuristics are not described here. For maximum portability, only well-formed TrueType font programs should be used in PDF files. The approach of trusting the 'post' table unless the glyphs given do not include glyphs that are mentioned in the 'prebuilt_encoding' (Differences), is a heuristic that works for this file and doesn't interfere with any other PDF's in the regression test. The thing about heuristics is that the 'intelligence' they embody is no better than the understanding of the best solution, so this may crop up again later (but we hope not). Note that simply using the 00030000 cmap [3,0] format causes the regression file 'test_multipage_prob.pdf' to fail with some .notdef characters.</pre> <p>[lib/gs_ttf.ps 1.35]</p> </blockquote> <p><strong><a name="2004-01-04_1959"></a> 2004-01-04 19:59 Igor Melichev</strong></p> <blockquote> <pre> Fix : monotonize_internal didn't work properly. DETAILS : We believe that the new code ever gives monotonic segments, rather than the old one does not - see Bug 687210 "a bug in monotonize_internal". The new code sometimes gives slightly different segments, because the old code applies an incorrect rounding. This causes minor differences in rasters. EXPECTED DIFFERENCES : normal, 72dpi a.pdf ai2.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf normal, 300dpi 093-01.ps a.pdf ai2.pdf Altona.Page_3.2002-09-27.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf pdfwrite, 72dpi : a.pdf ai2.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf pdfwrite, 300dpi : 093-01.ps 483-05.ps a.pdf ai2.pdf Altona.Page_3.2002-09-27.pdf bugsample.pdf chilis_black.pdf chilis_red.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf 289-01.ps was not tested because it fails.</pre> <p>[src/gxpcopy.c 1.13]</p> </blockquote> <p><strong><a name="2004-01-04_0612"></a> 2004-01-04 06:12 Igor Melichev</strong></p> <blockquote> <pre> Fix : Trapezoid algorithm could cause topology distortions (continued 2). DETAILS : This is a continuation of the recent patch. This one provides more stability to numeric errors. This patch brings 3 improvements : 1. the error proportion formula is now applied in all cases (one of them was missed by the previous patch). 2. since the intersection point isn't equal to AL_X_AT_Y value, a special care is taken in the dropout prevention code. 3. To provide (2), moved the assignments to x_current, x_next. EXPECTED DIFFERENCES : mormal, 72dpi : 169-13.ps 244-01.ps 86554321.pdf mormal, 300dpi : 012-01.ps 013-01.ps 014-13.ps 032-01.ps 034-01.ps 123-01.ps 123-05.ps 169-13.ps pdfwrite, 72dpi : 102-01.ps 205-13.ps 244-01.ps 86554321.pdf waterfal.ps pdfwrite, 300dpi : 032-01.ps 123-01.ps 123-05.ps 169-13.ps 205-01.ps 205-13.ps 222-13.ps 307-13.ps 289-01.ps was not tested because it fails.</pre> <p>[src/gxfdrop.c 1.9, src/gxfill.c 1.83]</p> </blockquote> <p><strong><a name="2004-01-04_0537"></a> 2004-01-04 05:37 Alex Cherepanov</strong></p> <blockquote> <pre> Remove spurious stack adjustment that caused /unmatchedmark when the font was loaded from Resource/Fonts/ . Fix bug 687220.</pre> <p>[lib/gs_fonts.ps 1.46]</p> </blockquote> <p><strong><a name="2004-01-03_1814"></a> 2004-01-03 18:14 Ralph Giles</strong></p> <blockquote> <pre> Correct a line ending problem.</pre> <p>[src/gp_macio.c 1.33]</p> </blockquote> <p><strong><a name="2004-01-03_1750"></a> 2004-01-03 17:50 Igor Melichev</strong></p> <blockquote> <pre> Fix : Trapezoid algorithm could cause topology distortions (continued). DETAILS : This is a continuation of the recent patch. This one provides a better stability to numeric errors : the point bias is inversedly poroportional to the line slope. EXPECTED DIFFERENCES : mormal, 72dpi : None. mormal, 300dpi : 123-05.ps 205-05.ps pdfwrite, 72dpi : None. pdfwrite, 300dpi : None. 289-01.ps was not tested because it fails.</pre> <p>[src/gxfill.c 1.82]</p> </blockquote> <p><strong><a name="2004-01-03_1234"></a> 2004-01-03 12:34 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 7. DETAILS : This patch changes a disabled code only. It implements the enhanced logics for the user parameter GridFitTT, and provides TT grid fitting by both coordinates. GridFitTT is documented in gxttfb.c : + /* gs_currentgridfittt values (binary) : + 00 - no grid fitting; + 01 - Grid fit with TT interpreter; On failure warn and render unhinted. + 10 - Interpret in the design grid and then autohint. + 11 - Grid fit with TT interpreter; On failure render autohinted. + */ Changes to gs/doc to be done after the new code is enabled. EXPECTED DIFFERENCES : None.</pre> <p>[src/gsfont.c 1.29, src/gxfcache.h 1.23, src/gxttfb.c 1.23, src/zusparam.c 1.11]</p> </blockquote> <p><strong><a name="2004-01-03_1038"></a> 2004-01-03 10:38 Igor Melichev</strong></p> <blockquote> <pre> Fix : Trapezoid algorithm could cause topology distortions. DETAILS : There were 2 types of possible distortions : inversed or self-intersecting trapezoids, and overlapping trapezoids. Rather they are pretty rare (and a consequtive pixel miscoverage are extremily rare), they break the topology analyzis with the spotan device. The distortion happen due to inprecize computations of line intersections. The coordinate of the intersection is represented in 'fixed', which can't be precise in most cases. Therefore the intersection point appear slightly shifted. The harmful thing was a different shift of the same point for each of the intersecting lines. This patch brings 2 improvements : 1. Intersecting 2 lines, assign same X to both. A special care is taken about vertical lines. 2. After intersections are computed, we check whether the coordinates appear in a wrong order by X. If so, we fix it with computing the average coordinate and assigning it to all lines. This must give a correct topology with a small processor time expense. Monor change : fixed some Cygwin/gcc warnings. EXPECTED DIFFERENCES : mormal, 72dpi : 123-01.ps 222-01.ps 281-01.ps 327-01.ps mormal, 300dpi : 012-01.ps 013-01.ps 014-13.ps 032-01.ps 083-01.ps 083-05.ps 103-01.ps 118-01.ps 123-01.ps 169-13.ps 205-01.ps 205-05.ps 289-01.ps 298-01.ps 307-13.ps 321-01.ps adesso1.pdf motor.pdf pdfwrite, 72dpi : 102-01.ps 169-13.ps 205-13.ps 222-13.ps 244-01.ps 281-01.ps 298-01.ps 308-04.ps 321-01.ps 321-05.ps 327-01.ps waterfal.ps 205-13.ps pdfwrite, 300dpi : 012-01.ps 012-05.ps 013-01.ps 014-13.ps 027-09.ps 083-13.ps 102-01.ps 123-01.ps 123-05.ps 169-13.ps 205-01.ps 205-13.ps 222-13.ps 307-01.ps 307-07.ps 307-13.ps 289-01.ps was not tested because it fails.</pre> <p>[src/gxfill.c 1.81]</p> </blockquote> <p><strong><a name="2004-01-02_2105"></a> 2004-01-02 21:05 Ray Johnston</strong></p> <blockquote> <pre> Fix: The (more or less undocumented) superexec operator is supposed to allow "readonly" directories to be amended. Bug #674421.</pre> <p>[src/zgeneric.c 1.7]</p> </blockquote> <p><strong><a name="2004-01-02_2053"></a> 2004-01-02 20:53 Ray Johnston</strong></p> <blockquote> <pre> Remove spurious ^M (ctrl-M == <cr>) characters from the source -- probably caused by a Windows user performing an update from a file that was not correctly recognized as DOS vs. UNIX line endings by cvs.</pre> <p>[src/idict.c 1.10]</p> </blockquote> <p><strong><a name="2004-01-02_1802"></a> 2004-01-02 18:02 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 6. DETAILS : In the enabled code this change is algorithmically equivalent : generalized an argument of gx_path__check_curves, and fixed a design box, wich was not used. In the disabled code it computes a reasonable flattness for the stem recognition and exclused an unuseful (and harmful) path copying. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.80, src/gxpath.h 1.11, src/gxpcopy.c 1.12, src/gxttfb.c 1.22, src/ttfmain.c 1.21]</p> </blockquote> <p><strong><a name="2004-01-02_1315"></a> 2004-01-02 13:15 Igor Melichev</strong></p> <blockquote> <pre> Fix : A GCC compiler error.</pre> <p>[src/gxfont42.h 1.18]</p> </blockquote> <p><strong><a name="2004-01-02_1302"></a> 2004-01-02 13:02 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 5. DETAILS : In the enabled code this change is algorithmically equivalent : just moved some TT outliner data definitions and refactored ttfOutliner__Outline. In the disabled code it fixes numerous problems in the TT grid fitting (by the X axis only). Now it looks working for small characters. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.79, src/gxhintn.c 1.39, src/gxttfb.c 1.21, src/gzspotan.c 1.6, src/gzspotan.h 1.4, src/ttfmain.c 1.20, src/ttfoutl.h 1.13]</p> </blockquote> <p><strong><a name="2004-01-01_1701"></a> 2004-01-01 17:01 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 4. DETAILS : This patch changes a disabled code only. It's a trial implementation of a TT grid fitting (by the X axis only). EXPECTED DIFFERENCES : None.</pre> <p>[src/gxhintn.c 1.38, src/gxhintn.h 1.17, src/gxttfb.c 1.20, src/gzspotan.c 1.5, src/gzspotan.h 1.3, src/lib.mak 1.159]</p> </blockquote> <p><strong><a name="2003-12-31_1807"></a> 2003-12-31 18:07 Ralph Giles</strong></p> <blockquote> <pre> Add a paragraph to the license statement listing the additional requirements of the Freetype License.</pre> <p>[LICENSE 1.3]</p> </blockquote> <p><strong><a name="2003-12-31_1753"></a> 2003-12-31 17:53 Ralph Giles</strong></p> <blockquote> <pre> Add the text of the Freetype license and references to the freetype project to clarify our compilance. The new truetype bytecode interpreter is based in part of code made available as part of Freetype 1.</pre> <p>[doc/Develop.htm 1.129, doc/FTL.txt 1.2, doc/Language.htm 1.79]</p> </blockquote> <p><strong><a name="2003-12-31_1112"></a> 2003-12-31 11:12 Igor Melichev</strong></p> <blockquote> <pre> Fix : The character oversampling condition was wrong. DETAILS : I can't guess why it was done depending on path. It looks wrong and gives a different result when recomputed from type1execchar when the path is reset. Also penum->current_font to be used rather that pgs->font due to composite fonts. Bug 687209 "assertion failure when open postscript file". EXPECTED DIFFERENCES : None with TextAlphaBits=1.</pre> <p>[src/gxchar.c 1.38]</p> </blockquote> <p><strong><a name="2003-12-31_0613"></a> 2003-12-31 06:13 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Write a smaller Widths array. DETAILS : Bug 687186 "(pdfwrite) Embedding a Type 3 font FirstChar is always 0". EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdtf.c 1.33, src/gdevpdti.c 1.23]</p> </blockquote> <p><strong><a name="2003-12-31_0520"></a> 2003-12-31 05:20 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Pattern resource was not added to Resources of a pattern object. DETAILS : This is a partial fix for the bug 687196 "Incorrect PDF produced from Adobe test file pattyp1.ps". A pattern resource was referred in a pattern procedure (of another pattern) but was not listed in Resources of the pattern object. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfg.c 1.45]</p> </blockquote> <p><strong><a name="2003-12-30_1755"></a> 2003-12-30 17:55 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Color space resource was not added to Resources of a pattern object. DETAILS : Bug 687206 "Could not find colorspace". A color space resource was referred in a pattern procedure but was not listed in Resources of the pattern object. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdfc.c 1.43]</p> </blockquote> <p><strong><a name="2003-12-30_1753"></a> 2003-12-30 17:53 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Wrote an invalid text matrix. DETAILS : While fixing the bug 687206 "Could not find colorspace", we discovered a problem with comparefiles/tpc2.ps : "1 0 0 1 0 1.#INF Tm" was written. The effect was indeterministic due to an access outside an array. This patch fixes that. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpdte.c 1.50]</p> </blockquote> <p><strong><a name="2003-12-30_1150"></a> 2003-12-30 11:50 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 24, final. DETAILS : This patch switches on the new algorithm. With comparefiles on Zeon 3.06 the curved algorithm appears in 0.6% slower. Will be fixed with upgrading the scanline algorithm with gx_flattened_iterator. EXPECTED DIFFERENCES : -r300 chilis_black.pdf has a minor difference in raster.</pre> <p>[src/gx.h 1.30]</p> </blockquote> <p><strong><a name="2003-12-30_0825"></a> 2003-12-30 08:25 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 23. DETAILS : This patch is a code optimization. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.29, src/gxfill.c 1.78, src/gxpflat.c 1.28, src/gzpath.h 1.26]</p> </blockquote> <p><strong><a name="2003-12-29_1556"></a> 2003-12-29 15:56 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 22. DETAILS : This patch changes a disabled code only. It optimizes the contour scanner with reducing a data copying. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.77]</p> </blockquote> <p><strong><a name="2003-12-29_0435"></a> 2003-12-29 04:35 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 21. DETAILS : This patch changes a disabled code only. It fixes some problems discovered with -r300 and switches off the self-testing. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.28, src/gxfill.c 1.76]</p> </blockquote> <p><strong><a name="2003-12-29_0418"></a> 2003-12-29 04:18 Igor Melichev</strong></p> <blockquote> <pre> Raster depended on the band size (a partial fix). DETAILS : The old code used the Y coordinate of a top boundary of a band as a basis for computing a sampling factor of sloped lines. Therefore sloped lines generated "stairs" with a dependence of the phase on the band coordinate. This patch removes that dependence. Therefore the new banded raster appears closer to the unbanded raster. But the banded raster still can be different. We don't intend to fix it now. We did only a simplest part, which is neccessary for the current development needs. This patch also causes some differences, which are not related to the banding. This happens due to bands and clip boxes come to the filling algorithm in same data field. The dependence on the clip box is dropped as well. Particularly it affects shadings, especially radial ones. EXPECTED DIFFERENCES : ppmraw -r72 -dMaxBitmap=30000000 : 1_2001.pdf ppmraw -r72 -dMaxBitmap=10000 : 1_2001.pdf test.pdf ppmraw -r300 -dMaxBitmap=10000 : 012-05.ps 013-05.ps 014-05.ps 015-05.ps 027-13.ps 032-01.ps 034-01.ps 036-01.ps 083-05.ps 123-05.ps 123-09.ps 150-01.ps 169-05.ps 175-01.ps 1_2001.pdf 205-05.ps 205-09.ps 220-01.ps 226-01.ps 231-01.ps 245-07.ps 307-07.ps 86554321.pdf adesso8.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf BEST8-99-Path.fh7.pdf Bug687044.ps BW0696FOLD1FRONT.pdf ca.pdf colorcir.ps DisplayedGood.pdf DisplayedWrong.pdf doretree.ps file2.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf knight.pdf messenger.pdf messenger16.pdf Openhuis_pdf_zw.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps test.pdf ppmraw -r300 -dMaxBitmap=30000000 : 1_2001.pdf 205-05.ps 86554321.pdf adesso8.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf BEST8-99-Path.fh7.pdf Bug687044.ps BW0696FOLD1FRONT.pdf gs6.0-dragon.pdf Openhuis_pdf_zw.pdf S2_Digitalproof-Forum_x3k.pdf shading_prob_800.ps test.pdf Other modes were not tested. pdfwrite may have a slightly different differences due to the page size rounding. 289-01.ps was not tested because it fails.</pre> <p>[src/gxfill.c 1.75]</p> </blockquote> <p><strong><a name="2003-12-28_1337"></a> 2003-12-28 13:37 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 20. DETAILS : This patch changes a disabled code only. It removes a roudiment of a temporary solution with a late computation of the bounding box. Debugged with -r300 165-01.ps . EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.74]</p> </blockquote> <p><strong><a name="2003-12-28_1257"></a> 2003-12-28 12:57 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 19. DETAILS : This patch changes a disabled code only. It fixes an unitialized variable. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.73]</p> </blockquote> <p><strong><a name="2003-12-28_1223"></a> 2003-12-28 12:23 Igor Melichev</strong></p> <blockquote> <pre> Fix : The dropout prevention code could render an occasional raster. DETAILS : We discovered that the old filling algorithm has a non-well-defined behavior when painting a group of contacting vertical stems with dropout prevention. The result of the old code appears depending on the order of lines in the X list. However when vertical lines have same X coordinate, their order was occasional, and the resulting raster appears deterministically occasional. A new section in gxfill.c near line 1629 fixes that, see comment in there. Another included change to a disabled code brings the curved trapezoid algorithm closer to the uncurved one. It fixes 2 minor problems with horizontal lines. EXPECTED DIFFERENCES : This patch causes a minor difference in some rasters, which we consider as progressions due to lesser dropouts. (Well, it is arguable whether the old feature is a dropout at all, but we'd like to have a well defined raster with no dependence on unimportant things such as which contour point is choosen for the starting point). Nornal, 72dpi : bulletin.pdf waterfal.ps womanface.pdf Nornal, 300dpi : None. pdfwrite, 72dpi : bulletin.pdf womanface.pdf pdfwrite, 300dpi : Not tested.</pre> <p>[src/gxfill.c 1.72]</p> </blockquote> <p><strong><a name="2003-12-28_0815"></a> 2003-12-28 08:15 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 17. DETAILS : This patch changes a disabled code only. It implements the banding to the curved trapezoid algorithm. With this patch with ppmraw with 72 dpi only 3 rasters left different from the old code : KozukaB-ILEmbed.pdf (1 pixel differs) RodinCIDEmbed.pdf (3 pixels differ) womanface.pdf (9 pixels differ) So now the new algorithm is almost working. An useful improvement would be to divide big curves on-fly (it should be pretty simple with subclassing the gx_flattened_iterator and regenerating the next curve part from entire curve by the part index), and to replace curve_cursor with gx_flattened_iterator in the scanline algorithm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.71]</p> </blockquote> <p><strong><a name="2003-12-27_1658"></a> 2003-12-27 16:58 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 16. DETAILS : In the enabled code this patch fixes the vd_get_dc syntax, which was unintentionally broken by the previous patch. This change is algorithmically equivalent. In the disabled code it fixes dropout problems with the curved trapezoid algorithm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.70]</p> </blockquote> <p><strong><a name="2003-12-27_1524"></a> 2003-12-27 15:24 Ray Johnston</strong></p> <blockquote> <pre> Fix missing semicolons inserted by previous commit that prevented compilation. EXPECTED DIFFERENCES: Now it will compile, but since the previous commit was untested, there may be other algorithmic problems that result in differences.</pre> <p>[src/gxfill.c 1.69]</p> </blockquote> <p><strong><a name="2003-12-27_0914"></a> 2003-12-27 09:14 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 15. DETAILS : In the enabled code this patch : 1. Refactors add_y_line into 3 functions. 2. Restructurizes end_x_line. 3. Changes the prototype of add_y_list. 4. Implements a new visual trace switch 'F'. 5. Removes 'notes' from gx_flattened_iterator. This change is algorithmically equivalent. In the disabled code it allows non-monotonic curves in the trapezoid algorithm. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.27, src/gxfill.c 1.68, src/gxpflat.c 1.27, src/gxfill.h 1.11, src/gzpath.h 1.25]</p> </blockquote> <p><strong><a name="2003-12-24_0332"></a> 2003-12-24 03:32 Ralph Giles</strong></p> <blockquote> <pre> Correct a typo in the maintainer-clean target in the legacy unix makefiles. Thanks to William Bader for catching this.</pre> <p>[src/unix-gcc.mak 1.44, src/unixansi.mak 1.35]</p> </blockquote> <p><strong><a name="2003-12-23_1536"></a> 2003-12-23 15:36 Ray Johnston</strong></p> <blockquote> <pre> Move the documentation on handling Unicode high level text into Drivers.htm which is a developer document instead of Devices.htm which is intended for users.</pre> <p>[doc/Devices.htm 1.73, doc/Drivers.htm 1.44]</p> </blockquote> <p><strong><a name="2003-12-22_2005"></a> 2003-12-22 20:05 Ray Johnston</strong></p> <blockquote> <pre> Still more regressions that produced incorrect (different than 8.12) rotations. Regressions include 541_623.pdf and others that had Rotate != 0. DETAILS: Previous patch detected automatic rotation cases, but missed rotation cases when Orientation == 1 or == 3.</pre> <p>[src/zmedia2.c 1.15]</p> </blockquote> <p><strong><a name="2003-12-21_2056"></a> 2003-12-21 20:56 Ray Johnston</strong></p> <blockquote> <pre> Resolve regression differences caused by rotated page sizes being picked instead of non-rotated in some cases. Seen with 1_pct_50_bang.pdf and others. DETAILS: The 'rotate' variable was input to the 'make_adjustment_matrix' function, but the matrix could be rotated even when rotate==0. Instead bias the best_mismatch value when the matrix is rotated (pmat->xx == 0).</pre> <p>[src/zmedia2.c 1.14]</p> </blockquote> <p><strong><a name="2003-12-20_1709"></a> 2003-12-20 17:09 Ralph Giles</strong></p> <blockquote> <pre> Add a newline at the end of a file. Remove a duplicate semicolon at the end of statement.</pre> <p>[src/gxistate.h 1.18, src/zchar1.c 1.35]</p> </blockquote> <p><strong><a name="2003-12-20_0928"></a> 2003-12-20 09:28 Ray Johnston</strong></p> <blockquote> <pre> Fix yet another long standing bug in 'match_page_size' logic that could result in the wrong (too small) media being selected due to comparison of signed difference versus absolute difference.</pre> <p>[src/zmedia2.c 1.13]</p> </blockquote> <p><strong><a name="2003-12-19_0834"></a> 2003-12-19 08:34 Dan Coby</strong></p> <blockquote> <pre> A pair of fixes to the PDF rebuild logic. The fix in pdf_main.ps corrects a problem that ws creatd with the PDF 1.5 parser changes. The fix in pdf_rbld.ps corrects an unbalanced stack. This was not fatal but did leave the string (trailer) on the stack after rebuilding some PDF files.</pre> <p>[lib/pdf_main.ps 1.83, lib/pdf_rbld.ps 1.6]</p> </blockquote> <p><strong><a name="2003-12-19_0542"></a> 2003-12-19 05:42 Ray Johnston</strong></p> <blockquote> <pre> Fix setpagedevice problems introduced with previous commit detected by the regression tests, including 070-01.ps and many others. Also give priority to lower value slots (match_key.value.intval) DETAILS: If there was a match that didn't set a new value in 'best_mismatch' (less than the original 'LARGE' value), the match_key would be left at 'null', causing PolicyReport to be executed. The Genoa tests use PolicyReport to leave a value on the stack that eventually signals 'FAIL' since the count is greater than expected. This latest change makes sure that a valid key gets set even when the best_mismatch value is not relevant. The lower number slot (%MediaSource) is given priority in the case of a tie between best_mismatch and mbest.</pre> <p>[src/zmedia2.c 1.12]</p> </blockquote> <p><strong><a name="2003-12-18_1458"></a> 2003-12-18 14:58 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A temporary workaround for limitcheck writing a CFF with many glyphs. DETAILS : The test file of the Bug 686875 contains a Type 1 font with 1280 glyphs, which overflowed tables in the CFF writer. This patch increases the limitation, but a limitation still presents. Will improve it someday. Issued a new bug 687212 about that. EXPECTED DIFFERENCES : None.</pre> <p>[src/gdevpsf.h 1.25, src/gdevpsf2.c 1.28]</p> </blockquote> <p><strong><a name="2003-12-18_1323"></a> 2003-12-18 13:23 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 14. DETAILS : This patch changes a disabled code only. Before this patch the backward iterator works fine, but we are unhappy of its complexity. Rather it passed the full testing with comparefiles, a theoretical proof of its correctness is too hard. Also it highly depends on the old code in MERGE_COLLINEAR_SEGMENTS section, which doesnt look as a well defined code. Therefore we went back to the implementation based on a bitmask. It represents which points were filtered out while the forward iteration. It consumes some bigger memory (488 bytes per active line), but we believe that the C stack consupmtion is still lesser than one in the Type 1 hinter. Now we bring both implementations into a single revision, and define a configuration macro FLATTENED_ITERATOR_BACKSCAN for switching between them. The KISS principle strongly votes for the bitmask implementation. This patch also renamed CHECK_BACKSCAN_CONSISTENCY with FLATTENED_ITERATOR_SELFTEST for a better structurization, and removed some low useful comments. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.26, src/gxfill.c 1.67, src/gxpflat.c 1.26, src/gzpath.h 1.24]</p> </blockquote> <p><strong><a name="2003-12-17_1536"></a> 2003-12-17 15:36 Igor Melichev</strong></p> <blockquote> <pre> Fix : Fixed a comment syntax and removed unused variables. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.25]</p> </blockquote> <p><strong><a name="2003-12-17_1527"></a> 2003-12-17 15:27 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 13. DETAILS : This patch changes a disabled code only. It allows gx_flattened_iterator__prev_filtered2 to run from any segment riched by gx_flattened_iterator__next_filtered2. The old code could only from the last curve segment. Also implemented a testing procedure for it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.24, src/gzpath.h 1.23]</p> </blockquote> <p><strong><a name="2003-12-17_0945"></a> 2003-12-17 09:45 Ray Johnston</strong></p> <blockquote> <pre> Add "pa4" page size requested by a user. This is the intersection of a4 and letter page size, i.e., a4 width and letter length. Bug #553187.</pre> <p>[lib/gs_statd.ps 1.14]</p> </blockquote> <p><strong><a name="2003-12-17_0919"></a> 2003-12-17 09:19 Ray Johnston</strong></p> <blockquote> <pre> Remove warnings and reversion to 'int' which could cause wrong decision for PageSize match.</pre> <p>[src/zmedia2.c 1.11]</p> </blockquote> <p><strong><a name="2003-12-17_0912"></a> 2003-12-17 09:12 Ray Johnston</strong></p> <blockquote> <pre> Fix InputAttributes initialization to have the default page size in slot 0, and all page sizes known in statusdict/.pagetypenames included with the 'fit any' pagesize range last. Fixes bug #617077 and other files that expect slot 0 to be a valid 2 element PageSize corresponding to the default. DETAILS: As noted, "real" printer devices such as laserjets, and inkjets should set up their own InputAttributes dictionaries that do not include the 'range' type page size. If the page size is not an exact match (off by less than 5 points), then the page size range will take priority. This is in a non-standard area of Ghostscript, but must be preserved for those that want exact PageSize such as for generating raster images of a specific dimension. If the range page size is present, then automatic rotation will not be used. If a PageSize is present in both orientations, such as [612 792] and [792 612], then priorty will be given to the slot that matches without automatic rotation. EXPECTED DIFFERENCES: Hopefully, none.</pre> <p>[lib/gs_setpd.ps 1.20, lib/gs_statd.ps 1.13, src/zmedia2.c 1.10]</p> </blockquote> <p><strong><a name="2003-12-17_0229"></a> 2003-12-17 02:29 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 12. DETAILS : This patch changes a disabled code only. It provide a tolerance to a bug in monotonize_internal. See comment in code. There is an error in the log message of the previous patch. It should read : "The compilation mode CURVED_TRAPEZOID_FILL0_COMPATIBLE 0 is not completed." EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.66]</p> </blockquote> <p><strong><a name="2003-12-16_2229"></a> 2003-12-16 22:29 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 11. DETAILS : This patch contains a minor change to the enabled code, and a big change to the disabled code. The change to the enabled code only inserts some new fields into gx_flattened_iterator, actually defining a subclass. The enabled code doesn't use them, but provides some initialization. The change to disabled code defines a backward iterator for filtered flattened curve segments. Actually we define two ones : gx_flattened_iterator__prev_filtered1 - filters points with 'coords_near' gx_flattened_iterator__prev_filtered2 - filters points with 'coords_near' and 'gx_check_nearly_collinear'. The forward and the backward iterators are made to enumerate same points, which the old does while flatteining a curve. The old code has a lot of anomalies, therefore the backward iterators appear very coplicated. We're planning to drop the compatibility and simplify the iterators after the curved trapezoid algorithm passes the compatibility test. The compilation mode CURVED_TRAPEZOID_FILL0_COMPATIBLE 1 is not completed. Do not use it with this revision. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.25, src/gxfill.c 1.65, src/gxfill.h 1.10, src/gxpflat.c 1.23, src/gzpath.h 1.22]</p> </blockquote> <p><strong><a name="2003-12-14_2232"></a> 2003-12-14 22:32 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 10. DETAILS : This patch changes a disabled code only. It removes CURVED_TRAPEZOID_FILL_SCANS_BACK because we decided to make this feature permanent. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.24, src/gxfill.c 1.64, src/gxfill.h 1.9, src/gxpflat.c 1.22, src/gzpath.h 1.21]</p> </blockquote> <p><strong><a name="2003-12-14_0451"></a> 2003-12-14 04:51 Dan Coby</strong></p> <blockquote> <pre> This is the first pass at the changes to support the PDF 1.5 revisions to the PDF format. DETAILS: The PDF 1.5 revision to the PDF specification contains two major additions to the format of a PDF document. Objects can be encoded in compressed data streams called and object streams. Xref tables were also changed to allow the identification of objects in object streams and also to allow the compression of xref tables. Together these changes reduced the size of the PDF 1.5 specification from 13.5 MB (PDF 1.4 version) to 8.7 MB (PDF 1.5 version). pdf_main.ps and pdf_rbld.ps - The changes in these modules were for the support of compressed XRef tables. The major part of these changes consist of the refactoring of readxref into pieces. One piece identifies the old format versus compressed XRef tables. A second piece supports the reading of old format XRef tables. The procedure readpdf15xref was added to read compressed XRef tables. A new larray called ObjectStream was added for identifying the location of objects which are inside a compressed object stream. The changes for the addition of ObjectStream also affect pdf_base.ps. pdf_base.ps - The procedures resolveR and resolved? had to be extended to support the presence of the objectstream type. A new procedure called resolveobjectstream was added for resolving objects inside of object streams. The code listing below has two versions of the resolveobjectstream procedure. I want to keep a record of both versions of this procedure in CVS. The first version is theoretically more robust than the second. It unpacks and processes objects from an object stream one at a time. To insure that this occurs, it creates a string of the exact size of an object and then unpacks and processes the object. However it is also very slow. Processing of a test document (PDF 1.5 spec.) with this routine is 4 times slower than processing a version of the PDF 1.5 spec. which does not use object streams. The second version of the procedure unpacks the entire object stream and then processes each object. Thus any problem which occurs with one object could, in theory, affect another object. The second version is much faster. There is about a 4% penalty for processing the compressed version of the PDF 1.5 spec. After the initial check in, the first version of resolveobjecstream will be removed unless some need is found for its robustness.</pre> <p>[lib/pdf_rbld.ps 1.5]</p> </blockquote> <p><strong><a name="2003-12-14_0441"></a> 2003-12-14 04:41 Dan Coby</strong></p> <blockquote> <pre> This is the first pass at the changes to support the PDF 1.5 revisions to the PDF format. DETAILS: The PDF 1.5 revision to the PDF specification contains two major additions to the format of a PDF document. Objects can be encoded in compressed data streams called and object streams. Xref tables were also changed to allow the identification of objects in object streams and also to allow the compression of xref tables. Together these changes reduced the size of the PDF 1.5 specification from 13.5 MB (PDF 1.4 version) to 8.7 MB (PDF 1.5 version). pdf_main.ps and pdf_rbld.ps - The changes in these modules were for the support of compressed XRef tables. The major part of these changes consist of the refactoring of readxref into pieces. One piece identifies the old format versus compressed XRef tables. A second piece supports the reading of old format XRef tables. The procedure readpdf15xref was added to read compressed XRef tables. A new larray called ObjectStream was added for identifying the location of objects which are inside a compressed object stream. The changes for the addition of ObjectStream also affect pdf_base.ps. pdf_base.ps - The procedures resolveR and resolved? had to be extended to support the presence of the objectstream type. A new procedure called resolveobjectstream was added for resolving objects inside of object streams. The code listing below has two versions of the resolveobjectstream procedure. I want to keep a record of both versions of this procedure in CVS. The first version is theoretically more robust than the second. It unpacks and processes objects from an object stream one at a time. To insure that this occurs. It creates a string of the exact size of an object and then unpacks and processes the object. However it is also very slow. Processing of a test document (PDF 1.5 spec.) with this routine is 4 times slower than processing a version of the PDF 1.5 spec. which does not use object streams. The second version of the procedure unpacks the entire object stream and then processes each object. Thus any problem which occurs with one object could, in theory, affect another object. The second version is much faster. There is about a 4% penalty for processing the compressed version of the PDF 1.5 spec. After the initial check in, the first version of resolveobjecstream will be removed unless some need is found for its robustness.</pre> <p>[lib/pdf_base.ps 1.40, lib/pdf_main.ps 1.82]</p> </blockquote> <p><strong><a name="2003-12-14_0107"></a> 2003-12-14 01:07 Alex Cherepanov</strong></p> <blockquote> <pre> Fix MSVC debug targets: add explicit makefile specification. Fix bug 687205. DETAILS: Debug targets have always been broken on Windows because nmake by default looks for "MAKEFILE" and fails. Until recently, the default target was built without the -O2 flag and could be used for debugging. This patch adds the correct filename explicitly to the debug target so it can be used instead.</pre> <p>[src/msvc32.mak 1.52]</p> </blockquote> <p><strong><a name="2003-12-13_1807"></a> 2003-12-13 18:07 Ray Johnston</strong></p> <blockquote> <pre> Fix a premature closedevice leading to a SEGV when a setpagedevice follows a setdevice with the only reference to the device in the graphics state. Bug #687204 detected with ps2epsi.ps. DETAILS: the ps2epsi.ps sets an image device, then does a .setsafe which uses setpagedevice to set .LockSafetyParams. Eventually setpagedevice results in a call to gs_setdevice_no_init, but the reference count to the current device is 1 so even though the device is not being changed, the device was being closed (which freed the buffer and line pointers). Usually the currentdevice reference count is > 1 since there is more than one gstate containing a pointer to the device. This has been broken since 8.10 when version 1.19 was released with some changes to device finalization. Note that ps2epsi.ps is extremely fragile and still doesn't work with examples/alphabet.ps after the patch (due to the "clear cleardictstack alphabetsave restore" logic at the end. This patch is ONLY for the SEGV. IMO, ps2epsi really is a mess and needs to be scrapped and designed properly.</pre> <p>[src/gsdevice.c 1.20]</p> </blockquote> <p><strong><a name="2003-12-12_1803"></a> 2003-12-12 18:03 Ralph Giles</strong></p> <blockquote> <pre> Link to History8.htm in the list of history files. Patch from Alexei Podtelez.</pre> <p>[doc/Readme.htm 1.53]</p> </blockquote> <p><strong><a name="2003-12-12_0216"></a> 2003-12-12 02:16 Alex Cherepanov</strong></p> <blockquote> <pre> Split an expression in two because MSVC 6.00.8168.0 cannot compile it in -O2 mode, enabled in GS 8.12 by default. MSVC 6 with Service Pack 3 doesn't require this work around.</pre> <p>[src/idict.c 1.9]</p> </blockquote> <p><strong><a name="2003-12-12_0144"></a> 2003-12-12 01:44 Ralph Giles</strong></p> <blockquote> <pre> Properly remove jbig2.dev from the FEATURE_DEVS list in the autoconf build when stdint_h is not available. Works around bug 687007.</pre> <p>[src/configure.ac 1.36]</p> </blockquote> <p><strong><a name="2003-12-11_1944"></a> 2003-12-11 19:44 Ray Johnston</strong></p> <blockquote> <pre> Fix .gethalftone to prevent /undefinedresource or other error from being left in the $error dict. Seen with UnusualFontMatrix.ps when running under startjob encapsulation. DETAILS: Internal procedures like .gethalftone that want to use stopped but don't propagate the error up should use .internalstopped since this doesn't set /newerror in $error. The file mentioned has a 'quit' following the showpage which when running under job encapsulation (false 0 startjob) is redefined to do 'stop'. This means that the /newerror flag in $error was being seen when the 'stop' after the showpage was executed.</pre> <p>[lib/gs_init.ps 1.103]</p> </blockquote> <p><strong><a name="2003-12-11_1815"></a> 2003-12-11 18:15 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 9. DETAILS : This change is algorithmically equivalent. It implements an iterator of filtered flattened curve segments with gx_flattened_iterator__next_filtered2, and the old behavior is now implemented with it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.21, src/gzpath.h 1.20]</p> </blockquote> <p><strong><a name="2003-12-11_1348"></a> 2003-12-11 13:48 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 8. DETAILS : Renamed FLATTENED_CURVE_ITERATOR0_COMPATIBLE, because it doesn't longer reflect its semantics. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.63, src/gx.h 1.23, src/gxfill.h 1.8, src/gxpflat.c 1.20, src/gzpath.h 1.19]</p> </blockquote> <p><strong><a name="2003-12-11_1333"></a> 2003-12-11 13:33 Igor Melichev</strong></p> <blockquote> <pre> Fix : The flattening algorithm inaccurately filtered points. Bug 687154 "Bugs in gx_flatten_sample". DETAILS : The old algorithm has 2 problems, which persist since March 20, 2000 or later : 1. When points buffer overflows, it doesn't filter the next point with MERGE_COLLINEAR_SEGMENTS. 2. With sn_not_first the first point was duplicated, and the last one was missed. This patch fixes both problems. EXPECTED DIFFERENCES : This patch causes differences flattening long curves. 311-03.ps and 205-13.ps at 300dpi demonstrate a strong progression. Other differences should be progressions as well. normal, 72dpi: 012-09.ps 013-09.ps 093-01.ps 289-01.ps CIDembedded.pdf 300dpi : 012-09.ps 013-09.ps 014-09.ps 015-09.ps 032-07.ps 035-07.ps 083-05.ps 083-09.ps 093-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 289-01.ps 298-09.ps 311-03.ps 321-09.ps KozukaB-ILEmbed.pdf RodinCIDEmbed.pdf shading_prob_800.ps Svd.pdf pdfwrite, 72dpi : 083-09.ps 083-13.ps 093-01.ps 205-13.ps 308-04.ps CIDembedded.pdf pdfwrite, 300dpi : 012-09.ps 013-09.ps 014-09.ps 015-09.ps 032-07.ps 035-07.ps 083-05.ps 083-09.ps 083-13.ps 093-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 308-04.ps 311-03.ps acrobat.pdf alphabet.ps Bug687044.ps KozukaB-ILEmbed.pdf RodinCIDEmbed.pdf shading_prob_800.ps Svd.pdf UnusualFontMatrix.ps was not tested because the current HEAD fails with it.</pre> <p>[src/gxpflat.c 1.19]</p> </blockquote> <p><strong><a name="2003-12-11_0953"></a> 2003-12-11 09:53 Igor Melichev</strong></p> <blockquote> <pre> Removed an obsolete code FLATTENED_CURVE_ITERATOR 0. DETAILS : The FLATTENED_CURVE_ITERATOR 0 code is not longer in use. It was disabled since November 25 2003. This patch completely removes it. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.22, src/gxpflat.c 1.18, src/gzpath.h 1.18]</p> </blockquote> <p><strong><a name="2003-12-11_0259"></a> 2003-12-11 02:59 Ray Johnston</strong></p> <blockquote> <pre> Fix setpagedevice so that the Default Halftone is used. Fixes bug #687199. DETAILS: Use .setdefaulthalftone rather than .setdefaultscreen so that setpagedevice picks up the correct Halftone setting. This was detected when trying to use 'stocht.ps' to set a Default Halftone that is the stochastic threshold array, which worked only if page size didn't change or other setpagedevice setting was made.</pre> <p>[lib/gs_setpd.ps 1.19]</p> </blockquote> <p><strong><a name="2003-12-11_0222"></a> 2003-12-11 02:22 Ralph Giles</strong></p> <blockquote> <pre> Remove the CC_LEAF alternate compiler definition. This basically exists to pass -fomit-frame-pointer (or equivalent) on a few (two) files where it's unequivocably safe. This strikes us as premature optimization. It was also causing problems with the profile build under gcc because of a quoting problems with the argument list the makefile passes to itself through this define. Closes bug 687182.</pre> <p>[src/Makefile.in 1.29, src/bcwin32.mak 1.31, src/dvx-gcc.mak 1.25, src/gs.mak 1.23, src/int.mak 1.119, src/lib.mak 1.158, src/macos-mcp.mak 1.24, src/macosx.mak 1.22, src/msvccmd.mak 1.13, src/openvms.mak 1.34, src/openvms.mmk 1.28, src/os2.mak 1.36, src/ugcclib.mak 1.27, src/unix-end.mak 1.6, src/unix-gcc.mak 1.43, src/unixansi.mak 1.34, src/watcw32.mak 1.28, src/wccommon.mak 1.8]</p> </blockquote> <p><strong><a name="2003-12-10_2342"></a> 2003-12-10 23:42 Ralph Giles</strong></p> <blockquote> <pre> In the autoconf build, only pass -O2 if the compiler is detected to be gcc. Fall back to trying the POSIX -O in other cases. The trial compile was not detecting that this option does not work correctly on the Solaris compilers. Problem report from Nelson Beebe, closes bug 687198.</pre> <p>[src/configure.ac 1.35]</p> </blockquote> <p><strong><a name="2003-12-10_2307"></a> 2003-12-10 23:07 Ray Johnston</strong></p> <blockquote> <pre> Fix incorrect handling of the '\' escape character in the filenameforall implementation on Windwows. Fixes bug #687151. Also fix logic in the .scanfontdir that relied on the incorrect filenameforall implementation. DETAILS: The previous NT filenameforall implementation did not translate the template string to be used by the FindFirstFile Windows call. This meant that the template was being passed the '\' escape characters which were not correctly handled by the OS call. Also testing -sFONTPATH=\Winnt\Fonts showed that this was also broken in gs_fonts.ps since it didn't duplicate the '\' characters for the template to filenameforall. Note that other gp_* implementations of file enumeration don't seem to handle escapes such as gp_unifs.c. The gp_macio.c doesn't do anything, and the gp_dosfe.c (deprecated) seems totally broken. The gp_os2.c appears to be a clone of the gp_ntfs.c, so should be fixed. About the only version that seems to be handling the '\' character according to the PLRM is gp_vms.c (can you believe that?). Thanks to Alex Cherepanov and Igor Melichev for contributing.</pre> <p>[lib/gs_fonts.ps 1.45, src/gp_ntfs.c 1.22]</p> </blockquote> <p><strong><a name="2003-12-10_1427"></a> 2003-12-10 14:27 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 7. DETAILS : This change is syntactically equivalent. It replaces gx_flattened_curve_iterator to a shorter identifier, because we intend to define a subclass with a name suffix. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.62, src/gxpflat.c 1.17, src/gzpath.h 1.17]</p> </blockquote> <p><strong><a name="2003-12-10_1423"></a> 2003-12-10 14:23 Igor Melichev</strong></p> <blockquote> <pre> Fix: A prototype for memcpy was missed. DETAILS : It was inserted into lib.mak but did not into gxpflat.c . EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.16]</p> </blockquote> <p><strong><a name="2003-12-10_1341"></a> 2003-12-10 13:41 Igor Melichev</strong></p> <blockquote> <pre> Simplify the filtering of points while flattening a curve. DETAILS : This change is algorithmically equivalent due to algebraic laws. Thesis : (coord_near(x2, x0) && coords_in_order(x0, x1, x2)) implies coord_near(x2, x1). Proof: case 1: x0 >= x1 >= x2 ==> abs(x2 - x1) <= abs(x2 - x0); case 2: x0 >= x1 >= x2 ==> abs(x2 - x1) <= abs(x2 - x0); Therefore coord_near(x2, x1) doesn't need to check and has been removed. Same for Y. Then merged 2 branches with '||' because they appear same. The performance slightly increases, and the behavior is easier to understand. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxpflat.c 1.15]</p> </blockquote> <p><strong><a name="2003-12-09_2118"></a> 2003-12-09 21:18 Ralph Giles</strong></p> <blockquote> <pre> Add the new stdint_.h compatibitily header to the file roadmap.</pre> <p>[doc/Develop.htm 1.128]</p> </blockquote> <p><strong><a name="2003-12-09_2117"></a> 2003-12-09 21:17 Ralph Giles</strong></p> <blockquote> <pre> Add a new compatibility header, stdint_.h. All the code previously in std.h and stdpre.h that tried to make these types universally available has been moved to the new compatibility header as per policy.</pre> <p>[src/lib.mak 1.157, src/sjbig2.c 1.5, src/sjbig2.h 1.4, src/std.h 1.11, src/stdint_.h 1.1, src/stdpre.h 1.22, src/ttfsfnt.h 1.6]</p> </blockquote> <p><strong><a name="2003-12-09_2111"></a> 2003-12-09 21:11 Ralph Giles</strong></p> <blockquote> <pre> Bump version numbers after the 8.12 release.</pre> <p>[doc/News.htm 1.139, lib/gs_init.ps 1.102, src/gscdef.c 1.40, src/version.mak 1.68]</p> </blockquote> <p><strong><a name="2003-12-09_1725"></a> 2003-12-09 17:25 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 6. DETAILS : This change modifies a disabled code, and includes a minor change to the enabled code, which should be algorithmically equivalent. In the enabled code factored out the new function add_y_line_aux. This patch fixes the dropout problem in CURVED_TRAPEZOID_FILL 1. The problem was unprocessed horizontal segments of curves. Now we create a new temporary horizontal line for each horizontal segment of a curve, and add it to the Y list. Then it immediately goes to H list, and then processed and freed. Due to the modification of the Y list during the main trapezoid loop (which did not happen before) the cycle commented with /* Move newly active lines from y to x list. */ is improved with providing a consistency of local copies of the Y list pointers. Good tests for this stuff present in a.pdf . With this patch with ppmraw 72dpi it renders equal to with CURVED_TRAPEZOID_FILL 0 code. EXPECTED DIFFERENCES : None.</pre> <p>[src/gxfill.c 1.61, src/gxpflat.c 1.14, src/gzpath.h 1.16]</p> </blockquote> <p><strong><a name="2003-12-09_1723"></a> 2003-12-09 17:23 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid filling algorithm for curves, step 5. DETAILS : This change modifies a disabled code only. This patch provides more compatibility of the CURVED_TRAPEZOID_FILL & FLATTENED_CURVE_ITERATOR0_COMPATIBLE build to the old code. Doing it with implementing the new function gx_flattened_curve_iterator__prev. We're not planning to pass this function to production because it slows down. Only reason is to simplify testing with exact comparison of results of the old and the new code. The macro CURVED_TRAPEZOID_FILL_SCANS_BACK helps to remove it later. A new field skip_points is inserted into active_line_s for same purpose. While enumerating curve segments in a backward order, it helps to skip same division points as the old code does in the forward order. This thing consumes too much RAM. It won't go to production. One problem is left unsolved. While flattening a curve, it can generate a horizontal segment. It must be passed to h-list for dropout prevention. It is not done yet. This problem causes a dropout in a Chinese glyph in a.pdf with ppmraw 72 dpi. For a while we don't apply CURVED_TRAPEZOID_FILL for non-characters. The reason is that pco_monotonize works imprecisely. Will improve someday. Most characters are free of non-monotonic curves, but we notices a number of such in Genoa tests and in other files. The fragment INTERTRAP_STEM_BUG is an attempt to improve a serif suppression while dropout prevention. The coded condition isn't perfect. It is disabled. A better way would be to depend on Y projection contiguity, checking sect->y0, sect->y1. Keeping it to simplify further experimenting. EXPECTED DIFFERENCES : None.</pre> <p>[src/gx.h 1.21, src/gxfdrop.c 1.8, src/gxfill.c 1.60, src/gxfill.h 1.7, src/gxpflat.c 1.13, src/gzpath.h 1.15, src/lib.mak 1.156]</p> </blockquote> <p><strong><a name="2003-12-09_1721"></a> 2003-12-09 17:21 Igor Melichev</strong></p> <blockquote> <pre> Unwinding the last patch because it was committed with a wrong log message.</pre> <p>[src/gx.h 1.20, src/gxfdrop.c 1.7, src/gxfill.c 1.59, src/gxfill.h 1.6, src/gxpflat.c 1.12, src/gzpath.h 1.14]</p> </blockquote> <p><strong><a name="2003-12-09_1648"></a> 2003-12-09 16:48 Igor Melichev</strong></p> <blockquote> <pre> ERRONEUS COMMITMENT - do not use this revision.</pre> <p>[src/lib.mak 1.155]</p> </blockquote> <p><strong><a name="2003-12-09_1642"></a> 2003-12-09 16:42 Igor Melichev</strong></p> <blockquote> <pre> ERRONEUS COMMITMENT - do not use this revision.</pre> <p>[src/lib.mak 1.154]</p> </blockquote> <p><strong><a name="2003-12-09_1612"></a> 2003-12-09 16:12 Igor Melichev</strong></p> <blockquote> <pre> ERRONEUS COMMITMENT - do not use this revision.</pre> <p>[src/gx.h 1.19, src/gxfdrop.c 1.6, src/gxfill.c 1.58, src/gxfill.h 1.5, src/gxpflat.c 1.11, src/gzpath.h 1.13, src/lib.mak 1.153]</p> </blockquote> <p><strong><a name="2003-12-09_1559"></a> 2003-12-09 15:59 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Type 1,2 composite glyphs could point to wrong subglyphs. DETAILS : This is a continuation of the recent patch for Bug 687172 "Jaggies appearing for some characters". The old code converted subglyph names to char codes with the font's Encoding. However arguments of 'seac' command always encode glyphs by StandardEncoding. If the fon't Encoding specifies different codes, the result was wrong. Since the font copying routine uses gs_glyph values taken from the global interpreter's space (see gsccode.h), which are PS name indices, it needs to convert a glyph name string to a name index. Before now we had no support for this. To provide it we add a new graphics library callback gs_font_dir::global_glyph_code. A recommendation for PCL interpreter : if it is called with pdfwrite, zfont_global_glyph_code to be implemented. Maybe an implementation with gs_c_known_encode helps. There exists a connected minor problem (PS interpreter only), which this patch doesn't fix. If a font is freed and then reloaded, the glyph names can get different name indices, if a garbager is invoked and freed the names before the second loading. As the result, the copied font can embed duplicated glyph definitions (charstrings). It can't give an invalid PDF, but it's size may increase. Hopely this case is rare. Opening a new bug 687187 about this. EXPECTED DIFFERENCES : None with comparefiles.</pre> <p>[src/gsfont.c 1.28, src/gxfcache.h 1.22, src/gxfcopy.c 1.39, src/lib.mak 1.152, src/zfont.c 1.10]</p> </blockquote> <hr> <h2><a name="Version8.12"></a>Version 8.12 (2003-12-08)</h2> <p> This is the second stable release in the 8.1x series. It contains numerous bug fixes; other highlights include improved font rendering and colorspace handling, and unicode text support for high-level devices. <p> The following <a href="http://bugs.ghostscript.com/">bug</a> numbers were open at the time of the last release: <blockquote> 405501, 414947, 430175, 446344, 456692, 458261, 458780, 463688, 465936, 487460, 487953, 493348, 509829, 526099, 526491, 530011, 535366, 535932, 542629, 553187, 555072, 558151, 563287, 572865, 578865, 592160, 592837, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 626295, 628110, 629335, 634036, 634358, 645316, 651644, 656414, 667301, 669654, 674241, 674417, 674418, 677324, 677383, 677430, 680301, 681469, 685335, 686747, 686750, 686752, 686778, 686816, 686819, 686824, 686833, 686834, 686841, 686842, 686843, 686850, 686852, 686853, 686860, 686863, 686865, 686867, 686873, 686877, 686889, 686892, 686896, 686897, 686902, 686904, 686909, 686919, 686930, 686933, 686936, 686937, 686938, 686944, 686946, 686949, 686951, 686954, 686956, 686957, 686958, 686959, 686963, 686975, 686980, 686996, 686999, 687007, 687011, 687012, 687013, 687014, 687020, 687021, 687029, 687038, 687039, 687050, 687059, 687063, 687066, 687072, 687079, 687084, 687085, 687086, 687088, 687090, 687093, 687095, 687102, 687105, 687108, 687110, 687114, 687120, 687123, 687125, 687137, 687142, 687145, 687146, 687151, 687154, 687157, 687163, 687168, 687169, 687171, 687172, 687173, 687174, 687177, 687181, 687182, 687184, 687185, 687186, 687187, 687189, 687190, 687191. </blockquote> <h3><a name="8.12_Incompatible_changes"></a>Incompatible changes</h3> <p>Type 1 font hints are no longer applied to charpaths. This is generally an improvement, but will generate a different outline from previously. <p>A new virtual functions <tt>can_handle_hl_color()</tt> is required for high-level devices derived from <tt>gx_device_vector</tt>. <p>The library client api now propagates <tt>device_close</tt> errors to the return value of <tt>gsapi_exit()</tt>. <h3><a name="8.12_changelog"></a>Changelog</h3> <!-- generated by split_changelog.py from the output of cvs2cl.pl --> <!-- $Id: Details8.htm,v 1.25 2005/10/20 20:14:37 ray Exp $ --> <p><strong><a name="2003-12-09_0637"></a> 2003-12-09 06:37 Ray Johnston</strong></p> <blockquote> <pre> Correct a long standing problem that caused non-optimized builds with MSVC on Windows. The default TDEBUG was 1, which circumvented a change made to msvccmd.mak to enable /O2 for MSVC_VERSION != 5. Note that with MSVC 6 Service Pack 3 is required to avoid an INTERNAL COMPILER ERROR when compiling src/idict.c. </pre> <p>[src/msvc32.mak 1.51]</p> </blockquote> <p><strong><a name="2003-12-09_0404"></a> 2003-12-09 04:04 Ralph Giles</strong></p> <blockquote> <pre> Correct some inconsistent line endings. </pre> <p>[src/stdio_.h 1.10, src/ttfsfnt.h 1.5]</p> </blockquote> <p><strong><a name="2003-12-09_0305"></a> 2003-12-09 03:05 Ralph Giles</strong></p> <blockquote> <pre> Updated release notes and change history for the 8.12 release. </pre> <p>[doc/Changes.htm 1.49, doc/Details.htm 1.8, doc/Details8.htm 1.4, doc/History8.htm 1.8, doc/News.htm 1.138]</p> </blockquote> <p><strong><a name="2003-12-08_2317"></a> 2003-12-08 23:17 Ralph Giles</strong></p> <blockquote> <pre> Update documentation with release version and date. </pre> <p>[doc/API.htm 1.41, doc/Bug-form.htm 1.39, doc/Bug-info.htm 1.38, doc/C-style.htm 1.45, doc/Commprod.htm 1.30, doc/Copying.htm 1.29, doc/DLL.htm 1.33, doc/Deprecated.htm 1.10, doc/Details8.htm 1.3, doc/Develop.htm 1.127, doc/Devices.htm 1.72, doc/Drivers.htm 1.43, doc/Fonts.htm 1.39, doc/Helpers.htm 1.33, doc/History1.htm 1.29, doc/History2.htm 1.29, doc/History3.htm 1.29, doc/History4.htm 1.29, doc/History5.htm 1.31, doc/History6.htm 1.46, doc/History7.htm 1.34, doc/History8.htm 1.7, doc/Htmstyle.htm 1.34, doc/Install.htm 1.44, doc/Issues.htm 1.39, doc/Language.htm 1.78, doc/Lib.htm 1.32, doc/Maintain.htm 1.40, doc/Make.htm 1.70, doc/New-user.htm 1.49, doc/Projects.htm 1.56, doc/Ps-style.htm 1.27, doc/Ps2epsi.htm 1.31, doc/Ps2pdf.htm 1.56, doc/Psfiles.htm 1.50, doc/Readme.htm 1.52, doc/Release.htm 1.82, doc/Source.htm 1.29, doc/Tester.htm 1.29, doc/Testing.htm 1.23, doc/Unix-lpr.htm 1.29, doc/Use.htm 1.95, doc/Xfonts.htm 1.29, doc/gs-vms.hlp 1.28, man/dvipdf.1 1.27, man/font2c.1 1.27, man/gs.1 1.28, man/gslp.1 1.27, man/gsnd.1 1.27, man/pdf2dsc.1 1.26, man/pdf2ps.1 1.28, man/pdfopt.1 1.26, man/pf2afm.1 1.27, man/pfbtopfa.1 1.28, man/printafm.1 1.27, man/ps2ascii.1 1.26, man/ps2epsi.1 1.25, man/ps2pdf.1 1.32, man/ps2pdfwr.1 1.31, man/ps2ps.1 1.34, man/wftopfa.1 1.27]</p> </blockquote> <p><strong><a name="2003-12-08_2304"></a> 2003-12-08 23:04 Ralph Giles</strong></p> <blockquote> <pre> Update date, product name and open bug list for release. </pre> <p>[doc/News.htm 1.137, src/gscdef.c 1.39, src/version.mak 1.67]</p> </blockquote> <p><strong><a name="2003-12-07_1756"></a> 2003-12-07 17:56 Ralph Giles</strong></p> <blockquote> <pre> Add the experimental spot analysis source files to the developer file roadmap. </pre> <p>[doc/Develop.htm 1.126]</p> </blockquote> <p><strong><a name="2003-12-07_1617"></a> 2003-12-07 16:17 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid fillling algorithm for curves, step 4. DETAILS : This change modifies a disabled code only. The comment /* Likely a bug in the !CURVED_TRAPEZOID_FILL code. */ is now removed because it is wrong. The function process_h_list performs that check perfectly. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfdrop.c 1.5]</p> </blockquote> <p><strong><a name="2003-12-06_0338"></a> 2003-12-06 03:38 Ralph Giles</strong></p> <blockquote> <pre> Respect the new regression differences section header when writing out the split changelogs. The previous change only added the header to the detection section. </pre> <p>[toolbin/split_changelog.py 1.7]</p> </blockquote> <p><strong><a name="2003-12-06_0328"></a> 2003-12-06 03:28 Ralph Giles</strong></p> <blockquote> <pre> Also split changelog entries on the new "EXPECTED DIFFERENCES:" header. </pre> <p>[toolbin/split_changelog.py 1.6]</p> </blockquote> <p><strong><a name="2003-12-06_0148"></a> 2003-12-06 01:48 Ralph Giles</strong></p> <blockquote> <pre> In the autoconf build, add the general cflags generated by the configure script to the definition the the definition of CCAUX. This works around a problem building on cygwin. DETAILS: Older versions of cygwin do not provide stdint.h but do define some of the types in sys/types.h. More recent versions do provide the header but also define them by inclusion in sys/types.h. This caused a problem with the 'fixup' code we added in response to bug 687162 which defined the missing half of the types if stdint.h was not detected by the configure script. In versions of cygwin that do provide stdint.h, most files compile as expected, but genconf.c is compiled with the alternate CCAUX compiler definition and was not receiving the -DHAVE_STDINT_H argument from configure, causing a type conflict between the complete set of stdint types pulled in by sys/types.h and the platform-specific fixup set included when stdint.h is supposedly not available. Adding the GCFLAGS line to the definition of CCAUX works around the problem and has little potential to confuse the build in the future. A similar change made to unix-gcc.mak would need to document the -DHAVE_STDINT_H option for cygwin. I felt this was unecessarily excessive; we already recommend the autoconf build on systems that can support it. </pre> <p>[src/Makefile.in 1.28]</p> </blockquote> <p><strong><a name="2003-12-04_1657"></a> 2003-12-04 16:57 Igor Melichev</strong></p> <blockquote> <pre> Fix : (type 1 hinter) Invalid contours with <=2 segments caused an infinite loop. DETAILS : Provided a workaround. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxhintn.c 1.37]</p> </blockquote> <p><strong><a name="2003-12-04_1619"></a> 2003-12-04 16:19 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid fillling algorithm for curves, step 3. DETAILS : Improved the CURVED_TRAPEZOID_FILL & FLATTENED_CURVE_ITERATOR0_COMPATIBLE build. This change modifies a disabled code only. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.57, src/gxpflat.c 1.10, src/gzpath.h 1.12]</p> </blockquote> <p><strong><a name="2003-12-04_1453"></a> 2003-12-04 14:53 Ralph Giles</strong></p> <blockquote> <pre> Minor spelling and grammar corrections. </pre> <p>[doc/Devices.htm 1.71]</p> </blockquote> <p><strong><a name="2003-12-04_1352"></a> 2003-12-04 13:52 Igor Melichev</strong></p> <blockquote> <pre> Document the new feature "Unicode support for high level devices". </pre> <p>[doc/Devices.htm 1.70]</p> </blockquote> <p><strong><a name="2003-12-04_1235"></a> 2003-12-04 12:35 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc compiler claimed possibly uninitialized variables. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevdevn.c 1.12, src/gdevp14.c 1.20, src/gdevpdfm.c 1.34, src/gdevpdtc.c 1.30, src/gdevpdtf.c 1.32, src/gdevpdtt.c 1.68, src/gdevplnx.c 1.7, src/gdevprn.c 1.14, src/gdevps.c 1.38, src/gpmisc.c 1.22, src/gsalloc.c 1.20, src/gscie.c 1.14, src/gsfont.c 1.27, src/gxclpath.c 1.19, src/gxclrast.c 1.27, src/gxfcopy.c 1.38, src/gxfill.c 1.56, src/gximono.c 1.11, src/gxstroke.c 1.10, src/iscan.c 1.16, src/ttfmain.c 1.19, src/ttinterp.c 1.11, src/zdscpars.c 1.16, src/zht2.c 1.11]</p> </blockquote> <p><strong><a name="2003-12-04_1109"></a> 2003-12-04 11:09 Igor Melichev</strong></p> <blockquote> <pre> Generalize the trapezoid fillling algorithm for curves, step 2. DETAILS : 1. Factored out the function gx_check_nearly_collinear_inline. This change is algorithmically equivalent. 2. Improved the FLATTENED_CURVE_ITERATOR0_COMPATIBLE build. This change modifies a disabled code only. EXPECTED DIFFERENCES : None. </pre> <p>[src/gx.h 1.18, src/gxfdrop.c 1.4, src/gxfill.c 1.55, src/gxfill.h 1.4, src/gxpflat.c 1.9, src/gzpath.h 1.11]</p> </blockquote> <p><strong><a name="2003-12-04_1010"></a> 2003-12-04 10:10 Igor Melichev</strong></p> <blockquote> <pre> Fix : misprints in lib.mak . DETAILS : Some dependencies were missed. EXPECTED DIFFERENCES : None. </pre> <p>[src/lib.mak 1.151]</p> </blockquote> <p><strong><a name="2003-12-04_1007"></a> 2003-12-04 10:07 Igor Melichev</strong></p> <blockquote> <pre> Fix : an access to uninitialized data in zbfont.c . DETAILS : Type 11 fonts got an occasional indeterministic data to pdata->Encoding, which were inaccurately checked for r_size() <= 256. We're keeping the check "r_size(pfe) <= 256" for backward compatibility, rather we're unclear about it's purpose. It shouldn't be harmful. EXPECTED DIFFERENCES : I did not detected any on Windows, but I believe that the old code was indeterministic. </pre> <p>[src/zbfont.c 1.26]</p> </blockquote> <p><strong><a name="2003-12-04_1001"></a> 2003-12-04 10:01 Igor Melichev</strong></p> <blockquote> <pre> Fix : an access to uninitialized data in gxcpath.c . DETAILS : pcpath->path_list was not reset when it is replaced with a rectangle and freed. Bug 687178 "Infinite loop in ialloc_validate_memory". EXPECTED DIFFERENCES : I did not detected any on Windows, but I believe that the old code was indeterministic. </pre> <p>[src/gxcpath.c 1.11]</p> </blockquote> <p><strong><a name="2003-12-04_0946"></a> 2003-12-04 09:46 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Type 1 subglyphs don't need Encoding entries. DETAILS : A new comment added to gxfcopy.c explains the change : /* No need to add subglyphs to the Encoding because they always are taken from StandardEncoding (See the Type 1 spec about 'seac'). Attempt to add them to the encoding can cause a conflict, if the encoding specifies different glyphs for these char codes (See the bug #687172). */ EXPECTED DIFFERENCES : pdfwrite progression with comparefiles\Bug687044.ps </pre> <p>[src/gxfcopy.c 1.37]</p> </blockquote> <p><strong><a name="2003-12-04_0937"></a> 2003-12-04 09:37 Igor Melichev</strong></p> <blockquote> <pre> Fix (type 1 hinter) : sbw was wrongly accounted with FontBBox over 4095 units. DETAILS : Side bearing and width was accounted before import_shift is adjusted to FontBBox. Bug 687156 "some characters shifted higher in acrobat4 generated eps". Besides that, it prevents a fixed overflow when FontBBox is zero and glyph coordinates are big. Bug 687175 "(type 1 hinter) A fixed overflow can happen". This patch removes import_shift and the dependence on FontBBox. Instead that it dynamically reduces the number of fraction bits in transformation matrices during the glyph import. Minor change : removed some obsolete comments. EXPECTED DIFFERENCES : None. </pre> <p>[src/gstype1.c 1.30, src/gstype2.c 1.33, src/gxhintn.c 1.36, src/gxhintn.h 1.16]</p> </blockquote> <p><strong><a name="2003-12-04_0351"></a> 2003-12-04 03:51 Alex Cherepanov</strong></p> <blockquote> <pre> Add new files; make all lists separated with comma and terminated with a period. </pre> <p>[doc/Develop.htm 1.125]</p> </blockquote> <p><strong><a name="2003-12-03_2231"></a> 2003-12-03 22:31 Alex Cherepanov</strong></p> <blockquote> <pre> Add double-inclusion protection to errors.h to pacify the regression test and rename double-inclusion protection variable in ierrors.h for the naming consistency. </pre> <p>[src/errors.h 1.9, src/ierrors.h 1.2]</p> </blockquote> <p><strong><a name="2003-12-01_1819"></a> 2003-12-01 18:19 Ralph Giles</strong></p> <blockquote> <pre> Cygwin defines unsigned size-specific types with a u_ prefix in sys/types.h in analogy with MSVC. Use these instead of the generic int types when defining the stdint.h size-specific types. Patch from Alex Cherpanov. Fixes bug 687162. </pre> <p>[src/stdpre.h 1.21]</p> </blockquote> <p><strong><a name="2003-12-01_1649"></a> 2003-12-01 16:49 Ralph Giles</strong></p> <blockquote> <pre> Add stdint fixed-length integer typedefs for cygwin. Apparently this platform defines the signed versions in sys/types.h so we need only define the unsigned versions. After a patch by Alex Cherpanov, bug 687162. </pre> <p>[src/stdpre.h 1.20]</p> </blockquote> <p><strong><a name="2003-11-30_1903"></a> 2003-11-30 19:03 Ralph Giles</strong></p> <blockquote> <pre> Typedef uint64_t from 'unsigned __int64' on win32. From Alex Cherpanov's patch for bug 687162. </pre> <p>[src/stdpre.h 1.19]</p> </blockquote> <p><strong><a name="2003-11-27_2232"></a> 2003-11-27 22:32 Alex Cherepanov</strong></p> <blockquote> <pre> Add support to pnm images with max_pixel_value < (1<<depth)-1 Fix bug 687139. </pre> <p>[toolbin/tests/fuzzy.c 1.13]</p> </blockquote> <p><strong><a name="2003-11-27_0226"></a> 2003-11-27 02:26 Ralph Giles</strong></p> <blockquote> <pre> Remove the search for long long / int64_t from genarch entirely. Neither of these types is portable C as genarch must be, and nothing in Ghostscript actually requires as 64-bit type, so the feature is inessential. (We do use a 64 bit type for gx_color_index but that's passed through a separate define.) Bug 687161. </pre> <p>[src/genarch.c 1.8, src/std.h 1.10]</p> </blockquote> <p><strong><a name="2003-11-25_1532"></a> 2003-11-25 15:32 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A fixed overflow in setup_image_compression. DETAILS : Bug 687164 "(pdfwrite) dina3_watermark.pdf generates a 293Meg PDF". The bug persists since Sun Apr 30 01:26:41 2000 UTC. EXPECTED DIFFERENCES : The re-distilled dina3_watermark.pdf renders differently due to DCT compression applied. </pre> <p>[src/gdevpsdi.c 1.26]</p> </blockquote> <p><strong><a name="2003-11-25_0834"></a> 2003-11-25 08:34 Igor Melichev</strong></p> <blockquote> <pre> Fix : A misspelled TRAPEZIOD. DETAILS : The change is syntatctically equivalent. Note that log messages of recent patches still keep the misspelled word. EXPECTED DIFFERENCES : None. </pre> <p>[src/gx.h 1.17, src/gxfdrop.c 1.3, src/gxfdrop.h 1.4, src/gxfill.c 1.54, src/gxfill.h 1.3, src/gxpath.h 1.10, src/gxpcopy.c 1.11, src/gzspotan.c 1.4]</p> </blockquote> <p><strong><a name="2003-11-25_0021"></a> 2003-11-25 00:21 Igor Melichev</strong></p> <blockquote> <pre> Generailze the trapezoid fillling algorithm for curves, step 1. The new code is disabled with CURVED_TRAPEZIOD_FILL 0 in gx.h . DETAILS : This patch slightly changes the enabled code with adding more arguments to process_h_lists and end_x_line, and with renaming gx_flatten_sample and gx_path_is_monotonic. The new arguments are not used with CURVED_TRAPEZIOD_FILL 0. With CURVED_TRAPEZIOD_FILL 1 the trapezoid filling algorithm doesn't need to faltten the path in advance, and should work faster due to smaller number of segment allocations. Instead the generating of flattened segments and storing them to RAM it breaks curves into pieces on-fly with help of the gx_flattened_curve_iterator. Meanwhile it needs "small" curves. To provide that we generalized gx_path_is_monotonic to gx_path__check_curves, and gx_path_add_monotonized to gx_path_copy_reducing(..., pco_small_curves). Minor changes : - Fixed the vd_curve macro; - improved vdtrace calls in gxpflat.c; - Moved the FLATTENED_CURVE_ITERATOR definition to gx.h . EXPECTED DIFFERENCES : None. </pre> <p>[src/gx.h 1.16, src/gxfdrop.c 1.2, src/gxfdrop.h 1.3, src/gxfill.c 1.53, src/gxfill.h 1.2, src/gxpath.h 1.9, src/gxpcopy.c 1.10, src/gxpflat.c 1.8, src/gzpath.h 1.10, src/vdtrace.h 1.9]</p> </blockquote> <p><strong><a name="2003-11-24_1450"></a> 2003-11-24 14:50 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 12). DETAILS : The previous patch http://www.ghostscript.com/pipermail/gs-cvs/2003-November/date.html is buggy. This patch fixes that. EXPECTED DIFFERENCES : Should fix regressions which could appear on 2003-11-24. </pre> <p>[src/gxfill.c 1.52]</p> </blockquote> <p><strong><a name="2003-11-23_1844"></a> 2003-11-23 18:44 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 11). DETAILS : Factored out a line intersection function. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.51]</p> </blockquote> <p><strong><a name="2003-11-23_1016"></a> 2003-11-23 10:16 Igor Melichev</strong></p> <blockquote> <pre> [Log message beg] Fix : Adding gs/Resource/Decoding/Latin1, which is used by FAPI/UFST with Intellifont fonts. EXPECTED DIFFERENCES : None. </pre> <p>[Resource/Decoding/Latin1 1.1, lib/gs_stres.ps 1.7]</p> </blockquote> <p><strong><a name="2003-11-22_1854"></a> 2003-11-22 18:54 Ray Johnston</strong></p> <blockquote> <pre> Previous change assumed that all platforms have 'long long' type, but MSVC doesn't have this. Use int64_t as set by stdpre.h instead. DETAILS: Tested on Windows MSVC and linux/gcc, but we need to test portability on other platforms like HP-UX, AIX, and VMS. </pre> <p>[src/genarch.c 1.7]</p> </blockquote> <p><strong><a name="2003-11-21_2001"></a> 2003-11-21 20:01 Ralph Giles</strong></p> <blockquote> <pre> Update indented preprocessor lines in code imported from Freetype to put the '#' in the initial column, in accordance with the (slightly more portable) Ghostscript convention. </pre> <p>[src/ttinterp.c 1.10, src/ttobjs.h 1.5, src/tttables.h 1.2, src/tttype.h 1.2]</p> </blockquote> <p><strong><a name="2003-11-21_1842"></a> 2003-11-21 18:42 Ralph Giles</strong></p> <blockquote> <pre> Add a fallback definition of the common fixed-sized stdint types based on the type sizes in the generated arch.h header. This should improve the portability of uses of these types within the Ghostscript source. DETAILS: This new code in std.h does not superceed the in stdint.h and similar platform- dependent includes in stdpre, it merely provides a fallback. stdpre.h now defines STDINT_TYPES_DEFINED if it has done so; the std.h code is only activated if this preprocessor symbol is not set. This change does not help with the portability of compiling jbig2dec directly as part of the Ghostscript build system since that code as a separate library includes no headers from the Ghostscript tree. </pre> <p>[src/genarch.c 1.6, src/std.h 1.9, src/stdpre.h 1.18]</p> </blockquote> <p><strong><a name="2003-11-21_0416"></a> 2003-11-21 04:16 Dan Coby</strong></p> <blockquote> <pre> Fix for 687020 and 687146. The pdfwrite device is incorrectly converting CalRGB color spaces into ICC color spaces. Fix #1. Details: As Raph pointed out in the Wednesday's support call, there are actually two problems. 1. We were not correctly recognizing that we can use a CalRGB color space for the output. This patch corrects this problem. One of the tests in that process was assuming an incorrect ordering to the transforms. This fix corrects this problem. 2. The ICC color space which is being created is not equivalent to the original CalRGB color space. This results in differing colors between the original file and the output PDF file. This problem is still open. Note: I am leaving these bug reports still open since problem 2 is still open. </pre> <p>[src/gdevpdfc.c 1.42]</p> </blockquote> <p><strong><a name="2003-11-20_2301"></a> 2003-11-20 23:01 Igor Melichev</strong></p> <blockquote> <pre> Factoring out the iterator for flattened curve segments. DETAILS : The new code is marked with FLATTENED_CURVE_ITERATOR defined in gzpath.h. It defines gx_flattened_curve_iterator for using in the True Type grid fitting. The old code has bugs in the MERGE_COLLINEAR_SEGMENTS section. An uneven behavior happened near the 'points' buffer boundary and with the last but one point : some points were not skipped when they should. For a while we keep a compatibility of the new code to the old one. This patch : 1. Defines of the gx_flattened_curve_iterator. 2. Emulates of the old code with gx_flattened_curve_iterator. 3. Provides a compatibility to the old code bugs with FLATTENED_CURVE_ITERATOR0_COMPATIBLE. 4. Improves a debug printing in the old code, to allow a trace comparizon with the new one. 5. Improves an old comment "Fast check for n == 3" ('n' was not explained). 6. Saves stack space when gx_flatten_sample recurses. 7. Inserts a 'const' into vdtrace.* . EXPECTED DIFFERENCES : None. </pre> <p>[src/gxpflat.c 1.7, src/gzpath.h 1.9, src/lib.mak 1.150, src/vdtrace.c 1.8, src/vdtrace.h 1.8]</p> </blockquote> <p><strong><a name="2003-11-20_2052"></a> 2003-11-20 20:52 Alex Cherepanov</strong></p> <blockquote> <pre> Restore v.1.2 rolled back by mistake. Partial fix for bug 687029 </pre> <p>[src/ttfsfnt.h 1.4]</p> </blockquote> <p><strong><a name="2003-11-20_1847"></a> 2003-11-20 18:47 Ralph Giles</strong></p> <blockquote> <pre> Add prefix headers for the MacOS build to define DEBUG for the appropriate targets. Bug 686844. </pre> <p>[src/macgenmcpxml.sh 1.11, src/macos_carbon_d_pre.h 1.1, src/macos_classic_d_pre.h 1.1]</p> </blockquote> <p><strong><a name="2003-11-20_1843"></a> 2003-11-20 18:43 Ralph Giles</strong></p> <blockquote> <pre> Replace non-standard #if DEBUG lines with #ifdef DEBUG. Discovered in fixing bug 686844. </pre> <p>[src/igc.h 1.7]</p> </blockquote> <p><strong><a name="2003-11-20_1616"></a> 2003-11-20 16:16 Ralph Giles</strong></p> <blockquote> <pre> Replace non-standard #if DEBUG lines with #ifdef DEBUG. Discovered in fixing bug 686844. </pre> <p>[src/igc.c 1.12]</p> </blockquote> <p><strong><a name="2003-11-20_0753"></a> 2003-11-20 07:53 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 3. DETAILS : The new code is disabled with TT_GRID_FITTING 0 in gx.h . This patch improves the stem recognizer and fixes the "#if DEBUG" error. EXPECTED DIFFERENCES : None. </pre> <p>[src/gzspotan.c 1.3]</p> </blockquote> <p><strong><a name="2003-11-19_2233"></a> 2003-11-19 22:33 Ralph Giles</strong></p> <blockquote> <pre> Add some basic instructions for creating an IDE project file for the example API client code. Bug 669654. </pre> <p>[doc/API.htm 1.40]</p> </blockquote> <p><strong><a name="2003-11-19_2204"></a> 2003-11-19 22:04 Ralph Giles</strong></p> <blockquote> <pre> Link to the MacOS example client from the API documentation, along with the others. </pre> <p>[doc/API.htm 1.39]</p> </blockquote> <p><strong><a name="2003-11-19_2059"></a> 2003-11-19 20:59 Ralph Giles</strong></p> <blockquote> <pre> Replace the code that removes the additional CFLAGS added by the AC_PROG_CC autoconf macro. Closes bug 687150. DETAILS: On linux with gcc, AC_PROG_CC adds '-g -O2' to the general CFLAGS. This was overriding the -O we add in Makefile.in, and the bug complains that this confuses gdb because of code re-organization. This change also means we no longer include full debug symbols in the normal build. I don't consider this an improvement personally, but will bow to the traditionalists. Note that 'strip' still reduces the size of the executable by 20%, so it's still worth running if you're concerned about install-size. </pre> <p>[src/configure.ac 1.34]</p> </blockquote> <p><strong><a name="2003-11-19_1309"></a> 2003-11-19 13:09 Igor Melichev</strong></p> <blockquote> <pre> Fix : The last change to ttfsfnt.h doesn't compile on Linux and has been undone. DETAILS : The wrong patch is http://www.ghostscript.com/pipermail/gs-cvs/2003-November/003765.html </pre> <p>[src/ttfsfnt.h 1.3]</p> </blockquote> <p><strong><a name="2003-11-19_0251"></a> 2003-11-19 02:51 Dan Coby</strong></p> <blockquote> <pre> Fix for 687131 Incorrect rendering for type 1 images when Interpolate == true. DETAILS: The user has a custom device which uses more than 32 bits per pixel and also uses gx_default_copy_colort. This fix extends that routine to handle pixels sizes beyond 32 bits. </pre> <p>[src/gdevdbit.c 1.10]</p> </blockquote> <p><strong><a name="2003-11-19_0146"></a> 2003-11-19 01:46 Dan Coby</strong></p> <blockquote> <pre> Enhancement for bug 687148. Add 12 and 16 bits to the possible number of bits per component for the bit devices. </pre> <p>[src/gdevbit.c 1.9]</p> </blockquote> <p><strong><a name="2003-11-18_1635"></a> 2003-11-18 16:35 Alex Cherepanov</strong></p> <blockquote> <pre> Replace non-portable types with ISO/IEC 988:1999 exact-size types. Partial fix for bug 687029 </pre> <p>[src/ttfsfnt.h 1.2]</p> </blockquote> <p><strong><a name="2003-11-18_1324"></a> 2003-11-18 13:24 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 2. DETAILS : The new code is disabled with TT_GRID_FITTING 0 in gx.h . This patch fixes memory management problems and implements a trial stem recognizer. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxttfb.c 1.19, src/gzspotan.c 1.2, src/gzspotan.h 1.2, src/lib.mak 1.149]</p> </blockquote> <p><strong><a name="2003-11-18_0129"></a> 2003-11-18 01:29 Dan Coby</strong></p> <blockquote> <pre> Correct the documentation for the possible values of color_info.depth to include values greater than 32 bits. The documentation problem was found by the user while investigating 687131. </pre> <p>[doc/Drivers.htm 1.42]</p> </blockquote> <p><strong><a name="2003-11-17_2017"></a> 2003-11-17 20:17 Ray Johnston</strong></p> <blockquote> <pre> Fix the logic that conditionally disables interpolation. The previous only worked if the max_gray was set to the same as max_color, but the macro dci_std_color_max_gray set max_gray to 0 if the number of components was > 1. Detected with bug #687147 for customer #750. </pre> <p>[src/gxiscale.c 1.8]</p> </blockquote> <p><strong><a name="2003-11-17_1642"></a> 2003-11-17 16:42 Igor Melichev</strong></p> <blockquote> <pre> Implementing a True Type grid fitting, step 1. DETAILS : It's an initial commitment. It is not completed, but we need to store changes to lib.mak . The new code is disabled with TT_GRID_FITTING 0 in gx.h . EXPECTED DIFFERENCES : None. </pre> <p>[src/gsfont.c 1.26, src/gx.h 1.15, src/gxfcache.h 1.21, src/gxfdrop.h 1.2, src/gxfill.c 1.50, src/gxttfb.c 1.18, src/gzspotan.c 1.1, src/gzspotan.h 1.1, src/lib.mak 1.148]</p> </blockquote> <p><strong><a name="2003-11-17_1546"></a> 2003-11-17 15:46 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Numeric errors appeared writing an UCR. DETAILS : The old code wrote UCR (undercolor removal) functions with mapping 0 to 0.00392, causing a solid black to convert to a non-solid color with pkmraw device. The fix reduces the sample range to [0:254] and generates an appropriate Decode array. Bug 687109 "PDF-->pkmraw: 0 0 0 RG isn't solid:. Bug 687138 "pdfwrite is adding poor UCR functions to output files". EXPECTED DIFFERENCES : This patch causes multiple differences with pdfwrite->pkmraw. The change to pdfwrite definitely is a progression, but it discovers a new bug 687146 "(pdfwrite) CalRGB wrongly converts to ICCBased". We did not check which differences are coused by the new bug. Will see after the bug is fixed. Updating the baseline should be fine for entire list. 0.pdf 01_001.pdf 033-52-5873.pdf 159.pdf 246-01.ps 477-03.ps 477-04.ps 477-05.ps 86554321.pdf a.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf ADOBE1-4.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf brochurep1.pdf bulletin.pdf CAT_LOGO.ps ccc.pdf chstudy.pdf dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf Es001-01.pdf Faktura.pdf file.pdf Fixed_Original.pdf foo.pdf frosch.pdf gs.anotherfailure.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf gslandscape.pdf H00216q.pdf ICPconcept.pdf InstandardBuildChar.ps Jahr2000.pdf japan-.ps japan.ps js.pdf kazmir.pdf korea.ps LD.pdf little.guy.pdf loremIpsum.pdf MagicEye.pdf map.pdf messenger.pdf messenger16.pdf motor.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf non-sepqxd2distiller.pdf Page01.pdf pdftops.pdf PixelisAd.pdf prob.pdf QA_Inv.pdf rf1025.pdf rotate0.pdf rotate180.pdf rotate270.pdf rotate90.pdf S2_Digitalproof-Forum_x3k.pdf si_tg_brochure.pdf smdf.90441.102.pdf sports.pdf Svd.pdf test.pdf test3.pdf Testform.v1.0.2.pdf TextRize.pdf Type11CDevProc.ps type42_glyph_index.ps unihaken-color.pdf vsem0093.pdf Vu989qfj.pdf xgfddg.pdf xngnews.pdf pdfwrite->pkmraw 300dpi : 0.pdf 01_001.pdf 033-52-5873.pdf 159.pdf 1_pct_50_bang.pdf 246-01.ps 477-03.ps 477-04.ps 477-05.ps 86554321.pdf a.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf ADOBE1-4.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf annots.pdf bc_02a01_cal.pdf brochurep1.pdf bulletin.pdf CAT_LOGO.ps ccc.pdf chstudy.pdf dave.pdf Dave_Barry.pdf dina3_watermark.pdf DisplayedGood.pdf DisplayedWrong.pdf Es001-01.pdf Faktura.pdf file.pdf Fixed_Original.pdf foo.pdf frosch.pdf gs.anotherfailure.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf H00216q.pdf ICPconcept.pdf InstandardBuildChar.ps Jahr2000.pdf japan-.ps japan.ps js.pdf kazmir.pdf korea.ps LD.pdf little.guy.pdf loremIpsum.pdf MagicEye.pdf map.pdf messenger.pdf messenger16.pdf motor.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf non-sepqxd2distiller.pdf Page01.pdf pdftops.pdf PixelisAd.pdf prob.pdf QA_Inv.pdf rf1025.pdf S2_Digitalproof-Forum_x3k.pdf si_tg_brochure.pdf smdf.90441.102.pdf sports.pdf Svd.pdf test.pdf test3.pdf Testform.v1.0.2.pdf TextRize.pdf tpc2.ps type1-ce1_setcurrentpoint.ps Type11CDevProc.ps type42_glyph_index.ps unihaken-color.pdf vsem0093.pdf Vu989qfj.pdf xgfddg.pdf xngnews.pdf </pre> <p>[src/gdevpdfg.c 1.44]</p> </blockquote> <p><strong><a name="2003-11-14_1859"></a> 2003-11-14 18:59 Alex Cherepanov</strong></p> <blockquote> <pre> JAWS PDF generator encodes empty stream as jaws_empty[]. The stream declares that the data block length is zero but zlib routines regard a zero length data block to be an error. Check for this case and return EOF without calling zlib. Fix bug 686779 from the customer 131 </pre> <p>[src/lib.mak 1.147, src/szlibd.c 1.6]</p> </blockquote> <p><strong><a name="2003-11-14_1821"></a> 2003-11-14 18:21 Ray Johnston</strong></p> <blockquote> <pre> First attempt to add information requested by Igor to identify when the basline was set for a particular 'DIFFER' case. Bug #687142. </pre> <p>[toolbin/tests/gscheck_pdfwrite.py 1.15, toolbin/tests/gscheck_raster.py 1.6]</p> </blockquote> <p><strong><a name="2003-11-13_2241"></a> 2003-11-13 22:41 Igor Melichev</strong></p> <blockquote> <pre> Fix : Add double inclusion protection to the True Type interpreter bridge modules. DETAILS : They follow FreeType's C-style as other modules branched from FreeType. EXPECTED DIFFERENCES : None. </pre> <p>[src/ttconf.h 1.2, src/ttmisc.h 1.2]</p> </blockquote> <p><strong><a name="2003-11-13_2227"></a> 2003-11-13 22:27 Igor Melichev</strong></p> <blockquote> <pre> Fix : The first clip path list element sometimes got an empty path. DETAILS : This continues fixing the bug 686885 "bad paths in pdf". If !pcpath->path_valid, we convert the pcpath->rect_list to a path, storing it into the clip path list element. EXPECTED DIFFERENCES : pdfwrite progressions : 1_2001.pdf Altona-Testsuite_p2_S_x3.pdf (I'm sorry, in http://www.ghostscript.com/pipermail/gs-cvs/2003-November/003751.html a difference with Altona-Testsuite_p2_S_x3.pdf was misidentified as a progression. Rather that raster looks better, it differs more from Adobe. With this patch the raster is closer to Adobe) </pre> <p>[src/gxcpath.c 1.10]</p> </blockquote> <p><strong><a name="2003-11-13_1920"></a> 2003-11-13 19:20 Ray Johnston</strong></p> <blockquote> <pre> Fix: Adobe Acrobat Reader ignores an empty path when setting the clip path. Bug #687136. DETAILS: We never encountered this problem in a 'real' file, but one of Raph's test files showed the difference in the way our PDF interpreter handled an zero area path to setting clipping versus the way Adobe does. Igor tested CPSI and determined that PostScript results in a zero area clipping box, but Acrobat Reader works differently, so the patch detects a zero area path and does not change the clipping path in that case. The details of the determination of 0 area is commented here: pathbbox % get the path bounding box 3 -1 roll % roll to get upper and lower Y coordinates together sub abs % form absolute delta Y of path bbox 3 1 roll % roll upper and lower X coordinates to TOS sub abs % form absolute delta X of path bbox add % sum abs delta X and abs delta Y 0 ne % if it is non-zero, then perform the clip/eoclip </pre> <p>[lib/pdf_ops.ps 1.33]</p> </blockquote> <p><strong><a name="2003-11-13_1519"></a> 2003-11-13 15:19 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Transfer function was not checked for identity. DETAILS : Bug 687124 "Large PDF file created from Quark with EPS's within", A document defines a transfer function { {} exec {} exec }, which was not recognized as identity, causing an image downsampling to be rejected. Improved pdf_update_transfer with checking for identity transfer. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdfg.c 1.43]</p> </blockquote> <p><strong><a name="2003-11-12_1958"></a> 2003-11-12 19:58 Alex Cherepanov</strong></p> <blockquote> <pre> Default to empty string when there's no /ID in the trailer and issue a warning because the key is required for encrypted files. Fix bug 687135 </pre> <p>[lib/pdf_sec.ps 1.12]</p> </blockquote> <p><strong><a name="2003-11-12_1429"></a> 2003-11-12 14:29 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Write high level clipping paths. DETAILS : This includes the "Preliminary patch for preserving clip path lists-bug686885" by Raph (gxcpath.c, gzcpath.h), and a simple algorithm for writing it to PDF (gdevpdfd.c). Now it writes entire list whenever clipping path is changed. A diserable optimization is to avoid writing redundant elements. For doing that we would like to have an id and a 'changed' flag in gx_path_s. Bug 686885 "bad paths in pdf". EXPECTED DIFFERENCES : This patch discovers a problem in PDF interpreter with re-distilled 1_2001.pdf . The problem is tracked as a new bug 687136 . Other expected differences are pdfwrite progressions : pdfwrite 72 dpi : 027-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 083-01.ps 102-01.ps 109-01.ps 169-01.ps 1_2001.pdf 205-01.ps 222-01.ps 298-01.ps 321-01.ps Altona-Testsuite_p2_S_x3.pdf BEST8-99-Path.fh7.pdf H00216q.pdf Openhuis_pdf_zw.pdf PixelisAd.pdf test.pdf pdfwrite 300 dpi : 027-01.ps 027-09.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 083-01.ps 102-01.ps 109-01.ps 169-01.ps 169-09.ps 1_2001.pdf 205-01.ps 222-01.ps 222-09.ps 298-01.ps 298-09.ps 307-07.ps 316-07.ps 321-01.ps 321-09.ps Altona-Testsuite_p2_S_x3.pdf BEST8-99-Path.fh7.pdf H00216q.pdf Openhuis_pdf_zw.pdf PixelisAd.pdf shading_prob_800.ps test.pdf </pre> <p>[src/gdevpdfd.c 1.35, src/gxcpath.c 1.9, src/gzcpath.h 1.5]</p> </blockquote> <p><strong><a name="2003-11-11_1216"></a> 2003-11-11 12:16 Alex Cherepanov</strong></p> <blockquote> <pre> Use [/XYZ null null null] as a default destination following the Distiller example. The old destination was clearly wrong because it positioned the bottom of the page on the top of the screen, effectively displaying the next page. Fix bug 687129 </pre> <p>[src/gdevpdfm.c 1.33]</p> </blockquote> <p><strong><a name="2003-11-11_1123"></a> 2003-11-11 11:23 Igor Melichev</strong></p> <blockquote> <pre> Fix : ..includecolorspace caused an abnormal recursion. DETAILS : 1. With -dNOSUBSTDEVICECOLORS the procedure ..includecolorspace called setcolorspace, which recursively called ..includecolorspace . This recursion would be infinit unless an ocasional error in a stopped context terminates it. We replace setcolorspace with _setcolorspace_nosub to avoid the recursion. This fixes the bug 687134 "-dNOSUBSTDEVICECOLORS causes text to disappear". 2. An optimization done with a new dictionary ..page_default_spaces, which now keeps up to 3 global flags for Default* color spaces, to reflect whether they were included into a current page. It prevents redundant calls to _setcolorspace_nosub, .includecolorspace from ..includecolorspace . 3. Moved .PurgeDict to gs_init.ps because now it is called from showpage, copypage . 4. Added a name argument to .includecolorspace and passed it through a set of functions in the graphics library and pdfwrite. Before that Default* color spaces were included into the PDF output with wrong resource names. 5. Minor change : fixed a procedure header comment in gs_devcs.ps . EXPECTED DIFFERENCES : None, because the nightly regression doesn't test -dNOSUBSTDEVICECOLORS . </pre> <p>[src/gdevdflt.c 1.15, src/gdevnfwd.c 1.14, src/gdevpdfc.c 1.41, src/gdevpdfg.h 1.27, src/gdevpdfv.c 1.32, src/gscolor2.c 1.17, src/gscolor2.h 1.9, src/gxdevcli.h 1.20, src/zcolor.c 1.17, lib/gs_ciddc.ps 1.13, lib/gs_devcs.ps 1.6, lib/gs_init.ps 1.101]</p> </blockquote> <p><strong><a name="2003-11-10_1947"></a> 2003-11-10 19:47 Dan Coby</strong></p> <blockquote> <pre> Continuation on the fix for 687101, Crash in GC on some PDF files. This change adds comments to GS procedures for the imager state structure. These comments Were added to prevent confusion about the handling of the effective transfer pointers. </pre> <p>[src/gsistate.c 1.8]</p> </blockquote> <p><strong><a name="2003-11-10_1655"></a> 2003-11-10 16:55 Igor Melichev</strong></p> <blockquote> <pre> Fix (type 1 hinter) : Hints were not applied to the last segment of a Type 2 glyph. DETAILS : Due to Type 2 glyphs have no explicit closepath, the last contour was not added to the contours list. It caused its last segment got type=closepath instead type=oncurve, and was skipped from grid fitting. Bug 687119 "(pdfwrite) different raster if Helvetica is embedded". EXPECTED DIFFERENCES : Normal, 72dpi : 455690.pdf acrobat.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf bugsample.pdf bulletin.pdf ca.pdf CIDembedded.pdf dave.pdf Fixed_Original.pdf font_issue.pdf HeiseiMinStd.pdf KozukaB-ILEmbed.pdf Openhuis_pdf_zw.pdf Original.pdf PixelisAd.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test.pdf time1.pdf vsem0093.pdf pdfwrite, 72dpi : 033-52-5873.pdf 093-01.ps 455690.pdf 86554321.pdf aaon97_p7.pdf acrobat.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf Bug687044.ps bugsample.pdf bulletin.pdf ca.pdf chess.ps chstudy.pdf CIDembedded.pdf dave.pdf Fixed_Original.pdf font_issue.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf kazmir.pdf knight.pdf KozukaB-ILEmbed.pdf laballade.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf Original.pdf PixelisAd.pdf prob.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test-setweightvector.ps test.pdf test2.pdf test2a.pdf time1.pdf tpc2.ps vsem0093.pdf Normal, 300dpi : 455690.pdf 86554321.pdf ai2.pdf Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf bugsample.pdf bulletin.pdf ca.pdf CIDembedded.pdf dave.pdf Fixed_Original.pdf font_issue.pdf HeiseiMinStd.pdf KozukaB-ILEmbed.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf PixelisAd.pdf QuickNews_Nov22.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test.pdf time1.pdf type2accent.pdf vsem0093.pdf pdfwrite, 300dpi : 033-52-5873.pdf 093-01.ps 455690.pdf 86554321.pdf aaon97_p7.pdf acrobat.pdf ai2.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf besttest.pdf bla.ps Bug687044.ps bugsample.pdf bulletin.pdf ca.pdf chess.ps chstudy.pdf CIDembedded.pdf dave.pdf Fixed_Original.pdf fonttest.pdf font_issue.pdf gslandscape.pdf H00216q.pdf HeiseiMinStd.pdf kazmir.pdf knight.pdf KozukaB-ILEmbed.pdf laballade.pdf NIL_0003.pdf non-sepqxd2distiller.pdf Openhuis_pdf_zw.pdf Original.pdf pdfopt_bug.pdf PixelisAd.pdf prob.pdf QuickNews_Nov22.pdf RealCities.pdf rf1025.pdf RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf Svd.pdf test-setweightvector.ps test.pdf test2.pdf test2a.pdf time1.pdf tpc2.ps type2accent.pdf vsem0093.pdf </pre> <p>[src/gxhintn.c 1.35]</p> </blockquote> <p><strong><a name="2003-11-10_1334"></a> 2003-11-10 13:34 Igor Melichev</strong></p> <blockquote> <pre> Fix : Refer new source modules from Develop.htm . </pre> <p>[doc/Develop.htm 1.124]</p> </blockquote> <p><strong><a name="2003-11-08_0744"></a> 2003-11-08 07:44 Dan Coby</strong></p> <blockquote> <pre> Add and option for specifying banded/noband. The current version actually uses 1 to specify banding and 0 to specify no banding. This is the optional fourth parameter. </pre> <p>[toolbin/tests/make_two_versions 1.12]</p> </blockquote> <p><strong><a name="2003-11-07_0440"></a> 2003-11-07 04:40 Alex Cherepanov</strong></p> <blockquote> <pre> Restore the invariant: effective_transfer always points to the transfer functions in the graphic state or halftone. Old code briefly left effective_transfer pointing to garbage, which caused relocation of garbage pointers and crash if GC happened at the right time. Fix bug 687101 </pre> <p>[src/gscolor.c 1.12, src/gscolor1.c 1.9]</p> </blockquote> <p><strong><a name="2003-11-04_0125"></a> 2003-11-04 01:25 Dan Coby</strong></p> <blockquote> <pre> Fix for 686796 tiffg4 device and incorrect halftone frequency. This eliminates a problem with not choosing the best halftone cell size when more than one possible cell size has the exact angle requested. DETAILS: Previously the logic for determing the size of the halftone cells used the product of the error in frequency times the error in the angle as the metric for determing the best cell size. For many common angles, 0, 45, 90, etc., this results in an angle error of zero. This then gave a value of zero for the metric no matter what the frequency error. The result was that in many cases we ignored cell sizes that gave a better frequency match. The fix revies the metric to choose a cell size which is closest (geometrically) to the ideal cell size. </pre> <p>[src/gshtscr.c 1.14]</p> </blockquote> <p><strong><a name="2003-11-03_1036"></a> 2003-11-03 10:36 Ralph Giles</strong></p> <blockquote> <pre> Correct spelling and wording. </pre> <p>[doc/Use.htm 1.94]</p> </blockquote> <p><strong><a name="2003-11-03_0239"></a> 2003-11-03 02:39 Alex Cherepanov</strong></p> <blockquote> <pre> Initialize cc->pair field for the external fonts, forgotten during the switch to new TrueType interpreter (NEW_TT_INTERPRETER). Fix bug 687116 </pre> <p>[src/gxccache.c 1.28]</p> </blockquote> <p><strong><a name="2003-11-01_1318"></a> 2003-11-01 13:18 Igor Melichev</strong></p> <blockquote> <pre> Fix (font resource machinery) : Dont try reloading fonts if the platform has no native fonts. DETAILS : This change suppresses redundant messages "Cant find (or cant open) font file xxx.". EXPECTED DIFFERENCES : None. </pre> <p>[lib/gs_fonts.ps 1.44]</p> </blockquote> <p><strong><a name="2003-11-01_0443"></a> 2003-11-01 04:43 Alex Cherepanov</strong></p> <blockquote> <pre> Following the PDF spec ignore "/Encrypt null" entry in the trailer. Fix bug 687117 DETAILS: This patch is not an equivalent transformation because knownoget returns false when the key value is null. </pre> <p>[lib/pdf_main.ps 1.81]</p> </blockquote> <p><strong><a name="2003-10-31_2212"></a> 2003-10-31 22:12 Igor Melichev</strong></p> <blockquote> <pre> Fix (font resource machinery) : Provide correct font names for graphics library. DETAILS : The old code passed names of substitutes rather than font names referred by a document. This patch fixes that with adding a special ney entry /.Alias to the font dictionary. Besides that, multiple problems are fixed in gs_fonts.ps, some of them appeared before the repository was created. Lising them here : 1. Several comments about stack layout in procedure headers were wrong since the repository was created. We repaired some of them, but possibly not all. 2. The old code assumed that SubstituteFont adds a name to the stack rather than replaces it. See comment inserted into .dofindfont . The patch for the bug 637424 (Revision 1.24, Nov 21, 2002) broken the old behavior and left multiple rudiments in code. Now we restore the old functionality, and make SubstututeFont to be compartible with CPSI, which replaces a name. 3. Now we define fonts for all aliases in the aliasing/substituting chain. Not sure it is better than defining only the final one, but the pre-repository code did so, and was unintentionaly broken by multiple patches. 4. .stdsubstfont dropped some aliases with no strong reason. Restoring the old behavior. 5. .tryloadfont damaged the stack balance. It was not visible due to (4). 6. We use a hack to provide the main functionality. See comment in .aliasfont . A complete solution is too hard. 7. Inserted auxiliary comments about the stack layout. This change fixes the bugs 687047 "fonts renamed in resulting pdf file" 687111 "Quality of output wth gs8.11 for pdfwrite device is faded as compared to gs6.12" EXPECTED DIFFERENCES : MANY OF pdfwrite TESTS RENDER DIFFERENTLY due to the font substitution had changed. Now pdfwrite does not embed /NimbusMonL-Regu, but recognize its alias Courier as a standard font name. 0.pdf 000040cf.000_60.pdf 001-01.ps 001-13.ps 001-25.ps 002-09.ps 002-21.ps 002-33.ps 003-01.ps 012-01.ps 012-05.ps 012-09.ps 012-13.ps 013-01.ps 013-05.ps 013-09.ps 013-13.ps 014-01.ps 014-05.ps 014-09.ps 014-13.ps 015-01.ps 015-05.ps 015-09.ps 016-01.ps 017-01.ps 018-01.ps 020-01.ps 021-01.ps 023-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 028-01.ps 031-01.ps 031-05.ps 032-01.ps 032-07.ps 033-01.ps 034-01.ps 034-10.ps 035-01.ps 035-07.ps 036-01.ps 038-01.ps 039-01.ps 040-01.ps 045-01.ps 046-01.ps 050-01.ps 055-01.ps 061-01.ps 070-01.ps 076-01.ps 083-01.ps 083-05.ps 083-09.ps 083-13.ps 084-01.ps 091-01.ps 093-01.ps 094-01.ps 096-01.ps 102-01.ps 103-01.ps 104-01.ps 109-01.ps 110-01.ps 113-01.ps 118-01.ps 119-01.ps 119-10.ps 119-16.ps 119-23.ps 119-35.ps 119-41.ps 119-47.ps 120-01.ps 123-01.ps 123-05.ps 123-09.ps 124-01.ps 129-01.ps 136-01.ps 141-01.ps 148-01.ps 148-05.ps 148-11.ps 148-16.ps 149-01.ps 149-05.ps 150-01.ps 154-01.ps 158-01.ps 159.pdf 162-01.ps 165-01.ps 166-01.ps 169-01.ps 169-05.ps 169-09.ps 169-13.ps 170-01.ps 175-01.ps 176-01.ps 177-01.ps 181-01.ps 184-01.ps 192-01.ps 194-01.ps 1_pct_50_bang.pdf 200-01.ps 205-01.ps 205-05.ps 205-09.ps 205-13.ps 206-01.ps 212-01.ps 213-01.ps 214-01.ps 215-01.ps 219-01.ps 220-01.ps 220-07.ps 222-01.ps 222-05.ps 222-09.ps 222-13.ps 223-01.ps 226-01.ps 227-01.ps 231-01.ps 233-01.ps 237-01.ps 238-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 246-01.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 265-01.ps 268-02.ps 268-03.ps 268-04.ps 268-05.ps 268-06.ps 268-10.ps 269-01.ps 270-01.ps 272-01.ps 276-01.ps 281-01.ps 282-01.ps 289-01.ps 296-01.ps 297-01.ps 298-01.ps 298-05.ps 298-09.ps 299-01.ps 303-01.ps 304-01.ps 307-01.ps 307-07.ps 307-13.ps 308-04.ps 310-04.ps 311-03.ps 313-01.ps 316-07.ps 320-01.ps 321-01.ps 321-05.ps 321-09.ps 321-13.ps 322-01.ps 325-01.ps 327-01.ps 328-01.ps 330-01.ps 334-01.ps 335-01.ps 336-01.ps 401-01.ps 405-01.ps 409-01.ps 415-01.ps 421-01.ps 430-01.ps 438-01.ps 442-01.ps 446-01.ps 450-01.ps 460-01.ps 463-01.ps 464-01.ps 468-01.ps 473-01.ps 476-01.ps 477-01.ps 477-03.ps 477-04.ps 477-05.ps 477-06.ps 478-01.ps 483-01.ps 483-05.ps 541.pdf 541_623.pdf 86554321.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso2.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf adesso8.pdf ADOBE1-4.pdf AdobeLic.pdf ats-3-5-99.pdf bc_02a01_cal.pdf brochurep1.pdf bug-gstest.pdf ca.pdf ccc.pdf chess.ps colorcir.ps Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf Encoding.ps foo.pdf frosch.pdf GS_Stroke_error.pdf H00216q.pdf Jahr2000.pdf js.pdf kazmir.pdf LD.pdf messenger.pdf messenger16.pdf mspro.pdf NECPNTD.pdf new_rect.pdf new_rect_nr.pdf ngnews.pdf ngnews1.pdf p2b-100.pdf pdftops.pdf prfmm.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf RealCities.pdf rf1025.pdf smdf.90441.102.pdf Svd.pdf test3.pdf TextRize.pdf textsavematrix.pdf two_encodings.ps Vu989qfj.pdf waterfal.ps xgfddg.pdf xngnews.pdf </pre> <p>[src/zbfont.c 1.25, lib/gs_fonts.ps 1.43, doc/Use.htm 1.93]</p> </blockquote> <p><strong><a name="2003-10-30_1456"></a> 2003-10-30 14:56 Igor Melichev</strong></p> <blockquote> <pre> Fix (dropout prevention) : The expression for choosing a pixel to paint with narrow trapesoids was wrong (An improved revision). DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003721.html appears wrong. Now fixing it. EXPECTED DIFFERENCES : The massive difference in text rendering, which appeared after the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003721.html now should disappear. Only expected difference from the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003719.html (see its log message) should persist. </pre> <p>[src/gxdtfill.h 1.6]</p> </blockquote> <p><strong><a name="2003-10-30_1256"></a> 2003-10-30 12:56 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 10). DETAILS : Factored out fill_trap_or_rect. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.49]</p> </blockquote> <p><strong><a name="2003-10-30_1139"></a> 2003-10-30 11:39 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 8). DETAILS : Don't create active line copies, because now the X list doesn't change. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.48]</p> </blockquote> <p><strong><a name="2003-10-30_1102"></a> 2003-10-30 11:02 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 7). DETAILS : Removed some unused functions. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.47]</p> </blockquote> <p><strong><a name="2003-10-30_1045"></a> 2003-10-30 10:45 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 6). DETAILS : This patch includes 2 changes : 1. Removed the "out of order lines patch". We believe that now it never happens. 2. A code restructurization. Moved the line intersection routine outside the main loop. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.46]</p> </blockquote> <p><strong><a name="2003-10-30_0933"></a> 2003-10-30 09:33 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 5). DETAILS : Divided gxfill.c into 2 modules. Moved the dropout prevention code to the new module gxfdrop.c . This change should be algorithmically equivalent. Minor change : 1. Removed the ll_ptr type definition. IMO it is not fully conforming to C-style.htm . 2. Removed free variables from INSIDE_PATH_P and made it be of the module scope. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfdrop.c 1.1, src/gxfdrop.h 1.1, src/gxfill.c 1.45, src/gxfill.h 1.1, src/lib.mak 1.146]</p> </blockquote> <p><strong><a name="2003-10-30_0755"></a> 2003-10-30 07:55 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 4). DETAILS : 1. Restructirases some if statements to remove redundant code fragments. 2. Eliminated a low useful macros AL_DX, AL_DY. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.44]</p> </blockquote> <p><strong><a name="2003-10-30_0634"></a> 2003-10-30 06:34 Alex Cherepanov</strong></p> <blockquote> <pre> Correct a typo in source leading to failure of form selection for PCL printers. (contributed by Jim Bandy) Fix bug 686815 </pre> <p>[src/gdevdljm.c 1.9]</p> </blockquote> <p><strong><a name="2003-10-29_1743"></a> 2003-10-29 17:43 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 2). DETAILS : 1. The new function fill_trap_slanted fgactored out from the trapezoid algorithm to simplify the code of the latter. 2. Simplified argument lists of dropout prevention functions. 3. Moved helper function definitions before calls to allow inline optimizations. This change should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.43]</p> </blockquote> <p><strong><a name="2003-10-29_1558"></a> 2003-10-29 15:58 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 2). DETAILS : This change removes the obsolete code PSEUDO_RASTERIZATION 0. It should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.42]</p> </blockquote> <p><strong><a name="2003-10-29_1457"></a> 2003-10-29 14:57 Igor Melichev</strong></p> <blockquote> <pre> Fix : Simplify the filling algorithm (step 1). DETAILS : This change divides the X-cycle of the trapezoid algorithm into 2 passes. The new function move_al_by_y is the second pass. It should be algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfill.c 1.41]</p> </blockquote> <p><strong><a name="2003-10-28_1444"></a> 2003-10-28 14:44 Igor Melichev</strong></p> <blockquote> <pre> Fix (dropout prevention) : The expression for choosing a pixel to paint with narrow trapesoids was wrong. The old code sometimes unreasonably shifted stems in 1 pixel. EXPECTED DIFFERENCES : A massive difference in text rendering. ALMOST ALL comparefiles RENDER DIFFERENTLY. </pre> <p>[src/gxdtfill.h 1.5, src/gxfill.c 1.40]</p> </blockquote> <p><strong><a name="2003-10-28_1442"></a> 2003-10-28 14:42 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 21, final). DETAILS : This patch switches on the new TT interpreter and updates the documentation. EXPECTED DIFFERENCES : Massive difference in rendering TT fonts : 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf annots.pdf budget2.pdf budget2_ai87.pdf bugsample.pdf Faktura.pdf fonts.pdf ICPconcept.pdf japan-.ps japan.ps keyboard.pdf korea.ps MagicEye.pdf MyTest5.ps MyTest6.ps S2_Digitalproof-Forum_x3k.pdf Testform.v1.0.2.pdf test_multipage_prob.pdf Type11CDevProc.ps type42_glyph_index.ps </pre> <p>[src/gx.h 1.14, doc/Develop.htm 1.123, doc/Language.htm 1.77, doc/Projects.htm 1.55, doc/Use.htm 1.92]</p> </blockquote> <p><strong><a name="2003-10-27_1045"></a> 2003-10-27 10:45 Igor Melichev</strong></p> <blockquote> <pre> Reclaim global memory in the beginning of the interpreter finalization (continued). DETAILS : Fixes the bug 687100 gswin32 -h crashes. EXPECTED DIFFERENCES : None. </pre> <p>[src/imain.c 1.37]</p> </blockquote> <p><strong><a name="2003-10-27_0904"></a> 2003-10-27 09:04 Igor Melichev</strong></p> <blockquote> <pre> Fix : Removing the PDF Widths project from Project.htm . DETAILS : The issue was closed with pdf_font.ps Revision 1.57. Thanks to Alex Cherepanov. EXPECTED DIFFERENCES : None. </pre> <p>[doc/Projects.htm 1.54]</p> </blockquote> <p><strong><a name="2003-10-27_0802"></a> 2003-10-27 08:02 Igor Melichev</strong></p> <blockquote> <pre> Fix (garbager) : The back pointer validity constraint was wrong. DETAILS : Bug 687021 "A crash in memory manager" Here is what happens : A big chunk is allocated by i_alloc_struct_array. Later a part of the array is released. Then another object is allocated in the released area. Then the object is being relocated. The old validity constraint in igc_reloc_struct_ptr assumed that the object is in a chunk of the standard size. However it is not. The check fails, and gs_exit() is called. The latter calls vm_reclaim and falls into an infinite recursion and crashes. This patch enhances the constraint for instandard (big) chunks. Unfortunately their sizes can't easy obtain from igc_reloc_struct_ptr, therefore the new check only works for pointers to same chunk. A new field (DEBUG=1 only) is inserted into gc_state_s to access the chunk from igc_reloc_struct_ptr. We're not happy of this solution, but there is no idea how to improve it. EXPECTED DIFFERENCES : With -Z? the old code failed with pdfwrite->ppmraw with the following tests : 040-01.ps 091-01.ps 110-01.ps 282-01.ps Altona.Page_3.2002-09-27.pdf (crash) The new code doesn't fail with -Z? . Nightly regression doesn't test -Z? . </pre> <p>[src/igc.c 1.11, src/igc.h 1.6]</p> </blockquote> <p><strong><a name="2003-10-26_0052"></a> 2003-10-26 00:52 Alex Cherepanov</strong></p> <blockquote> <pre> Apply oforce to every element of MediaBox and CropBox arrays. Fix bug 687035 from customer 831 </pre> <p>[lib/pdf_base.ps 1.39, lib/pdf_main.ps 1.80]</p> </blockquote> <p><strong><a name="2003-10-24_0614"></a> 2003-10-24 06:14 Dan Coby</strong></p> <blockquote> <pre> Some minor clean up for the makefiles: 1. Correct lines that should start with tabs. 2. Clear some lines which only contain spaces. </pre> <p>[src/bcwin32.mak 1.30, src/dvx-gcc.mak 1.24, src/macos-mcp.mak 1.23, src/macosx.mak 1.21, src/msvc32.mak 1.50, src/msvclib.mak 1.25, src/msvctail.mak 1.10, src/openvms.mak 1.33, src/os2.mak 1.35, src/ugcclib.mak 1.26, src/unixansi.mak 1.33]</p> </blockquote> <p><strong><a name="2003-10-23_1745"></a> 2003-10-23 17:45 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Shared CID font descriptors did not work properly. DETAILS : When a CID font descriptor is shared with several CID font resources, must create several font objects with different CIDToGIDMap, DW, DW2 taken from CID font resource dictionaries. The old code created a single font object with one randomly chosen CIDToGIDMap, making some glyphs inaccessible, and glyphs could misplace. New procedures adjustCIDType0, adjustCIDType2 are added into the adjustfont dictionary, so that now CID fonts are processed in same way as fonts. Bug 687048 "fonts not rendered correctly". Besides that, the old code on pdf_font.ps created a CDevProc for processing DW[2], but it was not properly added to the font dictionary and was not executed. The new code fixes that. This issue causes rendering differences. [end quote] EXPECTED DIFFERENCES : This patch causes progressions in PDF interpreter : raster, 72dpi : ICPconcept.pdf Testform.v1.0.2.pdf raster, 300dpi : Altona.Page_3.2002-09-27.pdf ICPconcept.pdf Testform.v1.0.2.pdf pdfwrite->raster, 72dpi : Altona.Page_3.2002-09-27.pdf ICPconcept.pdf japan-.ps japan.ps Testform.v1.0.2.pdf Type11CDevProc.ps pdfwrite->raster, 300dpi : Altona.Page_3.2002-09-27.pdf ICPconcept.pdf japan-.ps japan.ps korea.ps shading_prob_800.ps Testform.v1.0.2.pdf Type11CDevProc.ps </pre> <p>[lib/pdf_font.ps 1.59]</p> </blockquote> <p><strong><a name="2003-10-23_1046"></a> 2003-10-23 10:46 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Restrict Tj offsets. DETAILS : Acrobat reader 4.0c, 5.0 can't handle big offsets. Bug 687089 "Displaced characters in PDF". EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdts.c 1.27]</p> </blockquote> <p><strong><a name="2003-10-23_0956"></a> 2003-10-23 09:56 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : MSVC compiler warning. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdte.c 1.49]</p> </blockquote> <p><strong><a name="2003-10-23_0949"></a> 2003-10-23 09:49 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Optimize pdf_make_text_glyphs_table_unencoded. DETAILS : This change is algorithmically equivalent. The new code isn't faster, because the new function gs_c_decode still needs an optimization, but the latter is simple. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdtt.c 1.67, src/gdevpdtt.h 1.20, src/gscencs.c 1.7, src/gscencs.h 1.5]</p> </blockquote> <p><strong><a name="2003-10-23_0904"></a> 2003-10-23 09:04 Igor Melichev</strong></p> <blockquote> <pre> Fix : ColorSpace resource files define global resources. DETAILS : This is an optimisation issue. EXPECTED DIFFERENCES : None. </pre> <p>[Resource/ColorSpace/DefaultCMYK 1.2, Resource/ColorSpace/DefaultGray 1.2, Resource/ColorSpace/DefaultRGB 1.2]</p> </blockquote> <p><strong><a name="2003-10-22_1955"></a> 2003-10-22 19:55 Ralph Giles</strong></p> <blockquote> <pre> Always install all the available resource categories (directories) on unix, in place of the earlier hard-wired list. Closes bug 687092. </pre> <p>[src/unixinst.mak 1.34]</p> </blockquote> <p><strong><a name="2003-10-22_1948"></a> 2003-10-22 19:48 Ralph Giles</strong></p> <blockquote> <pre> Add the new ColorSpace directory to the list of installed resource categories. This is the quick fix version of the resolution for Bug 687092. </pre> <p>[src/unixinst.mak 1.33]</p> </blockquote> <p><strong><a name="2003-10-22_1935"></a> 2003-10-22 19:35 Dan Coby</strong></p> <blockquote> <pre> Fix for 687099 Rebulding XREF leaves 1 object on the stack. The bug title is erroneous. All PDF files were leaving one item, a zero, on the stack. The problem was caused by an incorrect definition of pdfemptycount. </pre> <p>[lib/pdf_main.ps 1.79]</p> </blockquote> <p><strong><a name="2003-10-22_1645"></a> 2003-10-22 16:45 stefan</strong></p> <blockquote> <pre> file gslibctx.c was initially added on branch gslibctx. </pre> <p>[src/gslibctx.c 1.1]</p> </blockquote> <p><strong><a name="2003-10-22_1645"></a> 2003-10-22 16:45 stefan</strong></p> <blockquote> <pre> file gslibctx.h was initially added on branch gslibctx. </pre> <p>[src/gslibctx.h 1.1]</p> </blockquote> <p><strong><a name="2003-10-22_1639"></a> 2003-10-22 16:39 Dan Coby</strong></p> <blockquote> <pre> Change the name of the switch NOSUBDEVICECOLORS to NOSUBSTDEVICECOLORS. This was done to prevent confusion about being read as 'No subdevice colors'. </pre> <p>[doc/Use.htm 1.91, lib/gs_devcs.ps 1.5, lib/gs_init.ps 1.100]</p> </blockquote> <p><strong><a name="2003-10-22_1311"></a> 2003-10-22 13:11 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Provide an extended encoding for glyphshow. DETAILS : It fixes the problem 1 described in the bug 687087 "pdfwrite : A mangled /trademark glyph" : the glyph was converted to outline. In the test document a glyphshow uses a glyph outside the font's Encoding. Now we find a known Postscript encoding containing the glyph, and encode the glyph with it. Glyphs with unknown names still convert to outlines. EXPECTED DIFFERENCES : pdfwrite progressions : 136-01.ps 244-01.ps The document tpc2.ps of the bug 687087. </pre> <p>[src/devs.mak 1.100, src/gdevpdtc.c 1.29, src/gdevpdte.c 1.48, src/gdevpdtt.c 1.66, src/gdevpdtt.h 1.19]</p> </blockquote> <p><strong><a name="2003-10-22_1214"></a> 2003-10-22 12:14 Ralph Giles</strong></p> <blockquote> <pre> Update a call to map_rgb_color() to use the new encode_color() with a component array argument. Partial resolution of Bug 686981. DETAILS: This resolves the compiliation problem that was the substance of the original report. However, there is further code rot to be corrected as the driver fails in use with '/undefined in --get--'. </pre> <p>[src/gdevcgm.c 1.9]</p> </blockquote> <p><strong><a name="2003-10-22_1122"></a> 2003-10-22 11:22 Alex Cherepanov</strong></p> <blockquote> <pre> Restore standard functionality of bind operator in DELAYBIND mode after .bindnow . Simplify the implementation logic and document the changes. Fix bug 686746 DETAILS: The fix is based on the patch from Piotr Strzelczyk but selects the bind definition at run time following the old implementation to avoids errors when the differed bind operator is bound in. </pre> <p>[lib/gs_ll3.ps 1.20, doc/Language.htm 1.76, lib/gs_init.ps 1.99, lib/ps2ascii.ps 1.8]</p> </blockquote> <p><strong><a name="2003-10-22_0958"></a> 2003-10-22 09:58 Ralph Giles</strong></p> <blockquote> <pre> Make a sentence fragment a clause. </pre> <p>[doc/Drivers.htm 1.41]</p> </blockquote> <p><strong><a name="2003-10-22_0855"></a> 2003-10-22 08:55 Alex Cherepanov</strong></p> <blockquote> <pre> Dereference indirect objects during conversion from PDF form XObject to PostScript form. Minimize dictionary copying. Fix bug 686953. </pre> <p>[lib/pdf_draw.ps 1.79]</p> </blockquote> <p><strong><a name="2003-10-22_0707"></a> 2003-10-22 07:07 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Annotations, outlines and links pointing to non-existing pages caused a failure with -dDOPDFMARKS. Patch from Leon Bottou. DETAILS : Bug 686839 "Patch to ignore pdf errors in outlines and links" A followup form Leon Bottou : [beg quote] I found several pdf files with damaged or incorrect annotations (outlines, links) pointing to non existing pages or even pointing to nodes of incorrect type When using the pdf interpreter with -dDOPDFMARKS, such errors cause an execution error in the pdf interpreter The attached patch ignores such errors. The assumption is that it is better to produce botched pdfmarks than producing an error message and be unable to process the file. [end quote] EXPECTED DIFFERENCES : None. </pre> <p>[lib/pdf_main.ps 1.78]</p> </blockquote> <p><strong><a name="2003-10-21_1502"></a> 2003-10-21 15:02 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Refactor pdf_obtain_font_resource. DETAILS : This change is algorithmically equivalent. It's a preparation for fixing the problem 1 described in the bug 687087 "pdfwrite : A mangled /trademark glyph" EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdtt.c 1.65]</p> </blockquote> <p><strong><a name="2003-10-21_1337"></a> 2003-10-21 13:37 Ralph Giles</strong></p> <blockquote> <pre> Complete the replacement for fname_size described in the previous commit. Part of fixing bug 686981. </pre> <p>[src/gdevcgm.c 1.8]</p> </blockquote> <p><strong><a name="2003-10-21_1328"></a> 2003-10-21 13:28 Ralph Giles</strong></p> <blockquote> <pre> Replace a non-standard local filename length define with gp_file_name_sizeof. </pre> <p>[src/devs.mak 1.99, src/gdevcgm.c 1.7]</p> </blockquote> <p><strong><a name="2003-10-21_1154"></a> 2003-10-21 11:54 Alex Cherepanov</strong></p> <blockquote> <pre> Fix compiler warnings. Include gpmisc.h when needed. Fix bug 687006. </pre> <p>[src/gp_dosfs.c 1.16, src/gp_macio.c 1.32, src/gp_ntfs.c 1.21, src/gp_unifn.c 1.15, src/gp_vms.c 1.36, src/int.mak 1.118, src/lib.mak 1.145, src/macos-mcp.mak 1.22, src/openvms.mak 1.32, src/openvms.mmk 1.27, src/stdio_.h 1.9, src/winplat.mak 1.5, src/zfile.c 1.39]</p> </blockquote> <p><strong><a name="2003-10-21_1120"></a> 2003-10-21 11:20 Alex Cherepanov</strong></p> <blockquote> <pre> Issue a path construction command after accumulation of 500 values to prevent operand stack overflow. Fix bug 687016 </pre> <p>[src/gdevps.c 1.37]</p> </blockquote> <p><strong><a name="2003-10-21_1006"></a> 2003-10-21 10:06 Igor Melichev</strong></p> <blockquote> <pre> Fix : Disable the grid fitting while charproc accumulation (continued). DETAILS : 1. If a charproc of a Type 3 font uses another Type 3 font, and the latter converts to raster, the grid fitting was erroneusly disabled while its charproc accumulation. Not sure that this case can happen, but we like to clean up. 2. An optimization to process_plain_text is algorithmically equivalent. It is not related to charprocs though. EXPECTED DIFFERENCES : None with comparefiles. </pre> <p>[src/gdevpdte.c 1.47, src/gdevpdti.c 1.22]</p> </blockquote> <p><strong><a name="2003-10-21_0805"></a> 2003-10-21 08:05 Igor Melichev</strong></p> <blockquote> <pre> Fix : Add newly defined resource files to static resources. EXPECTED DIFFERENCES : None. </pre> <p>[lib/gs_stres.ps 1.6]</p> </blockquote> <p><strong><a name="2003-10-21_0750"></a> 2003-10-21 07:50 Igor Melichev</strong></p> <blockquote> <pre> Fix : Some Cygwin/gcc compiler warnings. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdfg.c 1.42, src/gdevpdtt.c 1.64, src/gxhintn.c 1.34, src/gxtype1.c 1.35, src/interp.c 1.17, src/isave.c 1.9, src/iscan.c 1.15, src/zfapi.c 1.49, src/zfont.c 1.9, src/devs.mak 1.98, src/icid.h 1.7, src/isave.h 1.6]</p> </blockquote> <p><strong><a name="2003-10-21_0143"></a> 2003-10-21 01:43 Igor Melichev</strong></p> <blockquote> <pre> Fix : Disable the grid fitting while charproc accumulation. DETAILS : This is a partial (minor) fix for the bug 687087 "pdfwrite : A mangled /trademark glyph". The glyph looks fine but still converts to outline. This change works for pdfwrite only. It changes several files in the graphics library, but other devices should percept this change as algorithmically equivalent. The core of the change is explained in the comment inserted into gdevpdtt.c : if (pdev->font3 != 0) { /* A text operation happens while accumulating a charproc. This is a case when source document uses a Type 3 font, which's charproc uses another font. Since the text operation is handled by the device, the font isn't converting to a raster (i.e. to a bitmap font). Disable the grid fitting for the convertion to get a proper outlines, because the viewer resolution is not known during the accumulation. Note we set identity CTM in pdf_text_set_cache for the accumilation, and therefore the font may look too small while the source charproc interpretation. The document tpc2.ps of the bug 687087 is an example. */ penum->device_disabled_grid_fitting = true; } It is implemented with defining the new field device_disabled_grid_fitting into gs_text_enum_common. Minor changes : 1. In gs_type1_state_s renamed charpath_flag to no_grid_fitting. We believe the new name reflects the semantics better. Several function prototypes changed the argument name. 2. decompose_matrix in gxttfb.c changed the prototype, and disables the TT grid fitting for very small fonts. (We consider it as a minor change, because currently this portion is disabled with NEW_TT_INTERPRETER 0 in gx.h). 3. A problem discovered in t1_hinter__set_mapping that impedes implementing a grid-fitting disabling for small Type 1,2,11 fonts. A comment is inserted into gxhintn.c about that. Very samll glyphs can be mangled diring a rasterization, but the mangling isn't visible in raster with such small sizes. Therefore the problem isn't important. EXPECTED DIFFERENCES : None with comparefiles. The test file tpc2.ps of the bug 687073 doesn't cause a mangled glyph, rather the glyph still converts to outline. </pre> <p>[src/gdevpdte.c 1.46, src/gdevpdtt.c 1.63, src/gstext.c 1.14, src/gstype1.c 1.29, src/gstype1.h 1.9, src/gstype2.c 1.32, src/gxfcopy.c 1.36, src/gxhintn.c 1.33, src/gxhintn.h 1.15, src/gxtext.h 1.12, src/gxttfb.c 1.17, src/gxtype1.c 1.34, src/gxtype1.h 1.18, src/zchar1.c 1.34]</p> </blockquote> <p><strong><a name="2003-10-20_1206"></a> 2003-10-20 12:06 Alex Cherepanov</strong></p> <blockquote> <pre> Don't cache glyphs with a suspect bounding box. The patch tests for (urx!=0 && llx==urx) || (ury!=0 && lly==ury) but suggestions of a better test are allways welcome. Fix bug 687015 from customer 440 </pre> <p>[lib/pdf_font.ps 1.58]</p> </blockquote> <p><strong><a name="2003-10-19_1748"></a> 2003-10-19 17:48 Alex Cherepanov</strong></p> <blockquote> <pre> Return correct /DeviceGray color space from currentcolorspace operator inside PaintProc of the uncolored pattern and cache device (bug 627169). Use igs->color_space to track the current color space. Fix bug 687080 from customer 710. DETAILS: The problem in bug 687080 is definitely a conflict about the current color space while the PaintProc is being executed. There are two color space indicators: pgs->color_space and igs->colorspace. Most of the time these two agree and there is no problem. However during pattern accumulation pgs->color_space has been temporarily changed from a pattern color space to DeviceGray. This causes a problem when the currentcmyk operator is called. Currently, before this fix, it calls currentcolor which returns a DeviceGray color. Then a color to CMYK routine is called based upon the color space being a pattern color space. This then fails since it has the wrong input color values. The fix looks at the current color space, in pgs->color_space, and is special casing DeviceGray. The fix should work better than the current logic. The only problem area would likely be if we have other 'temporary' color spaces besides DeviceGray. I do not know of any and the current logic would also fail. </pre> <p>[src/int.mak 1.117, src/zcolor.c 1.16]</p> </blockquote> <p><strong><a name="2003-10-19_0615"></a> 2003-10-19 06:15 Ray Johnston</strong></p> <blockquote> <pre> Fix: Pattern color spaces that used save/restore within the PaintProc would result in infinite looping with high level devices such as the pdfwrite device since the restore cleared the pattern cache so that after the restore, the pattern PaintProc would need to be executed again. Bug #687052 for customer #411. DETAILS: The 'is_dummy' flag in the pattern cache indicates that the cache entry does not contain bitmap or tile bits, but rather is just a placeholder for the pattern 'id'. The patch does not delete entries for pattern color spaces that have is_dummy != 0. The pdfwrite device creates all pattern cache entries as dummies. This change does not result in any regression and, of course, prevents the infinite looping. </pre> <p>[src/gxpcmap.c 1.11]</p> </blockquote> <p><strong><a name="2003-10-16_2042"></a> 2003-10-16 20:42 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Fonts used in a charproc were not added to Resources of some pages. DETAILS : Bug 687073 "cannot convert a ps file to pdf" Changes : 1. Added gx_device_pdf::font3 to access the Type 3 font while a charproc stream accumulation. 2. Provided saving it to the substream context stack. 3. Provided resource id for Type 3 font resources (were zeros). 4. The new function pdf_used_charproc_fonts sets where_used to charproc fonts, allowing to write them to page Resources. 5. A minor cleanup of comments. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdf.c 1.75, src/gdevpdfx.h 1.77, src/gdevpdte.c 1.45, src/gdevpdtf.h 1.21, src/gdevpdti.c 1.21, src/gdevpdts.c 1.26, src/gdevpdtt.c 1.62, src/gdevpdtx.h 1.2]</p> </blockquote> <p><strong><a name="2003-10-16_1337"></a> 2003-10-16 13:37 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : The font copying routine was inprecise. DETAILS : 1. Obtaining a glyph metrics, the font copying rutine scaled it with UnitsPerEm and back, loosing a precision. It caused an inprecise values for glyph width and side bearing in the font copy, and implied slightly shifted glyphs when PDF is rasterised. Inserted a compensation in the rounding expressions. 2. compare_glyphs sometimes compared a TT glyph with 0th glyph, and made a wrong decision that fonts can't merge. With some documents the PDF output becomes shorter. EXPECTED DIFFERENCES : pdfwrite, 72dpi: keyboard.pdf korea.ps MagicEye.pdf type42_glyph_index.ps pdfwrite, 300dpi : 01_001.pdf 159.pdf adesso2.pdf adesso7.pdf adesso8.pdf Altona.Page_3.2002-09-27.pdf Faktura.pdf ICPconcept.pdf keyboard.pdf korea.ps MagicEye.pdf type42_glyph_index.ps In adesso7.pdf, adesso8.pdf a TT font renders some worse, but it's unfortunate. With the new TT interpreter and -dGridFitTT=1 it renders fine. </pre> <p>[src/gdevpsft.c 1.31, src/gstype42.c 1.40, src/gxfcopy.c 1.35]</p> </blockquote> <p><strong><a name="2003-10-16_1233"></a> 2003-10-16 12:33 Igor Melichev</strong></p> <blockquote> <pre> Reclaim global memory in the beginning of the interpreter finalization. DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003664.html was incomplete. EXPECTED DIFFERENCES : Revisions after the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003664.html can crash or write an incomplete PDF. Now fixed. </pre> <p>[src/imain.c 1.36]</p> </blockquote> <p><strong><a name="2003-10-16_1123"></a> 2003-10-16 11:23 jeong</strong></p> <blockquote> <pre> When Glyph names data is not available for a TrueType Format 2.0 font, rangecheck error occured. It was due to an attempt to get the data even when it is not available. Now when no name data is available, /postnames is defined as an empty array and the glyph won't get a name attached. Fixes Bug#686961. </pre> <p>[lib/gs_ttf.ps 1.34]</p> </blockquote> <p><strong><a name="2003-10-16_1115"></a> 2003-10-16 11:15 Alex Cherepanov</strong></p> <blockquote> <pre> Fix error recovery code for PDF image; pop the operand of image operator restored by the standard PS error recovery. Fix bug 687081 from customer 770. </pre> <p>[lib/pdf_draw.ps 1.78]</p> </blockquote> <p><strong><a name="2003-10-15_1536"></a> 2003-10-15 15:36 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Resources were prematurely freed, causing pending pointers. DETAILS : Debugged with 473-01.ps (was a crash in ialloc_validate_object). EXPECTED DIFFERENCES : 473-01.ps shouldn't crash pdfwrite. </pre> <p>[src/gdevpdf.c 1.74]</p> </blockquote> <p><strong><a name="2003-10-15_1535"></a> 2003-10-15 15:35 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Don't recompute FontBBox for CID font subsets. DETAILS : It's an optimization, which is important with the new TT interpreter. The new TT interpreter copies TT structures into internal structures. With CID fonts it'a a big memory consumtion. Also now it runs faster. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdtd.c 1.15]</p> </blockquote> <p><strong><a name="2003-10-15_1134"></a> 2003-10-15 11:34 Igor Melichev</strong></p> <blockquote> <pre> Fix : A minor code cleanup in zfont42.c . DETAILS : The condition for missing a glyph was too weak, rather it never went out. EXPECTED DIFFERENCES : None. </pre> <p>[src/zfont42.c 1.17]</p> </blockquote> <p><strong><a name="2003-10-15_1129"></a> 2003-10-15 11:29 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A bug in memory descriptor. DETAILS : The bug caused a crash re-distilling the keyboard.pdf . EXPECTED DIFFERENCES : Should fix the pdfwrite crash with keyboard.pdf. </pre> <p>[src/gsstruct.h 1.17, src/gxfcopy.c 1.34]</p> </blockquote> <p><strong><a name="2003-10-15_0853"></a> 2003-10-15 08:53 Igor Melichev</strong></p> <blockquote> <pre> Reclaim global memory in the beginning of the interpreter finalization. DETAILS : This is a partial fix for the bug 687071 "Default vmthreshold isn't sufficient for pdfwrite". The pdfwrite device may need significant space in global memory to allocate compression filters while the device finalization. EXPECTED DIFFERENCES : With this patch the following test crashes : gswin32c.exe -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=z:\cur.pdf comparefiles/keyboard.pdf -c quit It looks as a wrong memory allocation or a descriptor. I don't delay commit, because it's another problem to be worked out separately, and the problem isn't massive. </pre> <p>[src/imain.c 1.35, src/interp.c 1.16, src/interp.h 1.6]</p> </blockquote> <p><strong><a name="2003-10-15_0750"></a> 2003-10-15 07:50 Dan Coby</strong></p> <blockquote> <pre> Change the name of NOSUBCOLORSPACES to NOSUBDEVICECOLORS. DETAILS: In a code review for the NOSUBCOLORSPACES switch, Igor suggested changing the name to KEEPDEVICECOLORS. I still prefer NOSUB instead of KEEP. Basically I prefer that switches which stop an action begin with NO. However changing COLORSPACES to DEVICECOLORS is a definite improvement since COLORSPACES is overly general and thus inaccurate. The only color spaces which are substituted are the device colors. </pre> <p>[doc/Use.htm 1.90, lib/gs_devcs.ps 1.4, lib/gs_init.ps 1.98]</p> </blockquote> <p><strong><a name="2003-10-15_0734"></a> 2003-10-15 07:34 Dan Coby</strong></p> <blockquote> <pre> Add new header file src/gdevdevn.h to doc/Develop.htm. </pre> <p>[doc/Develop.htm 1.122]</p> </blockquote> <p><strong><a name="2003-10-15_0003"></a> 2003-10-15 00:03 Igor Melichev</strong></p> <blockquote> <pre> Fix (True Type font loader) : 'glyf' and 'loca' were loaded emulating a CID font with True Type, causing an unuseful huge memory consumtion. DETAILS : My old patch about the font emulation was incomplete. This patch fixes that. EXPECTED DIFFERENCES : None. </pre> <p>[lib/gs_ttf.ps 1.33]</p> </blockquote> <p><strong><a name="2003-10-14_2037"></a> 2003-10-14 20:37 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Resources were prematurely freed, causing duplicated objects in the output. DETAILS : Bug 687078 "pdfwrite duplicates page resources". pdf_store_page_resources releases page resources, but they may be used in next pages. Due to that such resources may be duplicated in the output file. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdfc.c 1.40, src/gdevpdfu.c 1.43]</p> </blockquote> <p><strong><a name="2003-10-14_1500"></a> 2003-10-14 15:00 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Applying .includecolorspace to insert "default" color spaces. DETAILS : This completes the fix for the bug 687054 "pdfwrite should include DefaultGray, DefaultRGB, DefaultCMYK". The "default" color space resources are being included only if all 3 conditions are satisfied : 1. -dUseCIEColor is set; 2. -dNOSUBCOLORSPACES is set; 3. The source document defines the resource. If the document doesn't define the resource, but the user wants to include it, the document to be prepended with currentglobal true setglobal /DefaultGray /ColorSpace 2 copy findresource exch defineresource pop /DefaultRGB /ColorSpace 2 copy findresource exch defineresource pop /DefaultCMYK /ColorSpace 2 copy findresource exch defineresource pop setglobal and the resources must be available in gs/Resource/ColorSpace. This patch removes the "default" color space resources from gs_ll3.ps, assuming they are added to gs/Resource/ColorSpace. This is done to obtain the proper result of resourcestatus. EXPECTED DIFFERENCES : None. </pre> <p>[lib/gs_devcs.ps 1.3, lib/gs_ll3.ps 1.19]</p> </blockquote> <p><strong><a name="2003-10-14_1458"></a> 2003-10-14 14:58 Igor Melichev</strong></p> <blockquote> <pre> Initial commit for ColorSpace resources. </pre> <p>[Resource/ColorSpace/DefaultCMYK 1.1, Resource/ColorSpace/DefaultGray 1.1, Resource/ColorSpace/DefaultRGB 1.1]</p> </blockquote> <p><strong><a name="2003-10-14_1253"></a> 2003-10-14 12:53 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 20). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch is a minor code cleanup. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxccache.c 1.27, src/gxttfb.c 1.16, src/ttfmain.c 1.18]</p> </blockquote> <p><strong><a name="2003-10-14_1243"></a> 2003-10-14 12:43 Igor Melichev</strong></p> <blockquote> <pre> Define a new special operator .includecolorspace and new device virtual function include_color_space. Implement the latter for pdfwrite. DETAILS : This is a partial fix for Bug 687054 "pdfwrite should include DefaultGray, DefaultRGB, DefaultCMYK". This stuff provides a writing, but currently it is never called by gs/lib/* . A documentation is placed into a comment in gscolor2.c . EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevbbox.c 1.15, src/gdevdflt.c 1.14, src/gdevnfwd.c 1.13, src/gdevpdf.c 1.73, src/gdevpdfd.c 1.34, src/gdevpdfv.c 1.31, src/gdevpdfx.h 1.76, src/gdevrops.c 1.9, src/gscolor2.c 1.16, src/gscolor2.h 1.8, src/gxclip.c 1.12, src/gxclip2.c 1.9, src/gxclipm.c 1.11, src/gxclist.c 1.12, src/gxdevcli.h 1.19, src/gxdevice.h 1.14, src/zcolor.c 1.15]</p> </blockquote> <p><strong><a name="2003-10-14_1015"></a> 2003-10-14 10:15 Igor Melichev</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Adjust the currentpoint saved back into TextMatrix so that it does not include the effect of TextRise. DETAILS : Bug 686837 "PDF with subscript rendered wrong" Patch from Raph Levien. Here is analyzis from Raph Levien : [beg quote] the test file is using PDF's Ts operator to adjust the "text rise", exactly as shown in section 5.2.6 "Text Rise" of the PDF manual (3rd ed). Ghostscript's rendering is incorrect because the "settextposition" function (in pdf_ops.ps) updates the TextMatrix using the current point after showing the text. However, this point already contains the effect of TextRise. Then, the next time settextmatrix is invoked, it applies TextMatrix, followed by a second TextRise. The patch below simply reverses the effect of TextRise before setting TextMatrix. I believe that the correct invariant is that "settextposition" followed by "settextstate" should result in (0, 0) being the current point in the resulting CTM. I argue that the patch fulfills the invariant, as follows. Let the current point be (x, y), relative to TextSaveMatrix. Then, settextposition sets the translate portion of TextMatrix to (x, y - TextRise). Then, settextmatrix (as invoked from settextstate) applies TextMatrix followed by TextRise, for a net translation of (x, y). Query: is this reasoning still valid for arbitary rotations and scales in TextMatrix (as set by Tm)? It seems so to me, but I believe testing is required to establish this definitively. [end quote] I've tested it with comparefiles and found no differences. EXPECTED DIFFERENCES : None. </pre> <p>[lib/pdf_ops.ps 1.32]</p> </blockquote> <p><strong><a name="2003-10-14_0916"></a> 2003-10-14 09:16 Igor Melichev</strong></p> <blockquote> <pre> Fix (resource machinery) : A bug in resourceforall. DETAILS : Bug 687004 "bug in gs_res.ps (6.52, 7.07 and 8.11)". Patch from Ferdinand Oeinck. EXPECTED DIFFERENCES : None. </pre> <p>[lib/gs_res.ps 1.36]</p> </blockquote> <p><strong><a name="2003-10-14_0914"></a> 2003-10-14 09:14 Igor Melichev</strong></p> <blockquote> <pre> Fix (Type 1 interpreter) : Provide a tolerance to a missed subglyph. DETAILS : Bug 595760 "Fix for buggy font subsets". EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfcopy.c 1.33, src/gxfont1.h 1.12, src/gxtype1.c 1.33, src/zchar1.c 1.33, src/zfcid0.c 1.21]</p> </blockquote> <p><strong><a name="2003-10-13_1910"></a> 2003-10-13 19:10 Igor Melichev</strong></p> <blockquote> <pre> Fix (FAPI/FreeType) : Upgrading to Free Type 2.1.5 . DETAILS : A minor change in a type name. Patch from Robert Seretny. EXPECTED DIFFERENCES : None. </pre> <p>[src/fapi_ft.c 1.12]</p> </blockquote> <p><strong><a name="2003-10-13_1506"></a> 2003-10-13 15:06 Igor Melichev</strong></p> <blockquote> <pre> Fix (color space serialization) : Removing a constraint to the Sd function dimension. DETAILS : The implementation used an unreasonable constraint, which restricted a number of color components. Now the constraint is removed. EXPECTED DIFFERENCES : Fixes the recent regression with Altona.Page_3.2002-09-27.pdf . </pre> <p>[src/gsfunc0.c 1.13]</p> </blockquote> <p><strong><a name="2003-10-13_1216"></a> 2003-10-13 12:16 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 19). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch applies the design grid to emulate an infinite resolution with GridFitTT=0. Removed changes to ttinterp.c that were inserted to that purpose. The old code literally implemented the Raph's idea to disable the pixel rounding in the TT interpreter. Such implementation appears not good due to a rounding may apper implicitly while coordinate computations with low level TT operations. The new code requires lesser changes to the TT inprepreter and needs lesser number of cases to represent the infinite resolution : same code works for GridFitTT=0 and for charpath. Also optimized MoveGlyphOutline because now it is called more frequent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxccache.c 1.26, src/gxttfb.c 1.15, src/ttfmain.c 1.17, src/ttfoutl.h 1.12, src/ttinterp.c 1.9]</p> </blockquote> <p><strong><a name="2003-10-12_1909"></a> 2003-10-12 19:09 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 18). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch is an optimization : it avoids an extra glyph data copying, and simplifies a memory descriptor. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxttfb.c 1.14, src/ttfmain.c 1.16, src/ttfmemd.c 1.6, src/ttfoutl.h 1.11]</p> </blockquote> <p><strong><a name="2003-10-10_0708"></a> 2003-10-10 07:08 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 17). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes a problem with zero size fonts. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxccache.c 1.25, src/gxccman.c 1.22, src/gxfcache.h 1.20]</p> </blockquote> <p><strong><a name="2003-10-09_2226"></a> 2003-10-09 22:26 Dan Coby</strong></p> <blockquote> <pre> Fix for 687055 pdfwrite should not fail with <</ProcessColorModel /DeviceN>> setpagedevice. This change adds support for the DeviceN process color model to the pdfwrite device. The DeviceN process color model is treated like the DeviceCMYK process color model except for the name. </pre> <p>[src/gdevpdf.c 1.72, src/gdevpdfp.c 1.33]</p> </blockquote> <p><strong><a name="2003-10-09_2029"></a> 2003-10-09 20:29 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 16). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes a bug in character transformation matrix, and sets the default value for GridFitTT to false. EXPECTED DIFFERENCES : None. </pre> <p>[src/gsfont.c 1.25, src/gxccman.c 1.21]</p> </blockquote> <p><strong><a name="2003-10-09_1919"></a> 2003-10-09 19:19 Igor Melichev</strong></p> <blockquote> <pre> fuzzy.c : Implementing a ne option -c to switch on/off the reporting of coordinates of differences. </pre> <p>[toolbin/tests/fuzzy.c 1.12]</p> </blockquote> <p><strong><a name="2003-10-09_1456"></a> 2003-10-09 14:56 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 15). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch provides non-grid-fitted outlines with charpath. For a better readability renamed various variables ralated to that. EXPECTED DIFFERENCES : None. </pre> <p>[src/gstype42.c 1.39, src/gxccache.c 1.24, src/gxccman.c 1.20, src/gxchar.c 1.37, src/gxfcache.h 1.19, src/gxttfb.c 1.13, src/gxttfb.h 1.9, src/ttfmain.c 1.15, src/ttfoutl.h 1.10, src/ttinterp.c 1.8]</p> </blockquote> <p><strong><a name="2003-10-09_1251"></a> 2003-10-09 12:51 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 14). DETAILS : This patch removes obsolete comments. It is algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxccman.c 1.19, src/gxttfb.c 1.12, src/ttfmain.c 1.14]</p> </blockquote> <p><strong><a name="2003-10-09_0013"></a> 2003-10-09 00:13 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 13). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch implements a new user parameter GridFitTT. A change to documentation isn't supplied because this code is disabled by NEW_TT_INTERPRETER 0. Here is definition : GridFitTT=1 forces the TT interpreter to perform a grid fitting. If a font initialization program uses patented instrictions, the font renders without a grid fitting, and a warning is printed to stderr. If a font initialization program doesn't use patented instrictions, and some glyphs of the font uses patented instructions, the glyphs renders without a grid fitting, and a warning is printed to stderr. If a font initialization program doesn't use patented instrictions, and a glyph of the font doesn't use patented instructions, the glyph renders with grid fitting, and no warning is printed. Note that some font may mix both grid-fitted and non-grid-fitted glyphs. GridFitTT=0 forces the TT interpreter to skip the grid fitting. The warning about "patented" font is not printed. The user parameter can be set by the new command line option -dGridFitTT=x, where x is 0 or 1. EXPECTED DIFFERENCES : None. </pre> <p>[lib/gs_init.ps 1.97, src/gsfont.c 1.24, src/gsfont.h 1.9, src/gxccman.c 1.18, src/gxfcache.h 1.18, src/gxttfb.c 1.11, src/gxttfb.h 1.8, src/icontext.c 1.17, src/ttfmain.c 1.13, src/ttfoutl.h 1.9, src/ttinterp.c 1.7, src/zusparam.c 1.10]</p> </blockquote> <p><strong><a name="2003-10-08_2207"></a> 2003-10-08 22:07 Igor Melichev</strong></p> <blockquote> <pre> fuzzy.c : Implement a reporting of coordinates of different pixels. </pre> <p>[toolbin/tests/fuzzy.c 1.11]</p> </blockquote> <p><strong><a name="2003-10-08_1853"></a> 2003-10-08 18:53 Igor Melichev</strong></p> <blockquote> <pre> Fix : Propagating return code from gs_main_finit to GSDLL API (continued). DETAILS : The previous patch is incomplete. This one fixes that. </pre> <p>[src/dmmain.c 1.3, src/dpmain.c 1.11, src/dwmain.c 1.15, src/dwmainc.c 1.17, src/dxmain.c 1.12, src/dxmainc.c 1.9, src/gsdll.c 1.11]</p> </blockquote> <p><strong><a name="2003-10-08_1718"></a> 2003-10-08 17:18 Igor Melichev</strong></p> <blockquote> <pre> Propagating return code from gs_main_finit to GSDLL API. THIS IS INCOMPATIBLE CHANGE : the API had changed a prototype. A close_device method can terminate with an error, which was not delivered to clients. It is especially important with pdfwrite, which performs a big work in close_device. Now clients can know about the error checking the return code of the gsapi_exit function. See examples in doc/API.htm . </pre> <p>[doc/API.htm 1.38, src/dpmain.c 1.10, src/dwmain.c 1.14, src/dwmainc.c 1.16, src/gsexit.h 1.9, src/iapi.c 1.10, src/imain.c 1.34, src/imain.h 1.8]</p> </blockquote> <p><strong><a name="2003-10-08_1419"></a> 2003-10-08 14:19 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 12). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch dalays the "patented" exception until a patented method is called. EXPECTED DIFFERENCES : None. </pre> <p>[src/ttfmain.c 1.12, src/ttinterp.c 1.6]</p> </blockquote> <p><strong><a name="2003-10-08_1354"></a> 2003-10-08 13:54 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 11). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes a bug in phantom points' coordinates (debugged with test_multipage_prob.pdf). Reset_CodeRange is removed because it duplicates Clear_CodeRange. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxccman.c 1.17, src/gxttfb.c 1.10, src/ttfmain.c 1.11, src/ttobjs.c 1.6, src/ttobjs.h 1.4]</p> </blockquote> <p><strong><a name="2003-10-08_1143"></a> 2003-10-08 11:43 Alex Cherepanov</strong></p> <blockquote> <pre> Contrary to the published spec (up to v.1.5) Acrobat Distiller 3.01 for Mac can use /Identity instead of a tint transform function in /Separation color space. Extend our PDF interpreter to cover this case. Fix bug 687068. </pre> <p>[lib/pdf_draw.ps 1.77]</p> </blockquote> <p><strong><a name="2003-10-08_1134"></a> 2003-10-08 11:34 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 10). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch implements a proper grid fitting and AlignToPixels. EXPECTED DIFFERENCES : None. </pre> <p>[src/gstype42.c 1.38, src/gxccman.c 1.16, src/gxttfb.c 1.9, src/gxttfb.h 1.7, src/lib.mak 1.144, src/ttfmain.c 1.10, src/ttfoutl.h 1.8]</p> </blockquote> <p><strong><a name="2003-10-07_2002"></a> 2003-10-07 20:02 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 9). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch removes a dynamic biffer from ttfOutliner__BuildGlyphOutline, and the macro wagOffset. ttfFont::ttf_memory is moved to ttfInterpreter::ttf_memory. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxttfb.c 1.8, src/ttfmain.c 1.9, src/ttfmemd.c 1.5, src/ttfoutl.h 1.7, src/ttinterp.c 1.5, src/ttload.c 1.4, src/ttobjs.c 1.5]</p> </blockquote> <p><strong><a name="2003-10-07_1526"></a> 2003-10-07 15:26 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 8). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch implements a single instance of the TT interpreter shared for all TT font instances. EXPECTED DIFFERENCES : None. </pre> <p>[src/gsfont.c 1.23, src/gstype42.c 1.37, src/gxccman.c 1.15, src/gxttfb.c 1.7, src/ttfmain.c 1.8, src/gxfcache.h 1.17, src/gxttfb.h 1.6, src/lib.mak 1.143, src/ttfmemd.c 1.4, src/ttfmemd.h 1.3, src/ttfoutl.h 1.6, src/ttinterp.c 1.4, src/ttobjs.c 1.4, src/ttobjs.h 1.3]</p> </blockquote> <p><strong><a name="2003-10-07_0003"></a> 2003-10-07 00:03 Dan Coby</strong></p> <blockquote> <pre> This is part of the fix for 687055. This change splits the DeviceN parameter handling. The SeparationOrder parameter handling is split into a separate routine. DETAILS: The DeviceN parameter SeparationOrder is used to select which separations are to be included in the output. This parameter is not appropriate for high level devices like pdfwrite. The pdfwrite device does not attempt to separate its output into separations. However the pdfwrite device does use its process color model colors for specifying output colors in some backup cases. If a separation were missing then the it would create an incorrect output color. By splitting out the SeparationOrder parameter we can still use common routines for pdfwrite and other DeviceN output devices. </pre> <p>[src/gdevdevn.c 1.11, src/gdevdevn.h 1.2]</p> </blockquote> <p><strong><a name="2003-10-06_1908"></a> 2003-10-06 19:08 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 7). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes more problems with error codes, which could appear with high level devices. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdtd.c 1.14, src/ttfmain.c 1.7, src/ttobjs.c 1.3]</p> </blockquote> <p><strong><a name="2003-10-06_1643"></a> 2003-10-06 16:43 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 6). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes more problems with error codes. All comparefiles now run fine. Rasters were checked with 72dpi. TT glyphs appear in right places, but sometimes a hinted raster looks worse than the old (unhinted) one. An example is Faktura.pdf . To be analyzed. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxttfb.c 1.6, src/ttfmain.c 1.6]</p> </blockquote> <p><strong><a name="2003-10-06_1642"></a> 2003-10-06 16:42 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A bug convertinging a CID to a glyph index. DETAILS : This portion of code works only while computing a FontBBox for a font subset. EXPECTED DIFFERENCES : None. </pre> <p>[src/gstype42.c 1.36]</p> </blockquote> <p><strong><a name="2003-10-06_1220"></a> 2003-10-06 12:20 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 5). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes some problems with error codes. All comparefiles now run with no failure (rasters not checked yet). EXPECTED DIFFERENCES : None. With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent. </pre> <p>[src/gxccman.c 1.14, src/gxttfb.c 1.5, src/gxttfb.h 1.5, src/ttfmain.c 1.5, src/ttinterp.c 1.3, src/ttload.c 1.3]</p> </blockquote> <p><strong><a name="2003-10-06_1138"></a> 2003-10-06 11:38 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 4). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch fixes problems with memory management. EXPECTED DIFFERENCES : None. With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent. </pre> <p>[src/gsfont.c 1.22, src/gxccman.c 1.13, src/gxfcache.h 1.16, src/gxttfb.c 1.4, src/gxttfb.h 1.4, src/ttfmain.c 1.4, src/ttfmemd.c 1.3, src/ttfoutl.h 1.5, src/ttinterp.c 1.2, src/ttload.c 1.2, src/ttobjs.c 1.2, src/ttobjs.h 1.2]</p> </blockquote> <p><strong><a name="2003-10-06_0834"></a> 2003-10-06 08:34 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 3). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. This patch propagates error codes from the new True Type interpreter, and fixes some minor bugs. EXPECTED DIFFERENCES : None. With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent. </pre> <p>[src/gstype42.c 1.35, src/gxccache.c 1.23, src/gxccman.c 1.12, src/gxchar.c 1.36, src/gxfcache.h 1.15, src/gxfont42.h 1.17, src/gxttfb.c 1.3, src/gxttfb.h 1.3, src/ttfmain.c 1.3, src/ttfoutl.h 1.4]</p> </blockquote> <p><strong><a name="2003-10-02_1530"></a> 2003-10-02 15:30 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter (step 2). DETAILS : The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code. With NEW_TT_INTERPRETER 1 the TT interpreter is now attached and passed a simple test (2210 glyphshow) with \WINDOWS\Fonts\mingliu.ttc, which is a Dynalab font. The TT error processing isn't completed. It may cause a crash. EXPECTED DIFFERENCES : None. </pre> <p>[src/gstype42.c 1.34, src/gxttfb.c 1.2, src/gxttfb.h 1.2, src/lib.mak 1.142, src/ttfmain.c 1.2, src/ttfoutl.h 1.3]</p> </blockquote> <p><strong><a name="2003-10-02_1148"></a> 2003-10-02 11:48 Igor Melichev</strong></p> <blockquote> <pre> Implementing a bridge to the True Type bytecode interpreter. DETAILS : A new switch NEW_TT_INTERPRETER in gx.h disabled the new code. The new code is incomplete (see a "stub" in gstype42.c) and insufficiently debugged. This patch provides necessary data transfer to places, in which the True Type bytecode interpreter must be called. EXPECTED DIFFERENCES : None. </pre> <p>[src/gstext.c 1.13, src/gstype42.c 1.33, src/gx.h 1.13, src/gxccache.c 1.22, src/gxccman.c 1.11, src/gxchar.c 1.35, src/gxfcache.h 1.14, src/gxfont42.h 1.16, src/gxttfb.c 1.1, src/ttfmemd.c 1.2, src/zchar42.c 1.13, src/gxtext.h 1.11, src/gxttfb.h 1.1, src/lib.mak 1.141, src/ttfmemd.h 1.2, src/ttfoutl.h 1.2]</p> </blockquote> <p><strong><a name="2003-10-02_1015"></a> 2003-10-02 10:15 Igor Melichev</strong></p> <blockquote> <pre> Fix : Removing the dependence on graphic state from font cache rutines. DETAILS : This change is algorithmically equivalent. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxccache.c 1.21, src/gxccman.c 1.10, src/gxchar.c 1.34, src/gxfcache.h 1.13]</p> </blockquote> <p><strong><a name="2003-10-02_0959"></a> 2003-10-02 09:59 Igor Melichev</strong></p> <blockquote> <pre> Fix : Characters were cached mixing alpha bits numbers (continued). DETAILS : The previous patch appears incomplete. EXPECTED DIFFERENCES : None (the nightly regression doesn't test alpha bits). </pre> <p>[src/gxccache.c 1.20, src/gxccman.c 1.9, src/gxfcache.h 1.12]</p> </blockquote> <p><strong><a name="2003-10-02_0851"></a> 2003-10-02 08:51 Igor Melichev</strong></p> <blockquote> <pre> Fix : Characters were cached mixing alpha bits numbers. DETAILS : This bug only has an effect when same font renders to devices with different alpha bits. It can cause rendering a cached charascter with a wrong size (devided or multiplied by 1<<alpha_bits). EXPECTED DIFFERENCES : None (the nightly regression doesn't test alpha bits). </pre> <p>[src/gxccache.c 1.19, src/gxchar.c 1.33, src/gxfcache.h 1.11]</p> </blockquote> <p><strong><a name="2003-10-02_0702"></a> 2003-10-02 07:02 Dan Coby</strong></p> <blockquote> <pre> Move the various device fields associated with the DeviceN process color model into a common structure. This allows common routines to be used to support DeviceN process color model features on different devices. The src/gdevdevn.h file was added to define common fields and structures. The first application of this code is for 687055 - Adding support for the DeviceN process color model to the pdfwrite device. </pre> <p>[src/devs.mak 1.97, src/gdevdevn.c 1.10, src/gdevdevn.h 1.1]</p> </blockquote> <p><strong><a name="2003-10-01_1636"></a> 2003-10-01 16:36 Jack Moffitt</strong></p> <blockquote> <pre> Fix two bugs in testdiff that work around missing baselines. </pre> <p>[toolbin/tests/testdiff 1.4]</p> </blockquote> <p><strong><a name="2003-10-01_1344"></a> 2003-10-01 13:44 Igor Melichev</strong></p> <blockquote> <pre> Initial commit for a reduced True Type bytecode interpreter. DETAILS : The True Type bytecode interpreter is branched from the Free Type 1 project. Patented algorithms have been removed. Now it compiles with Ghostscript, but it is never called. EXPECTED DIFFERENCES : None. </pre> <p>[src/lib.mak 1.140, src/ttcalc.c 1.1, src/ttcalc.h 1.1, src/ttcommon.h 1.1, src/ttconf.h 1.1, src/ttconfig.h 1.1, src/ttfinp.c 1.1, src/ttfinp.h 1.1, src/ttfmain.c 1.1, src/ttfmemd.c 1.1, src/ttfmemd.h 1.1, src/ttfoutl.h 1.1, src/ttfsfnt.h 1.1, src/ttinterp.c 1.1, src/ttinterp.h 1.1, src/ttload.c 1.1, src/ttload.h 1.1, src/ttmisc.h 1.1, src/ttobjs.c 1.1, src/ttobjs.h 1.1, src/tttables.h 1.1, src/tttype.h 1.1, src/tttypes.h 1.1]</p> </blockquote> <p><strong><a name="2003-09-30_1516"></a> 2003-09-30 15:16 Alex Cherepanov</strong></p> <blockquote> <pre> Handle missing /BitsPerComponent key case. Fix bug 687956. </pre> <p>[lib/pdf_draw.ps 1.76]</p> </blockquote> <p><strong><a name="2003-09-30_1100"></a> 2003-09-30 11:00 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Don't use Tj when real width is smaller than 1% of Widths. DETAILS : This is a workaround for the bug 687051 "freehand patterns cause incorrect result". See comment in code. Our workaround is hewristical. To get a strongly guaranteed result a bug to be reported to Freehand, which sets a wrong character size with setcachedevice : the setcachedevice arguments appear 144 times bigger when the actual glyph size. After converting to PDF it causes too big numeric errors in a PDF viewer. Adobe Distiller converts this text into a paintings of individual glyphs, loosing the text features, and enlarging the uncompressed output. The Adobe's method appears acceptable with this document because the text actually represents a texture, and the text features (Encoding, etc.) appears unimportant. We can't implement the Adobe's method because we have no idea how to recognize in pdfwrite the case of a Type 3 font represents a texture. Users may want to apply an idiom recognition in PS level for that texture, to convert it into a regular images for a better coordinate precision. The ideom approach is independent to this patch, and we believe that both things can work togeter. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdts.c 1.25]</p> </blockquote> <p><strong><a name="2003-09-29_2032"></a> 2003-09-29 20:32 Alex Cherepanov</strong></p> <blockquote> <pre> Fix calculation of the area where path segments can mark the current band. Old code skipped segments above the page boundary regardless of the line width. Fixes bug 686788 from customer 710. DETAILS: The area is calculated now as [y - expansion.y, y + height + expansion.y] for every band. Beware of FOR_RECTS_NO_ERROR loop silently updating y and height. </pre> <p>[src/gxclpath.c 1.18]</p> </blockquote> <p><strong><a name="2003-09-29_1341"></a> 2003-09-29 13:41 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Don't synchronize graphic state before exiting a charproc. DETAILS : The problem discovered with the test document of the bug 687051 "freehand patterns cause incorrect result". It wrote an excessive clipping path at the end of charproc. This patch doesn't close the bug, because there is another problem (with Type 3 character placement) in there. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdtt.c 1.61]</p> </blockquote> <p><strong><a name="2003-09-28_1954"></a> 2003-09-28 19:54 Alex Cherepanov</strong></p> <blockquote> <pre> Convert input values to the traditional Lab range when input color space of ICC profile is Lab. Before conversion all colors were rendered 100 times darker, i.e. almost black. Fixes bug 600288 from customer 150. </pre> <p>[src/gsicc.c 1.12]</p> </blockquote> <p><strong><a name="2003-09-25_2123"></a> 2003-09-25 21:23 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Inline images mangled charproc stream. DETAILS : The problem discovered with the test document of the bug 687051 "freehand patterns cause incorrect result". The problem happened due to pdf_copy_data can't handle the case when the target file of the source cos_write_stream object is same as the target file for the copying. Implementing a new funtion pdf_copy_data_safe for this case. This patch doesn't close the bug, because there is another problem (with Type 3 character placement) in there. EXPECTED DIFFERENCES : None. </pre> <p>[src/gdevpdfo.c 1.21, src/gdevpdfu.c 1.42, src/gdevpdfx.h 1.75]</p> </blockquote> <p><strong><a name="2003-09-24_1341"></a> 2003-09-24 13:41 Ralph Giles</strong></p> <blockquote> <pre> Correct a typo in the 'make so' target link line. This also allows the Solaris linker to ignore the option, allowing the link to complete on that platform. Thanks to Bob T. for pointing out the issue. Partial fix for bug 686865. DETAILS: I don't know if this was originally a typo or if GNU ld's options have changed. However, the manpage for my version (2.14.90.0.6) clearly states the syntax is -soname=foo. </pre> <p>[src/unix-dll.mak 1.10]</p> </blockquote> <p><strong><a name="2003-09-18_1320"></a> 2003-09-18 13:20 Igor Melichev</strong></p> <blockquote> <pre> Fix : Fonts with zero FontBBox were not anti-aliased. DETAILS : Bug 687036 "gs 8.11 does not anti-alias type 3 bitmap fonts". The bug appeared in gxchar.c revision 1.21. EXPECTED DIFFERENCES : None, because the test tool doesn't test TextAlphaBits > 1. </pre> <p>[src/gxchar.c 1.32]</p> </blockquote> <p><strong><a name="2003-09-16_1354"></a> 2003-09-16 13:54 Igor Melichev</strong></p> <blockquote> <pre> Fix : A bug in compare_glyphs. DETAILS : This fixex the crash with illustrator5.ps mentioned in the bug #687044 "strange elements with text". It appears a 1 year old bug. The behavior could be indeterministic. EXPECTED DIFFERENCES : None. </pre> <p>[src/gxfcopy.c 1.32]</p> </blockquote> <p><strong><a name="2003-09-16_1211"></a> 2003-09-16 12:11 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Don't write a clipping path with setcharwidth. DETAILS : This is a partial fix for the bug #687044 "strange elements with text". See big comments added to gdevpdfg.c . Minor changes : 1. Removed an unsafe cast to gs_state * in gdevpdfg.c with defing a new graphics library function gs_currentscreenphase_pis. 2. Provided a safety with a cast to gs_show_enum * in gdevpdtt.c . 3. defined a new graphics library function gx_get_clip_path_id . EXPECTED DIFFERENCES : A progression in pdfwrite with 238-01.ps . </pre> <p>[src/gdevpdfg.c 1.41, src/gdevpdtt.c 1.60, src/gsht.c 1.17, src/gsstate.c 1.22, src/gxistate.h 1.17, src/gxstate.h 1.8]</p> </blockquote> <p><strong><a name="2003-09-16_1002"></a> 2003-09-16 10:02 Igor Melichev</strong></p> <blockquote> <pre> Don't apply Type 1 hinting to charpath. THIS IS AN INCOMPATIBLE CHANGE : charpath now creates a different outline than before. DETAILS : Adobe doesn't hint charpath. Not sure why GS did. This change makes GS to be closer to Adobe and partially fixes the bug 687044 "strange elements with text". Note that 'charpath fill' never was equal to 'show'. Neither the old hinter, nor the new hinter, nor any combination of them in the pair ('charpath', 'show') give same result. This happens because 'fill' uses the "center pixel inside" rule, but 'show' uses a different one. With the new hinter 'show' performs a spot topology analyzis during the rasterization. This rule doesn't belong to the class of rules, which can be explained in terms "a part of pixel inside". Thus, since "same" or "closer" result isn't possible, the criterion for the choice must lie in another space. I believe that the "Adobe compatibility" is the right one. Besides that, Ghostscript PDF imperpreter emulates the text rendering modes 1,5,6 with 'charpath stroke', and with the hinted charpath the results look strange. EXPECTED DIFFERENCES : pdfwrite + ppmraw 72pdi : 017-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 034-01.ps 045-01.ps 093-01.ps 220-01.ps 327-01.ps 334-01.ps 335-01.ps 336-01.ps alphabet.ps bugsample.pdf PixelisAd.pdf ridt91.eps pdfwrite + ppmraw 300pdi : 017-01.ps 027-01.ps 027-05.ps 027-09.ps 027-13.ps 034-01.ps 045-01.ps 093-01.ps 220-01.ps 327-01.ps 334-01.ps 335-01.ps 336-01.ps alphabet.ps bugsample.pdf PixelisAd.pdf ridt91.eps ppmraw 72pdi : 027-01.ps 027-05.ps 027-09.ps 027-13.ps 034-01.ps 220-01.ps alphabet.ps bugsample.pdf PixelisAd.pdf ridt91.eps ppmraw 300pdi : 027-01.ps 027-05.ps 027-09.ps 027-13.ps 034-01.ps 220-01.ps alphabet.ps bugsample.pdf PixelisAd.pdf ridt91.eps two_encodings.ps </pre> <p>[src/gxtype1.c 1.32]</p> </blockquote> <p><strong><a name="2003-09-16_0711"></a> 2003-09-16 07:11 Dan Coby</strong></p> <blockquote> <pre> Remove extra carriage returns (^M) at the end of some lines. </pre> <p>[lib/pdf_draw.ps 1.75]</p> </blockquote> <p><strong><a name="2003-09-15_2005"></a> 2003-09-15 20:05 Alex Cherepanov</strong></p> <blockquote> <pre> Following PLRM, set identity initial matrix for non-forwarding nulldevice. Fix bug 687041 </pre> <p>[src/gdevnfwd.c 1.12]</p> </blockquote> <p><strong><a name="2003-09-15_1711"></a> 2003-09-15 17:11 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Write color commands to charprocs which don't call setcachedevice[2]. DETAILS : This is a partial fix for the bug #687044 "strange elements with text". Minor change : Removed a duplicated instruction from gdevpdtt.c . This patch doesn't cause a difference with our test base. </pre> <p>[src/gdevpdti.c 1.20, src/gdevpdtt.c 1.59]</p> </blockquote> <p><strong><a name="2003-09-15_1004"></a> 2003-09-15 10:04 Igor Melichev</strong></p> <blockquote> <pre> Fix : A bug in the new code of gs_rectfill (gsdps1.c Revision 1.9). </pre> <p>[src/gsdps1.c 1.10]</p> </blockquote> <p><strong><a name="2003-09-13_0204"></a> 2003-09-13 02:04 Russell Lang</strong></p> <blockquote> <pre> Fix: Prevent crash caused by dsc_copy_string not stopping at the end of a string occasionally. Fixes bug 687045 "Crash while parsing long %%DocumentProcessColor line". Report (atend) in the trailer as being unknown. Recognise %%DocumentProcessColors and %%DocumentCustomColors in the trailer. Allocate colour details using the correct allocator so they will be freed correctly. </pre> <p>[src/dscparse.c 1.14]</p> </blockquote> <p><strong><a name="2003-09-12_0442"></a> 2003-09-12 04:42 Dan Coby</strong></p> <blockquote> <pre> Provide a means for disabling color space substitution. DETAILS: Ghostscript supports substituting CIE and ICC color spaces for DeviceGray DeviceRGB, and DeviceCMYK color spaces. This is part of the support for the UseCIEColor feature in PostScript. This substitution is done inside the PostScript code in lib/gs_devcs.ps. The recent improvements to the pdfwrite device mean that the interpreter's color space and color values are now passed to the output file. Since the color space substitution is done prior to passing the color space to the interpreter, the original color space is lost if UseCIEColor is set. This change provides a means to prevent the substitution. Thus the original color space is passed to the interpreter and on to the output file for pdfwrite. </pre> <p>[doc/Use.htm 1.89, lib/gs_devcs.ps 1.2, lib/gs_init.ps 1.96]</p> </blockquote> <p><strong><a name="2003-09-11_2112"></a> 2003-09-11 21:12 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implement CDevProc handling for CIDFontType 2. DETAILS : It defines a new gs_text_process return value TEXT_PROCESS_CDEVPROC, which allows a device to request a special interpreter callout for executing CDevProc. The processing is some tricky : we apply zchar_set_cache to prepare interpreter stacks, and hook its results in pte->procs->set_cache . This patch handles CDevProc only for CIDFontType 2. Other font types should be a separate patch. This patch causes progressions in pdfwrite : japan.ps Type11CDevProc.ps </pre> <p>[src/gdevpdtc.c 1.28, src/gdevpdte.c 1.44, src/gdevpdtt.c 1.58, src/gdevpdtt.h 1.18, src/gstext.h 1.9, src/gxfont.h 1.21, src/int.mak 1.116, src/zchar.c 1.12, src/zchar1.c 1.32, src/zchar42.c 1.12, src/zchar42.h 1.1]</p> </blockquote> <p><strong><a name="2003-09-11_2043"></a> 2003-09-11 20:43 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : A part of CID text was missed after a font change. </pre> <p>[src/gdevpdtc.c 1.27]</p> </blockquote> <p><strong><a name="2003-09-11_1634"></a> 2003-09-11 16:34 Alex Cherepanov</strong></p> <blockquote> <pre> Ignore system-defined FILENAME_MAX when it is too small. HP-UX 11i 11.11 incorrectly defines FILENAME_MAX as 14. Fix bug 687030 from customer 1060 </pre> <p>[src/gp_unifs.c 1.15]</p> </blockquote> <p><strong><a name="2003-09-11_1114"></a> 2003-09-11 11:14 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Stream content of ICC color space was missed. It seems a very old bug... </pre> <p>[src/gdevpdfo.c 1.20]</p> </blockquote> <p><strong><a name="2003-09-10_1201"></a> 2003-09-10 12:01 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Improving text colors. DETAILS : 1. Check the color and clip change after each callout (gdevpdtt.c). Fixes the bug 686822 "Wrong PDF from kshow with grestore". 2. Don't write color into charprocs of bitmap fonts. 3. Skip writing a process color imaging a cached bitmap character. The old code wrote redundant "0 g" commands. This patch causes progressions in pdfwrite : 093-01.ps 165-01.ps 244-01.ps kshow_with_grestore.ps </pre> <p>[src/gdevpdfb.c 1.20, src/gdevpdtt.c 1.57]</p> </blockquote> <p><strong><a name="2003-09-10_0801"></a> 2003-09-10 08:01 Igor Melichev</strong></p> <blockquote> <pre> Fix (pdfwrite) : Image XObject was not added into pattern's Resources. DETAILS : Bug 687028 "ps2pdf for makepattern creates PDF unreadable by Acrobat Reader". </pre> <p>[src/gdevpdfj.c 1.26]</p> </blockquote> <p><strong><a name="2003-09-09_2035"></a> 2003-09-09 20:35 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Apply the color space serialization for color space comparizon (continued). DETAILS : Fixes redundant Pattern color space objects. Bug 687022 "pdfwrite : Redundant color space objects" Also fixed a bug in gx_serialize_Pattern. </pre> <p>[src/gdevpdfc.c 1.39, src/gdevpdfg.c 1.40, src/gdevpdfg.h 1.26, src/gdevpdfv.c 1.30, src/gspcolor.c 1.12]</p> </blockquote> <p><strong><a name="2003-09-09_1930"></a> 2003-09-09 19:30 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : A minor code cleanup. DETAILS : 'sclose' is inserted for a conformity, rather it has no effect in this case. The "fixme" comment is removed because it appears wrong. If the color space is new, it needs a complete serialization for storing the data to PDF resource. We can't delay the serialization because the life time of the original color space may exceed before the next comparizon happens. Contrary, if the color space is not new, it also needs a complete serialization for a full comparison, to know whether it is same color space. Thus, a complete serialization is required in any case. </pre> <p>[src/gdevpdfc.c 1.38]</p> </blockquote> <p><strong><a name="2003-09-09_1603"></a> 2003-09-09 16:03 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Apply the color space serialization for color space comparizon. DETAILS : Fixes the bug 687022 "pdfwrite : Redundant color space objects" </pre> <p>[src/devs.mak 1.96, src/gdevpdfc.c 1.37, src/gdevpdfg.h 1.25]</p> </blockquote> <p><strong><a name="2003-09-09_1554"></a> 2003-09-09 15:54 Igor Melichev</strong></p> <blockquote> <pre> Implementing a serialization for color spaces and functions (continued 2). DETAILS : Fixes a bug in gs_function_Sd_serialize, fn_common_serialize. </pre> <p>[src/gsfunc.c 1.9, src/gsfunc0.c 1.12]</p> </blockquote> <p><strong><a name="2003-09-09_1425"></a> 2003-09-09 14:25 Igor Melichev</strong></p> <blockquote> <pre> Implementing a serialization for color spaces and functions (continued). DETAILS : This stuff will be used by high level devices for comparing color spaces. A serialization will. be used because we need to compare color spaces, which's life times don't intersect. This patch only defines new functions but never calls them. Regressions should not appear. A draft implementation for the functions is provided. A debugging of them will be a separate issue. </pre> <p>[src/gscie.h 1.13, src/gscscie.c 1.10, src/gsicc.c 1.11, src/gspcolor.c 1.11, src/lib.mak 1.139]</p> </blockquote> <p><strong><a name="2003-09-09_1244"></a> 2003-09-09 12:44 Igor Melichev</strong></p> <blockquote> <pre> Implementing a serialization for color spaces and functions. DETAILS : This stuff will be used by high level devices for comparing color spaces. A serialization will. be used because we need to compare color spaces, which's life times don't intersect. This patch only defines new functions but never calls them. Regressions should not appear. A draft implementation for the functions is provided. A debugging of them will be a separate issue. </pre> <p>[src/gscdevn.c 1.15, src/gscdevn.h 1.8, src/gscolor2.c 1.15, src/gscpixel.c 1.9, src/gscscie.c 1.9, src/gscsepr.c 1.22, src/gscspace.c 1.10, src/gsfunc.c 1.8, src/gsfunc.h 1.9, src/gsfunc0.c 1.11, src/gsfunc3.c 1.16, src/gsfunc4.c 1.14, src/gxcspace.h 1.10, src/gxfunc.h 1.8, src/lib.mak 1.138]</p> </blockquote> <p><strong><a name="2003-09-08_1330"></a> 2003-09-08 13:30 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc compiler warnings. </pre> <p>[src/gdevdgbr.c 1.11, src/gstrans.c 1.18]</p> </blockquote> <p><strong><a name="2003-09-08_1319"></a> 2003-09-08 13:19 Igor Melichev</strong></p> <blockquote> <pre> Fix : Impproving the coordinate precision in function fill_rectangle_hl_color. DETAILS : It fixes the coordinate precision in the recent patch. With pdfwrite the following files become better (closer to the old code) : 213-01.ps 255-01.ps 270-01.ps 442-01.ps </pre> <p>[src/gdevdflt.c 1.13, src/gdevnfwd.c 1.11, src/gdevpdfd.c 1.33, src/gsdps1.c 1.9, src/gspaint.c 1.8, src/gxdevcli.h 1.18]</p> </blockquote> <p><strong><a name="2003-09-08_1206"></a> 2003-09-08 12:06 Igor Melichev</strong></p> <blockquote> <pre> Fix : Cygwin/gcc compiler warnings. DETAILS : The change to zbfont.c may cause a progression on low endian platforms. </pre> <p>[src/gdevpdfc.c 1.36, src/gxcldev.h 1.13, src/gxcpath.c 1.8, src/lib.mak 1.137, src/zbfont.c 1.24, src/ztrans.c 1.21]</p> </blockquote> <p><strong><a name="2003-09-08_1145"></a> 2003-09-08 11:45 Igor Melichev</strong></p> <blockquote> <pre> Defining a new device virtual function fill_rectangle_hl_color. This fuction is used to implement gs_rectfill and gs_fillpage with a high level color handling. DETAILS : The old device virtual function fill_rectangle has no way to pass a high level color. Therefore high level devices always used process colors with rectfill and fillpage. See gxdevcli.h for the definition of the new function. The new function is used to implement gs_rectfill and gs_fillpage in pdfwrite. gs_rectfill and gs_fillpage are modified to provide the new logics. gdevpdfd.c is reorganised with factoring out some common code parts. Fixes the bug #687024 "rectfill doesn't pass high level colors to device". This patch causes a MINOR DIFFERENCE in color in all Genoa tests with pdfwrite : a gray rectangle in the header gets a sligtly different gray value. Besides that, the following files render few differently due to coordinate rounding in pdfwrite : 245-13.ps 442-01.ps </pre> <p>[src/gdevbbox.c 1.14, src/gdevdflt.c 1.12, src/gdevnfwd.c 1.10, src/gdevpdf.c 1.71, src/gdevpdfd.c 1.32, src/gdevpdfx.h 1.74, src/gdevrops.c 1.8, src/gsdps1.c 1.8, src/gspaint.c 1.7, src/gxclip.c 1.11, src/gxclip2.c 1.8, src/gxclipm.c 1.10, src/gxclist.c 1.11, src/gxdevcli.h 1.17, src/gxdevice.h 1.13, src/gxhldevc.c 1.3, src/gxhldevc.h 1.4, src/lib.mak 1.136]</p> </blockquote> <p><strong><a name="2003-09-05_2130"></a> 2003-09-05 21:30 Dan Coby</strong></p> <blockquote> <pre> Add gxhldevc.c and gxhldevc.h to the file list. </pre> <p>[doc/Develop.htm 1.121]</p> </blockquote> <p><strong><a name="2003-09-04_1617"></a> 2003-09-04 16:17 Ralph Giles</strong></p> <blockquote> <pre> VMS fix from Forrest Cahoon. </pre> <p>[src/gp_vms.c 1.35]</p> </blockquote> <p><strong><a name="2003-09-04_1451"></a> 2003-09-04 14:51 Igor Melichev</strong></p> <blockquote> <pre> Removing rudiments of the old hinter (step 5). DETAILS : Removed an unused variable. </pre> <p>[src/gxtype1.c 1.31]</p> </blockquote> <p><strong><a name="2003-09-04_1431"></a> 2003-09-04 14:31 Igor Melichev</strong></p> <blockquote> <pre> Removing rudiments of the old hinter (step 4). </pre> <p>[src/gxop1.h 1.7]</p> </blockquote> <p><strong><a name="2003-09-04_1428"></a> 2003-09-04 14:28 Igor Melichev</strong></p> <blockquote> <pre> Removing rudiments of the old hinter (step 3). DETAILS : The structure gs_op1_state stored an unused data and now removed. The change to gstype2.c ln 262-279 is not algorithmically equivalent. The old code erroneusely called closepath in some cases. It produced a small dirt in rendering. Due to that, this patch causes progressions in rendering : 72pdi : bugsample.pdf PixelisAd.pdf RodinCIDEmbed.pdf 300dpi : bugsample.pdf PixelisAd.pdf </pre> <p>[src/gdevpsfx.c 1.24, src/gstype1.c 1.28, src/gstype2.c 1.31, src/gxop1.h 1.6, src/gxtype1.c 1.30, src/gxtype1.h 1.17, src/lib.mak 1.135]</p> </blockquote> <p><strong><a name="2003-09-04_1210"></a> 2003-09-04 12:10 Igor Melichev</strong></p> <blockquote> <pre> Fix : Removing obsolete linker statements from Win32 linkage definitions (an addition 2). DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-September/003574.html was wrong. Now fixed. </pre> <p>[src/dwsetup.def 1.4, src/dwuninst.def 1.4, src/msvc32.mak 1.49]</p> </blockquote> <p><strong><a name="2003-09-04_1130"></a> 2003-09-04 11:30 Igor Melichev</strong></p> <blockquote> <pre> Fix (the new type 1 hinter) : Slightly sloped stems were wrongly grid-fitted. DETAILS : It shifted a stem pole to central coordinate of the stem. Unsloped stems are insencitive, but sloped ones got a wrong placement. Fixes the bug 687018 "Shift in glyph position/bbox using new font renderer". This patch causes differences in rendering : 72pdi : 033-52-5873.pdf alphabet.ps bulletin.pdf fonttest.pdf HeiseiMinStd.pdf Openhuis_pdf_zw.pdf ridt91.eps Svd.pdf 300dpi : 033-52-5873.pdf 045-01.ps 455690.pdf 86554321.pdf aaon97_p7.pdf adesso6.pdf ai2.pdf bulletin.pdf fonttest.pdf HeiseiMinStd.pdf LD.pdf Openhuis_pdf_zw.pdf prob.pdf ridt91.eps RodinCIDEmbed.pdf Svd.pdf The baseline to be updated. </pre> <p>[src/gxhintn.c 1.32]</p> </blockquote> <p><strong><a name="2003-09-04_0952"></a> 2003-09-04 09:52 Jouk Jansen</strong></p> <blockquote> <pre> Committing in . OpenVMS patches Modified Files: gs/src/gp_vms.c gs/src/openvms.mmk gs/src/vms_x_fix.h ---------------------------------------------------------------------- </pre> <p>[src/gp_vms.c 1.34, src/openvms.mmk 1.26, src/vms_x_fix.h 1.7]</p> </blockquote> <p><strong><a name="2003-09-03_2031"></a> 2003-09-03 20:31 Igor Melichev</strong></p> <blockquote> <pre> Fix : Removing obsolete linker statements from Win32 linkage definitions (an addition). </pre> <p>[src/dwsetup.def 1.3, src/dwuninst.def 1.3, src/msvc32.mak 1.48]</p> </blockquote> <p><strong><a name="2003-09-03_2027"></a> 2003-09-03 20:27 Igor Melichev</strong></p> <blockquote> <pre> Removing rudiments of the old hinter (step 3, final). </pre> <p>[src/gxhint1.c 1.7, src/gxhint2.c 1.8, src/gxhint3.c 1.9]</p> </blockquote> <p><strong><a name="2003-09-03_2021"></a> 2003-09-03 20:21 Igor Melichev</strong></p> <blockquote> <pre> Removing rudiments of the old hinter (step 2). DETAILS : This patch removes rudiments of the old hinter, which were enclosed with "#ifdef KEEP_OLD_HINTER", and removes gxhint1.c, gxhint2.c gxhint3.c from makefiles. </pre> <p>[src/gstype2.c 1.30, src/gxtype1.c 1.29, src/gxtype1.h 1.16, src/lib.mak 1.134]</p> </blockquote> <p><strong><a name="2003-09-03_1620"></a> 2003-09-03 16:20 Jack Moffitt</strong></p> <blockquote> <pre> Make run_nightly retry sending mail every 5 seconds. </pre> <p>[toolbin/tests/run_nightly 1.20]</p> </blockquote> <p><strong><a name="2003-09-03_0322"></a> 2003-09-03 03:22 Ralph Giles</strong></p> <blockquote> <pre> Rename the client header errors.h to ierrors.h. This is more consistent with iapi.h, and reduces the risk of a namespace conflict. The old errors.h header is still available, and simply includes ierrors.h for compatibility. This file is marked as deprecated and will be removed in a future release. This change is in response to a spurious report of a namespace conflict on MacOS in bug 686966. </pre> <p>[doc/API.htm 1.37, doc/C-style.htm 1.44, doc/Develop.htm 1.120, src/dmmain.c 1.2, src/dpmain.c 1.9, src/dwmain.c 1.13, src/dwmainc.c 1.15, src/dxmain.c 1.11, src/dxmainc.c 1.8, src/errors.h 1.8, src/fapi_ft.c 1.11, src/fapiufst.c 1.23, src/gs.c 1.11, src/gsdll.c 1.10, src/gsiomacres.c 1.5, src/ialloc.c 1.6, src/iapi.c 1.9, src/iapi.h 1.12, src/ibnum.c 1.7, src/iccfont.c 1.8, src/icontext.c 1.16, src/idict.c 1.8, src/idparam.c 1.8, src/ierrors.h 1.1, src/igc.c 1.10, src/igstate.h 1.8, src/iinit.c 1.9, src/ilocate.c 1.9, src/imain.c 1.33, src/imainarg.c 1.31, src/iname.c 1.7, src/inobtokn.c 1.5, src/int.mak 1.115, src/interp.c 1.15, src/iparam.c 1.9, src/iplugin.c 1.4, src/ireclaim.c 1.7, src/isave.c 1.8, src/iscan.c 1.14, src/iscanbin.c 1.13, src/iscannum.c 1.7, src/istack.c 1.6, src/iutil.c 1.9, src/iutil2.c 1.6, src/macos-fw.mak 1.7, src/opcheck.h 1.6, src/oper.h 1.6, src/os2.mak 1.34, src/zcid.c 1.8, src/zfile1.c 1.11, src/ziodev.c 1.13]</p> </blockquote> <p><strong><a name="2003-09-02_2250"></a> 2003-09-02 22:50 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing a high level color handling (a 3d improvement). DETAILS : This fixes the problem with 477-03.ps described in the bug #687023. </pre> <p>[src/gdevpdfc.c 1.35]</p> </blockquote> <p><strong><a name="2003-09-02_2157"></a> 2003-09-02 21:57 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing a high level color handling (a 2nd improvement). DETAILS : This fixes a minor bug in the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003560.html : use process color when gx_hld_get_color_space_and_ccolor returns an unknown result. This change should not change behavior because this case currently never happens. </pre> <p>[src/gdevpdfg.c 1.39]</p> </blockquote> <p><strong><a name="2003-09-02_1910"></a> 2003-09-02 19:10 Ralph Giles</strong></p> <blockquote> <pre> Propagate CFLAGS and LDFLAGS values set in the environment when configure is run to the autoconf top-level makefile. Unlike passing the same values to make, the values are added to the generated arguments and act supplementally. Closes bug 686943. </pre> <p>[src/Makefile.in 1.27]</p> </blockquote> <p><strong><a name="2003-09-02_1547"></a> 2003-09-02 15:47 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing a high level color handling (an improvement). DETAILS : This fixes bugs in the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003560.html : 1. pdf_cs_Pattern_uncolored_hl wrote a wrong base space of a Pattern space. It fixes a failure with 245-01.ps . 2. Improving the approximation in pdf_write_ccolor. </pre> <p>[src/gdevpdfc.c 1.34, src/gdevpdfg.c 1.38]</p> </blockquote> <p><strong><a name="2003-09-02_1017"></a> 2003-09-02 10:17 Igor Melichev</strong></p> <blockquote> <pre> Removing rudiments of the old hinter (step 1). DETAILS : This patch encloses rudiments of the old hinter with "#ifdef KEEP_OLD_HINTER", where KEEP_OLD_HINTER is undefined. This change is algorithmically equivalent, because the new hinter worked instead the old one. Only exception is the change to gstype1.c ln 370 : the condition t1_hinter__is_x_fitting(h) is waeker than the old pcis->fh.use_x_hints, because the new hinter applies an X-grid fitting with a slightly sloped transforms. The change to gdevpsfx.c define local arrays for storing hints. The old code used the old hinter structures, which appear too heavy for the need of gdevpsfx.c . </pre> <p>[src/gdevpsfx.c 1.23, src/gstype1.c 1.27, src/gstype2.c 1.29, src/gxhint1.c 1.6, src/gxhint2.c 1.7, src/gxhint3.c 1.8, src/gxhintn.c 1.31, src/gxhintn.h 1.14, src/gxtype1.c 1.28, src/gxtype1.h 1.15]</p> </blockquote> <p><strong><a name="2003-08-30_2218"></a> 2003-08-30 22:18 Ralph Giles</strong></p> <blockquote> <pre> Add 'extern "C"' protection to iapi.h for inclusion in C++ clients. Closes bug 686990. </pre> <p>[src/iapi.h 1.11]</p> </blockquote> <p><strong><a name="2003-08-30_1910"></a> 2003-08-30 19:10 Dan Coby</strong></p> <blockquote> <pre> Fix for 686948 Dotted lines messing in PDF. Draw all line cap types for zero line lengths. Previously only rounded caps were drawn. DETAILS: This is a (minor) revision to a the previous fix from Jeong for this problem. For those people who do not remember, this problem involves a dashed line with a zero line length for the imaged (pen down) part of the dashed line. Ghostscript currently calls this a degenerate situation and does nothing except for round line caps. Jeong had previously proposed changing the test to any line cap except butt caps. Jeong removed this proposal after testing and finding that Adobe Acrobat drew thin line segments even for butt line caps. This proposal simply removes the test for line cap type completely. It does still leaves a test for dot length = 0. The routine already contains code for using adjacent line segments to determine a 'direction' for zero length segments. Testing with both butt and square line caps and with on axis and diagonal lines produces results comparable to Adobe Acrobat. (Acrobat is not consistent with segment widths for the butt joints.) </pre> <p>[src/gxstroke.c 1.9]</p> </blockquote> <p><strong><a name="2003-08-30_0803"></a> 2003-08-30 08:03 jeong</strong></p> <blockquote> <pre> When a PDF file has an embedded TrueType font with wrong 'name' table entry, /findname procedure in gs_ttf.ps throwed a rangecheck error. Now it just returns 'false' as an output instead of making rangecheck error. Bug# 686903. </pre> <p>[lib/gs_ttf.ps 1.32]</p> </blockquote> <p><strong><a name="2003-08-28_1942"></a> 2003-08-28 19:42 Igor Melichev</strong></p> <blockquote> <pre> pdfwrite : Implementing a high level color handling. DETAILS : pdfwrite now passes colors identically except minor problems, which should be fixed soon : 1. rectfill still converts colors. This happens because gs_rectfill calls dev_proc(pdev,fill_rectangle), which doesn't pass device color. Therefore high level color is not available for pdfwrite. This is an architectural problem which requires a hard decision. 2. Some documents (gs.anotherfailure.pdf is an example) generate too many color space objects to the output PDF. Requires an optimization. 3. 477-03.ps embeds a color space that can't write to PDF due to PDF limitations. Process colors are written into PDF. 4. Few tests cause significant difference in colors : 0.pdf (yellow background) MagicEye.pdf (yellow background) Fixed_Original.pdf Testform.v1.0.2.pdf (a gray rectangle disappears) To be analyzed. </pre> <p>[src/devs.mak 1.95, src/gdevpdfc.c 1.33, src/gdevpdfd.c 1.31, src/gdevpdfg.c 1.37, src/gdevpdfg.h 1.24, src/gdevpdfv.c 1.29, src/gdevpdtw.c 1.25, src/gdevpsdf.h 1.20, src/gdevpsdu.c 1.20, src/gxhldevc.c 1.2, src/gxhldevc.h 1.3]</p> </blockquote> <p><strong><a name="2003-08-28_1018"></a> 2003-08-28 10:18 Igor Melichev</strong></p> <blockquote> <pre> Fix : Removing obsolete linker statements from Win32 likage definitions. </pre> <p>[src/dw32c.def 1.3, src/dwmain32.def 1.3, src/gsdll32.def 1.4]</p> </blockquote> <p><strong><a name="2003-08-26_2108"></a> 2003-08-26 21:08 Igor Melichev</strong></p> <blockquote> <pre> Fixing all MSVC compiler warnings (icclib). </pre> <p>[icclib/icc.c 1.9]</p> </blockquote> <p><strong><a name="2003-08-26_2054"></a> 2003-08-26 20:54 Igor Melichev</strong></p> <blockquote> <pre> Fixing all MSVC compiler warnings (Release build). </pre> <p>[src/gxclipm.c 1.9]</p> </blockquote> <p><strong><a name="2003-08-26_1538"></a> 2003-08-26 15:38 Igor Melichev</strong></p> <blockquote> <pre> Fixing all MSVC compiler warnings. </pre> <p>[src/gdevpsdu.c 1.19, src/gdevupd.c 1.13, src/gsciemap.c 1.15, src/gswts.c 1.5, src/gxclrect.c 1.6, src/gxdda.h 1.5, src/gxshade.c 1.17, src/gxstroke.c 1.8, src/sdcparam.c 1.6]</p> </blockquote> <p><strong><a name="2003-08-26_1237"></a> 2003-08-26 12:37 Igor Melichev</strong></p> <blockquote> <pre> A preparation for high level color handling in vector devices. THIS IS INCOMPATIBLE CHANGE for devices derived from gx_device_vector. Now they must implement the new virtual function can_handle_hl_color. A simplest impementation compatible to the old behavior is to return false. DETAILS : The new code uses the new functions gx_hld_save_color and gx_hld_saved_color_equal instead the old gx_saved_color_update. This allows devices to know when the client color changes and to generate the appropriate output. This affects pdfwrite, pswrite, epswrite, pxlmono and pxlcolor devices. However the devices still write device colors to output. An implementation of writing the client color in pdfwrite, pswrite, epswrite will be the next improvement. Since a big part of color code is shared with pxlmono and pxlcolor, we need a switch for checking whether the device can handle high level colors. For this purpose we add a new virtual function can_handle_hl_color to gx_device_vector_procs. Currently all implementation of this function return false, and all devices still write process colors. A minor change : psdf_setfillcolor and psdf_setstrokecolor are removed because they were never called. </pre> <p>[src/gdevpdfd.c 1.30, src/gdevpdfg.c 1.36, src/gdevpdfg.h 1.23, src/gdevpdfx.h 1.73, src/gdevpdtt.c 1.56, src/gdevps.c 1.36, src/gdevpsdf.h 1.19, src/gdevpsdu.c 1.18, src/gdevpx.c 1.14, src/gdevvec.c 1.20, src/gdevvec.h 1.12, src/gsdcolor.h 1.12, src/gxdcolor.c 1.12, src/gxhldevc.h 1.2, src/lib.mak 1.133]</p> </blockquote> <p><strong><a name="2003-08-21_1950"></a> 2003-08-21 19:50 Raph Levien</strong></p> <blockquote> <pre> Fix decimal value of NoView annotation flag in annotvisible logic. Fixes bug #687010. DETAILS: On page 493 of the PDF 1.4 reference, NoView is specified as bit position 6, which would seem to correspond to the old value of 64. However, for some reason Adobe counts its bit positions starting at 1, so the actual numeric value is 2^(bit pos - 1), or 32. </pre> <p>[lib/pdf_draw.ps 1.74]</p> </blockquote> <p><strong><a name="2003-08-21_1718"></a> 2003-08-21 17:18 Raph Levien</strong></p> <blockquote> <pre> Re-enable tempfile creation with empty string prefix - was disabled as part of tempfile prefix_is_simple checking patch. </pre> <p>[src/zfile.c 1.38]</p> </blockquote> <p><strong><a name="2003-08-21_1455"></a> 2003-08-21 14:55 Igor Melichev</strong></p> <blockquote> <pre> Fixing some Cygwin/gcc warnings. </pre> <p>[src/gdevdgbr.c 1.10, src/gdevepsc.c 1.10, src/gdevmrun.c 1.5, src/gdevpdtw.c 1.24, src/gspath.c 1.8, src/gstype1.c 1.26, src/gstype1.h 1.8, src/gxcmap.c 1.16, src/gxcpath.c 1.7, src/gxhintn.c 1.30, src/gxpath.h 1.8, src/gzacpath.h 1.6, src/ifont2.h 1.6]</p> </blockquote> <p><strong><a name="2003-08-21_1425"></a> 2003-08-21 14:25 Igor Melichev</strong></p> <blockquote> <pre> Removing the obsolete code DROPOUT_PREVENTION 0. DETAILS : The macros PSEUDO_RASTERIZATION, ADJUST_SERIF, CHECK_SPOT_CONTIGUITY are left for further developmant. We intend to convert the filling algorithm into a template like we did with gxdtfill.h . The goal is to generate several instances of the algorithm optimized for different cases : a non-character fill (with the path adjustment and with no dropout prevention), character fill (with no path adjustment and with dropout prevention), and spot topology analyzis for autohinting (no adjustment, no dropout prevention, store trapezoids into a special storage). The ADJUST_SERIF code probably will die after True Type hinter is done. </pre> <p>[src/gdevddrw.c 1.8, src/gdevddrw.h 1.3, src/gx.h 1.12, src/gxccache.c 1.18, src/gxchar.c 1.31, src/gxfill.c 1.39, src/gxpcopy.c 1.9, src/gxpflat.c 1.6, src/zchar42.c 1.11]</p> </blockquote> <p><strong><a name="2003-08-21_1347"></a> 2003-08-21 13:47 Igor Melichev</strong></p> <blockquote> <pre> Removing the obsolete code NEW_TYPE1_HINTER 0 from the character renderer. DETAILS : A small part of the old Type 1 hinter is still called from gdevpsfx.c for converting Type 1 font to Type 2. gdevpsfx.c to be ported to the new Type 1 hinter and then the old hinter (gxhint1.c, gxhint2.c, gxhint3.c) to be completely removed. </pre> <p>[src/gstype1.c 1.25, src/gstype2.c 1.28, src/gx.h 1.11, src/gxtype1.c 1.27, src/gxtype1.h 1.14]</p> </blockquote> <p><strong><a name="2003-08-20_1953"></a> 2003-08-20 19:53 Igor Melichev</strong></p> <blockquote> <pre> Removing the obsolete code PATTERN_STREAM_ACCUMULATION 0 . </pre> <p>[src/gdevpdf.c 1.70, src/gdevpdfi.c 1.49, src/gdevpdfm.c 1.32, src/gdevpdfv.c 1.28, src/gdevpdfx.h 1.72, src/gdevpdti.c 1.19, src/gsptype1.c 1.17, src/gx.h 1.10, src/gxpcmap.c 1.10, src/gxpcolor.h 1.9, src/zpcolor.c 1.11]</p> </blockquote> <p><strong><a name="2003-08-20_1758"></a> 2003-08-20 17:58 Igor Melichev</strong></p> <blockquote> <pre> Removing the obsolete code NEW_COMBINE_PATH 0 . </pre> <p>[src/gp_dosfs.c 1.15, src/gp_iwatc.c 1.16, src/gp_macio.c 1.31, src/gp_ntfs.c 1.20, src/gp.h 1.26, src/gp_os2.c 1.29, src/gp_unifn.c 1.14, src/gp_unifs.c 1.14, src/gp_vms.c 1.33, src/icontext.c 1.15, src/icstate.h 1.12, src/imainarg.c 1.30, src/zfile.c 1.37, src/zfile1.c 1.10, lib/gs_ciddc.ps 1.12, lib/gs_fonts.ps 1.42, lib/gs_init.ps 1.95, lib/gs_res.ps 1.35]</p> </blockquote> <p><strong><a name="2003-08-19_2020"></a> 2003-08-19 20:20 Alex Cherepanov</strong></p> <blockquote> <pre> Cygwin wants X11 libraries in the order Xt SM ICE Xext X11 but autoconf generated them in the order SM ICE Xt Xext X11. Restore pre-autoconf order. </pre> <p>[src/configure.ac 1.33]</p> </blockquote> <p><strong><a name="2003-08-18_2338"></a> 2003-08-18 23:38 Ralph Giles</strong></p> <blockquote> <pre> Raise the limit on interpreter memory to 1GB for regression testing. This larger value is required to process the ai2.pdf test file with pdfwrite at the default (720 dpi) resolution. </pre> <p>[toolbin/tests/gstestgs.py 1.21]</p> </blockquote> <p><strong><a name="2003-08-18_2121"></a> 2003-08-18 21:21 Dan Coby</strong></p> <blockquote> <pre> This commit is part of extending support for high level colors to high level devices. In general, additions have been made to the device colors to include the high level color values used to create the device color. A flag was also added to indicate if the color information (in dev_color->ccolor) is valid. There are also two files being added to provide support for saving and comparing the high level color information. </pre> <p>[src/devs.mak 1.94, src/gdevbbox.c 1.13, src/gdevdbit.c 1.9, src/gdevpdfb.c 1.19, src/gdevpdfd.c 1.29, src/gdevpdfg.c 1.35, src/gdevpdfi.c 1.48, src/gdevpdfv.c 1.27, src/gdevpdtt.c 1.55, src/gdevplnx.c 1.6, src/gdevps.c 1.35, src/gdevpx.c 1.13, src/gdevvec.c 1.19, src/gsciemap.c 1.14, src/gscolor.c 1.11, src/gscsepr.c 1.21, src/gsdcolor.h 1.11, src/gslib.c 1.12, src/gspcolor.c 1.10, src/gsptype2.c 1.13, src/gsptype2.h 1.8, src/gxacpath.c 1.9, src/gxcmap.c 1.15, src/gxdcolor.c 1.11, src/gxhldevc.c 1.1, src/gxhldevc.h 1.1, src/gxi12bit.c 1.6, src/gxicolor.c 1.9, src/gxifast.c 1.9, src/gximage3.c 1.12, src/gxipixel.c 1.9, src/gxpcmap.c 1.9, src/lib.mak 1.132]</p> </blockquote> <p><strong><a name="2003-08-18_2043"></a> 2003-08-18 20:43 Dan Coby</strong></p> <blockquote> <pre> Fix for 686998 syntax error in findxref for customer 580. The given test file does not have 'startxref' on its own line. This is a violation of the PDF spec. However Adobe Acrobat accepts the file. This fix adds a check for this case and prints a warning message. File processing then continues. DETAILS: This fix also includes moving the findxref inside of a stopped context check in case any other problems are encountered while searching for the xref table. If a problem is now found during findxref, the xref rebuild logic will be called. </pre> <p>[lib/pdf_main.ps 1.77, lib/pdf_rbld.ps 1.4]</p> </blockquote> <p><strong><a name="2003-08-18_2033"></a> 2003-08-18 20:33 Raph Levien</strong></p> <blockquote> <pre> The invocation "./configure; make install" wasn't working because the install target doesn't create the "standard directories", in particular obj/. This patch simply adds the STDDIRS dependency to the install-exec target, parallel to the existing std target, which is the default chosen from a simple "make" invocation. </pre> <p>[src/unixinst.mak 1.32]</p> </blockquote> <p><strong><a name="2003-08-18_2030"></a> 2003-08-18 20:30 Ray Johnston</strong></p> <blockquote> <pre> Fix non-conformance of "startjob" if password check fails. Previously, the "quit" operator in systemdict was masked by a definition of /quit as /stop in userdict, even if startjob failed due to password check or other reason. </pre> <p>[lib/gs_lev2.ps 1.30]</p> </blockquote> <p><strong><a name="2003-08-18_1702"></a> 2003-08-18 17:02 Ralph Giles</strong></p> <blockquote> <pre> Bump the version number post-release. </pre> <p>[doc/News.htm 1.136, lib/gs_init.ps 1.94, src/gscdef.c 1.38, src/version.mak 1.66]</p> </blockquote> <p><strong><a name="2003-08-18_0150"></a> 2003-08-18 01:50 Ralph Giles</strong></p> <blockquote> <pre> Protect a Carbon-only call in the MacOS code. This was preventing linking in the Classic shlib build. </pre> <p>[src/gp_macio.c 1.30]</p> </blockquote> <p><strong><a name="2003-08-17_1741"></a> 2003-08-17 17:41 Ray Johnston</strong></p> <blockquote> <pre> Add some more CMap files that have been encountered in files recently submitted as bugs. Newer versions of some of the ETen CMap group are also provided. </pre> <p>[Resource/CMap/ETHK-B5-H 1.1, Resource/CMap/ETHK-B5-V 1.1, Resource/CMap/ETen-B5-H 1.2, Resource/CMap/ETen-B5-UCS2 1.1, Resource/CMap/ETen-B5-V 1.2, Resource/CMap/ETenms-B5-H 1.1, Resource/CMap/ETenms-B5-V 1.1]</p> </blockquote> <p><strong><a name="2003-08-17_1052"></a> 2003-08-17 10:52 Russell Lang</strong></p> <blockquote> <pre> Add the jbig2dec source directory to the Windows Release instructions. </pre> <p>[doc/Release.htm 1.81]</p> </blockquote> <h2><a name="Version8.11"></a>Version 8.11 (2003-08-16)</h2> <p> Ghostscript 8.11 is the first stable release since 8.00, building on the features in the 8.10 beta, and with numerous additional fixes and improvements. In particular, font rendering is greatly improved (thanks to Igor Melichev's new hinting code), PDF 1.4 transparency rendering is much more likely to be correct, and there is better support for CID font substitution. Processing of incorrect and broken PDF files is also improved, including files corrupted xref tables and non-ASCII font names. Many other smaller fixes are included. <p> Users may want to experiment with the new -dAlignToPixels=0 setting, which enables subpixel positioning for antialiased font rendering. <p> The following <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a> numbers were open at the time of this release: <blockquote> 405501, 406273, 414947, 430175, 446344, 456692, 458261, 458775, 458780, 459647, 463688, 465936, 487460, 487953, 493348, 509829, 526099, 526491, 530011, 535366, 535932, 542629, 553187, 555072, 558151, 558435, 563287, 572865, 578865, 592160, 592837, 595760, 600288, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 624515, 626295, 628110, 629335, 634036, 634358, 636210, 645316, 651644, 656414, 656510, 664484, 667301, 669654, 674241, 674417, 674418, 677324, 677383, 677430, 680301, 681469, 684778, 684866, 685335, 686746, 686747, 686750, 686752, 686765, 686770, 686778, 686779, 686782, 686788, 686789, 686796, 686803, 686813, 686815, 686816, 686817, 686819, 686822, 686824, 686833, 686834, 686837, 686839, 686841, 686842, 686843, 686844, 686845, 686850, 686852, 686853, 686860, 686863, 686865, 686867, 686873, 686877, 686883, 686885, 686889, 686892, 686896, 686897, 686902, 686903, 686904, 686908, 686909, 686919, 686930, 686931, 686933, 686936, 686937, 686938, 686943, 686944, 686946, 686947, 686948, 686949, 686950, 686951, 686952, 686953, 686954, 686956, 686957, 686958, 686959, 686961, 686963, 686966, 686975, 686978, 686980, 686981, 686990, 686996, 686998, 686999, 687000. </blockquote> <h3><a name="8.11_Incompatible_changes"></a>Incompatible changes</h3> <p>The mechanism for locating resources has changed since 8.00. See the <a href="Use.htm#Finding_files">usage documentation</a> for details of the new mechanism. <p>Ghostscript now runs in save level 1 by default, which has changed since 8.10. Jobservers will need to use the -dNOOUTERSAVE option to restore the old behavior. <h3>Changelog</h3> <!-- generated by split_changelog.py from the output of cvs2cl.pl --> <!-- $Id: Details8.htm,v 1.25 2005/10/20 20:14:37 ray Exp $ --> <p><strong><a name="2003-08-16_1952"></a> 2003-08-16 19:52 giles</strong></p> <blockquote> <pre> Correct the release date in the documentation footer and increment the version number for release. </pre> <p>[doc/API.htm 1.36, doc/Bug-form.htm 1.38, doc/Bug-info.htm 1.37, doc/C-style.htm 1.43, doc/Commprod.htm 1.29, doc/Copying.htm 1.28, doc/DLL.htm 1.32, doc/Deprecated.htm 1.9, doc/Develop.htm 1.119, doc/Devices.htm 1.69, doc/Drivers.htm 1.40, doc/Fonts.htm 1.38, doc/Helpers.htm 1.32, doc/History1.htm 1.28, doc/History2.htm 1.28, doc/History3.htm 1.28, doc/History4.htm 1.28, doc/History5.htm 1.30, doc/History6.htm 1.45, doc/History7.htm 1.33, doc/History8.htm 1.5, doc/Htmstyle.htm 1.33, doc/Install.htm 1.43, doc/Issues.htm 1.38, doc/Language.htm 1.75, doc/Lib.htm 1.31, doc/Maintain.htm 1.39, doc/Make.htm 1.69, doc/New-user.htm 1.48, doc/Projects.htm 1.53, doc/Ps-style.htm 1.26, doc/Ps2epsi.htm 1.30, doc/Ps2pdf.htm 1.55, doc/Psfiles.htm 1.49, doc/Readme.htm 1.51, doc/Source.htm 1.28, doc/Tester.htm 1.28, doc/Testing.htm 1.22, doc/Unix-lpr.htm 1.28, doc/Use.htm 1.88, doc/Xfonts.htm 1.28, doc/gs-vms.hlp 1.27]</p> </blockquote> <p><strong><a name="2003-08-16_1948"></a> 2003-08-16 19:48 giles</strong></p> <blockquote> <pre> Bump the release date for Ghostscript 8.11. </pre> <p>[doc/News.htm 1.134, doc/Release.htm 1.80, man/dvipdf.1 1.26, man/font2c.1 1.26, man/gs.1 1.27, man/gslp.1 1.26, man/gsnd.1 1.26, man/pdf2dsc.1 1.25, man/pdf2ps.1 1.27, man/pdfopt.1 1.25, man/pf2afm.1 1.26, man/pfbtopfa.1 1.27, man/printafm.1 1.26, man/ps2ascii.1 1.25, man/ps2epsi.1 1.24, man/ps2pdf.1 1.31, man/ps2pdfwr.1 1.30, man/ps2ps.1 1.33, man/wftopfa.1 1.26, src/version.mak 1.65]</p> </blockquote> <p><strong><a name="2003-08-16_1943"></a> 2003-08-16 19:43 giles</strong></p> <blockquote> <pre> Document testing.cfg as well as testing.cfg.example. </pre> <p>[doc/Testing.htm 1.21]</p> </blockquote> <p><strong><a name="2003-08-16_0753"></a> 2003-08-16 07:53 raph</strong></p> <blockquote> <pre> Cleans up the behavior of the .tempfile operator, primarily making it consistent across all the platforms, ensuring that the TMPDIR and TEMP environment variables are effective, the system temp directory is used when these are not specified, and the permissions for tempfile creation work as expected (allowed in the simple case, but closing off potential vulnerabilities in other cases. Intended as a final fix for bug #686922. DETAILS: 1. The permissions behavior of .tempfile is changed so that simple prefixes are always allowed, absolute pathname prefixes are checked using the PermitFileWriting logic, and other cases are disallowed. In particular, it is no longer possible to specify temp prefixes relative to the current directory, or as subdirectories of the standard temp directory. Both such cases are potential security holes, and are probably not useful in any real application. 2. The meaning of gp_open_scratch_file() is made more consistent across the platforms. In particular, it is now the clear responsibility of this function to add the appropriate temp directory. As such, gp_gettmpdir() is no longer exported in the public gp.h interface (gpmisc.h is intended only for the convenience of gp_ implementations). 3. On VMS, gp_open_scratch_file() didn't previously add the temporary directory pathname. Now it does. 4. On Windows, gp_open_scratch_file()'s behavior was somewhat inconsistent, calling GetTempPath() only when the length of the TMPDIR or TEMP environment variables overflowed the buffer provided. It now additionally uses GetTempPath() in the cases where these environment variables are not set. 5. Since gp_open_scratch_file() now takes responsibility for determining the temporary directory, ztempfile() no longer attempts to do this. </pre> <p>[doc/Language.htm 1.74, src/gp.h 1.25, src/gp_mswin.c 1.22, src/gp_vms.c 1.32, src/gpmisc.h 1.12, src/lib.mak 1.131, src/zfile.c 1.36]</p> </blockquote> <p><strong><a name="2003-08-16_0651"></a> 2003-08-16 06:51 ray</strong></p> <blockquote> <pre> Convert ASCII range font names found during the FONTPATH scanning to simole ASCII aliases (original Unicode names preserved). Fixes bug 686861 for customer 131. DETAILS: This is an interim patch that establishes the alias in the ASCII code range if (and only if) the high byte of ALL characters in the name are NULL (\000). The future improved implementation would be to add a UTF-8 fontname when the TTF font has the name in Unicode. This would allow simple PostScript applications that use the 8-bit character name to work as this patch does. </pre> <p>[lib/gs_fonts.ps 1.41]</p> </blockquote> <p><strong><a name="2003-08-16_0042"></a> 2003-08-16 00:42 ray</strong></p> <blockquote> <pre> Pass path across grestore using base "identity" coordinates to prevent limitcheck errors. The upath operator returns coordinates in the current user space, but these are no longer valid across a CTM change such as "grestore" or "setgstate" causes. Fixes SF bug #687001 for customers 580 and 590. DETAILS: The patch gets the upath using identity user space, then stuffs it into the graphics state after the grestore in the same identity space restoring the CTM of the grestore after the uappend. Both grestore_nopath and setgstate are modified. These could probably be refactored later to share PS code, but the value is minimal (IMO). Interesting that this hadn't turned up before, but two customers tripped over this recently. </pre> <p>[lib/pdf_ops.ps 1.31]</p> </blockquote> <p><strong><a name="2003-08-15_2232"></a> 2003-08-15 22:32 raph</strong></p> <blockquote> <pre> Fixes two pointers to freed objects that were left dangling in the PDF 1.4 transparency logic. Fixes bug #686994. DETAILS: With some test files, saved graphics states had held on to pointers to the device filter stack that had already been freed by a gs_pop_device_filter() call. These dangling pointers can cause garbage collection corruption. This patch introduces reference counting discipline to these pointers so that the dfilter_stack objects are not actually freed until the last reference is dropped. A similar but simpler argument applies to the pdf14_ctx object in the pdf14_device. This patch simply sets the pointer to NULL when freeing the context. </pre> <p>[src/gdevp14.c 1.19, src/gsdfilt.c 1.8, src/gsdfilt.h 1.9, src/gsstate.c 1.21, src/gzstate.h 1.9]</p> </blockquote> <p><strong><a name="2003-08-15_2023"></a> 2003-08-15 20:23 giles</strong></p> <blockquote> <pre> Correct a typo in the previous commit. </pre> <p>[src/gp_macio.c 1.29]</p> </blockquote> <p><strong><a name="2003-08-15_2019"></a> 2003-08-15 20:19 giles</strong></p> <blockquote> <pre> Remove redunant prototypes from gp_mac.h and modernise the implementation of gp_open_scratch_file on MacOS to match the updated prototype in gp.h. Also adds some limit checking in that implementation. Note that gp_mac.h is now empty. I've left it in the build in expectation of future usefulness. </pre> <p>[src/gp_mac.h 1.5, src/gp_macio.c 1.28]</p> </blockquote> <p><strong><a name="2003-08-14_2228"></a> 2003-08-14 22:28 ghostgum</strong></p> <blockquote> <pre> Update DSC parser to latest version from GSview. DETAILS: Recognise MacBinary or AppleSingle files and process the data fork only, similar to DOS EPS files. Handle DCS2 files that contravene the spec by putting the TIFF preview between the composite and the separations. Recognise CMYK and RGB names if separations are renamed using epstool. </pre> <p>[src/dscparse.c 1.13, src/dscparse.h 1.12]</p> </blockquote> <p><strong><a name="2003-08-14_1956"></a> 2003-08-14 19:56 alexcher</strong></p> <blockquote> <pre> Fix make files and portability layer to compile on Borland 5.5 freeware compiler. </pre> <p>[src/bcwin32.mak 1.29, src/unistd_.h 1.9, src/winint.mak 1.20]</p> </blockquote> <p><strong><a name="2003-08-14_1752"></a> 2003-08-14 17:52 alexcher</strong></p> <blockquote> <pre> Include time.h and sys/time.h on Intel compiler as requested by Duraid Madina. Fix bug 686984 </pre> <p>[src/time_.h 1.7]</p> </blockquote> <p><strong><a name="2003-08-14_1732"></a> 2003-08-14 17:32 alexcher</strong></p> <blockquote> <pre> Update non-DLL version to support visual tracer. Fix bug 686993 </pre> <p>[src/dwdll.c 1.6, src/dwnodll.c 1.5, src/msvc32.mak 1.47]</p> </blockquote> <p><strong><a name="2003-08-13_1604"></a> 2003-08-13 16:04 alexcher</strong></p> <blockquote> <pre> Fix portability issues: add a portable header for sscanf() and use specific handle HDROP instead of generic HANDLE. </pre> <p>[src/dwimg.c 1.9, src/winint.mak 1.19]</p> </blockquote> <p><strong><a name="2003-08-13_1556"></a> 2003-08-13 15:56 alexcher</strong></p> <blockquote> <pre> Don't rely on MS linker merging global variables defined multiple times. </pre> <p>[src/dwtrace.h 1.5]</p> </blockquote> <p><strong><a name="2003-08-13_1554"></a> 2003-08-13 15:54 alexcher</strong></p> <blockquote> <pre> Update GS icon file by re-saving it in MSVC 6. Old icon file was incompatible with OpenWatcom resource compiler. </pre> <p>[src/gswin.icx 1.2]</p> </blockquote> <p><strong><a name="2003-08-13_1549"></a> 2003-08-13 15:49 alexcher</strong></p> <blockquote> <pre> Remove comma from the linker command line because the following indirect file contains keyword-value pairs, not a list of values. </pre> <p>[src/watcw32.mak 1.27]</p> </blockquote> <p><strong><a name="2003-08-13_1514"></a> 2003-08-13 15:14 alexcher</strong></p> <blockquote> <pre> OpenWatcom doesn't define LPRGBQUAD. Add the corresponding typedef. Partial fix for 686816 </pre> <p>[src/windows_.h 1.5]</p> </blockquote> <p><strong><a name="2003-08-12_1413"></a> 2003-08-12 14:13 ray</strong></p> <blockquote> <pre> Add the headers ($Id: Details8.htm,v 1.25 2005/10/20 20:14:37 ray Exp $ line and copyright notices). </pre> <p>[toolbin/genfontmap.ps 1.2]</p> </blockquote> <p><strong><a name="2003-08-12_1332"></a> 2003-08-12 13:32 igor</strong></p> <blockquote> <pre> Fix : The condition for empty environment string was wrong in ztempfile. Bug 686922 "no default temp dir" </pre> <p>[src/zfile.c 1.35]</p> </blockquote> <p><strong><a name="2003-08-11_1914"></a> 2003-08-11 19:14 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : The default implementation of stringwidth is incompatible with Type 3 font processing. DETAILS : With Type 3 fonts the default implementation of stringwidth renders characters to PS cache, causing them to convert to bitmaps in further rendering. This patch implements stringwidth with Type 3 fonts inside pdfwrite, allowing the charproc accumulation during stringwidth. Bug 686992 "Duplicated characters in Arabian Type 3". </pre> <p>[src/gdevpdte.c 1.43, src/gdevpdtt.c 1.54, src/gxchar.c 1.30, src/gxchar.h 1.14]</p> </blockquote> <p><strong><a name="2003-08-11_1742"></a> 2003-08-11 17:42 ray</strong></p> <blockquote> <pre> Correct offsets into .bigstring (broken when string size changed from 1000). </pre> <p>[lib/gs_frsd.ps 1.8]</p> </blockquote> <p><strong><a name="2003-08-11_1150"></a> 2003-08-11 11:50 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Don't write OP into charprocs. DETAILS : Bug 686986 "Could not find the extended graphic state ..." error </pre> <p>[src/gdevpdfg.c 1.34]</p> </blockquote> <p><strong><a name="2003-08-11_1144"></a> 2003-08-11 11:44 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Check a run out charstring while converting Type 1 font into Type2. DETAILS : 1. Compare the instruction pointer with the charstring end address (gdevpsfx.c). 2. Error codes were not propagated. Bug 686985 "pdfwriter segfaults converting a charstring". </pre> <p>[src/gdevpdtb.c 1.21, src/gdevpsf2.c 1.27, src/gdevpsfx.c 1.22]</p> </blockquote> <p><strong><a name="2003-08-10_0633"></a> 2003-08-10 06:33 dan</strong></p> <blockquote> <pre> Fix for Bug 686991 Memory leak in CET test file 12-07.ps. DETAILS: A pointer to a free object was found while running the CET with the memory allocation test switches (-Z@?$). The free object was a color space and the pointer was inside a gs_image_enum_common structure. The situation occurs when an error is found in the data source for for an image. The actual cause was that the image enum common structure should have also been released. Note: The data source checking is the only place that has this problem. After the data source checking, the image enum common structure pointer is placed into an image enum structure. Errors that are detected after that point call gx_image_cleanup which handles all of the data in the image enum structure including the image enum common structure. </pre> <p>[src/zimage.c 1.12]</p> </blockquote> <p><strong><a name="2003-08-08_1845"></a> 2003-08-08 18:45 ray</strong></p> <blockquote> <pre> Adjust internal string lengths to allow for long path/filenames such as for Resource paths. OS limits may be shorter than the 8192 length allowed for after this changes, but now interpreter internals won't cause a failure. Customer 590 found this with a long GenericResourceDir. Bug #686989. DETAILS: While 8192 is also arbitrary, now all strings used for path/filenames are the same and probably long enough for a while. Also I made all the string lengths used for file copy operations be the same 64000 bytes (they were highly inconsistent). </pre> <p>[lib/gs_cidcm.ps 1.11, lib/gs_diskn.ps 1.5, lib/gs_fntem.ps 1.7, lib/gs_fonts.ps 1.40, lib/gs_frsd.ps 1.7, lib/gs_pdfwr.ps 1.36, lib/gs_pfile.ps 1.5, lib/gs_res.ps 1.34, lib/gs_resst.ps 1.3, lib/gs_statd.ps 1.12, lib/gslp.ps 1.6, lib/pdf_main.ps 1.76, lib/pphs.ps 1.6, lib/wftopfa.ps 1.5]</p> </blockquote> <p><strong><a name="2003-08-07_1819"></a> 2003-08-07 18:19 ray</strong></p> <blockquote> <pre> Add a utility to create a Fontmap format file after forcing a scan of all FONTPATH directories. The created Fontmap file will contain direct links to all fonts found, so that subsequent runs of Ghostscript that use this Fontmap won't need to perform the time consuming scan of the FONTPATH. </pre> <p>[toolbin/genfontmap.ps 1.1]</p> </blockquote> <p><strong><a name="2003-08-07_1709"></a> 2003-08-07 17:09 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Widths were computed wrongly with Type 3 fonts. DETAILS : 1. With glyphshow process_text_modify_width called pdf_char_widths with GS_NO_CHAR. 2. In pdf_char_widths an index for real_widths array was wrong (2 times smaller) with Type 3. 3. Now we write Widths as reals, improving the precision. Now the precision isn't smaller than 1/100, rather the old code looses all significant digits when a width is smaller than 1. A better way would be re-scaling the font, but currently we don't see a strong need for that. Bug 686988 "test-setweightvector.ps wrongly converts to PDF". This patch fixes the test-setweightvector.ps problem and improves glyph positions in Altona.Page_3.2002-09-27.pdf . </pre> <p>[src/gdevpdte.c 1.42, src/gdevpdtw.c 1.23]</p> </blockquote> <p><strong><a name="2003-08-06_1705"></a> 2003-08-06 17:05 alexcher</strong></p> <blockquote> <pre> Allocate larger buffer for generated charstrings. Old allocation was insufficient for gray block characters. (Unicode 2591, 2592, 2593). Fix bug 686987. </pre> <p>[lib/bdftops.ps 1.7]</p> </blockquote> <p><strong><a name="2003-08-06_1624"></a> 2003-08-06 16:24 giles</strong></p> <blockquote> <pre> Disable the legacy macstdio device in the default Codewarrior build. It conflicts with and is obsoleted by the modern Metrowerks Standard Library and our default Carbon build, which most users are now using. </pre> <p>[src/macos-mcp.mak 1.21]</p> </blockquote> <p><strong><a name="2003-08-06_1613"></a> 2003-08-06 16:13 giles</strong></p> <blockquote> <pre> Remove an unused local variable </pre> <p>[src/gdevpdtw.c 1.22]</p> </blockquote> <p><strong><a name="2003-08-06_1550"></a> 2003-08-06 15:50 giles</strong></p> <blockquote> <pre> Fix incorrect line endings. </pre> <p>[src/gdevpdtw.c 1.21]</p> </blockquote> <p><strong><a name="2003-08-04_1351"></a> 2003-08-04 13:51 giles</strong></p> <blockquote> <pre> Document adding the jbig2dec source to the source release. </pre> <p>[doc/Release.htm 1.79]</p> </blockquote> <p><strong><a name="2003-08-02_2250"></a> 2003-08-02 22:50 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Providing an access to the original font matrix via a special font dictionary key /.OrigFont (part 2). DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003482.html was buggy. This patch corrects it and fixes the 2003-08-02 regression with two_encodings.ps . </pre> <p>[src/gdevpdtt.c 1.53, src/zbfont.c 1.23]</p> </blockquote> <p><strong><a name="2003-08-02_1552"></a> 2003-08-02 15:52 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : A workaround for Type 3 fonts with instandard BuildChar. DETAILS : Bug 686982 "Wrong characters in PDF". </pre> <p>[src/gdevpdti.c 1.18, src/gsccode.h 1.12, src/zbfont.c 1.22]</p> </blockquote> <p><strong><a name="2003-08-02_1200"></a> 2003-08-02 12:00 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : xshow, xyshow array index was wrong. DETAILS : Bug 686976 "type3 fonts are mangled in pdf conversion", but the problem was more general than Type3. </pre> <p>[src/gdevpdtc.c 1.26, src/gdevpdte.c 1.41]</p> </blockquote> <p><strong><a name="2003-08-02_0954"></a> 2003-08-02 09:54 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : gs_copied_can_copy_glyphs used glyph names instead glyph indices with Type 42. DETAILS : This change is a continuation of the glyph/glyph_index cleanup started in http://www.ghostscript.com/pipermail/gs-cvs/2003-June/003354.html . Bug 686983 "TT fonts converted to type3". </pre> <p>[src/gxfcopy.c 1.31]</p> </blockquote> <p><strong><a name="2003-08-01_2037"></a> 2003-08-01 20:37 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Providing an access to the original font matrix via a special font dictionary key /.OrigFont . DETAILS : The new key is implementation specific and should not affect regular documents. It works for the case when a font is copied like this : /x findfont dup length dict copy /y exch definefont - it points from the copy to the original font. This change fixes Ghostscript Bug 686970 "Overlapping characters" and causes a progression with 455690.pdf with pdfwrite. A long ago Peter L. Deutsch and me discussed the heuristic in pdf_font_orig_matrix/font_orig_scale. I was aware of its limitations, but I followed Peter's authority. Now we get a real case that it can't handle, and therefore I take the responsibility for the different approach. -igor. </pre> <p>[lib/gs_fonts.ps 1.39, src/gdevpdtt.c 1.52, src/gsfont.c 1.21, src/gxfont.h 1.20, src/zbfont.c 1.21]</p> </blockquote> <p><strong><a name="2003-08-01_1650"></a> 2003-08-01 16:50 jack</strong></p> <blockquote> <pre> Update News.htm with current open bugs and incompatible changes. </pre> <p>[doc/News.htm 1.133]</p> </blockquote> <p><strong><a name="2003-08-01_1553"></a> 2003-08-01 15:53 giles</strong></p> <blockquote> <pre> Remove a redundant dependency definition. </pre> <p>[src/lib.mak 1.130]</p> </blockquote> <p><strong><a name="2003-08-01_1540"></a> 2003-08-01 15:40 giles</strong></p> <blockquote> <pre> Set release dates on the documenation. </pre> <p>[doc/News.htm 1.132, man/dvipdf.1 1.25, man/font2c.1 1.25, man/gs.1 1.26, man/gslp.1 1.25, man/gsnd.1 1.25, man/pdf2dsc.1 1.24, man/pdf2ps.1 1.26, man/pdfopt.1 1.24, man/pf2afm.1 1.25, man/pfbtopfa.1 1.26, man/printafm.1 1.25, man/ps2ascii.1 1.24, man/ps2epsi.1 1.23, man/ps2pdf.1 1.30, man/ps2pdfwr.1 1.29, man/ps2ps.1 1.32, man/wftopfa.1 1.25]</p> </blockquote> <p><strong><a name="2003-08-01_1521"></a> 2003-08-01 15:21 giles</strong></p> <blockquote> <pre> Update release date for stable 8.11 release. </pre> <p>[doc/News.htm 1.131, src/gscdef.c 1.37, src/version.mak 1.64]</p> </blockquote> <p><strong><a name="2003-07-31_2014"></a> 2003-07-31 20:14 alexcher</strong></p> <blockquote> <pre> Create a table that decides whether the glyph index belongs to [WinAnsiEncoding, StandardEncoding, MacExpertEncoding], or SymbolEncoding, or none of them. Use this table instead of searching the encoding vectors for every glyph. Fix bug 686929 </pre> <p>[doc/Develop.htm 1.118, src/devs.mak 1.93, src/gdevpdtv.c 1.1, src/gdevpdtv.h 1.1, src/gdevpdtw.c 1.20, toolbin/encs2c.ps 1.4]</p> </blockquote> <p><strong><a name="2003-07-31_1215"></a> 2003-07-31 12:15 igor</strong></p> <blockquote> <pre> Fix (the new Type 1 hinter) : Accent was misplaced in composite Type 2 glyphs. DETAILS : Bug 686971 "Characters with accents problem". Expected progressions : Altona.Page_3.2002-09-27.pdf Svd.pdf </pre> <p>[src/gstype2.c 1.27, src/gxhintn.c 1.29]</p> </blockquote> <p><strong><a name="2003-07-30_2024"></a> 2003-07-30 20:24 giles</strong></p> <blockquote> <pre> Document the .bindnow operator and the need to rebind bind to .bind after calling it with -dDELAYBIND. Closes bug 633299. </pre> <p>[doc/Language.htm 1.73, doc/Use.htm 1.87]</p> </blockquote> <p><strong><a name="2003-07-30_1548"></a> 2003-07-30 15:48 ray</strong></p> <blockquote> <pre> Remove superfluous 'save pop' from .setpdfwrite definition since gs_init.ps now performs the outer level save which addresses the font loading issue .setpdfwrite was solving. </pre> <p>[lib/gs_pdfwr.ps 1.35]</p> </blockquote> <p><strong><a name="2003-07-30_1335"></a> 2003-07-30 13:35 ray</strong></p> <blockquote> <pre> Add -dNOOUTERSAVE when -c false 0 startjob pop is used to set up a job server environment so that Genoa tests will operate as if under a job server and so that global VM will be restored when Genoa tests check the exitserver operation. </pre> <p>[toolbin/tests/gstestgs.py 1.20]</p> </blockquote> <p><strong><a name="2003-07-30_0726"></a> 2003-07-30 07:26 ray</strong></p> <blockquote> <pre> Add an initial outermost save unless -dNOOUTERSAVE option is specified. Fixes Bug #686972 and others that were closed with the instructions to use -c "save pop" prior to the file. DETAILS: The initial save is needed for several ProcSets from Adobe applications and those of other vendors that expect objects in global VM to be retained after a restore that would otherwise remove objects in global VM defined after the corresponding save. This kept recurring because several ProcSets from Adobe, Quark and others expect to run under a job server. The -dNOOUTERSAVE is needed for backward compatibility and for those that want to run under a job server and want global VM to be restored between jobs (as expected under a job server). Note that the save object is discarded so that it cannot be used to restore to the state prior to .setsafe and thus circumvent security when -dNOSAFER is used and .setsafe or .locksafe is subsequently used to go to SAFE mode. </pre> <p>[doc/Use.htm 1.86, lib/gs_init.ps 1.93]</p> </blockquote> <p><strong><a name="2003-07-30_0025"></a> 2003-07-30 00:25 giles</strong></p> <blockquote> <pre> Properly handle the absence of a parameter dictionary in the JBIG2Decode filter implementation. Closes bug 686979. DETAILS: Filter implementations can be called with <source> <paramdict> or just with <source> on the stack. Previously our jbig2 decode filter only supported the former. This went undetected because previous files we'd encountered from the CVISION and Adobe encoders included a /JBIG2Globals filter parameter even if it was empty. The file submitted with the bug has no filter params at all for the JBIG2Decode stream. It identifies itself as having been generated by CVISION Technologies' PDFCompressor 2.0. </pre> <p>[src/zfjbig2.c 1.3]</p> </blockquote> <p><strong><a name="2003-07-29_1224"></a> 2003-07-29 12:24 giles</strong></p> <blockquote> <pre> Correct capitalization of the -d parameter in the IJS examples. </pre> <p>[doc/Devices.htm 1.68]</p> </blockquote> <p><strong><a name="2003-07-26_1923"></a> 2003-07-26 19:23 dan</strong></p> <blockquote> <pre> Correct a problem which was created when the SeparationOrder parameter was implemented. The usual symptom was an uninitialized value left in the cyan component for a gray color space. </pre> <p>[src/gdevdevn.c 1.9]</p> </blockquote> <p><strong><a name="2003-07-25_1408"></a> 2003-07-25 14:08 giles</strong></p> <blockquote> <pre> Build fix of the jbig2 makefile. OOur portable (v)snprintf implementation is in snprintf.c, notvsnprintf.c. Reported in but 686966. </pre> <p>[src/jbig2.mak 1.6]</p> </blockquote> <p><strong><a name="2003-07-25_0005"></a> 2003-07-25 00:05 giles</strong></p> <blockquote> <pre> Record that .buildnativefontmap has been run even if .getnativefonts returns false (unimplemented). This was causing an endless loop if a font was not found as dofindfont tried to call the native font enumeration code over and over. </pre> <p>[lib/gs_fonts.ps 1.38]</p> </blockquote> <p><strong><a name="2003-07-24_1522"></a> 2003-07-24 15:22 ray</strong></p> <blockquote> <pre> Fix a SEGV that could occur during 'shfill' if a GC occurred between the .buildhading and the .shfill internal operators. DETAILS: The DataSource sub-structure that is part of the shading_mesh_params was not being traced, so that memory pointed to by elements of that structure would be prematurely freed. This was detected running files produced by libGL2ps that turned an Open GL rendering into LOTS of shapes to be filled with Gouraud triangles. </pre> <p>[src/gsshade.c 1.9, src/gsshade.h 1.7, src/gsstruct.h 1.16]</p> </blockquote> <p><strong><a name="2003-07-24_0025"></a> 2003-07-24 00:25 giles</strong></p> <blockquote> <pre> Fix security issue with .setnativefontmapbuilt. Procedures that change the systemdict must be execute-only so the .forceput cannot be extracted and used to change other parameters. Thanks to Russell Lang for this. </pre> <p>[lib/gs_fonts.ps 1.37]</p> </blockquote> <p><strong><a name="2003-07-24_0007"></a> 2003-07-24 00:07 giles</strong></p> <blockquote> <pre> Since globaldict isn't always available and userdict is subject to save/restore, keep /.nativefontmapbuilt in systemdict, with an accompanying procedure to set its value since systemdict is read-only from the normal runlevel. </pre> <p>[lib/gs_fonts.ps 1.36]</p> </blockquote> <p><strong><a name="2003-07-23_2331"></a> 2003-07-23 23:31 giles</strong></p> <blockquote> <pre> Record whether the .buildnativefontmap has been run as a boolean under the key /.nativefontmapbuilt in userdict, instead of the array hack used previously. A better choice would be globaldict which is less susceptible to save/restore but this is a language level 2 feature and not defined with gs_fonts.ps is run. </pre> <p>[lib/gs_fonts.ps 1.35]</p> </blockquote> <p><strong><a name="2003-07-23_2127"></a> 2003-07-23 21:27 raph</strong></p> <blockquote> <pre> More transparency fixes: set color space when computing /BC in soft-mask transparency groups. Implement /TR transfer function in soft-mask groups. </pre> <p>[lib/pdf_draw.ps 1.73, src/gdevp14.c 1.18]</p> </blockquote> <p><strong><a name="2003-07-23_1720"></a> 2003-07-23 17:20 giles</strong></p> <blockquote> <pre> Enable native font enumeration by default. This change also corrects some flaws in the search logic. Like with the FONTPATH directory scanning, .buildnativefontmap will only be called the first time a font cannot be found. However, it can still be run manually to update the in-memory Fontmap. DETAILS: To record that .buildnativefontmap has been run, we define /.nativefontmapbuilt as an array containing a single element, either 'true' or 'false'. We use an array to avoid local vs. global issues when the value is set during the call to .buildnativefontmap. </pre> <p>[lib/gs_fonts.ps 1.34]</p> </blockquote> <p><strong><a name="2003-07-19_0613"></a> 2003-07-19 06:13 raph</strong></p> <blockquote> <pre> More transparency fixes: fix broken remapping of Separation and DeviceN colorspaces in PDF 1.4 mode. Convert background color for soft mask groups to DeviceGray colorspace using PostScript code (currentgray). </pre> <p>[lib/pdf_draw.ps 1.72, src/gdevp14.c 1.17, src/ztrans.c 1.20]</p> </blockquote> <p><strong><a name="2003-07-18_2140"></a> 2003-07-18 21:40 raph</strong></p> <blockquote> <pre> Draws the alpha plane of PDF 1.4 SMask images as a soft masked group. </pre> <p>[lib/pdf_draw.ps 1.71]</p> </blockquote> <p><strong><a name="2003-07-17_1349"></a> 2003-07-17 13:49 giles</strong></p> <blockquote> <pre> Speed up native font enumeration on MacOS by caching the results of parsing the FOND resource table. Also return paths of the from '%macresource%path:to:file#POST' for resource files without FOND tables, on the assumption these are LWFN files. The font loading machinery doesn't yet support such paths, and they are simply skipped without being added to the in-memory font map. </pre> <p>[src/gp_macio.c 1.27]</p> </blockquote> <p><strong><a name="2003-07-15_1647"></a> 2003-07-15 16:47 giles</strong></p> <blockquote> <pre> Rename reftable to fond_table, etc. to avoid confusion with postscript references. </pre> <p>[src/gp_macio.c 1.26]</p> </blockquote> <p><strong><a name="2003-07-15_0105"></a> 2003-07-15 01:05 giles</strong></p> <blockquote> <pre> Improve native font enumeration on MacOS. This feature is still not enabled. DETAILS: There are six different api calls to open a resource file on MacOS Carbon, all of various provenance and history. We were using FSOpenResourceFile() in our FOND parsing code because it will open the data fork of .dfont files or the resource fork of resource font files. Very convenient. However, it fails for some common font files with broken resource maps. Therefore we now fall back to FSpOpenResFile() which only tries the resource fork, but can handle the broken maps, if the first attempt fails. I've not encountered any .dfont files with broken resource maps; they're a recent phenomenon so we should be safe there. Also contains changes to skip the FOND parsing for .ttf and .otf filenames, to ask for 'Local' instead of 'Global' fonts in the enumerator (the difference is unclear) and changes to use the Carbon headers in the Carbon build. </pre> <p>[src/gp_macio.c 1.25]</p> </blockquote> <p><strong><a name="2003-07-14_1932"></a> 2003-07-14 19:32 ray</strong></p> <blockquote> <pre> Read a PostScript embedded ICC input profile into a bytestring (.bigstring) rather than a temp file. This is faster and doesn't leave the temp file laying around. Bug #686926 for Artifex customer #1110. DETAILS: Since we don't know the size of the bytestring needed to invoke .bigstring, we read the ICC profile data into an array of 64,000 byte strings, then create the bytestring and fill it with putinterval. This bytestring then becomes the source for a ReusableStreamDecode filter which is a seekable filter. We'd like to have simply used SubFileDecode filter and ASCIIHexDecode as the source for ReusableStreamDecode, but this only works if SubFileDecode has a count. </pre> <p>[lib/gs_icc.ps 1.10]</p> </blockquote> <p><strong><a name="2003-07-14_0720"></a> 2003-07-14 07:20 ghostgum</strong></p> <blockquote> <pre> Exclude NT file attributes when building zip file of sources. </pre> <p>[doc/Release.htm 1.78]</p> </blockquote> <p><strong><a name="2003-07-11_1518"></a> 2003-07-11 15:18 giles</strong></p> <blockquote> <pre> Have configure define DONT_HAVE_JMEMSYS_H is appropriate, is support of the eventual generation of gconfig_.h by the configure script rather than unix-aux.mak. </pre> <p>[src/configure.ac 1.32]</p> </blockquote> <p><strong><a name="2003-07-10_2232"></a> 2003-07-10 22:32 dan</strong></p> <blockquote> <pre> Added casts to remove some warning messages from MSVC. Partial fix for bug #686592. </pre> <p>[src/gdevdevn.c 1.8, src/gdevpsd.c 1.5]</p> </blockquote> <p><strong><a name="2003-07-10_1921"></a> 2003-07-10 19:21 ray</strong></p> <blockquote> <pre> Comment out the #define for the DUMP_TO_PNG debug mode (it will need make file changes to compile correctly since png.h may not be on standard include paths. </pre> <p>[src/gdevp14.c 1.16]</p> </blockquote> <p><strong><a name="2003-07-10_1842"></a> 2003-07-10 18:42 raph</strong></p> <blockquote> <pre> First batch of transparency improvments. With these changes, ChineseOpera.ai and a number of other files using soft mask groups should render correctly. </pre> <p>[src/gdevp14.c 1.15, src/gstrans.c 1.17, src/gxblend.c 1.5]</p> </blockquote> <p><strong><a name="2003-07-10_1834"></a> 2003-07-10 18:34 raph</strong></p> <blockquote> <pre> A code clarity change only. Make the value of 1-input stitching function more explicit in the degenerate case. </pre> <p>[src/gsfunc3.c 1.15]</p> </blockquote> <p><strong><a name="2003-07-10_1807"></a> 2003-07-10 18:07 giles</strong></p> <blockquote> <pre> Update version information and links to the web and bts sites, after a patch from Ambrose Li. Bug 686939. </pre> <p>[doc/Bug-info.htm 1.36, doc/New-user.htm 1.47]</p> </blockquote> <p><strong><a name="2003-07-10_1755"></a> 2003-07-10 17:55 giles</strong></p> <blockquote> <pre> Generate the list of X11 libraries we need to link to in configure. Previously this was hardwired, but some systems do require the addition of the X_PRE_LIBS and X_EXTRA_LIBS discovered by the configure macro. Closes bug 686938. </pre> <p>[src/Makefile.in 1.26, src/configure.ac 1.31]</p> </blockquote> <p><strong><a name="2003-07-10_1746"></a> 2003-07-10 17:46 ray</strong></p> <blockquote> <pre> Prevent divide by zero when invalid Bounds arrays are encountered. Earlier we allowed invalid Bounds to be compatible with Adobe, but did not supply a non-zero denominator value. Fix required for ChineseOpera.ai </pre> <p>[src/gsfunc3.c 1.14]</p> </blockquote> <p><strong><a name="2003-07-10_1711"></a> 2003-07-10 17:11 giles</strong></p> <blockquote> <pre> Recognize the 0.3 source release jbig2dec. </pre> <p>[src/configure.ac 1.30]</p> </blockquote> <p><strong><a name="2003-07-10_1708"></a> 2003-07-10 17:08 giles</strong></p> <blockquote> <pre> Improve a comment in the generated gconfig_.h on unix. </pre> <p>[src/unix-aux.mak 1.10]</p> </blockquote> <p><strong><a name="2003-07-10_0256"></a> 2003-07-10 02:56 ray</strong></p> <blockquote> <pre> Add some casts to prevent excessive warnings when compiling C fonts with MSVC 6. This only affects the syntax of the generated fonts. </pre> <p>[lib/font2c.ps 1.6]</p> </blockquote> <p><strong><a name="2003-07-09_2355"></a> 2003-07-09 23:55 igor</strong></p> <blockquote> <pre> Fix: Cygwin/gcc warnings. DETAILS : One of them actually was a bug in the recent patch. </pre> <p>[src/gxtype1.c 1.26, src/zchar1.c 1.31]</p> </blockquote> <p><strong><a name="2003-07-09_2346"></a> 2003-07-09 23:46 igor</strong></p> <blockquote> <pre> pdfwrite : Improving the font metrics handling. DETAILS : 1. Metrics, Metrics2 was ignored for CID fonts; 2. usematrix was ignored; 3. v-vector was erroneusely scaled down in 1000 for TT fonts; 4. glyph_info mixed WMode 0 1nd 1 in some cases. This patch is a partial fix for the bug #686947 "rotated japanese chars". A complete fix should include a handling of CDevProc. This patch causes an unexpected progression of pdfwrite with keyboard.pdf at any resolution, and a minor difference with 093-01.ps at 300dpi. </pre> <p>[src/gdevpdtc.c 1.25, src/gdevpdte.c 1.40, src/gdevpdtt.c 1.51, src/gstype42.c 1.32, src/gxfcopy.c 1.30, src/gxtype1.c 1.25, src/ichar1.h 1.10, src/int.mak 1.114, src/zchar1.c 1.30, src/zfcid1.c 1.18]</p> </blockquote> <p><strong><a name="2003-07-09_1403"></a> 2003-07-09 14:03 igor</strong></p> <blockquote> <pre> Fixing a C++ style comment in fapi_ft.c. </pre> <p>[src/fapi_ft.c 1.10]</p> </blockquote> <p><strong><a name="2003-07-08_2103"></a> 2003-07-08 21:03 giles</strong></p> <blockquote> <pre> Don't redefine _Windows, since msvctail.mak passes it on the command line. Fixes a warning under MSVC reported by Igor Melichev. </pre> <p>[src/iapi.h 1.10]</p> </blockquote> <p><strong><a name="2003-07-08_1731"></a> 2003-07-08 17:31 giles</strong></p> <blockquote> <pre> Use 'fontname' instead of 'name' as an argument to gp_enumerate_fonts_next() to avoid a warning on MSVC. Thanks to Igor for pointing out the issue. </pre> <p>[src/gp.h 1.24, src/gp_dvx.c 1.10, src/gp_iwatc.c 1.15, src/gp_macio.c 1.24, src/gp_mswin.c 1.21, src/gp_os2.c 1.28, src/gp_os9.c 1.11, src/gp_unix.c 1.12, src/gp_vms.c 1.31, src/zfontenum.c 1.3]</p> </blockquote> <p><strong><a name="2003-07-08_1502"></a> 2003-07-08 15:02 giles</strong></p> <blockquote> <pre> Add dmmain.c to the list of (platform-specific) source files exempt from the C++ comment policy. </pre> <p>[toolbin/tests/check_comments.py 1.2]</p> </blockquote> <p><strong><a name="2003-07-08_1458"></a> 2003-07-08 14:58 giles</strong></p> <blockquote> <pre> Remove some C++ style comments. </pre> <p>[src/gsiomacres.c 1.4]</p> </blockquote> <p><strong><a name="2003-07-08_1456"></a> 2003-07-08 14:56 giles</strong></p> <blockquote> <pre> Remove some C++ style comments and correct formatting. </pre> <p>[src/zfontenum.c 1.2]</p> </blockquote> <p><strong><a name="2003-07-08_1451"></a> 2003-07-08 14:51 giles</strong></p> <blockquote> <pre> Add zfontenum.c to the file listing in the documentation. </pre> <p>[doc/Develop.htm 1.117]</p> </blockquote> <p><strong><a name="2003-07-08_1326"></a> 2003-07-08 13:26 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Enlarge font resource arrays on demand. DETAILS : The patch fixes CID fonts that provide a lesser CIDCount than CIDs used in a document. Rather PS requires to print CID=0, we need to provide a bigger CIDCount since we don't re-encode the text. The text should look fine if the viewer application substitutes the font. Fixes the pdfwrite regression with 401-01.ps, which caused a segfault on Linux. Thanks to Ray Johnston for the fault analyzis. </pre> <p>[src/gdevpdtc.c 1.24, src/gdevpdtf.c 1.31, src/gdevpdtf.h 1.20]</p> </blockquote> <p><strong><a name="2003-07-07_2154"></a> 2003-07-07 21:54 jack</strong></p> <blockquote> <pre> Implement C++ style comment checking. Partially fixes bug #538033. </pre> <p>[toolbin/tests/check_comments.py 1.1]</p> </blockquote> <p><strong><a name="2003-07-07_2153"></a> 2003-07-07 21:53 jack</strong></p> <blockquote> <pre> Require python2.2 now, since the new C++ style comment checking requires it. </pre> <p>[toolbin/tests/check_all.py 1.4, toolbin/tests/check_dirs.py 1.7, toolbin/tests/check_docrefs.py 1.8, toolbin/tests/check_source.py 1.6, toolbin/tests/dump_testdb 1.5, toolbin/tests/get_baselines 1.2, toolbin/tests/gscheck_all.py 1.4, toolbin/tests/gscheck_fuzzypdf.py 1.6, toolbin/tests/gscheck_pdfwrite.py 1.14, toolbin/tests/gscheck_raster.py 1.5, toolbin/tests/make_testdb 1.11, toolbin/tests/make_two_pdfversions 1.7, toolbin/tests/make_two_versions 1.11, toolbin/tests/revert_baseline 1.11, toolbin/tests/revert_pdfbaseline 1.9, toolbin/tests/run_nightly 1.19, toolbin/tests/run_regression 1.12, toolbin/tests/testdiff 1.3, toolbin/tests/update_baseline 1.12, toolbin/tests/update_pdfbaseline 1.8]</p> </blockquote> <p><strong><a name="2003-07-04_1931"></a> 2003-07-04 19:31 giles</strong></p> <blockquote> <pre> Initial check in of the native font enumeration mechanism with an implementation for MacOS. The code is currently disabled pending resolution of bugs regarding some font files. DETAILS: This adds a trio of gp_enumerate_fonts calls which implement an interator for querying the native operating system for font files. This is essentially required to make use of the support for reading resource-based font collection files on MacOS since there is no convenient way to construct a Fontmap by hand. Thus our initial implementation focusses there and only stubs are provided on other platforms. However, it would generally be a useful feature on any system that provides such services. An iterator object is created with gp_enumerate_fonts_init() and released with gp_enumerate_fonts_free(). Between these calls, each font is returned by a successive call to gp_enumerate_fonts_next() as a pair of C strings giving the access path and reported font name. On MacOS these are implemented using the FMFontIterator API from Carbon. Unfortunately, while this returns font names and files, it does not provide details about the resource internals so we must open the file and extract the resource id corresponding to the font itself. It also is not always possible to obtain the correct postscript name from the OS call. Connection is made to postscript through the .getnativefonts operator, implemented in zfontenum.c. I handles the interation and places the results on the stack as an array of two element arrays, each representing the name and path as postscript strings. New code in gs_fonts.ps calls this and adds the entries to the fontmap after first calling .findfontname on each path to verify accessibility and in case the reported font name is unreliable. This is implemented as the .buildnativefontmap procedure, which is called by the font location logic if a requested font is not found in the Fontmap. Caveats: This can be a very expensive operation, so like the FONTPATH directory scanning it should probably only happen once in a given session, instead of every time a font isn't found. The macos implementation could also be considerably streamlined. </pre> <p>[lib/gs_fonts.ps 1.33, src/gp.h 1.23, src/gp_dvx.c 1.9, src/gp_iwatc.c 1.14, src/gp_macio.c 1.23, src/gp_mswin.c 1.20, src/gp_os2.c 1.27, src/gp_os9.c 1.10, src/gp_unix.c 1.11, src/gp_vms.c 1.30, src/int.mak 1.113, src/zfontenum.c 1.1]</p> </blockquote> <p><strong><a name="2003-07-04_1508"></a> 2003-07-04 15:08 giles</strong></p> <blockquote> <pre> Apparently Metrowerks CodeWarrior defines _WINDOWS_ instead of the normal __WINDOWS__. Support both for determining the calling conventions of the client api. Problem reported by Des Courtney as bug 686934. </pre> <p>[src/iapi.h 1.9]</p> </blockquote> <p><strong><a name="2003-07-04_1302"></a> 2003-07-04 13:02 giles</strong></p> <blockquote> <pre> Add the new get_baselines script to the regression test documentation. </pre> <p>[doc/Testing.htm 1.20]</p> </blockquote> <p><strong><a name="2003-07-03_1220"></a> 2003-07-03 12:20 igor</strong></p> <blockquote> <pre> Fix (Type 1 hinter) : -dAlignToPixels=0 was ignored with -dNOCACHE. DETAILS : Now we pass the oversampling scale and the number of subpixels to the Type 1 hinter in separate parameters. The old interface was wrong when alpha buffer is installed with -dNOCACHE. The patch cause difference in rendering with -dTextAlphaBits=2,4. These cases are not tested by the regression test tool. Minor changes : - fixed C-style in gxhintn.c; - removed "const gs_log2_scale_point no_scale = {0, 0}" to simplify calls to gs_type1_interp_init. </pre> <p>[src/gdevpsfx.c 1.21, src/gstype1.c 1.24, src/gstype1.h 1.7, src/gstype2.c 1.26, src/gxfcopy.c 1.29, src/gxhintn.c 1.28, src/gxhintn.h 1.13, src/gxtype1.c 1.24, src/gxtype1.h 1.13, src/zchar1.c 1.29]</p> </blockquote> <p><strong><a name="2003-07-02_2341"></a> 2003-07-02 23:41 jack</strong></p> <blockquote> <pre> Report upgraded baselines in the last 24 hours. Closes bug #654532. </pre> <p>[toolbin/tests/get_baselines 1.1, toolbin/tests/gscheck_raster.py 1.4, toolbin/tests/run_nightly 1.18, toolbin/tests/testing.cfg.example 1.3]</p> </blockquote> <p><strong><a name="2003-07-02_1435"></a> 2003-07-02 14:35 giles</strong></p> <blockquote> <pre> Change the release instructions to refer to GPL Ghostscript rather than GNU Ghostscript. We're no longer part of the GNU project. Closes bug 686913. </pre> <p>[doc/Release.htm 1.77]</p> </blockquote> <p><strong><a name="2003-07-02_1316"></a> 2003-07-02 13:16 giles</strong></p> <blockquote> <pre> Document passing -DGX_COLOR_INDEX_TYPE in unixansi.mak in response to the confusion reported in bug 686876. </pre> <p>[src/unixansi.mak 1.32]</p> </blockquote> <p><strong><a name="2003-07-01_1501"></a> 2003-07-01 15:01 giles</strong></p> <blockquote> <pre> Correct a bug with zero-length files in .findfontvalue, used by .findfonttype and .findfontname. </pre> <p>[lib/gs_fonts.ps 1.32, lib/gs_ttf.ps 1.31]</p> </blockquote> <p><strong><a name="2003-07-01_1441"></a> 2003-07-01 14:41 giles</strong></p> <blockquote> <pre> Document the need to set /OutputFile to a valid filename before calling 'setdevice' with the pdfwrite device. Closes bug 686784. </pre> <p>[doc/Language.htm 1.72]</p> </blockquote> <p><strong><a name="2003-07-01_1000"></a> 2003-07-01 10:00 igor</strong></p> <blockquote> <pre> Fix : merge Adobe Glyph List to gs/Resource/Decoding/Unicode. </pre> <p>[Resource/Decoding/Unicode 1.3]</p> </blockquote> <p><strong><a name="2003-07-01_0437"></a> 2003-07-01 04:37 alexcher</strong></p> <blockquote> <pre> Fix premature increment of a nested string counter. Skip white space characters before '(' on 0 level. </pre> <p>[src/geninit.c 1.8]</p> </blockquote> <p><strong><a name="2003-07-01_0419"></a> 2003-07-01 04:19 alexcher</strong></p> <blockquote> <pre> Include default font map into compiled initialization files but use it only if the default font map file fails to open at run time. Fix bug 414985. </pre> <p>[lib/Fontmap 1.2, lib/gs_fonts.ps 1.31, doc/Make.htm 1.68]</p> </blockquote> <p><strong><a name="2003-06-30_1623"></a> 2003-06-30 16:23 alexcher</strong></p> <blockquote> <pre> Fix a typo in a comment. </pre> <p>[lib/gs_stres.ps 1.5]</p> </blockquote> <p><strong><a name="2003-06-26_2242"></a> 2003-06-26 22:42 dan</strong></p> <blockquote> <pre> Fix for 686927 Bug in implementation of .hsb2rgb (gs_cspace.ps). This is a bug report, fix, and a test file from Heiko Oberdiek. I love it when the bug reporter also includes an analysis, a fix and a test file. The problem was an error in the calculations for an HSB (hue, saturation, brightness) color to RGB when the hue was 1. The only change that I made in Heiko's fix was to change a few more comments. </pre> <p>[lib/gs_cspace.ps 1.6]</p> </blockquote> <p><strong><a name="2003-06-26_2220"></a> 2003-06-26 22:20 alexcher</strong></p> <blockquote> <pre> PDF fonts can have different widths assigned to character codes corresponding to the same glyph. There is no equivalent feature in PostScript. In this case we define a new entry in CharString dictionary, and change Encoding vector and Metrics accordingly. Currently the font adjustment is applied to Type1, MMType1, and TrueType font resources as defined in adjustfonttypes dictionary. Fixes bug 623292 </pre> <p>[lib/pdf_font.ps 1.57, lib/pdf_ops.ps 1.30]</p> </blockquote> <p><strong><a name="2003-06-26_1559"></a> 2003-06-26 15:59 alexcher</strong></p> <blockquote> <pre> Don't oversample characters for rendering in non-pure color. Search the character cache for the exact match -- don't do routine downsampling. Move cached image depth calculations to compute_glyph_raster_params(). Fix downsampling depth calculation although it is not expected to be used in normal operation. Leave the downsampling code intact because it is also used for error recovery. Fix bug 570772 from customer 1. </pre> <p>[src/gxccache.c 1.17, src/gxccman.c 1.8, src/gxchar.c 1.29]</p> </blockquote> <p><strong><a name="2003-06-26_0914"></a> 2003-06-26 09:14 igor</strong></p> <blockquote> <pre> Fix : Improving an error message. </pre> <p>[src/imain.c 1.32]</p> </blockquote> <p><strong><a name="2003-06-24_1057"></a> 2003-06-24 10:57 igor</strong></p> <blockquote> <pre> Fix : gs/Resource/Decoding/Unicode contained wrong codes for Cyrillic and Herbrew. </pre> <p>[Resource/Decoding/Unicode 1.2]</p> </blockquote> <p><strong><a name="2003-06-22_1115"></a> 2003-06-22 11:15 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : pdev->black and pdev->white were not set when ProcessColorModel changes. Bug 686921 "/ProcessColorModel /DeviceCMYK causes black page". </pre> <p>[src/gdevpdfg.c 1.33]</p> </blockquote> <p><strong><a name="2003-06-21_1516"></a> 2003-06-21 15:16 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Improving the condition for writing ToUnicode CMap for simple fonts. </pre> <p>[src/gdevpdte.c 1.39, src/gdevpdtw.c 1.19]</p> </blockquote> <p><strong><a name="2003-06-21_1212"></a> 2003-06-21 12:12 igor</strong></p> <blockquote> <pre> Fix : Remove LONG_MIN from gxfill.c for a better portability. </pre> <p>[src/gxfill.c 1.38]</p> </blockquote> <p><strong><a name="2003-06-20_1552"></a> 2003-06-20 15:52 giles</strong></p> <blockquote> <pre> Give the explicit maximum buffer size in bytes. Suggestion by Ray re bug 686925. </pre> <p>[doc/API.htm 1.35, doc/DLL.htm 1.31]</p> </blockquote> <p><strong><a name="2003-06-20_1432"></a> 2003-06-20 14:32 giles</strong></p> <blockquote> <pre> Document the 64 KB length limit on input data passed through the gsapi_run_string* and gsdll_run_cont() calls. Fixes bug 686925. </pre> <p>[doc/API.htm 1.34, doc/DLL.htm 1.30]</p> </blockquote> <p><strong><a name="2003-06-20_1320"></a> 2003-06-20 13:20 giles</strong></p> <blockquote> <pre> Remove <limit.h> inclusions as it defines types that conflict with our std*.h on HPUX and probably other systems. Fix for bug 686920. Also correct the copyright dates for gxhintn.c. DETAILS: limits.h was defining ushort on HPUX which conflicts with the definition imported in stdpre.h. There are two approaches within our portability framework: don't use these defines, or make them part of the output from genarch. Since there's only one use in the code (for MIN_LONG) I simply defined it at the top of the file. The test used should work on all 2's complement systems and would probably fail miserably on anything else. It was the most portable define I could come up with. A less assuming variant ((long)(ARCH_MAX_ULONG>>1)+1) also works but generates a warning about the overflow. genarch.c could of course test a variety of candidates and look for the rollover. We could also switch to autoconf for provisioning the whole set of defines. This was chosen as the simplest fix for the time. </pre> <p>[src/gxfill.c 1.37, src/gxhintn.c 1.27]</p> </blockquote> <p><strong><a name="2003-06-20_1123"></a> 2003-06-20 11:23 giles</strong></p> <blockquote> <pre> Declare zimage_data_setup() as private to match its prototype. Corrects a warning on the HPUX native compiler. </pre> <p>[src/zimage.c 1.11]</p> </blockquote> <p><strong><a name="2003-06-19_1538"></a> 2003-06-19 15:38 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : FontMatrix was wrong when a standard font is used with various encodings. DETAILS : The core of the change is one in pdf_font_std_alloc. Others provide information for it. Bug 686917 "bad type1 font handling in pdfwriter". </pre> <p>[src/gdevpdtb.c 1.20, src/gdevpdtd.c 1.13, src/gdevpdtf.c 1.30, src/gdevpdtt.c 1.50, src/gxfcopy.c 1.28, src/gdevpdtb.h 1.9, src/gdevpdtf.h 1.19, src/gxfcopy.h 1.9]</p> </blockquote> <p><strong><a name="2003-06-18_2051"></a> 2003-06-18 20:51 alexcher</strong></p> <blockquote> <pre> Windows 2000 driver includes PJL into %%BeginFeature block. Identify this from the operand stack pattern: countdictstack lucas mark and fail the feature request. Fix bug 686916 </pre> <p>[lib/gs_init.ps 1.92]</p> </blockquote> <p><strong><a name="2003-06-18_2001"></a> 2003-06-18 20:01 alexcher</strong></p> <blockquote> <pre> Use single '%' in a comment. </pre> <p>[lib/gs_stres.ps 1.4]</p> </blockquote> <p><strong><a name="2003-06-18_1958"></a> 2003-06-18 19:58 alexcher</strong></p> <blockquote> <pre> Activate DSC parser only after all prologue files are read to prevent spurious comments starting with '%%' from disturbing the parser. </pre> <p>[lib/gs_pdfwr.ps 1.34]</p> </blockquote> <p><strong><a name="2003-06-18_1956"></a> 2003-06-18 19:56 alexcher</strong></p> <blockquote> <pre> Fix mis-identificaion of every DSC-conforming file as EPS. </pre> <p>[src/gdevpdfp.c 1.32]</p> </blockquote> <p><strong><a name="2003-06-18_1953"></a> 2003-06-18 19:53 alexcher</strong></p> <blockquote> <pre> Add a paragraph documenting current page orientation options, document limitations on ps2pdf options, and show a work-around. Fixes bug 592930 </pre> <p>[doc/Ps2pdf.htm 1.54]</p> </blockquote> <p><strong><a name="2003-06-18_1330"></a> 2003-06-18 13:30 igor</strong></p> <blockquote> <pre> pdfwrite : Generate ToUnicode CMaps for CID fonts. DETAILS : This patch must not affect any rendering. The main change is in gdevpdtc.c and zbfont.c . Minor changes : - removed an debug code (#if TEST_UNICODE_SUPPORT, #if 0 in gdevpdtc.c); - Propagated error code in gdevpdf.c . Bug 686887 "Searchable pdf". </pre> <p>[src/gdevpdf.c 1.69, src/gdevpdtc.c 1.23, src/gdevpdte.c 1.38, src/zbfont.c 1.20]</p> </blockquote> <p><strong><a name="2003-06-17_1341"></a> 2003-06-17 13:41 igor</strong></p> <blockquote> <pre> Fix (type 1 hinter) : Don't apply alignment zone to horizontal stems when the shift is bigger than half pixel. DETAILS : Fixes a problem with comparefiles/font_issue.pdf . This patch causes minor differences in rendering of multiple files : 72dpi : 027-09.ps bulletin.pdf chess.ps CIDembedded.pdf fonttest.pdf Svd.pdf test.pdf 300dpi : 01_001.pdf 027-05.ps 027-09.ps 033-52-5873.pdf 045-01.ps 093-01.ps 136-01.ps 154-01.ps 158-01.ps 159.pdf 165-01.ps 1_pct_50_bang.pdf 231-01.ps 233-01.ps 251-01.ps 268-03.ps 268-05.ps 281-01.ps 327-01.ps 450-01.ps 455690.pdf 541.pdf 541_623.pdf 86554321.pdf aaon97_p7.pdf acrobat.pdf adesso1.pdf adesso3.pdf adesso5.pdf adesso6.pdf adesso7.pdf AdobeLic.pdf alphabet.ps Altona-Testsuite_p2_S_x3.pdf Altona.Page_3.2002-09-27.pdf ats-3-5-99.pdf besttest.pdf brochurep1.pdf bug-gstest.pdf bugsample.pdf bulletin.pdf ccc.pdf chess.ps CIDembedded.pdf colorcir.ps dave.pdf Dave_Barry.pdf DisplayedGood.pdf DisplayedWrong.pdf fonttest.pdf frosch.pdf gs5.98-dragon.pdf gs6.0-dragon.pdf H00216q.pdf js.pdf kazmir.pdf KozukaB-ILEmbed.pdf laballade.pdf LD.pdf narrow_font.pdf ngnews.pdf ngnews1.pdf NIL_0003.pdf Openhuis_pdf_zw.pdf pdftops.pdf PixelisAd.pdf prfmm.pdf pstopdf.pdf pstopdfO3.pdf QA_Inv.pdf RealCities.pdf rf1025.pdf ridt91.eps RodinCIDEmbed.pdf S2_Digitalproof-Forum_x3k.pdf smdf.90441.102.pdf Svd.pdf test.pdf test2.pdf test2a.pdf textsavematrix.pdf time1.pdf vsem0093.pdf waterfal.ps xgfddg.pdf xngnews.pdf </pre> <p>[src/gxhintn.c 1.26]</p> </blockquote> <p><strong><a name="2003-06-17_1210"></a> 2003-06-17 12:10 giles</strong></p> <blockquote> <pre> Clarify a comment. </pre> <p>[src/macos-mcp.mak 1.20]</p> </blockquote> <p><strong><a name="2003-06-17_0942"></a> 2003-06-17 09:42 igor</strong></p> <blockquote> <pre> Implementing the text rendering mode 3 with graphics library to allowing PDF interpreter with pdfwrite to pass invisible text (continued). DETAILS : 2 files were missed from the previous patch. Adding them now. </pre> <p>[src/gsstate.c 1.20, src/gxistate.h 1.16]</p> </blockquote> <p><strong><a name="2003-06-16_1504"></a> 2003-06-16 15:04 igor</strong></p> <blockquote> <pre> Implementing the text rendering mode 3 with graphics library to allowing PDF interpreter with pdfwrite to pass invisible text. DETAILS : This patch improves the text rendering mode 3 only. Other text modes stay like they were - implemented with charpath in pdf_ops.ps (to be improved someday). We process invisible text with TEXT_DO_NONE, adding an additional check to op_show_restore in zchar.c . We would like to implement a new mode TEXT_DO_INVISIBLE, but we don't want to do so deep change without a strong neccessity. It can be subject of a further improvement. With this patch stringwidth won't work with text rendering mode 3. We never use this combination. TEXT_DO_INVISIBLE could work for it. Bug 686914 "pdfwrite does not preserve invisible text". </pre> <p>[src/gdevpdte.c 1.37, src/gdevpdtt.c 1.49, src/gsstate.h 1.9, src/gstext.c 1.12, src/int.mak 1.112, src/zchar.c 1.11, src/zgstate.c 1.8, lib/pdf_ops.ps 1.29]</p> </blockquote> <p><strong><a name="2003-06-16_1046"></a> 2003-06-16 10:46 igor</strong></p> <blockquote> <pre> Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong (3nd attempt). DETAILS : This patch defines a compatible workaround for fonts that use ce1_setcurrentpoint in an illegal way. See comments in code. </pre> <p>[src/gdevpsfx.c 1.20, src/gxhintn.c 1.25]</p> </blockquote> <p><strong><a name="2003-06-11_1949"></a> 2003-06-11 19:49 igor</strong></p> <blockquote> <pre> Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong (2nd attempt). DETAILS : The previous patch appears wrong. This patch unwinds the change to gdevpsfx.c and fixes ce1_setcurrentpoint in the new Type1 hinter. </pre> <p>[src/gdevpsfx.c 1.19, src/gxhintn.c 1.24]</p> </blockquote> <p><strong><a name="2003-06-11_1202"></a> 2003-06-11 12:02 igor</strong></p> <blockquote> <pre> Fix : Errors in a comment documenting gs_glyph. </pre> <p>[src/gsccode.h 1.11]</p> </blockquote> <p><strong><a name="2003-06-11_0135"></a> 2003-06-11 01:35 giles</strong></p> <blockquote> <pre> Print out modified file names and versions when generating the html changelog. Update the current versions of Changes.html and Details.html as an example. </pre> <p>[doc/Changes.htm 1.47, doc/Details.htm 1.6]</p> </blockquote> <p><strong><a name="2003-06-11_0131"></a> 2003-06-11 01:31 giles</strong></p> <blockquote> <pre> Print out modified filenames and versions when generating the html changelog. </pre> <p>[toolbin/split_changelog.py 1.5]</p> </blockquote> <p><strong><a name="2003-06-10_1429"></a> 2003-06-10 14:29 igor</strong></p> <blockquote> <pre> Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong. </pre> <p>[src/gdevpsfx.c 1.18, src/gstype1.c 1.23]</p> </blockquote> <p><strong><a name="2003-06-09_2225"></a> 2003-06-09 22:25 alexcher</strong></p> <blockquote> <pre> Edited to reflect new capabilities of Bugzilla and current bug reporting practices. </pre> <p>[doc/Bug-form.htm 1.37]</p> </blockquote> <p><strong><a name="2003-06-09_2216"></a> 2003-06-09 22:16 alexcher</strong></p> <blockquote> <pre> Change links from SourceForge bug tracker, http://sourceforge.net/bugs/?group_id=1897 to Ghostscript Bugzilla, http://bugs.ghostscript.com Fix bug #686888 </pre> <p>[doc/Bug-info.htm 1.35, doc/Make.htm 1.67]</p> </blockquote> <p><strong><a name="2003-06-09_2155"></a> 2003-06-09 21:55 alexcher</strong></p> <blockquote> <pre> Add hyperlinks to Ghostscript Bugzilla bug entries. </pre> <p>[doc/Devices.htm 1.67, doc/Issues.htm 1.37, doc/Projects.htm 1.52]</p> </blockquote> <p><strong><a name="2003-06-09_1358"></a> 2003-06-09 13:58 alexcher</strong></p> <blockquote> <pre> Permit explicit specification of /GDBytes equal to 0 for incrementally downloadable CIDFonts. Fixes bug 686890 from customer 131. DETAILS: Incrementally downloadable CIDFont has GlyphDirectory key. According to PLRM3 p. 376 "The binary data section of a CIDFont with a GlyphDirectory entry does not need a charstring offset table or charstrings; if present, they will be ignored". PLRM3 says nothing about GDBytes entry but it seems logical that the entry is no longer needed when the structure it describes is ignored. Old code used 0 as a default GDBytes value but required explicit specification to be > 0. New code permits explicit 0 value because "Acrobat PDFMaker 5.0 for Word" generates it. </pre> <p>[src/zfcid.c 1.14]</p> </blockquote> <p><strong><a name="2003-06-08_1359"></a> 2003-06-08 13:59 igor</strong></p> <blockquote> <pre> Fix : Removing an unused code. </pre> <p>[src/gdevbit.c 1.8]</p> </blockquote> <p><strong><a name="2003-06-08_0330"></a> 2003-06-08 03:30 igor</strong></p> <blockquote> <pre> Fix : Completing the extended semantics of gs_glyph. DETAILS : The extended semantics was introduced with the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-June/003354.html That patch appears incomplete. Hopely this one completes it. Also it fixes the bug #686910, which was not detected with comparefiles. </pre> <p>[src/zfont42.c 1.16]</p> </blockquote> <p><strong><a name="2003-06-07_2117"></a> 2003-06-07 21:17 igor</strong></p> <blockquote> <pre> pdfwrite : Write Encoding for True Type fonts. DETAILS : See comment in code. </pre> <p>[src/gdevpdtt.c 1.48]</p> </blockquote> <p><strong><a name="2003-06-07_2114"></a> 2003-06-07 21:14 igor</strong></p> <blockquote> <pre> Fix (PDF interpreter) : Account Encoding while building CharStrings for TrueType fonts. DETAILS : If an Encoding is specified with a symbolic TrueType font, its character names to be used for generating CharStrings. The old code uses SymbolEncoding instead, missing some characters. Fixes the bug 686912 "PDF interpreter problem with True Type & Encoding". </pre> <p>[lib/gs_ttf.ps 1.30, lib/pdf_font.ps 1.56]</p> </blockquote> <p><strong><a name="2003-06-06_1750"></a> 2003-06-06 17:50 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Convert Type 0 fonts with multiple CID font descendents into Type 0 fonts with single CID font descendents (the part 3). DETAILS : At last we got a non-degenerate test for multiple CID font descendents and could debug this stuff with a real document. This patch mixes several changes : - In some cases CIDFontType 2 fonts wrongly computed glyph indices ignoring GlyphDirectory. The new function z11_glyph_info works for it. - The text decomposition in gdevpdtc.c mixed font indices of various font descendents. - font->procs.get_glyph_info sometimes received glyph indices instead glyph names or CIDs. This happened with subglyphs of a CIDFontType 2 glyph. This patch improves the semantics of gs_glyph with distinguishing CIDs and GIDs with a new tag in the 2nd high order bit. The new macro GS_MAX_GLYPH_INDEX and related stuff works for it. - gdevpdtd.c tried to compute CID font features using glyph names, which don't exist in this case. Replaced with CIDs. - In gdevtrac.c a wrong glyph space was specified enumerating glyphs (a minor change, since gdevtrac.c is almost an example). - Fixed a compiler warning in gdevdevn.c . Working on this patch, we can see rudiments in pdfwrite code, which are inherited from pre-8.00 code (before stable font copies are implemented), which to be fixed someday : - subset_glyphs arguments in gdevpsft.c looks always NULL and probably to be removed; - COPY_GLYPH_BY_INDEX is now obsolete and to be removed; - glyph enumeration procedures (*enumerate_glyph*) sometimes retrieve a wrong tag in gs_glyph values. The new macro GS_GLYPH_TAG works against it, rather an improvement to enumeration procedures would be useful. The patch is debugged with korea.ps from the bug #686894. After this change the embedded composite font with 2 CIDFontType 2 descendents is correctly decomposed into 2 Type 0 fonts with single descendents (the old (gs8.10) code converts it into a Type 3 with outlines). The generated PDF satisfies the PDF specification and Ghostscript can handle it. Meanwhile Acrobat Reader 4,5,6 fails with it. It appears an old known problem : if a Type 42 font and a CIDFontType 2 with a non-standard CMap appear in same PDF document, Acrobat Reader fails. We believe it's a bug in Acrobat reader, because if we modify the document with removing portions of text so that only one of the 2 fonts is really used, Acrobat Reader renders it fine. It fails only when both things are really used for rendering. A workaround for this problem to do separately. </pre> <p>[src/gdevdevn.c 1.7, src/gdevpdtc.c 1.22, src/gdevpdtd.c 1.12, src/gdevpdtf.c 1.29, src/gdevpdtt.c 1.47, src/gdevpsf.h 1.24, src/gdevpsft.c 1.30, src/gdevpsfu.c 1.11, src/gdevtrac.c 1.5, src/gsccode.h 1.10, src/gstype42.c 1.31, src/gxfcopy.c 1.27, src/gxfont42.h 1.15, src/zfcid1.c 1.17, src/zfont42.c 1.15]</p> </blockquote> <p><strong><a name="2003-06-06_1629"></a> 2003-06-06 16:29 alexcher</strong></p> <blockquote> <pre> Process encryption dictionary after reading all parts of xref. Old code resolved encryption dictionary after reading the latest part of xref only and returned null instead of the dictionary for some files. Fixes bug 686907 from customer 1060. </pre> <p>[lib/pdf_main.ps 1.75]</p> </blockquote> <p><strong><a name="2003-06-03_0731"></a> 2003-06-03 07:31 igor</strong></p> <blockquote> <pre> pdfwrite : Don't add subset prefix when a font doesn't embeed. Ghostscript Bug 686893 NeverEmbed for Japanese CID fonts doesn't work correctly Patch from Koji Nakamaru. </pre> <p>[src/gdevpdtf.c 1.28]</p> </blockquote> <p><strong><a name="2003-06-03_0626"></a> 2003-06-03 06:26 dan</strong></p> <blockquote> <pre> Fix for 686785 segfault with PDF 1.4. The PDF interpreter was calling PDF 1.4 transparency features (begin_trasnparency_group) even though the alpha involved was 1.0. THe fix is to set a flag when the need for transparency is done at the start of a page and then testing it when transparency may be needed durng the page. </pre> <p>[lib/pdf_draw.ps 1.70, lib/pdf_main.ps 1.74]</p> </blockquote> <p><strong><a name="2003-06-03_0530"></a> 2003-06-03 05:30 dan</strong></p> <blockquote> <pre> This fix corrects a recursion loop that exists with PDF form objects with a transparency group. </pre> <p>[lib/pdf_draw.ps 1.69]</p> </blockquote> <p><strong><a name="2003-06-02_1952"></a> 2003-06-02 19:52 alexcher</strong></p> <blockquote> <pre> Count 1st page objects as shared objects. This is the 1st version that generates files compatible with AR5 used as a browser plug-in. Earlier versions of Acrobat ignore malformed hint tables. All versions ignore the tables when they read the file from disk. Fixes bug 592841 </pre> <p>[lib/pdfopt.ps 1.20]</p> </blockquote> <p><strong><a name="2003-06-02_1621"></a> 2003-06-02 16:21 igor</strong></p> <blockquote> <pre> pdfwrite : Glyph indices were wrongly computed with copied FontType 11. Ghostscript Bug 686894 "Corrupted CMap". </pre> <p>[src/gxfcopy.c 1.26]</p> </blockquote> <p><strong><a name="2003-06-02_1335"></a> 2003-06-02 13:35 giles</strong></p> <blockquote> <pre> Add standard banner and (unnecessary) double include protection to satisfy policy tests. </pre> <p>[src/macos_carbon_pre.h 1.2]</p> </blockquote> <p><strong><a name="2003-06-02_1329"></a> 2003-06-02 13:29 giles</strong></p> <blockquote> <pre> Correct listing of MacOS platform-specific source files. </pre> <p>[doc/Develop.htm 1.116]</p> </blockquote> <p><strong><a name="2003-05-31_0010"></a> 2003-05-31 00:10 ray</strong></p> <blockquote> <pre> Previous commit was from a bad version of the file (prior to a local correction in a different directory). This fix is the correct fix for embedded fonts that have Length 0 for customer #590. </pre> <p>[lib/pdf_font.ps 1.55]</p> </blockquote> <p><strong><a name="2003-05-30_2328"></a> 2003-05-30 23:28 ray</strong></p> <blockquote> <pre> Some PDF files have embedded fonts with Length == 0. These should default to the same handling as when there is no embedded font. Fix for customer #590. </pre> <p>[lib/pdf_font.ps 1.54]</p> </blockquote> <p><strong><a name="2003-05-29_1928"></a> 2003-05-29 19:28 giles</strong></p> <blockquote> <pre> Add an example library client for MacOS, comparable to dxmain and dwmain for other platforms. This implementation is specific to Metrowerk CodeWarrior, relying on the MSL/SIOUX stdio implementation for the interactive window. No project file support at the moment. Code contributed by Nigel Hathaway. </pre> <p>[src/dmmain.c 1.1, src/dmmain.r 1.1]</p> </blockquote> <p><strong><a name="2003-05-29_1911"></a> 2003-05-29 19:11 giles</strong></p> <blockquote> <pre> Add a prefix header file for the MacOS Carbon build to enable target-specific settings. DETAILS: Metrowerks CodeWarrior doesn't really have an equivalent of the -D commandline option to set CPP defines at compile time. This makes it difficult to set target-specific #ifdef's, for example the __CARBON__ switches used in the MacOS support code. The closest thing offered is a hook in the project file for a 'prefix' header file that will be prepended to each source file as it is fed to the preprocessor. We add such a file for the carbon build, and enable it in the project file xml. The conditional in macgenmcpxml.sh is a direct comparison for the Ghostscript carbon shlib name, which is excessively brittle. Something like perl's =~ /carbon/i on the target name would be preferable, but I couldn't figure out how to do that reliably in sh. </pre> <p>[src/macgenmcpxml.sh 1.10, src/macos_carbon_pre.h 1.1]</p> </blockquote> <p><strong><a name="2003-05-29_1902"></a> 2003-05-29 19:02 giles</strong></p> <blockquote> <pre> Check for a valid filter name before trying to parse jbig2 global context streams. Fixes bug 686829. DETAILS: The expansion of abbreviated filter names and check for supported filters was happening after the special-case handling of JBIG2Decode parameters, resulting is an '/undefined in /.jbig2makeglobalctx' error if Ghostscript was compiled without jbig2 support, rather than the usual 'Unable to process' warnings for files containing JBIG2Decode data. </pre> <p>[lib/pdf_base.ps 1.38]</p> </blockquote> <p><strong><a name="2003-05-29_1638"></a> 2003-05-29 16:38 giles</strong></p> <blockquote> <pre> Remove spurious '-c' options to install. Closes bug 686895. </pre> <p>[ijs/Makefile.in 1.2]</p> </blockquote> <p><strong><a name="2003-05-27_1610"></a> 2003-05-27 16:10 alexcher</strong></p> <blockquote> <pre> Initialize current color value as null when pattern color space is set. Fixes bug 686805 </pre> <p>[src/zpcolor.c 1.10]</p> </blockquote> <p><strong><a name="2003-05-24_2241"></a> 2003-05-24 22:41 igor</strong></p> <blockquote> <pre> Fix : Don't fail when GlyphNames2Unicode can't be provided for a CID font. </pre> <p>[lib/gs_fntem.ps 1.6]</p> </blockquote> <p><strong><a name="2003-05-24_1719"></a> 2003-05-24 17:19 dan</strong></p> <blockquote> <pre> A pair of fixes for Bug 686791 Device bitcmyk produces wrong output The bitcmyk device produce the wrong output if GrayValues=8. In this case the pixel size is 32 bits. The encode_color procedure was sign extending the MSB into the upper 32 bits of 64 bit gx_color_indexes. The fix in gdevbit.c prevents this from happening. The fix in gdevm32.c makes it so that it does not matter. I am including both for completeness. The bitcmyk device should not produce garbage in the remaining bits. Thus the first fix. However there may be other devices with this problem so I am including the fix in gdevm32.c. There was a recent report from an AIX system with a similar problem </pre> <p>[src/gdevbit.c 1.7, src/gdevm32.c 1.5]</p> </blockquote> <p><strong><a name="2003-05-23_0957"></a> 2003-05-23 09:57 igor</strong></p> <blockquote> <pre> Provide a trial support for converting a text to Unicode. </pre> <p>[lib/gs_cidfn.ps 1.27, lib/gs_fntem.ps 1.5, lib/gs_fonts.ps 1.30, lib/gs_pdfwr.ps 1.33, src/gdevpdtc.c 1.21, src/zbfont.c 1.19]</p> </blockquote> <p><strong><a name="2003-05-23_0153"></a> 2003-05-23 01:53 ray</strong></p> <blockquote> <pre> Stream 'position' was not update correctly under some conditions. Fixes Bug #686859 for customer #600. DETAILS: The stream position was not updated if the buffer was emptied by sgets, which then called to spgetcc. The latter would reset the read pointers needed in order to account for the empty buffer. </pre> <p>[src/stream.c 1.22]</p> </blockquote> <p><strong><a name="2003-05-22_2337"></a> 2003-05-22 23:37 igor</strong></p> <blockquote> <pre> pdfwrite : Convert Type 0 fonts with multiple CID font descendents into Type 0 fonts with single CID font descendents (part 2). DETAILS : The previous patch appears wrong for the case when same CID font is used with different CMaps. Creating multiple Type 0 fonts for this case, assigning them a composite font name with CMap name. Minor changes : - a compiler warning in gdevpdfv.c . - a wrong error code was returned from zfcid0.c . </pre> <p>[src/gdevpdfv.c 1.26, src/gdevpdtc.c 1.20, src/gdevpdtf.c 1.27, src/gdevpdtf.h 1.18, src/gdevpdtt.c 1.46, src/gdevpdtt.h 1.17, src/zfcid0.c 1.20]</p> </blockquote> <p><strong><a name="2003-05-22_2257"></a> 2003-05-22 22:57 giles</strong></p> <blockquote> <pre> Double-equals ('==') for string comparison is not portable shell. Thanks to Nelson Beebe for pointing out the issue. </pre> <p>[src/configure.ac 1.29]</p> </blockquote> <p><strong><a name="2003-05-22_2027"></a> 2003-05-22 20:27 igor</strong></p> <blockquote> <pre> Fix : Removed a debug hack. </pre> <p>[src/gsfcmap1.c 1.6]</p> </blockquote> <p><strong><a name="2003-05-22_1551"></a> 2003-05-22 15:51 ray</strong></p> <blockquote> <pre> PDF Forms that contained indirect objects need to be resolved prior to processing with 'execform'. Bug #686884 for customer #150. </pre> <p>[lib/pdf_draw.ps 1.68]</p> </blockquote> <p><strong><a name="2003-05-22_1541"></a> 2003-05-22 15:41 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Convert Type 0 fonts with multiple CID font descendents into Type 0 fonts with single CID font descendents. DETAILS : Bug 686869 "Rasterized characters". Our testbase doesn't test this case. Rather the test file for 686869 contains a font with 2 CID descendents, it actually uses only the 1st descendent, so it's not a complete test. The new code fails with 401-01.ps . This test file is buggy and requires a special workaround, which should be a separate patch. The main change is gdevpdtc.c, gdevpdtf.h . Minor changes : - added a new argument to a set of CMap management functions to access a submap corresponding to a specified font index; - gs_cmap_init now reserves so many gs_id numbers, as many fonts it refer; - removed some unused variables (gdevpdfm.c, gdevpdfv.c, gdevpdtb.c). </pre> <p>[src/gdevpdfm.c 1.31, src/gdevpdfv.c 1.25, src/gdevpdtb.c 1.19, src/gdevpdtc.c 1.19, src/gdevpdtf.c 1.26, src/gdevpdtf.h 1.17, src/gdevpdtt.c 1.45, src/gdevpdtt.h 1.16, src/gdevpdtw.c 1.18, src/gdevpdtw.h 1.3, src/gdevpsf.h 1.23, src/gdevpsfm.c 1.14, src/gsfcmap.c 1.22, src/gxfcmap.h 1.15, src/zcidtest.c 1.3]</p> </blockquote> <p><strong><a name="2003-05-22_0602"></a> 2003-05-22 06:02 igor</strong></p> <blockquote> <pre> Fix (pdfwrite) : Removing the 'vdata' argument to simplify internal interfaces. DETAILS : This change is algorithmically equivalent. Note that 'size' argument is replaced with 'bsize', which now passes the buffer size rather than text size. Added some dynamical checks to ensure the buffer size is enough. </pre> <p>[src/gdevpdtc.c 1.18, src/gdevpdte.c 1.36, src/gdevpdtt.c 1.44, src/gdevpdtt.h 1.15]</p> </blockquote> <p><strong><a name="2003-05-21_1750"></a> 2003-05-21 17:50 giles</strong></p> <blockquote> <pre> Bump version number after the 8.10 release. </pre> <p>[doc/News.htm 1.130, lib/gs_init.ps 1.91, src/gscdef.c 1.36, src/version.mak 1.63]</p> </blockquote> <h2><a name="Version8.10"></a>Version 8.10 (2003-05-21)</h2> <p> The 8.10 release is an incremental release from 8.00. It contains some fairly substantial reworking of important modules, most notably in the font rendering. Because of the extent of the changes, we're labelling this as a beta release. It should be quite usable, but it hasn't been as thoroughly wrung out as our production releases. <p> The major new feature improved font rendering by Igor Melichev. The new font renderer prevents dropouts intelligently rather than relying on "fill_adjust" (which has the side effect of making the font bolder). <p> In addition, pdfwrite continues to evolve and improve. Most patterns and type 3 fonts are now output as high-level objects rather than being rasterized. <p> This is our first release with support for JBIG2 encoded images, using our jbig2dec library. This decoder is not yet complete, but successfully decodes many PDF files containing JBIG2 images. <p> This release also contains an important security fix. If you are using Ghostscript in a security-critical application, we recommend you upgrade now. <p> Finally, we include the usual bug fixes and improvements. Please exercise this release thoroughly, so we can make the next release rock-solid. <p> The following <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a> numbers were open at the time of this release: <blockquote> 405501, 406273, 414947, 414985, 430175, 446344, 456692, 458261, 458775, 458780, 459647, 463688, 465936, 487460, 487953, 493348, 505429, 509829, 526099, 526491, 530011, 535366, 535752, 535932, 538033, 542629, 553187, 555072, 558151, 558435, 563287, 570772, 572865, 578838, 578865, 592160, 592837, 592841, 592930, 595760, 600288, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 621267, 623292, 624515, 626059, 626295, 628110, 629335, 633299, 634036, 634358, 636210, 637850, 645316, 651644, 654532, 656414, 656510, 664484, 667301, 669654, 674241, 674390, 674417, 674418, 677324, 677383, 677430, 677573, 680301, 681469, 684778, 684866, 685335, 686746, 686747, 686750, 686752, 686768, 686770, 686777, 686778, 686779, 686782, 686784, 686785, 686788, 686789, 686791, 686796, 686803, 686805, 686813, 686815, 686816, 686817, 686819, 686821, 686822, 686823, 686824, 686827, 686829, 686833, 686834, 686837, 686839, 686841, 686842, 686843, 686844, 686845, 686850, 686852, 686853, 686859, 686860, 686861, 686863, 686865, 686867, 686869, 686871, 686873, 686876, 686877, 686878, 686880, 686881. </blockquote> <h2><a name="8.10_Incompatible_changes"></a>Incompatible changes</h2> <p>The mechanism for locating resources has changed. See the <a href="Use.htm#Finding_files">usage documentation</a> for details of the new mechanism. <h2><a name="8.10_changelog"></a>Changelog</h2> <!-- generated by split_changelog.py from the output of cvs2cl.pl --> <p><strong><a name="2003-05-21_0017"></a> 2003-05-21 00:17 Ralph Giles</strong></p> <blockquote><pre> Correct additional header dependency errors. </pre></blockquote> <p><strong><a name="2003-05-20_2350"></a> 2003-05-20 23:50 Ralph Giles</strong></p> <blockquote><pre> Update changelog and history files for the 8.10 release. DETAILS: Turned out I'd forgotten to modify makehist.tcl to handle the new changelog format, so the merge of News and Changes into History8.htm was done manually. Fortunately this is much simpler now. We will also need a separate 'detailed history' file in which to archive the Details documents before the next release. N.B. those trying to regenerate this: the gs8_00 tag was accidentally modified in April, so the date-from-tag filtering recommended in the release instructions does not work for this diff. Instead the xml changelong was generated with hand-picked dates: cvs2cl.pl --xml --utc -T --follow trunk --usermap authors \ --log-opts "-d'2002-11-21<2003-06-21'" -f doc/changelog.xml </pre></blockquote> <p><strong><a name="2003-05-20_2329"></a> 2003-05-20 23:29 Ralph Giles</strong></p> <blockquote><pre> Some browsers don't like '--' in the body of an html comment. </pre></blockquote> <p><strong><a name="2003-05-20_2258"></a> 2003-05-20 22:58 Ralph Giles</strong></p> <blockquote><pre> Add a missing header dependency. DETAILS: Our wrapper header memory_.h includes std.h, as most of them do, but this dependency was not marked, causing a build error with a parallel make. It began compiling the sjbig2.c before genarch was complete. </pre></blockquote> <p><strong><a name="2003-05-20_2130"></a> 2003-05-20 21:30 Ralph Giles</strong></p> <blockquote><pre> Our bug tracker is now at ghostscript.com. </pre></blockquote> <p><strong><a name="2003-05-20_2106"></a> 2003-05-20 21:06 Ralph Giles</strong></p> <blockquote><pre> Add release notes written by Raph Levien. </pre></blockquote> <p><strong><a name="2003-05-20_2016"></a> 2003-05-20 20:16 Ralph Giles</strong></p> <blockquote><pre> Update open bug list for release. </pre></blockquote> <p><strong><a name="2003-05-20_2006"></a> 2003-05-20 20:06 Ralph Giles</strong></p> <blockquote><pre> Add a missing dependendency definition. </pre></blockquote> <p><strong><a name="2003-05-20_1955"></a> 2003-05-20 19:55 Ralph Giles</strong></p> <blockquote><pre> Propagate version number and release date to the documentation. </pre></blockquote> <p><strong><a name="2003-05-20_1952"></a> 2003-05-20 19:52 Ralph Giles</strong></p> <blockquote><pre> Update libpng version to reflect the current release. </pre></blockquote> <p><strong><a name="2003-05-20_1948"></a> 2003-05-20 19:48 Ralph Giles</strong></p> <blockquote><pre> Update version number and date for 8.10 release. </pre></blockquote> <p><strong><a name="2003-05-20_1859"></a> 2003-05-20 18:59 Ralph Giles</strong></p> <blockquote><pre> Document the location of the jbig2dec releases on sourceforge in the build documentation. </pre></blockquote> <p><strong><a name="2003-05-20_1844"></a> 2003-05-20 18:44 Ralph Giles</strong></p> <blockquote><pre> Bump the 'known-good' versions for the jbig2 makefile to include the 0.3 release. </pre></blockquote> <p><strong><a name="2003-05-20_1840"></a> 2003-05-20 18:40 Ralph Giles</strong></p> <blockquote><pre> Include an RCS Id line in the generated html changelog files. </pre></blockquote> <p><strong><a name="2003-05-20_1346"></a> 2003-05-20 13:46 Alex Cherepanov</strong></p> <blockquote><pre> Work around 64K limit in a few probable places. Fixes bug 611727 </pre></blockquote> <p><strong><a name="2003-05-20_1246"></a> 2003-05-20 12:46 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Merge the Encoding of the 'complete' font copy when merging fonts. DETAILS : "PPI-ProPag 2.6.1.4 (archivePg)" creates multiple font copies with reduced encodings (we believe it is poorly designed), and we merge the copies back to a single font. Doing so the Encoding was not merged for the "complete" font copy. The patch fixes that. Bug 686875 Missing characters with -dSubsetFonts=false </pre></blockquote> <p><strong><a name="2003-05-20_0910"></a> 2003-05-20 09:10 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : 'loca' was wrong in some cases embedding a TT font subset. DETAILS : By TT spec, when a TT font uses indexToLocFormat==0, glyph offsets in 'glyf' must be even. The old code doesn't take care about the glyph alignment while converting a font from indexToLocFormat==1 to indexToLocFormat==0. This patch inserts padding bytes into 'glyf' to align glyph offsets with indexToLocFormat==0. Bug 686868 "Missing characters". </pre></blockquote> <p><strong><a name="2003-05-19_0618"></a> 2003-05-19 06:18 Dan Coby</strong></p> <blockquote><pre> Add a warning message if the rebuilding logic found two or more objects with the same object numbers and the same generation numbers. </pre></blockquote> <p><strong><a name="2003-05-19_0520"></a> 2003-05-19 05:20 Dan Coby</strong></p> <blockquote><pre> 1. Ignore data after %%EOF whicl scanning for objects or trailer. 2. Allow objects with duplicate object and generation numbers. 3. Change heuristic for finding the trailer dictionary. DETAILS: The previous testing had on the rebuild facility had verified that all test files ran without apparent problems. However a full check of the files in the regression test suite has found three cases of the output images not matching between the normal PDF processing and the rebuild processing. 1. Many real life PDF files contain garbage after the final %%EOF marker. Ghostscript has known about and tolerated this situation for some time. I found a test case (adesso6.pdf) in which the repair logic was finding what it considered a valid object in this garbage. The revisions determine the location of the last %%EOF and form a count of the data left in the file after the %%EOF. This count is used to exclude this data from the object scanning and the trailer location scanning. 2. A test case was found in which two objects were found to have the same object number and revision number. By my reading of the PDF spec, the newer object should have a higher revision number. However the object scanner was changed to accept the last such object as the desired one. Most PDF editors (at least Adobe) put updated objects at the end of the file. 3. A test case was found in which a Linearized PDF file had been edited and a new xref list and trailer dictionary were placed at the end of the file. The heuristic for finding the trailer dictionary was changed to check the specified location of the 'first' xref list. If this location is in the first half of the file, then the start of the file is searched for the first trailer. Otherwise the end of the file is searched for the last trailer. With these three changes, all of the PDF files in the regression test suite produce matching results using either the normal PDF processing or the rebuild procedures. </pre></blockquote> <p><strong><a name="2003-05-19_0115"></a> 2003-05-19 01:15 Ray Johnston</strong></p> <blockquote><pre> The TrueType font loading was quite a bit slower than it should be. This optimized font loader is up to ten times faster. Fixes bug #686851. DETAILS: Analysis of the time spent during TT font loading led to two problem areas. The first was that the cmap array was built inefficiently when their was a large glyph range, that had large holes was built with a loop that called a PostScript function 'putglyph' to fill unused areas with .notdef (glyph ID 0). The revision pre-fills the 'glyphs' array with .notdef from a static array pre-filled with 1024 zeroes. The second problem was the code that built the encoding using the 'post' table. This code had a 'repeat' loop to find the name from the start of the glyphNames section of the 'post' table for each named glyph in the encoding. By creating a temporary cross reference, only one pass through the names is made. </pre></blockquote> <p><strong><a name="2003-05-18_0503"></a> 2003-05-18 05:03 Alex Cherepanov</strong></p> <blockquote><pre> PostScript is a trademark and requires BiCapitalization. </pre></blockquote> <p><strong><a name="2003-05-17_0546"></a> 2003-05-17 05:46 Ray Johnston</strong></p> <blockquote><pre> Security fixes. Add detection of %pipe% device when in SAFER mode. Also fix detection of 'renamefile' to prevent rename from a file that is not on the PermitFileControl list. </pre></blockquote> <p><strong><a name="2003-05-17_0540"></a> 2003-05-17 05:40 Ray Johnston</strong></p> <blockquote><pre> Fix to prevent Windows function from creating file names like (xxx/\\yyy). If there is a trailing path sep, GetTempFileName needs it to be \, not /. Also remove extraneous ^M from previous commit. </pre></blockquote> <p><strong><a name="2003-05-16_1449"></a> 2003-05-16 14:49 Ralph Giles</strong></p> <blockquote><pre> Correct the implementation of the new file_name_combine operators for MacOS. Details: The parent directory reference prefix is '::' rather than ':'. Also, a path that begins with the ':' directory separator is a relative path from the current working directory. The more substantive change is in the implementation on gp_check_root(), intended to return the 'root' prefix of a path, if any. The previous implementation returned the location of the first patch separator, causing initialization to fail when attempting to determine if GenericResourceDir ends in a directory separator in gs_res.c. Absolute paths are not a well defined concept on Classic MacOS. In that case we just return 0, as if no path were ever absolute. This likely causes other problems not addressed here. In the Carbon build, we make use of the FSGetVolumeInfo() call to enumerate all mounted volumes, attempting to match each one. This call returns a 16-bit char unicode name for each volume which we make no attempt to convert to whatever 8-bit encoding ghostscript might receive the path in orginally; however we do match the lower 8 bits for the first 256 characters, which works well enough for English volume names. Note that this patch only provides support for MacOS-style paths with ':' as a separator. The Metrowerks Standard Library also accepts unix-style paths and on MacOS X users will expect to be able to use them. Support will need to be extended to include this. </pre></blockquote> <p><strong><a name="2003-05-16_1255"></a> 2003-05-16 12:55 Alex Cherepanov</strong></p> <blockquote><pre> Fix uninitialized variable in gp_open_scratch_file() when the temporary file prefix is an absolute path. Fixes bug 686874 </pre></blockquote> <p><strong><a name="2003-05-16_1248"></a> 2003-05-16 12:48 Alex Cherepanov</strong></p> <blockquote><pre> Disable binary encoding. PDF doesn't use binary encoding and may contain characters in the range 128 to 159 in names. Fixes bug 686866 </pre></blockquote> <p><strong><a name="2003-05-16_1241"></a> 2003-05-16 12:41 Alex Cherepanov</strong></p> <blockquote><pre> Wild core returned sometimes as an error code from pdf_image_end_image_data() caused unexpected PS error and a low level stacks dump. Fixes bug 686870. </pre></blockquote> <p><strong><a name="2003-05-15_2310"></a> 2003-05-15 23:10 Dan Coby</strong></p> <blockquote><pre> Added new PS source file lib/pdf_rbld.ps. This module contains procedures for rebuilding damaged PDF files. </pre></blockquote> <p><strong><a name="2003-05-15_2306"></a> 2003-05-15 23:06 Dan Coby</strong></p> <blockquote><pre> Added new PS source file lib/pdf_rbld.ps. This module contains procedures for rebuilding damaged PDF files. </pre></blockquote> <p><strong><a name="2003-05-15_2231"></a> 2003-05-15 22:31 Dan Coby</strong></p> <blockquote><pre> This is a set of routines for attempting to recover PDF files which have been mangled by EOL conversions. This is a facility which Adobe Acrobat has and thus we need to duplicate. DETAILS: THE PROBLEM: The basic problem is that PDF files contain 'xref tables' which are really object location indexes which contain the absolute position of objects in a file. If a file is changed by converting the type of EOLs then the file size is changed and the xref data is no longer valid. In many cases, Acrobat can rebuild these files. It is not always possible to always rebuild files. If the files contain binary data which contains line feed or new line characters then the binary data may be mangled and cannot be rebuilt. We need to be able to duplicate Acrobat's ability for rebuilding files. (Note: In theory one can get more and more sophisticated about rebuilding files. The techniques used in this code are quite simple but effective.) THE BASIC SOLUTION: The solution to this problem consists of several pieces. The first piece was to modify the pdf interpreter's internal representation of the xref data. The xref data is stored into two larrays. The larray Generations contains the object's generation number. This was not changed. The larray Objects contained the location of the xref entry in the file. This was set initially by the readxref routine. Since the xref entry data is not valid (for mangled files) this was not useful. Objects was changed to contain the actual location of the object in the file. This actually eliminates one step in the process. Previously when an object was referenced, the location of the xref entry in the file was obtained from Objects and then the xref entry was read to determine the actual location of the desired object. The second part of the process was to put .internal_stopped trapping around the two usages of readxref to catch any failures of that routine. An error message is printed and we then try to rebuild the locations of the objects and find the proper trailer dictionary. The third part of the process is to locate the objects in the file. This is done by a simple scan of the file looking for lines beginning with x y obj where x is a object number and y is object generation number and obj is the text 'obj'. In theory this simple strategy can be confused by binary data but with over 156 files tested, no problems were found. The fourth part of the process is to locate the appropriate 'trailer' dictionary. There is a trailer dictionary with each xref list. In theory there can be many trailer dictionaries in a file. The only desired trailer dictionary is the one associated with the 'first' xref list. Unfortunately since we cannot count on the location information in a mangled file, following the xref links is problematic. The solution used is simple. For Linearized pdf files, we find the first (at the front of the file) trailer dictionary otherwise we use the last trailer dictionary in the file. This simple method works for the 151 known good files (see testing below) and all five known bad files. Included are diffs for the changes and the new file lib/pdf_rbld.ps. The only change in the src directory was the addition of pdf_rbld.ps to the int.mak file. TESTING: There have been two sets of test run on this code. The first set consists of running 151 pdf files from our regression test suite. These files are not mangled. However by disabling the normal readxref routine, the new code was exercised. All 151 pdf files were displayed correctly. The second set of tests consists of actual problem files. I was able to locate five files that we have been sent that have been mangled. file name Ghostscript Acrobat 5.0.5 1003.pdf okay okay cm_test.pdf okay okay precon.pdf okay fail ServletReport.pdf fail fail dauben.pdf fail fail As expected, not all files can be recovered. I was pleased that, for this small sample, we did better than Acrobat. </pre></blockquote> <p><strong><a name="2003-05-15_2225"></a> 2003-05-15 22:25 Dan Coby</strong></p> <blockquote><pre> Revised fix for 686872 token operator sometimes leaves extra data on stack. With some strings, the token operator can leave extra data on the stack. In the test case, the token operator is generating a syntaxerror. The error is expected. However the token operator is leaving 3 items on the stack. It should only leave one: The original string. This fix corrects the problem. DETAILS: The problem was found while developing the xref data recovery facility which uses the token operator to scan PDF files (including binary data). The fix consists of simply recording the operator stack level at the start of the string processing and restoring it if an error occurs. The revision to the fix consists of using the 'pop' macro to modify the o_stack pointer instead of directly setting the pointer. </pre></blockquote> <p><strong><a name="2003-05-15_1846"></a> 2003-05-15 18:46 Alex Cherepanov</strong></p> <blockquote><pre> Fix negative shift count in operator << . On 80x86 processors the shift argument is implicitely masked by 31. Fixes bug #686743. </pre></blockquote> <p><strong><a name="2003-05-15_1659"></a> 2003-05-15 16:59 Ralph Giles</strong></p> <blockquote><pre> Add the psd (Photoshop raster) output devices to the default autoconf build. </pre></blockquote> <p><strong><a name="2003-05-15_1001"></a> 2003-05-15 10:01 Russell Lang</strong></p> <blockquote><pre> Log message: For the pngalpha device, set the default background color to white in the bKGD chunk. Add an option -dBackgroundColor=16#RRGGBB to explicitly set the background color. This is needed by a common web browser that doesn't correctly support PNG with alpha transparency. DETAILS: Programs that don't fully support alpha transparency let libpng convert an RGBA image to RGB. The background color used is either provided by the program, or in the bKGD chunk, or it falls back to gray. MSIE was defaulting to a gray background which is not commonly used on web pages. By writing a white bKGD chunk, PNG files will display correctly against a white background in MSIE. If a solid color for a web page background is used with <body bgcolor="#CCCC00">, then PNG images appearing on that page would need to be created with -dBackgroundColor=16#CCCC00. For textured background there is no hope. Microsoft needs to fix Internet Explorer. </pre></blockquote> <p><strong><a name="2003-05-15_0325"></a> 2003-05-15 03:25 Dan Coby</strong></p> <blockquote><pre> Fix for 686872 token operator sometimes leaves extra data on stack. With some strings, the token operator can leave extra data on the stack. In the test case, the token operator is generating a syntaxerror. The error is expected. However the token operator is leaving 3 items on the stack. It should only leave one: The original string. This fix corrects the problem. DETAILS: The problem was found while developing the xref data recovery facility which uses the token operator to scan PDF files (including binary data). The fix consists of simply recording the operator stack level at the start of the string processing and restoring it if an error occurs. </pre></blockquote> <p><strong><a name="2003-05-14_1336"></a> 2003-05-14 13:36 Alex Cherepanov</strong></p> <blockquote><pre> Following PDF spec make MatrixA equal to WhitePoint of CalGray color space. To avoud clipping set the max values of RangeLMN to the corresponding values of WhitePoint. Fixes bug 686749 </pre></blockquote> <p><strong><a name="2003-05-12_1221"></a> 2003-05-12 12:21 Igor Melichev</strong></p> <blockquote><pre> Fix : margin_set::y was not initialized starting a fill (2nd attempt). DETAILS : The previous patch caused differences in rendering, and therefore it's log message appers wrong. Actually the uninitialized variable caused an indeterministic behavior, and the previous patch fixed it. Meanwhile the initial value appears not good for the case then the bottom of a character may cause a dropout. This patch improves that case. Expecting minor differences rendering the following files at 72dpi : 01_001.pdf 136-01.ps 165-01.ps 455690.pdf 86554321.pdf aaon97_p7.pdf ccc.pdf chess.ps CIDembedded.pdf LD.pdf messenger.pdf messenger16.pdf QuickNews_Nov22.pdf RodinCIDEmbed.pdf xgfddg.pdf </pre></blockquote> <p><strong><a name="2003-05-11_1359"></a> 2003-05-11 13:59 Alex Cherepanov</strong></p> <blockquote><pre> Linearized PDF hints are rewritten as following: (1) added shared object hint table (2) added padding after every per-page entry in hint tables (3) changed the values of some entries Fixed a PS error in PDF files with empty /Contents array. Added a check for encrypted PDF. Fixes bug #611694. DETAILS: There are still many things to improve: (1) detection of 1st page objects and shared objects yelds different result from Adobe Acrobat. (2) no optional hint tables are generated (3) encrypted PDF is not supported The optimizer was tested on all PDF files of our test suite. It fails on: (1) all encrypted files (2) 000040cf.000_60.pdf because of bad entries in 12 0 obj (3) test_multipage_prob.pdf because one of the font names contains a character recognized as a binary token </pre></blockquote> <p><strong><a name="2003-05-11_1333"></a> 2003-05-11 13:33 Alex Cherepanov</strong></p> <blockquote><pre> Add missing quote to an error message. </pre></blockquote> <p><strong><a name="2003-05-09_0043"></a> 2003-05-09 00:43 Ralph Giles</strong></p> <blockquote><pre> Replace generic always-on debug printfs with if_debugN() calls. To get the old behavior, pass -Zs to the debug build. </pre></blockquote> <p><strong><a name="2003-05-09_0041"></a> 2003-05-09 00:41 Ralph Giles</strong></p> <blockquote><pre> Correct a cut-and-paste error in FEATURE_DEVS. </pre></blockquote> <p><strong><a name="2003-05-08_2149"></a> 2003-05-08 21:49 Raph Levien</strong></p> <blockquote><pre> Workaround to clean up after a PaintProc which leaves additional garbage on the operator stack. Fixes bug #686855. </pre></blockquote> <p><strong><a name="2003-05-08_1832"></a> 2003-05-08 18:32 Ralph Giles</strong></p> <blockquote><pre> Add the standard copyright banner and $Id line to the new changelog script. </pre></blockquote> <p><strong><a name="2003-05-08_1828"></a> 2003-05-08 18:28 Ralph Giles</strong></p> <blockquote><pre> Add recent new files to the developer documentation. </pre></blockquote> <p><strong><a name="2003-05-08_1104"></a> 2003-05-08 11:04 Igor Melichev</strong></p> <blockquote><pre> Fix (type 1 hinter) : Overshoot thresholds were wrongly computed with TextAlphaBits > 1. </pre></blockquote> <p><strong><a name="2003-05-08_1033"></a> 2003-05-08 10:33 Russell Lang</strong></p> <blockquote><pre> When enumerating files on Windows, do not return directory names. Partial fix for Bug 686853 filenameforall enumerates directory items. </pre></blockquote> <p><strong><a name="2003-05-08_0957"></a> 2003-05-08 09:57 Igor Melichev</strong></p> <blockquote><pre> Fix : margin_set::y was not initialized starting a fill. DETAILS : It could indereministically execute some code in start_margin_set, but the code appears idle in this case because margin_set::margin_list == NULL. Therefore it could not cause an indeterministic result. Therefore this patch is an equivalent change, which is useful to simplify the job for code validation tools. </pre></blockquote> <p><strong><a name="2003-05-08_0816"></a> 2003-05-08 08:16 Igor Melichev</strong></p> <blockquote><pre> Fix : gx_path::procs was not initialized in some cases. </pre></blockquote> <p><strong><a name="2003-05-08_0423"></a> 2003-05-08 04:23 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Don't write colors to charproc. DETAILS : Bug 686856 "PDF interpreter : /undefined in --setgray--". Rather Acrobat Reader ingonre colors in charprocs, we should not write them, because it is not conforming. Expecting differences with pdfwrite with the tests : adesso8.pdf grayalph.ps </pre></blockquote> <p><strong><a name="2003-05-07_2212"></a> 2003-05-07 22:12 Dan Coby</strong></p> <blockquote><pre> Fix for 686857 bitcmyk has problems with -dBITS=2. This fix corrects a problem with the halftone calculations if the number of bits per component is more than one and the process color model is subtractive. DETAILS: This problem was caused by a change (1.2) to src/gxdevndi.c src/gxdevndi.c Modified gx_render_device_DeviceN to always perform the conversion from color component intensity values to halftone levels in an additive sense, if the gray_colorspace operand is true. This is necessary for compatibility with the pre-DeviceN code. However the change only worked for max_value = 1. This is the typical case of 1 bit halftoning. The fix works for any value of max_value. </pre></blockquote> <p><strong><a name="2003-05-07_1637"></a> 2003-05-07 16:37 Ray Johnston</strong></p> <blockquote><pre> Add some Document structuring commands to improve conformance. Thanks to HF Nordhaug for submitting these. </pre></blockquote> <p><strong><a name="2003-05-07_1255"></a> 2003-05-07 12:55 Ralph Giles</strong></p> <blockquote><pre> Prefer the more modern __VMS platform define for including inttypes.h. </pre></blockquote> <p><strong><a name="2003-05-07_1131"></a> 2003-05-07 11:31 Ralph Giles</strong></p> <blockquote><pre> Include inttypes.h on VMS. This provides the stdint types needed by jbig2dec, at least on OpenVMS. After a patch from Jouk Jansen. </pre></blockquote> <p><strong><a name="2003-05-06_2050"></a> 2003-05-06 20:50 Alex Cherepanov</strong></p> <blockquote><pre> dumphint is a new utility to print (to stdout) linearized PDF hint tables in an easy-to-read form. The following deviations from the published specification has been observed in PDF files produced by Acrobat suite of products. (1) /P (page offset hint table) key in hint stream dictionary has never been generated by Adobe products. It is no longer required in PDF 1.5. (2) Per-page items 4 and 5 of the page offset hint table start from 1st page, not 2nd page as the spec claims. (3) All array entries start from the new byte boundary. </pre></blockquote> <p><strong><a name="2003-05-06_1038"></a> 2003-05-06 10:38 Jouk Jansen</strong></p> <blockquote><pre> Committing in . jbig2 support for OpenVMS using MMK Modified Files: gs/src/jbig2.mak gs/src/openvms.mmk ---------------------------------------------------------------------- </pre></blockquote> <p><strong><a name="2003-05-06_1005"></a> 2003-05-06 10:05 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Don't convert type 1 patterns and type 3 fonts to rasters. DETAILS : Expecting differences with pdfwrite with the tests : H:\AuxFiles\CompareFiles\012-09.ps 013-09.ps 014-09.ps 015-09.ps 017-01.ps 020-01.ps 027-13.ps 031-05.ps 032-07.ps 034-10.ps 035-07.ps 045-01.ps 083-09.ps 103-01.ps 118-01.ps 123-09.ps 136-01.ps 148-16.ps 149-05.ps 165-01.ps 169-09.ps 176-01.ps 192-01.ps 205-09.ps 212-01.ps 213-01.ps 214-01.ps 220-07.ps 222-09.ps 226-01.ps 231-01.ps 244-01.ps 245-01.ps 245-07.ps 245-13.ps 245-17.ps 250-01.ps 251-01.ps 255-01.ps 257-01.ps 258-01.ps 260-01.ps 263-01.ps 264-01.ps 269-01.ps 270-01.ps 281-01.ps 296-01.ps 297-01.ps 298-09.ps 303-01.ps 307-07.ps 310-04.ps 311-03.ps 321-09.ps 327-01.ps 334-01.ps 335-01.ps 336-01.ps adesso8.pdf grayalph.ps mspro.pdf Popafinalrep.pdf prob1.pdf Testform.v1.0.2.pdf xes2ps-problem.pdf </pre></blockquote> <p><strong><a name="2003-05-06_0850"></a> 2003-05-06 08:50 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Pattern phase was wrongly computed for pattern stream accumulation (2nd attempt). </pre></blockquote> <p><strong><a name="2003-05-06_0351"></a> 2003-05-06 03:51 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Pattern phase was wrongly computed for pattern stream accumulation. </pre></blockquote> <p><strong><a name="2003-05-05_1257"></a> 2003-05-05 12:57 Igor Melichev</strong></p> <blockquote><pre> Free Type Integration : commit an improved bridge. DETAILS : This commit corresponds to Free Type revision http://www.graham.asher.btinternet.co.uk/artifex19.zip http://www.graham.asher.btinternet.co.uk/artifex19.txt . Note that it includes fixes opposite the current Free Type CVS. The file ftwinfnt.h is missed in the zip, taken from an older version. Rather the release note reads that all test files are passed except 2 ones, we noticed failures running 01_001.pdf, 401-01.ps, Altona.Page_3.2002-09-27.pdf, fonts.pdf (infinite loop), H00216q.pdf, HeiseiMinStd.pdf, keyboard.pdf, test_multipage_prob.pdf (crash), Also the character 'R' in 0.pdf renders wrongly. Systematical testing was not done yet. </pre></blockquote> <p><strong><a name="2003-05-05_1153"></a> 2003-05-05 11:53 Igor Melichev</strong></p> <blockquote><pre> Fix : Add the static resource gs/Decoding/StandardEncoding . </pre></blockquote> <p><strong><a name="2003-05-05_1150"></a> 2003-05-05 11:50 Igor Melichev</strong></p> <blockquote><pre> Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite . </pre></blockquote> <p><strong><a name="2003-05-05_0908"></a> 2003-05-05 09:08 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : Check .tempfile permissions. DETAILS : The temporary directory is allowed for creating temporary files without specifying a special permission. However when the prefix argument of .tempfile is an absolute path, the permission is checked for it. Minor change : On Windows gp_open_scratch_file now calls gp_gettmpdir, making the logic closer to one on Unix. The call to GetTempPath is left for backward compatibility (when the environment specify TMP but no TEMP). </pre></blockquote> <p><strong><a name="2003-05-04_2201"></a> 2003-05-04 22:01 Igor Melichev</strong></p> <blockquote><pre> Fix (AlignToPixels) : Provide a better stem contrast. DETAILS : Minor changes : 1. Alignment with AlingToPixels=1 was wrong (gxhintn.c ln 1370). 2. The debug graphic output wrongly drew integral pixels. </pre></blockquote> <p><strong><a name="2003-05-04_2006"></a> 2003-05-04 20:06 Ralph Giles</strong></p> <blockquote><pre> Correct a programming error that prevented macos native font loading from working under Metrowerks Codewarrior. DETAILS: Integers were being read by |-ing together the results of successive fgetc() calls within a single expression. Binary or doesn't have a specific order of evaluation in C so while gcc read the bytes in the correct order Metrowerks was re-ordering the first two reads resulting in a byte-swap error. The new code uses fread() followed by reordering based on array index. </pre></blockquote> <p><strong><a name="2003-05-04_1019"></a> 2003-05-04 10:19 Igor Melichev</strong></p> <blockquote><pre> Fix (AlignToPixels) : Rounding formulas for glyph positions were wrong. </pre></blockquote> <p><strong><a name="2003-04-30_2002"></a> 2003-04-30 20:02 Igor Melichev</strong></p> <blockquote><pre> Fix : FONTPATH was broken with lib/gs_fonts.ps revisions 1.17 and 1.25 . </pre></blockquote> <p><strong><a name="2003-04-30_1034"></a> 2003-04-30 10:34 Russell Lang</strong></p> <blockquote><pre> If reopening the display device fails after setting the callback, display an error message. Allocate the large display bitmap using a low level allocator to avoid exceeding the memory limit of the previously used device stable memory allocator. Fixes bugs 686836 "-r doesn't work" and duplicate 686838 "Ghostscript doesn't do anything". DETAILS: The display memory device and the raster including line pointers was allocated using the stable allocator of the display device. This had a limit of 1Mbyte, which was exceeded when the resolution was greater then 114dpi. This would cause subsequent allocations to fail, but it appears that nothing else tried to use this allocator after the display device. The display device was changed to allocate the line pointers separately to allow the raster to be allocated in special memory, e.g. video memory or shared memory. This caused the subsequent allocation of the line pointers to fail when resolution exceeded 114dpi. The modified code now allocates the raster with gs_alloc_byte_array_immovable, which allocates directly from the C heap, not subject to any memory limit apart from the overall -K limit if specified, and is not subject to garbage collection. The normal allocator now has sufficient memory to allocate the line pointers without problem. The raster pointer is removed from the pointers that are enumerated during garbage collection. </pre></blockquote> <p><strong><a name="2003-04-30_0111"></a> 2003-04-30 01:11 Ray Johnston</strong></p> <blockquote><pre> Add a an option to disable the use of and embedded BeginICCProfile in PostScript. The option is -dNOPSICC. Documentation is also added for the option. </pre></blockquote> <p><strong><a name="2003-04-29_2250"></a> 2003-04-29 22:50 Ralph Giles</strong></p> <blockquote><pre> Enable jbig2 support in the default windows build. The jbig2dec source is now required. </pre></blockquote> <p><strong><a name="2003-04-27_2346"></a> 2003-04-27 23:46 Ralph Giles</strong></p> <blockquote><pre> Add the bbox device to the default macos shlib build. Bug 686811. </pre></blockquote> <p><strong><a name="2003-04-26_1840"></a> 2003-04-26 18:40 Dan Coby</strong></p> <blockquote><pre> Log Message: This is the fix for 686798 /typecheck in --setcolorspace-- with -sDEVICE=x11cmyk. This fix increases the stack checking while sampling tint transform functions. It also makes the error handling more robust for invalid tint transforms. DETAILS: It is sad to say but this is a bug that we have seen before, several times. Ray and I fixed this problem at the last code fest in September. However that fix did not make its way into CVS. The cause of this problem is that certain proc sets from Adobe violate the PLRM. In the test file, the proc set is from Adobe Photoshop Version 5.5. The proce set contains tint transform functions which violate the specification in two different ways. In one case, the tint transform function changes stack values outside of the given color value. This is used as a test to see if the interpreter supports the given duotone color space. If so then the proc set creates a color space with a tint transform which is unbalanced in its stack usage. This could cause a stack overflow/underflow during sampling of the tint transform. Adobe apparently assumes that this tint transform is never executed since the function starts with the name /NeverReached. The fix involves checking the stack depth after each execution of the tint transform function and verifying that it matches the correct position given the number of function inputs and outputs. If so then the stack is returned to its original position and the sampling is aborted. Changes in lib/gs_sepr.ps make the tint transform sampling logic more robust in case the tint transform modifies the top of the stack. (This occurs in this case since the tint transform is actually popping extra items off of the stack.) We also create a dummy tint transform function if sampling fails. The later was done to prevent the /typecheck error and give pdfwrite something with which to work. </pre></blockquote> <p><strong><a name="2003-04-26_1828"></a> 2003-04-26 18:28 Alex Cherepanov</strong></p> <blockquote><pre> Fix scanline size calculations and channel mix-up. </pre></blockquote> <p><strong><a name="2003-04-26_1705"></a> 2003-04-26 17:05 Igor Melichev</strong></p> <blockquote><pre> Complete the set of Adobe CMaps. </pre></blockquote> <p><strong><a name="2003-04-26_0452"></a> 2003-04-26 04:52 Alex Cherepanov</strong></p> <blockquote><pre> Following PDF 1.4, chapter 4.6.2 pattern is instantiated in the graphic state harvested at the beginning of the pattern's parent content stream. This patch fixes PS graphic state parameters only. PDF specific parameters are still inherited from the current graphic state. Bug #686834 DETAILS: PS makepattern operator saves only PS graphic state for later use in PaintProc. GS PDF interpreter implements PDF graphic state as a stack of dictionaries. We should save full PDF graphic state and set it manually during execution of PaintProc. </pre></blockquote> <p><strong><a name="2003-04-24_1942"></a> 2003-04-24 19:42 Ray Johnston</strong></p> <blockquote><pre> Fix ASCII85Decode filter to match Adobe's when strings that are not multiples of four are padded with other than zero. Tested against CPSI for exact match. Also overflow error detection added to conform to the PLRM and CPSI. Fixes bug #686840. </pre></blockquote> <p><strong><a name="2003-04-24_0637"></a> 2003-04-24 06:37 Ray Johnston</strong></p> <blockquote><pre> Add processing of %%BeginICCProfile DSC section for (some) EPS file, notably Adobe Photoshop. Final part of fix for bug 686797. DETAILS: The change to gs_pdfwr.ps was due to the fact that it did not properly balance the stack. The method of trying /N 4 + /DeviceCMYK, then /N 3 + /DeviceRGB, finally /N 1 + /DeviceGray is a *hack* that could be avoided if we knew what color space the ICC profile expected. Since .seticcspace fails if /N doesn't match what is in the profile, this seems like a reasonable hack. </pre></blockquote> <p><strong><a name="2003-04-24_0620"></a> 2003-04-24 06:20 Ray Johnston</strong></p> <blockquote><pre> Get rid of some dead code (left over from cut+paste) </pre></blockquote> <p><strong><a name="2003-04-23_1847"></a> 2003-04-23 18:47 Ray Johnston</strong></p> <blockquote><pre> The DeviceN merge broke the command line -dUseCIEColor option. This patch restores basic CMYK color conversion when -dUseCIEColor is set. Partial solution to bug #686797. </pre></blockquote> <p><strong><a name="2003-04-23_1558"></a> 2003-04-23 15:58 Ralph Giles</strong></p> <blockquote><pre> Remove some debug printouts. </pre></blockquote> <p><strong><a name="2003-04-22_1352"></a> 2003-04-22 13:52 Igor Melichev</strong></p> <blockquote><pre> Applying the generic stream accumulation method to /BP pdfmark. DETAILS: This is an equivalent change. </pre></blockquote> <p><strong><a name="2003-04-21_1539"></a> 2003-04-21 15:39 Igor Melichev</strong></p> <blockquote><pre> A preparation for non-convert PatternType 1 to rasters with pdfwrite. DETAILS: The patch defines a new device virtual function pattern_manage, and a default implementation for it. The purpose is to inform the device about pattern accumulation and to bypass the installation of gx_device_pattern_accum when the device can handle the pattern command stream. The new code is temporary disabled with PATTERN_STREAM_ACCUMULATION 0 macro defined in gx.h . When it is 0, the new device virtual function is provided but never called. The behavior should not change. The rest of this log message describes PATTERN_STREAM_ACCUMULATION 1. In this mode pdfwrite doesn't convert PatternType 1 to rasters. It creates good PDFs at least with 012-09.ps and 269-01.ps (these are very complicated cases with patterns inside charprocs and patterns), but there are problems when rasterizing the resulting PDFs with GS. (A new bug 686834 issued for tracking this problem). When a pattern stream is handled by the device, we can't create a proper content of gx_color_tile. However we need a correct content if the pattern is used for rasterization of an object which the device can't handle at the high level. An example is pdf14 device during a PDF re-distillation, which handles transparency. Another example is a conversion of composite fonts, which have multiple CID descendents - pdfwrite still converts such fonts to raster fonts. Since a proper contents may be needed for gx_device_color, we define a new flag gx_color_tile::is_dummy, and account it in gx_pattern_cache_lookup. Thus, if the current device is cache device installed for the font conversion, the tiles with is_dummy == true are being be dismissed. Vice versa, tiles with is_dummy == false are being dismissed when current device is pdfwrite. We do not move parts of zpcolor.c code to gx_default_pattern_manage, because we don't see a proper place for it to be compatible to the FEATURE_DEVS configurability. Instead that, we implement a branching inside gsptype1.c and zpcolor.c . If more branches will be necessary in future, this to be improved with moving code fragments to specific implementations of pattern_manage, together with improving the FEATURE_DEVS modularity. Delaying this reorganization until a strong reason appears. NOTE: The patch extends the device interface with gs_pattern1_instance_t. Minor Changes : 1. Fixed some MSVC warnings. 2. gx_pattern_alloc_cache passed a wrong client ID to memory manager. 3. Skipped some unuseful graphic state parameters while a contents substream accumulation. </pre></blockquote> <p><strong><a name="2003-04-18_2200"></a> 2003-04-18 22:00 Russell Lang</strong></p> <blockquote><pre> In the display device, store the line pointers separately from the bits, so that the bits can be placed in special memory (e.g. allocated in video memory). Fixes Bug 686780 display_memalloc() asks for too much memory. </pre></blockquote> <p><strong><a name="2003-04-18_1819"></a> 2003-04-18 18:19 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Applying a generic resource writing method to charprocs. DETAILS: pdf_write_resource_objects does it fine after a small change to pdf_begin_data_stream. This patch must not change any behawior except the PDF object writing sequence. Minor Changes : 1. Removed rudiments of a dead development branch. 2. Generalized pdf_enter_substream and pdf_begin_data_stream . </pre></blockquote> <p><strong><a name="2003-04-18_1457"></a> 2003-04-18 14:57 Ralph Giles</strong></p> <blockquote><pre> Calling the gsapi polling function from the Macintosh gp_check_interrupts function voilates the layering of the interpreter over the graphics library. Therefore we isolate the offending code to a separate module 'macpoll.dev' in a fashion analogous to the mspoll feature dev available on the windows build. Enable this by default in the CodeWarrior build. Partial fix for Bug 686810. After a patch by Russell Lang. </pre></blockquote> <p><strong><a name="2003-04-18_1433"></a> 2003-04-18 14:33 Ralph Giles</strong></p> <blockquote><pre> Use different output file names for the Classic and Carbon MacOS shlib targets. Closes bug 686818. </pre></blockquote> <p><strong><a name="2003-04-18_1416"></a> 2003-04-18 14:16 Igor Melichev</strong></p> <blockquote><pre> Complete the set of Adobe CMaps. </pre></blockquote> <p><strong><a name="2003-04-18_0118"></a> 2003-04-18 01:18 Russell Lang</strong></p> <blockquote><pre> Call the gsapi polling function from the Macintosh gp_check_interrupts function. Partial fix for Bug 686810 "CHECK_INTERRUPTS should allow shorter worst-case abort". </pre></blockquote> <p><strong><a name="2003-04-17_0924"></a> 2003-04-17 09:24 Russell Lang</strong></p> <blockquote><pre> Call the gsapi polling function during the main interpreter loop timeslice code. This allows a client to abort the interpreter when running "{} loop". Fixes Bug 686810 "CHECK_INTERRUPTS should allow shorter worst-case abort". DETAILS: PostScript which executed an infinite loop could not be stopped by the gsapi client. The time slice code in the main interpreter loop is executed once for every 32767 passes through the interpreter loop. Within the time slice code we now call the polling function and if the return value is non-zero, we set code to gs_error_interrupt to cause the interpreter to exit. This was not a client bug (as far as I know). The original request was from Zoltan Biro. </pre></blockquote> <p><strong><a name="2003-04-17_0049"></a> 2003-04-17 00:49 Ralph Giles</strong></p> <blockquote><pre> Remove a C99 snprintf() call. In this case the length is limited by the format string. </pre></blockquote> <p><strong><a name="2003-04-17_0046"></a> 2003-04-17 00:46 Ralph Giles</strong></p> <blockquote><pre> Remove two non-library files from the jbig2 makefile. </pre></blockquote> <p><strong><a name="2003-04-17_0042"></a> 2003-04-17 00:42 Raph Levien</strong></p> <blockquote><pre> Added documentation of UseWTS user parameter. </pre></blockquote> <p><strong><a name="2003-04-17_0033"></a> 2003-04-17 00:33 Ralph Giles</strong></p> <blockquote><pre> Define HAVE_STDINT_H in stdpre.h on MacOS. Required for a clean compile under CodeWarrior. DETAILS: The jbig2dec library and headers require some of the C99 types. We've made sure those are available, but the mechanism depended on either passing -DHAVE_STDINT_H on the commandline or windows-specific typedefs. Since there's no convenient way pass single defines through codewarrior that would be seen by both the jbig2dec and the gs sources, we add a platform-specific define to headers in each codebase. </pre></blockquote> <p><strong><a name="2003-04-17_0023"></a> 2003-04-17 00:23 Ralph Giles</strong></p> <blockquote><pre> Enable jbig2 support in the MacOS CodeWarrior build, and add the local library source to the search path. jbig2dec is now required for this build. </pre></blockquote> <p><strong><a name="2003-04-16_2332"></a> 2003-04-16 23:32 Ralph Giles</strong></p> <blockquote><pre> Protect some defines that conflict with constants in stdint.h. </pre></blockquote> <p><strong><a name="2003-04-16_1637"></a> 2003-04-16 16:37 Ralph Giles</strong></p> <blockquote><pre> Correct some typos. </pre></blockquote> <p><strong><a name="2003-04-16_1409"></a> 2003-04-16 14:09 Ralph Giles</strong></p> <blockquote><pre> Add a license paragraph for the Resource directory asserting the AFPL with an exception for the Adobe-owned CMap files. </pre></blockquote> <p><strong><a name="2003-04-16_1354"></a> 2003-04-16 13:54 Ralph Giles</strong></p> <blockquote><pre> Test the optimization compiler flag '-O2' before using it since some vendor compilers have different syntax. DETAILS: This is really just a quick fix; it doesn't check flags for the debug or profile builds. A full solution would also try known options based on the compiler being used. It's not fair to just disable optimization if -O2 doesn't work. </pre></blockquote> <p><strong><a name="2003-04-16_1338"></a> 2003-04-16 13:38 Ralph Giles</strong></p> <blockquote><pre> JBIG2 code in the interpreter and stream library requires an -I argument to find the jbig2dec headers when compiling with local source. </pre></blockquote> <p><strong><a name="2003-04-16_0831"></a> 2003-04-16 08:31 Igor Melichev</strong></p> <blockquote><pre> Complete the set of Adobe CMaps. </pre></blockquote> <p><strong><a name="2003-04-15_1843"></a> 2003-04-15 18:43 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Compress charproc streams. DETAILS: This patch mixes 3 changes : 1. Applying a compression to vector charprocs. Bitmap charprocs are left uncompresed. The written PDF should have same contents as before. 2. A preparation to Type 1 pattern accumulation with implementing a pdf_substream_save stack. Moved accum_char_proc_* fields to there. This change should be equivalent. 3. Renamed cos_write_stream_from_pipeline to cos_stream_from_pipeline, because the old name appears confusable. A new function with the old name is defined for another purpose. No regression changes expected. </pre></blockquote> <p><strong><a name="2003-04-15_1436"></a> 2003-04-15 14:36 Ralph Giles</strong></p> <blockquote><pre> Add new jbig2dec makefile and supporting defines to remaining platform-dependent makefiles. </pre></blockquote> <p><strong><a name="2003-04-15_1412"></a> 2003-04-15 14:12 Ralph Giles</strong></p> <blockquote><pre> Add support for compiling in libjbig2dec statically from source. This makefile is only good for v0.2. </pre></blockquote> <p><strong><a name="2003-04-14_2115"></a> 2003-04-14 21:15 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Use cos_write_stream for charproc accumulation. DETAILS: pdfwrite crashes with -r72 012-09.ps due to 2 nesting separates : one for charproc accumulator, and another one for graphic state object inside it. This problem does not happen with comparefiles with the default value of -r. Meanwhile the problem is harmful because it occasionally depends on CTM. Minor changes : - A misprint in "pdf_begin_char_proc_gerneric". - Removed some unused variables. - Inserted some necessary #include statements. </pre></blockquote> <p><strong><a name="2003-04-13_2314"></a> 2003-04-13 23:14 Igor Melichev</strong></p> <blockquote><pre> Fix (dropout prevention) : sfill was unintentionally slowed down. DETAILS: In some cases the scanline algorithm appears to speed up the sfill in about 2 times. This patch enables the scanline algorithm when DROPOUT_PREVENTION is on, except for characters. It brings the shfill case closer to the old algorithm. This patch causes minor differences while filling a path, especially with shfill, but such differences should be small and almost unvisible. Minor change : The condition in gxfill.c line 2075 is changed to be closer to the old algorithm when filling non-characters, because dropout prewvention is not neccessary for this case. </pre></blockquote> <p><strong><a name="2003-04-12_2204"></a> 2003-04-12 22:04 Russell Lang</strong></p> <blockquote><pre> Add Resource directory to the lib path configured by the Windows installer. </pre></blockquote> <p><strong><a name="2003-04-12_1808"></a> 2003-04-12 18:08 Ray Johnston</strong></p> <blockquote><pre> Create more specific DEBUG switches in the interpreter initialization modules to allow debugging to only include information of interest. If -dDEBUG is set, then set all of the specific switches. </pre></blockquote> <p><strong><a name="2003-04-12_1739"></a> 2003-04-12 17:39 Ralph Giles</strong></p> <blockquote><pre> Add the new Resource directory tree to the unix install target. DETAILS: We have a hard-wired list of directories to install under Resource. All the files in these directories will be non-recursively copied to the install directory. It is therefore only necessary to update RES_CATEGORIES when a new category is added but not for individual files. </pre></blockquote> <p><strong><a name="2003-04-12_1328"></a> 2003-04-12 13:28 Russell Lang</strong></p> <blockquote><pre> Add Resource directory to Windows installer. Update copyright dates. Exclude file attributes (ACLs) from the zip archives. </pre></blockquote> <p><strong><a name="2003-04-11_2147"></a> 2003-04-11 21:47 Ralph Giles</strong></p> <blockquote><pre> Correctly dereference the arguments to the sort compare function used in the device listing. This was incorrect in the previous commit. </pre></blockquote> <p><strong><a name="2003-04-11_1755"></a> 2003-04-11 17:55 Igor Melichev</strong></p> <blockquote><pre> Fix : Increasing the text alpha bits thresholds. Bug 686775 "Large text is not anti-aliased". DETAILS: We can't set infinite thresholds due to RAM consumption in character cache. </pre></blockquote> <p><strong><a name="2003-04-11_1754"></a> 2003-04-11 17:54 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Generate pseudo-random font names for subset fonts from the glyph usage array. Bug 686807 A "subset fonts" error in Adobe Acrobat from files made by GS8.00 DETAILS : Since the revision 1.9 of gdevpdtb.c (Sun Sep 8 20:20:12 2002 UTC) subset font names were deterministic to simplify the debugging. The names were derived from resource IDs, and could cause a conflict when merging documents. This patch generates different font names hashing the glyph usage bitmask. Now the conflict can happen with a very small probablility, when different subsets give same hash value. </pre></blockquote> <p><strong><a name="2003-04-11_1105"></a> 2003-04-11 11:05 Ralph Giles</strong></p> <blockquote><pre> Add the new default resource directory to the autoconf makefile. </pre></blockquote> <p><strong><a name="2003-04-11_1056"></a> 2003-04-11 10:56 Igor Melichev</strong></p> <blockquote><pre> Fix : Remove an unintentional rudiment of a debug printing. </pre></blockquote> <p><strong><a name="2003-04-11_0936"></a> 2003-04-11 09:36 Igor Melichev</strong></p> <blockquote><pre> Turn on the static resources with COMPILE_INIT=1. DETAILS: The OpenVMS case is not implemented in geninit.c . </pre></blockquote> <p><strong><a name="2003-04-11_0930"></a> 2003-04-11 09:30 Igor Melichev</strong></p> <blockquote><pre> Switching to the new logics of resource file location. THIS IS INCOMPATIBLE CHANGE, because the default resource path is now different : resource files are moved to gs/Resource . See gs/doc/Use.htm#Finding_files and gs/doc/Use.htm#Resource_related_parameters. DETAILS: This patch does not include necessary changes to Ghostscript installer. The main code change in one to gp.h . Rudiments of old code in gs/src and gs/lib are marked with NEW_COMBINE_PATH. They to be removed after beta-testing. Change to makefiles provide extended default values for file search paths, which are platform dependent. For convenience, here we summarize all related issues, which were mentioned in previous patches : 1. The search method with multiple resource directories appears not fully conforming to PLRM. We cannot ever call ResourceFileName while executing findresource or resourcestatus, because per PLRM it always returns a single path. Therefore we implement an extended search method in findresource, resourcestatus and resourceforall, which first calls ResourceFileName and checks whether the returned path points to an existing file. If yes, the file is used, othervise we search all directories specified in LIB_PATH. With a single resource directory it appears equivalent to Adobe. THIS IS INCOMPATIBLE CHANGE. 2. ResourceFileName may be used for obtaining a path where a resource file to be installed. In this case Ghostscript to be invoked with -sGenericResourceDir=path, specifying an absolute path. The default value for GenericResourceDir is a relative path. Therefore a default invocation with a Postscript installer will install resources into gs/Resource. THIS IS INCOMPATIBLE CHANGE. 3. We do not distinguish lib and Resource directories. There is no file name conflicts because lib does not contain subdirectories, but Resource always store files in subdirectories. 4. We implement a new flag in gs_context_state, which informs lib_file_open whether it is invoked with a file specified in a command line argument. Doing so because command line argument files don't need to check permissions, and they are executed with a special PS operator .runfile . We cannot use a .runfile argument for passing this information, because it would be a security hole due to .runfile is available for documents and cannot be hidden. 5. We still have a security hole while loading resources from gs_init.ps . Both the old and the new code load some resources (such as CIDInit ProcSet) before entering the SAFER mode. Therefore it is a way for Postscript viruses to migrate. To be fixed later. 6. Default values for GenericResourceDir and FontResourceDir are platform dependent. (The old code always use Unix notation - a bug). 7. Default value for GenericResourcePathSep is platform dependent. The value is used before non-directory items only. (The old code always use Unix notation - a bug). (The old code used the value before directory items - a bug on OpenVMS). 8. If a path starts with a number of parent references, a template with same number of parent references must be added to permission list to allow the access in SAFER mode. The template (*) allows access to any file. THIS IS INCOMPATIBLE CHANGE, because the old code ever rejects parent directories. 9. GenericResourceDir and FontResourceDir are not being added to permission list while .locksafe. Instead that, we generate (*/*) templates with all LIBPATH items. THIS IS INCOMPATIBLE CHANGE, but for non-exotic cases (such as "(./Resource/CMap/H) .libfile" in a document) it should not be visible. A. Scratch files with a non-absolute prefix always open in a scratch directory. The old code can open them in current and parent directories if an user modified a default prefix in C code. THIS IS INCOMPATIBLE CHANGE for users who had modified a scratch file prefix in C code. Permission for scratch directory is not checked as well as in old code. B. The operator .filenamedirseparator is removed, because it cannot work properly on OpenVMS. On OpenVMS it needs both prefix and trailer to determine a correct separator. We removed it because the new logics never needs it. C. The operator .pathstring_not_bare is removed, because .file_name_combine performs it's job better. D. The functions gp_pathstring_not_bare, gp_file_name_references_parent, char *gp_file_name_concat_string are removed. E. New operators added to maintain the new logics : <string> <string> <bool> .file_name_combine <string> true <string> <string> <bool> .file_name_combine <string> <string> false Combine a file name with a prefix. The first argument is a prefix, the second is a file name. Internal syntax of arguments and result is platform dependent. The combination is being reduced to a shortest equivalent, but if it starts with cwd reference, the starting cwd reference persists. If the <bool> argument is true, it considered to use the "no sibling" mode. It prevents reduction of (x/../y) to (y) for any x != y. With false such reduction is allowed. The <bool> argument appears a rudinemt from a dead branch. The new code always sets it to false. On success, the result is a combined, reduced path and false. On failure, the argument strings left on operand stack, followed with false. - .file_name_separator <string> Returns a readonly string, which represents a separator which is used in file names between directory item and file item. Used for making the default value of GenericResourcePathSep. - .file_name_directory_separator <string> Returns a readonly string, which represents a separator which is used in file names between two directory items. Used for making the default value of GenericResourceDir and FontResourceDir. - .file_name_current <string> Returns a readonly string, which represents a reference to current working directory. Used for making the default value of GenericResourceDir and FontResourceDir. </pre></blockquote> <p><strong><a name="2003-04-11_0759"></a> 2003-04-11 07:59 Igor Melichev</strong></p> <blockquote><pre> Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite . </pre></blockquote> <p><strong><a name="2003-04-11_0756"></a> 2003-04-11 07:56 Igor Melichev</strong></p> <blockquote><pre> Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite . </pre></blockquote> <p><strong><a name="2003-04-11_0748"></a> 2003-04-11 07:48 Igor Melichev</strong></p> <blockquote><pre> Removing it because it appears in a wrong place of the directory tree. </pre></blockquote> <p><strong><a name="2003-04-11_0746"></a> 2003-04-11 07:46 Igor Melichev</strong></p> <blockquote><pre> Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite . </pre></blockquote> <p><strong><a name="2003-04-11_0740"></a> 2003-04-11 07:40 Igor Melichev</strong></p> <blockquote><pre> Removing it because it appears in a wrong place of the directory tree. </pre></blockquote> <p><strong><a name="2003-04-11_0733"></a> 2003-04-11 07:33 Igor Melichev</strong></p> <blockquote><pre> Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite . </pre></blockquote> <p><strong><a name="2003-04-10_2222"></a> 2003-04-10 22:22 Ralph Giles</strong></p> <blockquote><pre> MSVC (at least) requires void* be cast. Also remove a spurious comment. </pre></blockquote> <p><strong><a name="2003-04-10_2211"></a> 2003-04-10 22:11 Ralph Giles</strong></p> <blockquote><pre> Sort the list of devices in the output of 'gs -h' so they're easier to read. Also list the default device separately as it's no longer first. Based on a patch from Nelson Beebe. Closes bug 416746. </pre></blockquote> <p><strong><a name="2003-04-10_1903"></a> 2003-04-10 19:03 Ray Johnston</strong></p> <blockquote><pre> Tolerate %%EOF that doesn't have any line-end characters before the end of the file. No other applications (AR5, xpdf, pdf-tools) complain about this, so now we also allow this variation on the %%EOF line. Fixes bug: 686793 </pre></blockquote> <p><strong><a name="2003-04-10_1845"></a> 2003-04-10 18:45 Alex Cherepanov</strong></p> <blockquote><pre> Use fstat() function to determine whether the file is seekable. This should work on all supported platforms and seems to be the only way to get the file type using a MSVC CRTL function. Bug #686773 DETAILS: Windows API documentation seems to imply undefined results when seeking of retrieving file position of a special file. MSDN documentation requires programmers to check file type using GetFileType() function before seeking. MSVC 6 CRTL doesn't check file type before calling the corresponding Windows API functions. fstat() is the only function in MSVC 6 CRTL that calls GetFileType(). S_ISREG() is a POSIX macro that check whether the file is ordinary. It can be easily emulated if missing. </pre></blockquote> <p><strong><a name="2003-04-10_1639"></a> 2003-04-10 16:39 Alex Cherepanov</strong></p> <blockquote><pre> Use standard sRGB CRD. Fix color cast in the light areas caused by chromatic adaptation done in the wrong (RGB) color space. Bug #650802 </pre></blockquote> <p><strong><a name="2003-04-10_1349"></a> 2003-04-10 13:49 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Generate a page when input file has no pages. Bug 686792 "Empty PS file generates produces invalid PDF". </pre></blockquote> <p><strong><a name="2003-04-10_1158"></a> 2003-04-10 11:58 Igor Melichev</strong></p> <blockquote><pre> Fix : Ignore a missed CMapType, because Adobe does so. Bug 686800 "Error converting PostScript file with vertical Japanese text". </pre></blockquote> <p><strong><a name="2003-04-10_0910"></a> 2003-04-10 09:10 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : The monitoring of fill overprint parameter was not conforming to PDF 1.3, 1.4 spec. Bug 686802 "Stroke Overprint lost making PDF". </pre></blockquote> <p><strong><a name="2003-04-09_2326"></a> 2003-04-09 23:26 Ralph Giles</strong></p> <blockquote><pre> Update the release instructions to use cvs2cl and the new split_changelog. Also include Changes and Details files for differences up to this point as an example of the new format. </pre></blockquote> <p><strong><a name="2003-04-09_2258"></a> 2003-04-09 22:58 Ralph Giles</strong></p> <blockquote><pre> Add news script to generate split abbreviated/detailed changelogs in the new format. Accepts xml input from the cvs2cl perl script. DETAILS: After the 8.00 release we switched to a new format for Changes.htm and the History files, based on the more traditional Changelog format instead of grouping commits by section, which often resulted in duplicate posts. At the same time we began a convention of including any notes too extensive for such a listing below a 'DETAILS:' separator, with the idea that we'd create two changelogs, with hyperlinks between so detailed information was still available even in the new easier to browse format. The method we've adopted uses the cvs2cl perl script, available from http://www.red-bean.com/cvs2cl/ to parse the output of 'cvs log' and generate an xml file containing the merged entries. This script is more robust than our own cvs2hist. The split_changelog.py script is then run to convert the xml changelog to the two sizes of linked html changelogs. split_changelog isn't very bright about constructing links, so it should be run from inside the doc directory for now. </pre></blockquote> <p><strong><a name="2003-04-09_1857"></a> 2003-04-09 18:57 Igor Melichev</strong></p> <blockquote><pre> Fix : Ignore a small noise skewing in the character caching criterion. </pre></blockquote> <p><strong><a name="2003-04-09_1847"></a> 2003-04-09 18:47 Igor Melichev</strong></p> <blockquote><pre> Fix (type1 hinter) : The overshoot suppressing code was wrong. Bug 686812 "Incorrect font rendering for Zapfino ampersand". DETAILS : It always restricted overshoots with 1 pixel due to a stupid error in code. This patch causes differences in almost tests with 300 dpi, and with 3 tests at 72 dpi. </pre></blockquote> <p><strong><a name="2003-04-08_1849"></a> 2003-04-08 18:49 Dan Coby</strong></p> <blockquote><pre> The previous change removing the spotrgb device missed src/Makefile.in. This change corrects that omission. </pre></blockquote> <p><strong><a name="2003-04-08_1701"></a> 2003-04-08 17:01 Raph Levien</strong></p> <blockquote><pre> Fix: Restores logic to improve shading quality, which was clobbered in DeviceN merge. </pre></blockquote> <p><strong><a name="2003-04-08_1642"></a> 2003-04-08 16:42 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Don't convert Type 3 fonts to raster fonts. DETAILS : The main work is done with pdf_install_charproc_accum and pdf_end_charproc_accum. They forward a BuildChar/BuildGlyph output to a separate graphic stream. See the big comment at the end of pdf_text_process. The new function gx_default_text_restore_state restores graphic state of PS interpreter when we discontinue the default text enumeration after executing a PS charproc. New state variable gx_device_pdf::accum_char_proc sets a special mode for graphic handlers. We ever clip BuildChar/BuildGlyph with a FontBBox or with character bbox specified in setcachedevice*. Doing so with calling gx_clip_to_rectangle from pdf_text_set_cache, because we need to avoid the current PS clipping path to interfere the character proc. Possibly a better way is to install an infinite (i.e. absenting) clipping box, wnen setcharwidth is used instead setcachedevice*. but we don't know how to. Due to that the distilled 238-01.ps renders some differently than undistilled one, and in most cases it appears closer to what CPSI does. An additional optimization : In sync_text_state the condition for matrix sinchronization is done weaker : with empty text buffer the synchronization is not needed. </pre></blockquote> <p><strong><a name="2003-04-08_1631"></a> 2003-04-08 16:31 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Don't convert Type 3 fonts to raster fonts. DETAILS : The main work is done with pdf_install_charproc_accum and pdf_end_charproc_accum. They forward a BuildChar/BuildGlyph output to a separate graphic stream. See the big comment at the end of pdf_text_process. The new function gx_default_text_restore_state restores graphic state of PS interpreter when we discontinue the default text enumeration after executing a PS charproc. New state variable gx_device_pdf::accum_char_proc sets a special mode for graphic handlers. We ever clip BuildChar/BuildGlyph with a FontBBox or with character bbox specified in setcachedevice*. Doing so with calling gx_clip_to_rectangle from pdf_text_set_cache, because we need to avoid the current PS clipping path to interfere the character proc. Possibly a better way is to install an infinite (i.e. absenting) clipping box, wnen setcharwidth is used instead setcachedevice*. but we don't know how to. Due to that the distilled 238-01.ps renders some differently than undistilled one, and in most cases it appears closer to what CPSI does. An additional optimization : In sync_text_state the condition for matrix sinchronization is done weaker : with empty text buffer the synchronization is not needed. </pre></blockquote> <p><strong><a name="2003-04-08_1359"></a> 2003-04-08 13:59 Ralph Giles</strong></p> <blockquote><pre> Initial commit of native MacOS font loading. This implements a %macresource% iodevice for retrieving data from the 'resource' structure associated with MacOS files, either directly from the resource fork, or from a serialized data fork resource file. This is primarily used to access font data on that platform. Resource fork access is only supported on MacOS, while data fork files (e.g. .dfont format font files) can be read on any platform. This code is currently disabled. DETAILS: This change allows fonts stored in resources to be specified in the fontmap. A special indexing scheme is added to the filename to address the particular resource desired by id and 4-character type code, e.g. '%macresource%Arial#sfnt+4096' or '%macresource%/Library/Fonts/Optima.dfont#sfnt+14151'. </pre></blockquote> <p><strong><a name="2003-04-08_1238"></a> 2003-04-08 12:38 Ralph Giles</strong></p> <blockquote><pre> Initialize the legacy global pgsdll_callback to NULL to avoid problems if it isn't properly set. Part of bug 686768. </pre></blockquote> <p><strong><a name="2003-04-08_1217"></a> 2003-04-08 12:17 Ralph Giles</strong></p> <blockquote><pre> Avoid calling a null pgsdll_callback, as can happen with the new client api and CHECK_INTERRUPTS. This fix affects only MacOS, similar protections are already in place for other platforms. Also return EOFC in the mac stdio stream process if no callback is defined. Closes bug 686768. </pre></blockquote> <p><strong><a name="2003-04-08_0504"></a> 2003-04-08 05:04 Dan Coby</strong></p> <blockquote><pre> Implementation of the SeparationOrder parameter. This implementation is only applicable for the spotcmyk and devicen devices. This change also removes the uuused spotrgb device. </pre></blockquote> <p><strong><a name="2003-04-04_1710"></a> 2003-04-04 17:10 Ralph Giles</strong></p> <blockquote><pre> Correct documenation change: -dAdjustWidth is on by default. </pre></blockquote> <p><strong><a name="2003-04-03_1642"></a> 2003-04-03 16:42 Raph Levien</strong></p> <blockquote><pre> Fix: Make the pdf 'q' operator not affect the current path, in conformance with the PDF spec. Fixes SF #596009. </pre></blockquote> <p><strong><a name="2003-04-03_1354"></a> 2003-04-03 13:54 Ralph Giles</strong></p> <blockquote><pre> Document that setpagedevice keys can reset the effects of pdfmark commands. Closes bug 645677. </pre></blockquote> <p><strong><a name="2003-04-03_1334"></a> 2003-04-03 13:34 Jouk Jansen</strong></p> <blockquote><pre> Committing in . for new file syntax on OpenVMS added the case for prefix=***] and filename=-***** Modified Files: gs/src/gp_vms.c ---------------------------------------------------------------------- </pre></blockquote> <p><strong><a name="2003-04-03_1328"></a> 2003-04-03 13:28 Ralph Giles</strong></p> <blockquote><pre> Fix documentation for -dAdjustWidth. This parameter takes a integer rather that an boolean as was stated. Closes bug 538033. </pre></blockquote> <p><strong><a name="2003-04-02_2345"></a> 2003-04-02 23:45 Alex Cherepanov</strong></p> <blockquote><pre> Fix a typo causing "/typecheck in restore" in documents with /Threads . Bug #611701 </pre></blockquote> <p><strong><a name="2003-04-02_2143"></a> 2003-04-02 21:43 Ralph Giles</strong></p> <blockquote><pre> Remove the non-HAVE_STDINT_H non-win32 attempts to define stdint types and related sys/types redefine hacks. Also warn in the configure script if stdint.h is not found. DETAILS: Compiling libjbig2dec requires the size-specific types in stdint.h, as does compiling in the headers. Therefore these types must be made available in ghostscript if jbig2.dev is included in FEATURE_DEVS. The best way to integrate this is to create a stdint_.h for ghostscript that contains discovered and/or platform-specific typedefs for the types. This is still the plan, but to speed integration we just through some defines into stdpre.h. If -DHAVE_CONFIG_H is passed by the makefile (as configure does) then the C99 header is used, and we make specific defines for MSVC which doesn't yet ship the header. We also had some fallbacks for other systems (vendor unix mostly) but these caused collisions with partial definitions of what became the C99 types in sys/types.h and the redirection hack we do with ulong et al. did not work on all platforms (notably macosx). It is the fallback defines that have been removed; users building on older platforms will probably have to patch the types in to use JBIG2 support. </pre></blockquote> <p><strong><a name="2003-04-01_2018"></a> 2003-04-01 20:18 Alex Cherepanov</strong></p> <blockquote><pre> On some devices the initial page size is rounded up but page size is rounded to the nearest pixel when set by setpagedevice. Changing default page size to match the setpagedevice. Bug #686795 </pre></blockquote> <p><strong><a name="2003-03-29_0055"></a> 2003-03-29 00:55 Alex Cherepanov</strong></p> <blockquote><pre> Multi-target rule that generates all of the targets at once was executed for every target obsoleting some of the files generated earlier and causing recompilation. Replace the multi-target rule with a single-target rule and make the target a prerequisite of the remaining targets; use empty command to disable default build rules. Bug #685341. </pre></blockquote> <p><strong><a name="2003-03-28_2015"></a> 2003-03-28 20:15 Ray Johnston</strong></p> <blockquote><pre> Prevent UMRs and when an image3x type image only has one of the possible two masks. Hangs or data garbling could result. Related to bug #686782. DETAILS: While several places in the image3x handling checked mask[i].depth to make sure that it was non-zero, other places didn't have this check, but just operated on the InterleaveType of the mask. While I could have added the mask[i].depth check, setting mask[i].InterleaveType to zero when a mask was not used was a single line change and served the purpose. I found this when looking at performance on this PC_*.ai file and was getting infinite loops. The plane_data was ending up pointing to the wrong area when the uninitialized mask[i].InterleaveType just happened to be 3 (interleave_separate_sources). </pre></blockquote> <p><strong><a name="2003-03-27_2110"></a> 2003-03-27 21:10 Ray Johnston</strong></p> <blockquote><pre> Improve previous patch to work from within encapsulated job framework. DETAILS: If gs is started with: gs -c false 0 startjob pop - < /dev/null then the previous patch would result in: Unrecoverable error: invalidaccess in quit since the systemdict /quit is defined to cause this error from within an encapsulated job. This patch detects the .jobsavelevel > 0 and uses 'stop' instead, which quits gs without a spurious error message. </pre></blockquote> <p><strong><a name="2003-03-27_2055"></a> 2003-03-27 20:55 Ray Johnston</strong></p> <blockquote><pre> Use the systemdict version of "quit" from gs_main_finit so that we can still quit if /quit has been redefined. Bug #686783. Analysis by Raph Levien. </pre></blockquote> <p><strong><a name="2003-03-27_1420"></a> 2003-03-27 14:20 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : The old code copied parameters of PS interpreter's graphic state to the output PDF. However some of them are installation dependent and must not copy. THIS IS AN INCOMPATIBLE CHANGE : the generated PDFs will render some differently on printers. DETAILS: We provide a signal to pdfwrite at very end of gs_init.ps - see the change to gs_pdfwr.ps, the priority=2000. The signal is handled in gdev_pdf_fill_path, and stores a copy of PS interpreter's graphic state parameter values. Those valuess are used for comparizon with current parameters of PS interpreter when an object is written. Therefore, if a value of a parameter was not changed by a document, it is not written to PDF. Note that if a PS document sets parameters equal to the installation defaults, the setting in missed in PDF. This is unfortunate. The patch causes multiple differences in rendering distilled comparefiles with pkmraw, because transfer functions changed from a HP-specific (defined in gs_init.ps) to none. Those differences were checked with the fuzzy compare utility and look fine. It should fix the 2003-03-26 regressions, but new differences will appear. </pre></blockquote> <p><strong><a name="2003-03-27_0109"></a> 2003-03-27 01:09 Ray Johnston</strong></p> <blockquote><pre> Improve .copyparam to handle arrays as well as strings, preserving the 'executable' status of arrays. Fixes bug #647685. </pre></blockquote> <p><strong><a name="2003-03-26_1327"></a> 2003-03-26 13:27 Igor Melichev</strong></p> <blockquote><pre> Fix : A bug processing an error in .schedule_init . </pre></blockquote> <p><strong><a name="2003-03-26_1308"></a> 2003-03-26 13:08 Igor Melichev</strong></p> <blockquote><pre> Ignore pdfmark if the output device isn't pdfwrite. THIS IS INCOMPATIBLE CHANGE. If an user changes the output device to pdfwrite dynamically, he should specify PDFSETTINGS in command line to enforce the pdfwrite initialization when GS starts up. Perhaps it's a seldom case. DETAILS : The old code always executed a big part of pdfwrite code with useful reason. Now we can skip it with help of .schedule_init . </pre></blockquote> <p><strong><a name="2003-03-26_1154"></a> 2003-03-26 11:54 Igor Melichev</strong></p> <blockquote><pre> Fixing some compiler warnings (unused variables, etc.). </pre></blockquote> <p><strong><a name="2003-03-25_2118"></a> 2003-03-25 21:18 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Provide a complete monitoring of the viewer's graphic state while generating a PDF output. The old code misses the synchronization of the viewer's graphic state with its internal copy when generating a 'grestore' command to undo a clipping. Bug 686763 "pdfwrite is not correctly handling OPM distiller parameter". DETAILS : This change affects all vector devices, but it should be equivalent for all them except pdfwrite, and except for the pointer lifetime bug explained below. Here is an example when the desynchronization appears : f1 settransfer 0 setcolor path1 fill f2 settransfer 1 setcolor path2 fill gsave path3 clip path4 fill grestore path5 fill After 'grestore' it uses f1 instead f2. The old code does not remember the viewer's graphic state, which was immediately before 'gsave', and resets the internal copy of the graphic state to default values when it generates 'grestore'. This logic is fully wrong : if after 'grestore' a parameter is equal to the default value, pdfwrite does not generate a set command for this parameter, but the viewer uses the value which was set before 'grestore', which can differ from the default one. Moreover, gdevvec copies the device color from local memory to global memory, and doesn't ask garbager to process pointers in the copy. When the device color contains pointers to patterns or so, the live time of the copy appears bigger than the live time of the pointed structure. The old code only compares the pointed addresses without accessing the pointed data, so that a crash can't happen. But if garbager moves another color to same address, the comparison answers "equal" when actually colors are not equal, and the generated PDF appears wrong. To exclude the pointer lifetime problem, the patch uses the 'save_dc' method instead the 'equal' method for colors. But the implementation of save_dc was dummy for patterns. To complete it, gs_id is inserted into gs_pattern_instance_s, and more variants added to gx_device_color_saved_s. The clist device appears tolerant to this change. Note that macros color_unset, color_set_null, color_is_null, gx_dc_is_null are now applied to gx_device_color_saved. For complete monitoring the viewer's graphic state, we implement a 2-elements stack 'vgstack' in gx_device_pdf_s, save the viewer's graphic state in it when generating 'q' commands, and restore from there when generating 'Q'. If a 'gs' parameter needs to change, we move to 'PDF_IN_STREAM' context, because we must not insert 'gs' into a text context. New functions pdf_try_prepare_stroke and pdf_try_prepare_fill provide the "try" logics for this. If a 'gs' parameter changes with changing a clipping, first we need to undo the old clipping with 'Q', and then generate new 'gs' parameters relatively to the restored graphic state. The new function pdf_unclip works for this. With this patch the length of generated PDF appears longer for some tests. The most important ones are : acrobat.pdf Lengths differ in 6141. adesso8.pdf Lengths differ in -8316. HeiseiMinStd.pdf Lengths differ in 4000. narrow_font.pdf Lengths differ in 6141. RealCities.pdf Lengths differ in 12370. RodinCIDEmbed.pdf Lengths differ in 101698. It happens because pdfwrite doesn't remember 'gs' dictionaries, and therefore redundant copies can appear. This problem to be fixed separately. Expecting a progression : 093-01.ps (was a wrong stroke widths with a PaintType 2 font). Expecting a regression : with this patch, re-distilled Testform.v1.0.2.pdf paints good with Adobe, but wrongly with GS. Maybe a bug in GS PDF interpreter. </pre></blockquote> <p><strong><a name="2003-03-25_2113"></a> 2003-03-25 21:13 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : 'write_range' was buggy (inconsistent) since zfont42.c rev.1.11 (17 Jan 2003). </pre></blockquote> <p><strong><a name="2003-03-24_1541"></a> 2003-03-24 15:41 Ralph Giles</strong></p> <blockquote><pre> Add rasterdb.py to the documentation file index. </pre></blockquote> <p><strong><a name="2003-03-24_1000"></a> 2003-03-24 10:00 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : The recent patch for the bug 653140 changed the font embedding condition with too narrow one. Restoring it to the old one. DETAILS : The wrong patch is http://www.ghostscript.com/pipermail/gs-cvs/2003-March/003048.html . This patch should fix the regressions http://www.ghostscript.com/pipermail/gs-regression/2003-March/000538.html </pre></blockquote> <p><strong><a name="2003-03-24_0050"></a> 2003-03-24 00:50 Jack Moffitt</strong></p> <blockquote><pre> Implements raster database to store and retrieve cached baseline rasters. </pre></blockquote> <p><strong><a name="2003-03-24_0031"></a> 2003-03-24 00:31 Jack Moffitt</strong></p> <blockquote><pre> Fixes a bug where baselines weren't being reverted if they already existed. </pre></blockquote> <p><strong><a name="2003-03-23_2359"></a> 2003-03-23 23:59 Jack Moffitt</strong></p> <blockquote><pre> Added emacs mode lines to python files without extensions. </pre></blockquote> <p><strong><a name="2003-03-22_1824"></a> 2003-03-22 18:24 Ralph Giles</strong></p> <blockquote><pre> Define some of the C99 stdint types in the common stdpre.h. This is required for libjbig2 integration. DETAILS: Another option would have been to define a local 'stdint_.h', but stdpre.h already contains a number of typedefs and includes sys/types.h to provide expected basic types. We use stdint.h itself if the toplevel makefile defines HAVE_STDINT_H. Note that unfortunately sys/types.h often tries to provide types now in stdint.h. We do the same collision-avoidance we do with our shorthand types, but this could clobber correct definitions for the explicitly- sized types on systems without stdint.h. (The only mainstream platform not shipping stdint.h is MSVC, and we provide specific typedefs for that platform.) Some systems also provide a sys/inttypes.h with the same definitions. We ignore this. </pre></blockquote> <p><strong><a name="2003-03-22_1247"></a> 2003-03-22 12:47 Igor Melichev</strong></p> <blockquote><pre> Fix (CFF parser) : Warn and ingore missed tables instead giving up. Bug 686772 "PDf file breaks in ghostscript works on other PDF rips". </pre></blockquote> <p><strong><a name="2003-03-21_1914"></a> 2003-03-21 19:14 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Fixing the bug 653140 "use NeverEmbed to restrict CIDFont embedding" DETAILS : The important change is setting pfont->font_name for CID fonts. Before now it contained empty string. Other changes are minor and only provide a data transfer. </pre></blockquote> <p><strong><a name="2003-03-21_1017"></a> 2003-03-21 10:17 Igor Melichev</strong></p> <blockquote><pre> file_name_combine : Improve the choice of the default GenericResourceDir. DETAILS: This patch does not change any behavior with a regular build. The default value for GenericResourceDir can be configured with -sGenericResourceDir=path . If not specified, it chooses the first directory in LIBPATH, except (.), and combines it with ../Resource . The default value for FontResourceDir can be configured with -sFontResourceDir=path . If not specified, it chooses the first directory in LIBPATH, except (.), and combines it with ../Resource/Font . findresource was buggy : it returned a path with GenericResourceDir when the real resource file is in another directory. Now it first searches in LIBPATH, and if not found calls ResourceFileName . We can't ever call ResourceFileName from findresource, because it ever retrieves a single path. See the bug above. Therefore with multiple resource directories it is conforming to PLRM but differs from CPSI. </pre></blockquote> <p><strong><a name="2003-03-20_2210"></a> 2003-03-20 22:10 Alex Cherepanov</strong></p> <blockquote><pre> Remove -dNODISPLAY flag from ps2ps.bat because nothing is generated when the flag is set. There's no -dNODISPLAY flag in UNIX or OS/2 versions. Fixes bug #686776 </pre></blockquote> <p><strong><a name="2003-03-20_2027"></a> 2003-03-20 20:27 Alex Cherepanov</strong></p> <blockquote><pre> Check i/o errors in PS and EPS generation drivers. Return ioerror soon after the error is encountered in the output stream. Fixes bug #686741 DETAILS: To simplify the code errors are checked only at the critical places: before seeking, inside loops, before returning from functions. Stream error status is checked by direct access to the stream structure because both macro and extern_inline based solutions were declined. </pre></blockquote> <p><strong><a name="2003-03-20_2011"></a> 2003-03-20 20:11 Alex Cherepanov</strong></p> <blockquote><pre> Check i/o errors in PS and EPS generation drivers. Return ioerror soon after the error is encountered in the output stream. Fixes bug #686741 DETAILS: To simplify the code errors are checked only at the critical places: before seeking, inside loops, before returning from functions. Stream error status is checked by direct access to the stream structure because both macro and extern_inline based solutions were declined. </pre></blockquote> <p><strong><a name="2003-03-20_1610"></a> 2003-03-20 16:10 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : The operator .file_name_combine returned a read-only string. </pre></blockquote> <p><strong><a name="2003-03-20_1522"></a> 2003-03-20 15:22 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : When advance width has non-zero y component, the width was set to zero. Bug 686764 "Overlapping characters". DETAILS : The test document embeds a font, in which some characters have a small non-zero y component of the advance width. It looks as a buggy font. The pdfwrite writes zero to Widths array (that's correct, because it is only useful with zero y component), and did not generate glyph positioning commands (the bug). This patch makes pdfwrite to be tolerant to such buggy fonts with generating glyph position for subsequent glyph. It does not repair the font. </pre></blockquote> <p><strong><a name="2003-03-20_0929"></a> 2003-03-20 09:29 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : While embedding a font, prefer font name to key name. It conserves original font names and allows derived fonts to merge. </pre></blockquote> <p><strong><a name="2003-03-18_0129"></a> 2003-03-18 01:29 Ralph Giles</strong></p> <blockquote><pre> Add the new pngalpha device to the default autoconf build. </pre></blockquote> <p><strong><a name="2003-03-17_0954"></a> 2003-03-17 09:54 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Unwinding another part of the previous patch which wrote a wrong numLongMetrics. </pre></blockquote> <p><strong><a name="2003-03-16_2050"></a> 2003-03-16 20:50 Igor Melichev</strong></p> <blockquote><pre> Fix : Increasing the threshould for the dropout prevention invocation. </pre></blockquote> <p><strong><a name="2003-03-16_2007"></a> 2003-03-16 20:07 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : A bug in gs_fapi.ps . </pre></blockquote> <p><strong><a name="2003-03-15_0809"></a> 2003-03-15 08:09 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Unwinding a part of the previous patch and improve the OS/2 table writing ann embedded CIDFontType2. Bugzilla Bug 686759 "pdf to pdf doesnt work". DETAILS : The previous patch appears wrong and caused a regression due to the change to "have_cmap = no_generate && !writing_cid," in gdevpsft.c . This patch unwinds it. Also the log message of the previous patch is fully wrong. The CID font in the test document for 686759 does not contain cmap and the cmap must not be written. But with the previous patch a corrupt cmap was written. Accessing the wrong font copy pdfwrite failed to compute glyph widths and therefore converted the font into a bitmap font. This patch restores the code to "have_cmap = no_generate,". The bug 686759 is reopened. Also we detected that the OS/2 table was written wrongly in some circumstances : its position in font file did not correspond to one specified in the font header. This patch fixes it. </pre></blockquote> <p><strong><a name="2003-03-14_1155"></a> 2003-03-14 11:55 Ralph Giles</strong></p> <blockquote><pre> Correct a typo in a help string. </pre></blockquote> <p><strong><a name="2003-03-14_1136"></a> 2003-03-14 11:36 Ralph Giles</strong></p> <blockquote><pre> Correct a serious error in the bmp file padding method. Also convert all error output to stdout from stderr since we no longer output the diff image to stdout. Patch from Igor Melichev. </pre></blockquote> <p><strong><a name="2003-03-14_0155"></a> 2003-03-14 01:55 Ralph Giles</strong></p> <blockquote><pre> The code for writing the BMP header made assumptions about struct packing and was not portable. Replace the previous code with a method that writes fields one at a time. Also, since fseek() is reported not to work beyond the end of the written file, pad out the length of the image data section so we can fill in the rows in proper bottom-to-top order. Note that the bmp output code does not convert RGB to BGR; this is not critical as the output is only used for hilighting differences. Closes bug #686739. </pre></blockquote> <p><strong><a name="2003-03-14_0010"></a> 2003-03-14 00:10 Ralph Giles</strong></p> <blockquote><pre> Replace the win32-specific code for seeking with a generic version. Partial fix for bug #686739. DETAILS: The code was making an assumption about the internals of the opaque fpos_t type. This is a 64 bit integer on win32, but a struct on linux and macos, so the compile of course fails. This commit temporarily breaks diff.bmp output on win32, which allegedly cannot fseek() beyond the written end of the file so the row-reversal logic will fail. This will be corrected in another revision. </pre></blockquote> <p><strong><a name="2003-03-13_1911"></a> 2003-03-13 19:11 Dan Coby</strong></p> <blockquote><pre> Fix for 686740 PDF file causes gs8 to core dump. The test file uses PDF transparency. This is a PDF 1.4 feature however the file header says %PDF1.3. The implementing code has tests for PDF version 1.4 before it tests for transparency features. The fix simply lowers the test level to 1.3. </pre></blockquote> <p><strong><a name="2003-03-13_1254"></a> 2003-03-13 12:54 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Never write cmap embedding a CIDFontType2. Bugzilla Bug 686759 "pdf to pdf doesnt work". DETAILS : PDF uses CIDToGIDMap for mapping CIDs to GIDs. Therefore the cmap table of the True Type font is not used with CIDFontType2. In PDF spec section 5.8 "Embedded Font Programs" reads : If used with a CIDFont dictionary,the "cmap " table is not needed,since the mapping from character codes to glyph descriptions is provided separately. Note the words "is not needed". Meanwhile reading a PDF 1.2 format, Acrobat Reader 4 and 5 claim an error if a cmap presents. </pre></blockquote> <p><strong><a name="2003-03-12_1222"></a> 2003-03-12 12:22 Igor Melichev</strong></p> <blockquote><pre> file_name_combine : 1. Always search command line argument files in (.) . 2. Throw invalidfileaccess from .libfile . 3. Always check permissions with reduced file names. 4. Ignore "./" prefixes in permission lists, except for (./*) . This patch should not not change behavior with regular build. DETAILS : With NEW_COMBINE_PATH 1 contributes the improvement listed above. Argument files are searched independently on SEARCH_HERE_FIRST. If a file is in the search list, but the access isn't permitted, .libfile throus invalidfileaccess, as with NEW_COMBINE_PATH 0. Minor changes : - some C-style cleanup in gpmisc.c ; - don't compile i_ctx_p->filearg with NEW_COMBINE_PATH 1; - don't compile i_ctx_p->starting_arg_file with NEW_COMBINE_PATH 0; - a check for parents in check_file_permissions was buggy. </pre></blockquote> <p><strong><a name="2003-03-12_1116"></a> 2003-03-12 11:16 Jouk Jansen</strong></p> <blockquote><pre> Committing in . pngalpha device added also to the OpenVMS make file for MMK (same change was already made for gmake in openvms.mak) Modified Files: gs/src/openvms.mmk ---------------------------------------------------------------------- </pre></blockquote> <p><strong><a name="2003-03-12_0724"></a> 2003-03-12 07:24 Jouk Jansen</strong></p> <blockquote><pre> Committing in . update VMS file-format writing Modified Files: gs/src/gp_vms.c ---------------------------------------------------------------------- </pre></blockquote> <p><strong><a name="2003-03-11_1136"></a> 2003-03-11 11:36 Russell Lang</strong></p> <blockquote><pre> Add pngalpha device that uses RGBA, with the alpha channel providing pixel coverage. Used for generating PNG images with a transparent background. DETAILS Add missing initialiser for get_clipping_box to prn_color_params_procs macro. (src/gdevprn.h) Avoid cast warning for software_key (src/gdevpng.c). Add pngalpha device that uses RGBA. This requires custom encode_color and decode_color procedures to put RGB in the first three bytes while leaving the fourth A byte as opaque. To avoid gx_no_color_value, the alpha is stored inverted so opaque is 0x00 and transparent is 0xff. If pngalpha is told to fill the entire page with white, it uses the kludge of instead filling with almost white and transparent (0xfefefeff). This works because it is triggered by "erasepage", but not by "1 setgray clippath fill". A custom open_device and put_params are needed to save the clist or memory device fill_rectangle, and to restore the pngalpha_fill_rectangle. A custom copy_alpha is required to correctly blend RGBA. The blend is based on pixel coverage, not true transparency Ghostscript doesn't pass transparency to the device. Alpha blend maths from Porter and Duff 1984 paper for "A over B". RGB values are stored without pre-multiplication. A custom pngalpha_create_buf_device is used to replace the memory device implementation gx_default_copy_alpha with pngalpha_copy_alpha, but not to replace clist_copy_alpha. The pngalpha device is successful at giving a transparent background to many images such as colorcir.ps and golfer.eps, but not tiger.eps which fills the clipping path with grey. It does not implement a transparent background for PDF 1.4 transparent input files. </pre></blockquote> <p><strong><a name="2003-03-11_1113"></a> 2003-03-11 11:13 Igor Melichev</strong></p> <blockquote><pre> Fix : setweightvector did not set the copy of WeightVector in gs_type1_data_s. Bug #686753 "Wrong Display of Multiple Master Fonts". DETAILS: The test document creates a Type 3 font, in which BuildChar procedure defines a copy of MM font and later replaces WeightVector in it. A new PS operator introduced to handle it. Adobe implementations do so. We are not happy with the change of VM with no regard to 'restore'. It appears compatible with the test document, because it calls setweightvector before rendering each glyph. (Another interesting point is that the test document executes "0 setcachelimit" before rendering a glyph). But it is not compatible to CPSI (a special test done). Providing a correct restore appears too complicated - need to change the data representation to 'ref'. Delaying it until it is really needed. Alternatively we could obtain a fresh copy of WeightVector in each call to *show, but it would be a significant performance flaw. The patch fixes the problem explained in the bug report #686753, but the supplied document has another problem : with pdfwrite some characters are converted to raster. To be fixed separately. </pre></blockquote> <p><strong><a name="2003-03-10_1308"></a> 2003-03-10 13:08 Jouk Jansen</strong></p> <blockquote><pre> Committing in . Oops... I made a typo in the version of 1 hour before this. Modified Files: gs/src/gp_vms.c ---------------------------------------------------------------------- </pre></blockquote> <p><strong><a name="2003-03-10_1056"></a> 2003-03-10 10:56 Jouk Jansen</strong></p> <blockquote><pre> Committing in . corrected VMS file syntax. Modified Files: gs/src/gp_vms.c ---------------------------------------------------------------------- </pre></blockquote> <p><strong><a name="2003-03-10_0736"></a> 2003-03-10 07:36 Igor Melichev</strong></p> <blockquote><pre> file_name_combine : (1) Implement the extended search method in resourceforall, resourcestatus, ResourceFileName. (2) Don't check permissions for command line argument files. DETAILS: This patch does not change any behavior with a regular build. To skip the permission check with argument files we added a flag into gs_context_state. This is only a secure way to pass the information across PS interpreter, which executes .runfile with any argument file. Per Adobe specification, a resource category can define the ResourceFileName procedure, which generates a resource file name from resource instance name. Since Ghostscript uses an extended search method for finding resource files, the strong Adobe's semantics appears inapplicable. Ghostscript implements an extended semantics. Finding a resource file while executing findresource or resourcestatus, Ghostscript does not call ResourceFileName. Instead that, it searches directories with an extended method explained in How Ghostscript finds files. ResourceFileName may be called from a Postscript program such as a resource installer. The default implementation for ResourceFileName first checks whether GenericResourceDir specifies an absolute path. If so, ResourceFileName uses its value to generate the result. Otherwise, it tries to find an existing resource file with the extended method. If it succeeds, ResourceFileName returns the path to the resource file found. Otherwise it uses GenericResourceDir to combine a default path. Note that with a single resource directory and an absolute ResourceFileName the behavior appears equivalent to Adobe's one. The new search method doesn't distinguish 'lib' and 'Resource' directories. Minor changes : The operator .file_name_parent is removed. The operator .file_name_current is removed. Improved some error messages. </pre></blockquote> <p><strong><a name="2003-03-07_1457"></a> 2003-03-07 14:57 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : Improving the OpenVMS path syntax. DETAILS : This patch does not change any behavior with regular build. With NEW_COMBINE_PATH 1 it allows to combine with filenames like (x]y) . </pre></blockquote> <p><strong><a name="2003-03-07_1421"></a> 2003-03-07 14:21 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : Renaming no_neighbour with no_sibling. DETAILS : This patch does not change any behavior. </pre></blockquote> <p><strong><a name="2003-03-07_1112"></a> 2003-03-07 11:12 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : Improving the file path syntax for OS/2, DOS and Windows. </pre></blockquote> <p><strong><a name="2003-03-07_0048"></a> 2003-03-07 00:48 Dan Coby</strong></p> <blockquote><pre> Fix for #686755 sgirgb device. The sgirgb device would produce compiler errors if included in version 8.00 or later. DETAILS: The sgirgb device had not been modified to match the changes made in the device API with version 8.00. These were fixed. In addition a couple of compiler warnings were removed. AN unsed variable (sptr) was also removed. Note: I am unable to test this fix since I do not have an sgi system. The inclusion of the sgirgb device also creates link errors in a WinXP build due to undefined/missing bzero. Since this was not changed, I am assuming that this is not a problem on an sgi system. </pre></blockquote> <p><strong><a name="2003-03-06_1601"></a> 2003-03-06 16:01 Igor Melichev</strong></p> <blockquote><pre> file_name_combine : Removing a rudiment of old code. DETAILS: This patch does not change any behavior with a regular build. The operator .file_name_parents is now removed. </pre></blockquote> <p><strong><a name="2003-03-06_1353"></a> 2003-03-06 13:53 Igor Melichev</strong></p> <blockquote><pre> file_name_combine : Implementing new command line arguments: -sGenericResourceDir= and -sFontResourceDir= . DETAILS: This patch does not change any behavior with a regular build. With NEW_COMBINE_PATH 1 the new arguments replace default values for GenericResourceDir and FontResourceDir . A consistency check is added to gs_res.ps . It signals an error if the value of GenericResourceDir is inconsistent with LIBPATH. An automatic insertion of it into LIBPATH appears cumbersome because the access to LIBPATH in C code goes through gs_main_instance_s. The operator .file_name_combine changed the prototype. A boolean result is added instead a failure on error. This simplifies error processing in PS code, especially because the 'stopped' changes the memory allocation mode. Relevant changes done to calls of .file_name_combine in gs/lib . A minor bug is fixed in gp_file_name_combine_generic. </pre></blockquote> <p><strong><a name="2003-03-06_1047"></a> 2003-03-06 10:47 Russell Lang</strong></p> <blockquote><pre> Change OS/2 gp_file_name_combine to match Windows. </pre></blockquote> <p><strong><a name="2003-03-06_1028"></a> 2003-03-06 10:28 Igor Melichev</strong></p> <blockquote><pre> file_name_combine : Adding the 'no_neighbour' argument. DETAILS: This patch does not change any behavior with a regular build. It slightly change behavior when built with NEW_COMBINE_PATH 1. The 'no_neighbour' is a boolean, which protects steps from a directory to its neighbor directory in file_name_combine. With true argument the combination (x/y) + (../z/t) fails but (x/y) + (../y/t) succeeds. With false argument both combinations succeed. The argument is added to both C function and PS operator. We apply false argument while executing .libfile and while generating PermitFileReading. True argument is used in FAPI support to locate FAPI-handled font files (which generally are not PS files, and they are not being read with PS operators). With NEW_COMBINE_PATH 1, THIS IS INCOMPATIBLE CHANGE. To access resources, run Ghostscript with specifying a resource directory in the -I command line argument. </pre></blockquote> <p><strong><a name="2003-03-04_1610"></a> 2003-03-04 16:10 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : Relative paths in GS command line did not work. This patch cnanges a disabled code only. </pre></blockquote> <p><strong><a name="2003-03-04_1524"></a> 2003-03-04 15:24 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : An improvement to .locksafe . DETAILS : This patch changes a disabled code only. It skips redundant templates when GenericResourceDir or FontResourceDir is an absolute path. </pre></blockquote> <p><strong><a name="2003-03-04_1449"></a> 2003-03-04 14:49 Igor Melichev</strong></p> <blockquote><pre> Fix : A bug in CIDDecoding category definition. DETAILS : Should use .libfile opening a resource file to resolve relative paths with LIBPATH. </pre></blockquote> <p><strong><a name="2003-03-04_1405"></a> 2003-03-04 14:05 Igor Melichev</strong></p> <blockquote><pre> Fix (file_name_combine) : A bug in .locksafe . This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-03-04_1120"></a> 2003-03-04 11:20 Igor Melichev</strong></p> <blockquote><pre> Fix : removing an unused variable. </pre></blockquote> <p><strong><a name="2003-03-04_1100"></a> 2003-03-04 11:00 Igor Melichev</strong></p> <blockquote><pre> Initial commit for the new SAFER logics. DETAILS: This patch should not change any behavior unless NEW_COMBINE_PATH is changed to 1. With 0 a minor meanful change is the replacing .pathstring_not_bare with .file_name_combine in gs_fapi.ps (which fixes a bug in FAPI support, and doesn't affect builds with no FAPI). The change is compatible unless NEW_COMBINE_PATH is 1. Incompatibility issues with 1 are explained below. With NEW_COMBINE_PATH 1 the patch defines a new logic for .libfile, SAFER, and related things : 1. Default values for GenericResourceDir and FontResourceDir are platform dependent. (The old code always use Unix notation - a bug). 2. Default value for GenericResourcePathSep is platform dependent. The value is used before non-directory items only. (The old code always use Unix notation - a bug). (The old code used the value before directory items - a bug on OpenVMS). 3. PLRM specifies GenericResourceDir to be a single absolute path name. But Ghostscript's tradition is to load library files form a list of directories. Since we want to propagate this tradition to resource files, we get a conflict. To resolve the conflict, we allow GenericResourceDir to be a relative path, which is being concatenated with LIBPATH items. Thus we provide an extension of Postscript. 4. When a LIBPATH item is being concatenated with GenericResourceDir, an abnormal behavior appears when GenericResourceDir references parent. Exactly, concatenating the (.) item of LIBPATH with the default GenericResourceDir, which is (../Resource/), we get (../Resource/), i.e. it searches in a directory, which users don't expect to. We work around the abnormal behavior with skipping such paths while executing .libfile . More precisely, the .libpath algorithm is : For each LIBPATH item : - combine it with the argument string; - if the (reduced) combination refers the parent, skip it; - otherwise try to open the path. If succeeded, exit with it. If no success, fail with undefinedfilename or invalidfileaccess. Here and below we used Unix notation just for simplifying the log message. All statements to be generalized for any platform, and they are true for any supported platform. 5. A consequence of our workaround for (4) is a new constraint to .libfile : Let x is a cwd. Let x/../y exists. Lets mark it as y1. Let LIBPATH contains cwd and a directory z, which is not cwd. Let z/../y exists. Lets mark it as y2. Consequently y1 != y2. Executing (../y/f) .libpath searches y2/f, but does not search y1/f . The old code searched both in non-safer mode. THIS IS INCOMPATIBLE CHANGE. 6. A better workaround for (4) would be an implementation of RESPATH, which by default generates from LIBPATH with replacing (../Resource/) with (./Resource/). This requires to maintain a new directory lists. .libfile should get an additional argument, which specifies a search list - LIBPATH, RESPATH or FONTPATH. We do not make this improvement now, but will add it to Issues.htm . 7. If a path starts with a number of parent references, a template with same number of parent references must be added to permission list to allow the access. The template (*) allows access to any file. THIS IS INCOMPATIBLE CHANGE, because the old code ever rejects parents. 8. GenericResourceDir and FontResourceDir are not being added to permission list while .locksafe. Instead that, we combine them with all LIBPATH items, and add the combinations to the permission list unless it references parent. THIS IS INCOMPATIBLE CHANGE, but for non-exotic cases (such as "(../Resource/CMap/H) .libfile" in a document) it should be equivalent to the old behavior. 9. Scratch files with a non-absolute prefix always open in a scratch directory. The old code can open them in current and parent directories if an user modified a default prefix in C code. THIS IS INCOMPATIBLE CHANGE for users who had modified a scratch file prefix in C code. Permission for scratch directory is not checked as well as in old code. A. The operator .filenamedirseparator is removed, because it cannot work properly on OpenVMS. On OpenVMS it needs both prefix and trailer to determine a correct separator. We removed it because the new logics never needs it. B. The operator .pathstring_not_bare is removed, because .file_name_combine performs it's job better. C. The functions gp_pathstring_not_bare, gp_file_name_references_parent, char *gp_file_name_concat_string are not longer in use. D. New operators added to maintain the new logics : <string> <string> .file_name_combine <string> Combine a file name with a prefix. The first argument is a prefix, the second is a file name. Internal syntax of arguments and result is platform dependent. The combination is being reduced to a shortest equivalent, but if it starts with cwd reference, the starting cwd reference persists. - .file_name_separator <string> Returns a readonly string, which represents a separator which is used in file names between directory item and file item. Used for making the default value of GenericResourcePathSep. - .file_name_directory_separator <string> Returns a readonly string, which represents a separator which is used in file names between two directory items. Used for making the default value of GenericResourceDir. - .file_name_parent <string> Returns a readonly string, which represents a parent reference. Used for making the default value of GenericResourceDir and GenericResourceDir. <string> .file_name_parents <integer> Returns an integer equal to the length of maximal anchor substring, which includes parent references and separators only. Used in generating the permission list from LIBPATH and [GenericResourceDir FontResourceDir] as a workaround for (6). We believe that all them are necessary, except the last one, which is temporary used in (8) as a workaround for (6). </pre></blockquote> <p><strong><a name="2003-03-03_1150"></a> 2003-03-03 11:50 Igor Melichev</strong></p> <blockquote><pre> gp_file_name_combine : Implementing new PS operators. </pre></blockquote> <p><strong><a name="2003-03-03_1100"></a> 2003-03-03 11:00 Igor Melichev</strong></p> <blockquote><pre> gp_file_name_combine : Fixing the OpenVMS parent syntax. </pre></blockquote> <p><strong><a name="2003-03-03_1049"></a> 2003-03-03 10:49 Igor Melichev</strong></p> <blockquote><pre> gp_file_name_combine : Fixing a comment about OpenVMS. </pre></blockquote> <p><strong><a name="2003-03-03_1032"></a> 2003-03-03 10:32 Igor Melichev</strong></p> <blockquote><pre> gp_file_name_combine : Fixing the OpenVMS parent syntax and generalizing the ankor parent check. Thanks to Jacob Jansen. </pre></blockquote> <p><strong><a name="2003-03-02_2252"></a> 2003-03-02 22:52 Igor Melichev</strong></p> <blockquote><pre> gp_file_name_combine : Adding more helpers for OpenVMS support. DETAILS: The previous patch unintentionally set NEW_COMBINE_PATH=1. This one repairs it. OpenVMS uses different separators for directory and file items - '.' and ']'. More helpers added to resolve this. gp_file_name_conbine_generic now checks which one is needed for concatenating paths. </pre></blockquote> <p><strong><a name="2003-03-02_1348"></a> 2003-03-02 13:48 Igor Melichev</strong></p> <blockquote><pre> gp_file_name_combine : Implementing some useful functions. DETAILS: This patch doesn't change any behavior. The new functions will be used with NEW_COMBINE_PATH=1. Probably we don't need gp_file_name_reduce, but it's implementation is pretty nice and isn't obvious. gp_file_name_is_absolute will replace gp_pathstring_not_bare. NEW_COMBINE_PATH=1 wan't need a special check for cwd. gp_file_name_is_from_parent will replace gp_file_name_references_parent. The new function only check partent at the beginning of the path, and should be used with reduced paths only. We could code an in-place reduction with : gp_file_name_combine_result gp_file_name_reduce_inplace(char *buffer, uint *blen) { return gp_file_name_reduce(buffer, *blen, buffer, blen); } but we believe that 1. Aliasing const with non-const isn't a valid C. Rather GS contains multiple const hacks, we don't want to add another one. 2. The input buffer must have space for the trailing zero, which is not accounted in *blen. The patch also includes a minor cleanup of comments and gp_file_name_combine_generic. </pre></blockquote> <p><strong><a name="2003-03-02_1150"></a> 2003-03-02 11:50 Igor Melichev</strong></p> <blockquote><pre> Fix : A compiler warning in platform dependent code for gp_file_name_combine. </pre></blockquote> <p><strong><a name="2003-03-02_1138"></a> 2003-03-02 11:38 Igor Melichev</strong></p> <blockquote><pre> Fix : A syntax error in platform dependent code for gp_file_name_combine. </pre></blockquote> <p><strong><a name="2003-03-01_1359"></a> 2003-03-01 13:59 Igor Melichev</strong></p> <blockquote><pre> Implementing gp_file_name_combine. DETAILS : This patch introduces a new code, which is currently disabled with "#define NEW_COMBINE_PATH 0" in gp.h . The new function gp_file_name_combine concatenates two paths and then reduce the concatenation with excluding parent references when possible. It is platform dependent, but we could factor out a big common part - see gp_file_name_combine_generic. Platforms define 8 small helpers for it. The gp_file_name_combine and its helpers were debugged on Windows with emulating other platforms. A help wanted to test them on real platforms. For testing them replace 0 with 1 in the definition of NEW_COMBINE_PATH in gp.h and rebuild. We do not protect definitions of new functions with NEW_COMBINE_PATH switch, because we want them to be syntax-checked. Some old functions, such as gp_pathstring_not_bare, gp_file_name_concat_string will be reconsidered later, because the helpers perform similar work in a generalized way. Probably some of old ones to be removed. Our strong intention is to remove gp_pathstring_not_bare, because it's behavior looks strange from the user's end. </pre></blockquote> <p><strong><a name="2003-03-01_1254"></a> 2003-03-01 12:54 Igor Melichev</strong></p> <blockquote><pre> Reorganizing lib_open, lib_file_open, lib_file_fopen, file_open_stream functions to allow to check permissions with a combined file name. DETAILS : This should be an equivalent change. It is a preparation for implementing static resources. This patch moves the directory enumeration cycle from lib_file_fopen to lib_file_open. After that we have a place in lib_file_open in which both combined path and permissions are accessible (more precisely, this place is in lib_fopen_with_libpath). The checking permissions in there will be next improvement. This patch defines a stub for gp_file_name_combine function. Temporary it is placed into zfile.c . Later it will be moved to platform dependent modules. </pre></blockquote> <p><strong><a name="2003-02-28_1858"></a> 2003-02-28 18:58 Ray Johnston</strong></p> <blockquote><pre> Moving clear to before the restore removed the startjob parameters from the opstack. DETAILS: This was an attempt to remove a potential problem with invalidrestore caused by stuff on the opstack or dictstack if startjob was executed with elements on these stacks. Since the problem has always been there and since no one has tripped over it, we will investigate a correct fix to preventing invalidrestore when the need arises. In the meantime, at least startjob will work. </pre></blockquote> <p><strong><a name="2003-02-28_1853"></a> 2003-02-28 18:53 Ralph Giles</strong></p> <blockquote><pre> Correct a comment typo. </pre></blockquote> <p><strong><a name="2003-02-28_0358"></a> 2003-02-28 03:58 Ray Johnston</strong></p> <blockquote><pre> Correct typo somehow a /* comment crept in -- changed to % </pre></blockquote> <p><strong><a name="2003-02-28_0031"></a> 2003-02-28 00:31 Ray Johnston</strong></p> <blockquote><pre> Add .endjob procedure for use by job servers. Remainder of job encapsulation and documentation to follow later. Also fix potential "invalidrestore" problem with "extiserver" and "true <passwd> startjob" caused by stuff left on the opstack or dictstack. </pre></blockquote> <p><strong><a name="2003-02-27_1156"></a> 2003-02-27 11:56 Ralph Giles</strong></p> <blockquote><pre> Support for JBIG2 streams with a JBIG2Globals shared data reference. DETAILS: The JBIG2Decode filter can take an optional /JBIG2Globals parameter, always an indirect object reference to another stream. This commit adds a new .jbig2makeglobalctx operator that takes a bytestring contanting the global stream data, runs it through the decoder library and wraps the resulting context pointer in an astruct which is returned as a special -jbig2globalctx- object on the postscript stack. A new procedure called from inside applyfilters in the pdf decoder takes care of spooling the global data into the bytestring and installing the astruct under the .jbig2globalctx key in the parameter dictionary. The filter implementation looks for this and passes it to the page decoder instance if it's available. The original JBIG2Globals key is ignored by the actual decode filter implementation. </pre></blockquote> <p><strong><a name="2003-02-26_2233"></a> 2003-02-26 22:33 Igor Melichev</strong></p> <blockquote><pre> Fix : Improving a comment in lib/FAPIconfig. </pre></blockquote> <p><strong><a name="2003-02-25_2053"></a> 2003-02-25 20:53 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : -dSubsetFonts=false did not work with incremental fonts. DETAILS : pdfwrite created a "complete" copy of a font at the first appearance of the font. With incremental fonts it missed incremental glyphs with -dSubsetFonts=false. The patch checks whether a glyph is added incrementally and replaces the "complete" font copy with a font subset. Bug #686735 "-dSubsetFonts=false produces a bad PDF". The core of the patch is the change to gdevpdte.c . Other changes just pass a necessary data through internal interfaces. This patch should not change behavior with -dSubsetFonts=false, which is used by default for the regression testing. </pre></blockquote> <p><strong><a name="2003-02-25_1544"></a> 2003-02-25 15:44 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Removing pdf_font_resource_s::copied_font. DETAILS : The patch removes a duplicated pointer. It is a preparation for fixing #686735 "-dSubsetFonts=false produces a bad PDF". The patched code should be equivalent to the old one. </pre></blockquote> <p><strong><a name="2003-02-25_1325"></a> 2003-02-25 13:25 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : improving a comment. </pre></blockquote> <p><strong><a name="2003-02-25_1309"></a> 2003-02-25 13:09 Igor Melichev</strong></p> <blockquote><pre> Fixing a compiler warning. </pre></blockquote> <p><strong><a name="2003-02-25_1225"></a> 2003-02-25 12:25 Igor Melichev</strong></p> <blockquote><pre> Fixing the device finalization problem. DETAILS : pdfwrite (and possibly other devices) perform a huge work within close_device. Since close_device is called via finalization method from memory manager, some device structures could be released before calling device_close, so that the huge work could not safely complete. Also it could return error codes, which were entirely lost. This patch calls gs_closedevice implicitly when a device is about to uninstall. We catch 2 such events : when the interpreter is about to exit, and when the interpreter executes setdevice. This should be enough for "external" devices, such as printer drivers. Internal devices do not receive these calls. Note that a call to gx_device_fill_in_procs is added after assign_dev_procs from gx_default_create_buf_device. Not sure why it was not done before. After assign_dev_procs, ppmraw had ununitialized procs. Also note that is_open flag is now unconditionally resets in gs_closedevice. The new code needs to reset it to prevent redundant call to close_device from device finalization method. The redundant call causes a crash if pdfwrite has insufficient disk space to store the output file (debugged with dina3_watermark.pdf) . Bug 601255 "segv while device finalization". </pre></blockquote> <p><strong><a name="2003-02-24_1350"></a> 2003-02-24 13:50 Alex Cherepanov</strong></p> <blockquote><pre> Avoid dictfull error; allocate page dictionary as large as the image cache size. Wrap the image data string in the executable array because some interpreters require the procedure data source. Fixes bug #643398 </pre></blockquote> <p><strong><a name="2003-02-22_1805"></a> 2003-02-22 18:05 Ralph Giles</strong></p> <blockquote><pre> Use the correct debug macro in the recently committed struct_array allocation checks. Only relevent to the debug build. </pre></blockquote> <p><strong><a name="2003-02-22_0550"></a> 2003-02-22 05:50 Alex Cherepanov</strong></p> <blockquote><pre> Return error immediately when glyph ID is not found in GlyphDirectory. Avoid access to partly constructed GlyphData and obscure failures there. Fixes SourceForge bug #672129 DETAILS: This change has no effect on rendering. Old code was failing during access to GlyphData, which caused default glyph substitution. New code returns the error earlier and causes the same default glyph substitution. </pre></blockquote> <p><strong><a name="2003-02-21_1852"></a> 2003-02-21 18:52 Ray Johnston</strong></p> <blockquote><pre> Add runtime validity checking related to struct_array allocations. This is only enabled for DEBUG builds so the checks will not slow down production builds. Related to bug 669170. </pre></blockquote> <p><strong><a name="2003-02-21_1848"></a> 2003-02-21 18:48 Ray Johnston</strong></p> <blockquote><pre> Fix SEGV when cmap allocation failed (check for pcmap==NULL was misplaced). </pre></blockquote> <p><strong><a name="2003-02-21_1122"></a> 2003-02-21 11:22 Igor Melichev</strong></p> <blockquote><pre> Fix : Don't generate the warning "/Unicode /Decoding is not accessible" when working with no pdfwrite device. </pre></blockquote> <p><strong><a name="2003-02-20_2134"></a> 2003-02-20 21:34 Alex Cherepanov</strong></p> <blockquote><pre> The fact that pswrite and epswrite devices generate low level PostScript has been documented as a known limitation. </pre></blockquote> <p><strong><a name="2003-02-20_1857"></a> 2003-02-20 18:57 Jack Moffitt</strong></p> <blockquote><pre> Forces test scripts which take files as arguments to treat the files as names rather than paths. </pre></blockquote> <p><strong><a name="2003-02-20_1834"></a> 2003-02-20 18:34 Igor Melichev</strong></p> <blockquote><pre> Fix : A structure discriptor was wrong allocating an array of gs_cid_system_info. DETAILS : This also unwinds the patch http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002895.html </pre></blockquote> <p><strong><a name="2003-02-20_1338"></a> 2003-02-20 13:38 Alex Cherepanov</strong></p> <blockquote><pre> Fix: Use default procedures for non-forwarding component bbox device. Forwarding procedures cannot be used if there's no target device. DETAILS : Bug #636210 This is a partial fix for bug #636210. Another part, I/O error processing, will be posted separately. This change was locally tested with full regression test. </pre></blockquote> <p><strong><a name="2003-02-18_1957"></a> 2003-02-18 19:57 Igor Melichev</strong></p> <blockquote><pre> This is initial commit for implementing static resources. DETAILS : 1. Adding a new iodevice %static% with the new file ziodevst.c . It is used for opening files placed in static data segment. They need to be accessed as PS files due to multiple reasons, including the implementation of gs_ciddc.ps and for PS procedure ResourceFileName defined in PLRM. 2. Implementing a queue for delayed invocation of initialization functions at end of gs_init. This feature is necessary due to customized builds of Ghostscript : some 'dev' depend each on other and some functions are needed to execute after all devs are preset. Currently it is only used for obtaining the Unicode Decoding resource, but later it will be used for perfectly consistent processing of font and CID font map files, both with FAPI and without it. 3. gs_resmp.ps slightly changed for handling resource maps which are not defined as files. 4. The new file gs_resst.ps implements a procset for handling static resource files. Both gs_resst.ps and gs_ciddc.ps use the %static% iodevice. 5. The new file gs_resst.ps creates a map of resource files placed in static segment. Later it would be nice to generate it during GS installation. With the defined resource set gs_init.obj grows up to 1.5Meg, but both MSVC and gcc/Cygwin could handle it. Currently all resources in gs_stres.ps are COMMENTED OUT to prevent problems building Ghostscript with COMILE_INITS=1 on Mac and VMS. To uncomment them, replace '%-' with empty string. This patch was locally tested with entire comparefiles with COMPILE_INITS=0. It should not cause regressions. Also it was slightly tested with COMPILE_INITS=1 : the static resources work fine. The patch assumes that during a GS build resource files are placed in gs/Resource/ . It uses 1 Decoding and a dozen of CMaps, which are necessary for the CID font emulation and for FAPI to work. You need to uncomment them in gs_stres.ps . When GS is invoked, resources are being loaded from both the static segment and from the OLD(!!!!!) default path. In other words, the resource machinery works fine, but the default resource path is not fixed yet. I intend to fix it in the next day or two. The patch depends on http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002950.html The patch does not include CMaps and Decodings resources. They to be added separately. </pre></blockquote> <p><strong><a name="2003-02-17_0831"></a> 2003-02-17 08:31 Jouk Jansen</strong></p> <blockquote><pre> Committing in . OpenVMS crash fix (temporarily) Modified Files: gs/src/openvms.mmk ---------------------------------------------------------------------- </pre></blockquote> <p><strong><a name="2003-02-17_0008"></a> 2003-02-17 00:08 Igor Melichev</strong></p> <blockquote><pre> Enhancing the functionality of geninit.c . DETAILS : 1. Implemented "long" relative paths. See translate_path. Not sure what to do with separators on Mac. See the __MACOS__ section. This change was not debugged on Mac. In case of problems please patch it. 2. Moved some error messages to prefix_open, to allow translated paths to be displayed. 3. Implemented an intact including of files. This is useful for including Adobe resources. Don't want legal problems with them. The syntax of 'Replace' statement is enhanced. </pre></blockquote> <p><strong><a name="2003-02-16_1751"></a> 2003-02-16 17:51 Igor Melichev</strong></p> <blockquote><pre> Fix : Improving the CIDFontType 2 font copying. DETAILS : I believe that the code about copying CIDFontType 2 glyphs is overcomplicated with mixing CIDs and GIDs, and needs to be cleaned up. The old code had an obvious inconsistency : it allocated a smaller array for glyph indices than written, causing a heap damage. This patch simply makes the code to be self-consistent. I can't say that I completely understand whether CIDs/GIDs passed correctly or not. Now it is working, but the correctness was not proved, and Acrobat Reader doesn't show the glyph with /CIDTTEMUL (see below). The problem was detected with COMPILE_INITS=1 with emulating a CID wont with mshei.ttf . The following program had crashed with pdfwrite : /glyph 2300 def /ShinGo-Bold /CIDFont findresource 100 scalefont setfont 100 200 moveto glyph glyphshow /CIDTTEMUL /CIDFont findresource 100 scalefont setfont 100 100 moveto glyph glyphshow showpage with the cidfmap file like this : /ShinGo-Bold << /FileType /TrueType /Path (f:/WIN2000/Fonts/batang.ttf) /SubfontID 0 /CSI [(Japan1) 2] >> ; /CIDTTEMUL << /FileType /TrueType /Path (f:/WIN2000/Fonts/mshei.ttf) /SubfontID 0 /CSI [(Japan1) 2] >> ; The effect is indeterministic. When I build GS with regenerate gs_init.c, it crashed if run in same session of Developer Studio. But if I close-open the Developer Studio and run GS, it doesn't crash. The patch should enlarge the array, which was written outside the index range. The problem looks gone. Meanwhile the CID/GID logics in gxcopy.c to be revised someday. </pre></blockquote> <p><strong><a name="2003-02-16_1728"></a> 2003-02-16 17:28 Igor Melichev</strong></p> <blockquote><pre> Fix : Improving the seekability of the init string file. DETAILS : See comment in code. This problem was found while developing a dead branch. Rather it will not go to the mainstream development, I'd like to keep track on it. If the patch causes a problem, it can be safely unwinded. </pre></blockquote> <p><strong><a name="2003-02-15_2237"></a> 2003-02-15 22:37 Ray Johnston</strong></p> <blockquote><pre> Change the fixed point precision for device coordinates to 8 bits. The previous 12 bits was too large to accomodate large format inkjet printers at modern resolutions of 720 and 1200 dpi. </pre></blockquote> <p><strong><a name="2003-02-14_0134"></a> 2003-02-14 01:34 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : hmtx was wrongly written with CIDFontType 2 subset. DETAILS: Source Forge bug #683690. </pre></blockquote> <p><strong><a name="2003-02-13_2226"></a> 2003-02-13 22:26 Igor Melichev</strong></p> <blockquote><pre> Fix : Replacing UTC-16 with correct UTF-16 in documentation and comments. </pre></blockquote> <p><strong><a name="2003-02-13_2005"></a> 2003-02-13 20:05 Ralph Giles</strong></p> <blockquote><pre> Improve wording and sentence structure for some recent documentation additions. </pre></blockquote> <p><strong><a name="2003-02-13_1119"></a> 2003-02-13 11:19 Igor Melichev</strong></p> <blockquote><pre> Adding a documentation about Decoding and CIDDecoding resource categories. </pre></blockquote> <p><strong><a name="2003-02-13_0924"></a> 2003-02-13 09:24 Igor Melichev</strong></p> <blockquote><pre> Fix : The condition in .pdf_hook_DSC_Creator was too general. Restricting the Type 32 font disabling with pdfwrite device only. </pre></blockquote> <p><strong><a name="2003-02-13_0753"></a> 2003-02-13 07:53 Dan Coby</strong></p> <blockquote><pre> Partial fix for 684340. Remove the macro gx_color_device_must_halftone and its one (incorrect use). DETAILS: The macro gx_color_device_was meant for situations in which the device was known to be a color device and it was needed to know if halftoning was required. With the 8.00 changes in the graphics library, the one situation that it was being used is incorrect. The macro was also wrong since it was checking dev->color_info.max_gray. It should have been checking color_info.max_color. The macro was removed. Please use gx_device_must_halftone in its place. </pre></blockquote> <p><strong><a name="2003-02-13_0154"></a> 2003-02-13 01:54 Igor Melichev</strong></p> <blockquote><pre> Fix : Stack balance in .pdf_hook_DSC_Creator . </pre></blockquote> <p><strong><a name="2003-02-12_2306"></a> 2003-02-12 23:06 Igor Melichev</strong></p> <blockquote><pre> Adding a documentation about GlyphNames2Unicode. </pre></blockquote> <p><strong><a name="2003-02-12_2231"></a> 2003-02-12 22:31 Igor Melichev</strong></p> <blockquote><pre> Fix : Removing an unused procedure. </pre></blockquote> <p><strong><a name="2003-02-12_1457"></a> 2003-02-12 14:57 Ralph Giles</strong></p> <blockquote><pre> Add the new jbig2 filter sources to the file listing. </pre></blockquote> <p><strong><a name="2003-02-12_1430"></a> 2003-02-12 14:30 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Disable 32 /FontType resource while processing a document created with PScript5.dll . DETAILS: This patch completes the previous one. See details in there. Also see comment in .pdf_hook_DSC_Creator defined by this patch. This patch may be insufficiently safe for the case when several documents are being united while a distillation. We would like to restore the redefinition of 'resourcestatus' after a document completes, but we don't know how to do (exactly, where to call the restoring action from ?). In general, what happens with gs -sDEVICE=pdfwrite -OutputFile=1.pdf document1.ps document2.ps -c quit ? </pre></blockquote> <p><strong><a name="2003-02-12_1429"></a> 2003-02-12 14:29 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Account GlyphNames2Unicode while creating ToUnicode CMaps for simple fonts. DETAILS: This patch improves the previous one. It generalizes the GlyphNames2Unicode processing for any simple font. GlyphNames2Unicode is an undocumented facility, which Adobe Postscript printer driver PScript5.dll Version 5.2 uses to communicate with Adobe Distiller. Adobe applies it to Type 3 and Type 42 fonts. Adobe uses Type 3 with GlyphNames2Unicode only for compatibility with interpreters, which cannot handle Type 32. With other interpreters (including Ghostscript) the generated PS program skips GlyphNames2Unicode data. Therefore the feature is now implemented for Type 3 but it is not involved while processing such documents. Need to patch "32 /FontType findresource" to involve it. Probably with pdfwrite the DSC parser should recognize the creator and exclude 32 from /FontType resource category. This patch unwinds the enhanced functionality of gs_font_procs::glyph_info with GLYPH_INFO_UTC16, which was done with the previous patch, and introduces a new virtual function gs_font_procs::decode_glyph. Doing so because GLYPH_INFO_UTC16 causes multiple redundant code for various font types due to dependence on interpreter structures. SF bug #684120 tracks additional issues. </pre></blockquote> <p><strong><a name="2003-02-12_0216"></a> 2003-02-12 02:16 Ralph Giles</strong></p> <blockquote><pre> Initial implementation of the /JBIG2Decode filter. This adds a '$(PSD)jbig2.dev' FEATURE_DEV which links in the libjbig2dec decoder library. This version does not support the optional /JBIG2GLOBALS parameter for sharing information between page images. However, it is still useful as this parameter has been empty in the files we've seen. The feature in enabled for the autoconf build if the decoder library is found on the system, and remains optional with the other builds. </pre></blockquote> <p><strong><a name="2003-02-11_2221"></a> 2003-02-11 22:21 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Account GlyphNames2Unicode while creating ToUnicode CMaps for Type 42 fonts. DETAILS: GlyphNames2Unicode is an undocumented facility, which Adobe Postscript printer driver PScript5.dll Version 5.2 uses to communicate with Adobe Distiller. Adobe applies it to Type 3 and Type 42 fonts. Type 3 with GlyphNames2Unicode is used only for compatibility with interpreters, which cannot handle Type 32. Since Ghostscript is not such, there is no need to implement Type 3 with GlyphNames2Unicode. We don't do that. This patch enhances the functionality of gs_font_procs::glyph_info with retrieving Unicode UTC-16 code for a glyph. This enhancement is implemented for practically useful cases only, which are restricted with Type 42. The gs_font_dir::glyph_to_unicode callback is now removed because it is not longer useful. SF bug #684120 tracks additional issues. Working on this patch, I tried put the Unicode Decoding table as a default value to FontInfo.GlyphNames2Unicode and remove the unicode_decoder. But it appears not working, because test.ps for SF bug #529103 needs to collect substitutions from both FontInfo.GlyphNames2Unicode and Unicode Decoding. I removed the "WARNING: /Unicode /Decoding resource in not accessible", because the flag for preventing its repetitions is not accessible from gs_font_procs::glyph_info. A similar warning in lib/gs_pdfwr.ps still works. </pre></blockquote> <p><strong><a name="2003-02-10_2243"></a> 2003-02-10 22:43 Dan Coby</strong></p> <blockquote><pre> The display device (src/gdevdsp.c) was displaying pure magenta as white when using the DISPLAY_UNUSED_LAST mode. DETAILS: The cause of the problem was a sign bit extention in a 32 to 64 bit conversion (long to gx_color_index). The fix was to add casts to force the conversion to gx_color_index (which is unsigned) earlier in the assigment. </pre></blockquote> <p><strong><a name="2003-02-10_1847"></a> 2003-02-10 18:47 Alex Cherepanov</strong></p> <blockquote><pre> Added link to a new file: pfbtopfa.bat </pre></blockquote> <p><strong><a name="2003-02-10_1739"></a> 2003-02-10 17:39 Ray Johnston</strong></p> <blockquote><pre> Fix a stack problem when doing small-caps substitution on a substituted font referenced from a PDF file. Problem seen with Adobe's PDF 1.2 spec. SourceForge bug# 683997 for Artifex customer #150. </pre></blockquote> <p><strong><a name="2003-02-10_1701"></a> 2003-02-10 17:01 Ralph Giles</strong></p> <blockquote><pre> Document that pdfwrite and pswrite do not support the '%d' file-per-page convention for -sOutputFile. Partial fix for Sourceforge bug 645677. DETAILS: Ghostscript actually segfaults when an output file name containing %d is passed to pdfwrite or pswrite. This remains to be resolved. </pre></blockquote> <p><strong><a name="2003-02-10_1653"></a> 2003-02-10 16:53 Igor Melichev</strong></p> <blockquote><pre> Fix: Some compiler warnings. </pre></blockquote> <p><strong><a name="2003-02-10_1631"></a> 2003-02-10 16:31 Igor Melichev</strong></p> <blockquote><pre> Improving gs_font_procs interface functions glyph_info and glyph_outline. DETAILS: The old interface definition provided insufficient data for pdfwrite. Several hacks was used in pdfwrite to recover the luck of data. This patch slightly enhances the interface and removes the hacks. See new comments in gxfont.h about the enhancement. The interface could be more complete - see comments in gxfont.h . Now we do not apply efforts for refinishing it, because there is no practical need and we have no tests for it. This patch improves glyph positions with pdfwrite for fonts with vertical CMaps. comparefiles do not test this case. Minor change : fixed compiler warnings in gdevpdtd.c . </pre></blockquote> <p><strong><a name="2003-02-07_1543"></a> 2003-02-07 15:43 Igor Melichev</strong></p> <blockquote><pre> The CID to TT mapping : Implementing a glyph data cache. DETAILS: The implementation of the CID font emulator is completed. Minor changes : - Fixed a compiler warning in gdevpdfu.c . </pre></blockquote> <p><strong><a name="2003-02-07_0031"></a> 2003-02-07 00:31 Igor Melichev</strong></p> <blockquote><pre> Fix : Improving comments in map file samples. </pre></blockquote> <p><strong><a name="2003-02-07_0023"></a> 2003-02-07 00:23 Igor Melichev</strong></p> <blockquote><pre> Improving a documentation about emulating CID fonts with True Type fonts. </pre></blockquote> <p><strong><a name="2003-02-06_1743"></a> 2003-02-06 17:43 Alex Cherepanov</strong></p> <blockquote><pre> Default CRD name is /DefaultColorRendering , not /Default Fixes SourceForge bug #667351 from customer #150 </pre></blockquote> <p><strong><a name="2003-02-06_1302"></a> 2003-02-06 13:02 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : A portability bug about arithmetic shift. </pre></blockquote> <p><strong><a name="2003-02-06_0940"></a> 2003-02-06 09:40 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Generating ToUnicode CMaps for simple fonts. For fonts with random encoding it allows to Copy-Paste text from viewers and to search a text. DETAILS: This code requires /Unicode /Decoding resource. If the resource is absent, PDF will be written without ToUnicode CMap, a warning is written to stdout explaining that the resource may be useful, and another warning may be written to stderr if the resource is actually useful for the document. To access the resource I introduced a special operator .setupUnicodeDecoder . It is called from gs_pdfwr.ps and stores the resource to gs_font_dir, together with a callback which performs the decoding. This is only a way to pass the resource through the graphics library. It is definitely not a device parameter, and converting it to C structures would be hard. I don't like the big stuff added into zfont.c, but I haven't got a better idea where to put it. Minor change : fixed Cygwin/gcc compiler warnings. </pre></blockquote> <p><strong><a name="2003-02-06_0609"></a> 2003-02-06 06:09 Alex Cherepanov</strong></p> <blockquote><pre> Created for completeness and convenience to Windows users. </pre></blockquote> <p><strong><a name="2003-02-05_1345"></a> 2003-02-05 13:45 Ralph Giles</strong></p> <blockquote><pre> Remove documentation about the Pn() macros for K&R compatibility. They were entirely removed prior to the 8.00 release. </pre></blockquote> <p><strong><a name="2003-02-05_0740"></a> 2003-02-05 07:40 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Improving error messages. </pre></blockquote> <p><strong><a name="2003-02-04_2313"></a> 2003-02-04 23:13 Igor Melichev</strong></p> <blockquote><pre> (pdfwrite) : Fixing glyph width with WMode=1. DETAILS: Expecting a progression with 093-01.ps . </pre></blockquote> <p><strong><a name="2003-02-04_1650"></a> 2003-02-04 16:50 Igor Melichev</strong></p> <blockquote><pre> (pdfwrite) : Fixing a check for NULL pointer pdf_attached_font_resource, and propagating return codes from there. </pre></blockquote> <p><strong><a name="2003-02-04_1546"></a> 2003-02-04 15:46 Igor Melichev</strong></p> <blockquote><pre> (pdfwrite) : Improving the safety of pdf_font_cache_elem arrays. DETAILS : The patch should not change any behavior. It only inserts some index range checks while accessing arrays. It was not neccessary, but it helped to locate a different problem. </pre></blockquote> <p><strong><a name="2003-02-04_1524"></a> 2003-02-04 15:24 Igor Melichev</strong></p> <blockquote><pre> Fix (new Type 1 hinter) : Exported an excessive moveto when hints are disabled. DETAILS: This only affects pdfwrite. Debugged with 401-01.ps . Minor change : Added some visual trace commands for the case of disabled hinting. </pre></blockquote> <p><strong><a name="2003-02-04_1505"></a> 2003-02-04 15:05 Igor Melichev</strong></p> <blockquote><pre> Fixing a garbager problem in pdfwrite. DETAILS : The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002891.html is incorrect and caused multiple regressions. Replacing it with a better patch. Releasing pdf_font_cache_elem while device finalization, the structure lefts in heap due to memory manager is disabled, but it's pointers become invalid if they point to a huge area, which was allocated in a separate chunk with another allocator. Reset the pointers to prevent the garbager's attempt to relocate them after the huge chunk is released. </pre></blockquote> <p><strong><a name="2003-02-03_1935"></a> 2003-02-03 19:35 Igor Melichev</strong></p> <blockquote><pre> Fixing a garbager problem with gs_cmap_adobe1. </pre></blockquote> <p><strong><a name="2003-02-03_1632"></a> 2003-02-03 16:32 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : SubstNWP erroneusely used with non-CID fonts. </pre></blockquote> <p><strong><a name="2003-02-03_1606"></a> 2003-02-03 16:06 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Improving the default value for the subpixel grid. </pre></blockquote> <p><strong><a name="2003-02-03_1559"></a> 2003-02-03 15:59 Igor Melichev</strong></p> <blockquote><pre> (pdfwrite) : Copying a composite True Type glyph, components were indexed wrongly. DETAILS : It applyed CIDMap to subglyph indices, rather it must not. </pre></blockquote> <p><strong><a name="2003-02-03_1400"></a> 2003-02-03 14:00 Igor Melichev</strong></p> <blockquote><pre> Fixing a garbager problem in pdfwrite. DETAILS : Releasing pdf_font_cache_elem while device finalization, the structure lefts in heap due to memory manager is disabled, but it's pointers become invalid. Reset the pointers to prevent the garbager's attempt to relocate them later. </pre></blockquote> <p><strong><a name="2003-02-03_1253"></a> 2003-02-03 12:53 Igor Melichev</strong></p> <blockquote><pre> Fixing problems with AlignToPixels. DETAILS : 1. Keys for character cache were incorrect, causing an excessive memory consumption (see the change to gxchar.c). 2. Subpixel grid and AlignToPixels were not passed to FAPI. ifapi.h changed the prototype of get_scaled_font. Therefore most changes are just a data re-srtucturization. </pre></blockquote> <p><strong><a name="2003-02-03_0927"></a> 2003-02-03 09:27 Igor Melichev</strong></p> <blockquote><pre> CID font emulation : Comply with FAPI. DETAILS : This patch allows to redirect emulated CID fonts to FAPI. It is not neccessary, but I like this feature. </pre></blockquote> <p><strong><a name="2003-02-03_0832"></a> 2003-02-03 08:32 Igor Melichev</strong></p> <blockquote><pre> CID font emulation : Resolving relative paths. DETAILS : The implementation of the CID font emulator is now complete. Perhaps an optimization is wanted for gs_type42_get_outline_from_TT_file. See comment in there. </pre></blockquote> <p><strong><a name="2003-02-03_0759"></a> 2003-02-03 07:59 Jouk Jansen</strong></p> <blockquote><pre> Committing in . OpenVMS patches Modified Files: gs/src/gp_vms.c gs/src/gsfcid.c gs/src/openvms.mmk ---------------------------------------------------------------------- </pre></blockquote> <p><strong><a name="2003-02-02_2143"></a> 2003-02-02 21:43 Igor Melichev</strong></p> <blockquote><pre> A documentation about emulating CID fonts with True Type fonts. </pre></blockquote> <p><strong><a name="2003-02-01_1856"></a> 2003-02-01 18:56 Igor Melichev</strong></p> <blockquote><pre> The CID to TT mapping : Providing a single map file for both the CID font to CID font substitution and True Type font to CID font substitution. DETAILS: Minor changes : - Allowed a mapped category redefinition with no map file. The map file may be delayed until a later redefinition. - Changed the order of CIDFont category redefinitions in int.mak . - Removed the usage of gs/lib/cidttmap. - Improved a comment in gs/lib/cidfmap about its format. - Provided an automatic choice of SubstNWP. - Added an idle entry into the SubstNWP collection. - Added a comment in zfapi.c . It's a problem. The implementation of the CID font emulator is almost complete except 2 features : 1. Relative paths are not allowed in the gs/lib/cidfmap file. 2. An optimization is wanted for gs_type42_get_outline_from_TT_file. See comment in there. </pre></blockquote> <p><strong><a name="2003-01-31_1739"></a> 2003-01-31 17:39 Igor Melichev</strong></p> <blockquote><pre> Fix : Removing some unused variables. </pre></blockquote> <p><strong><a name="2003-01-31_1628"></a> 2003-01-31 16:28 Igor Melichev</strong></p> <blockquote><pre> The CID to TT mapping : Building CIDMap with SubstNWP. DETAILS: This patch should not change any behavior if a new file gs/lib/cidttmap is not added. Normally it is not. With this patch narrow, wide and proportional Romans may substitute each another while emulating a CJK CID font with True Type font. Usually True Types contain insufficient glyph to render all them. The substitution prevents missed glyphs. This patch introduces a new special operator .fillCIDMap . It composes a CID map from a Decoding, a True Type cmap, and SubstNWP. PS code would be too big and slow for this purpose. The implementation of the CID font emulator is almost complete except 2 features : 1. The CID font to CID font mapper and the True Type to CID font mapper use different map files - cidfmap and cidttmap. 2. An optimization is wanted for gs_type42_get_outline_from_TT_file. See comment in there. Minor changes : - Fixed a bug in gs_cidfn.ps which tried to store a local FontMatrix to a global font dictionary. - A portion of code is factored out from zfapi.c to share with .fillCIDMap </pre></blockquote> <p><strong><a name="2003-01-31_1257"></a> 2003-01-31 12:57 Ralph Giles</strong></p> <blockquote><pre> Remove a spurious include for MAXPATHLEN. Discovered fixing SF bug 675847. </pre></blockquote> <p><strong><a name="2003-01-31_1254"></a> 2003-01-31 12:54 Igor Melichev</strong></p> <blockquote><pre> CID font emulation : Choosing a cmap with gs/lib/xlatmap. DETAILS: This patch only changes a code which work for FAPI or for CID font emulation. Regular GS invocation should not change a behavior. This is a next step of the CID font emulation. Now it can handle all Windows JCK charsets, including Unicode-16. In other words, a CJK font with any Windows charset can be used for emulation. To handle other CJK charsets one should create an appropriate CIDDecoding resource and add it into gs/lib/xlatmap. Minor changes : - Speeded up the TT file parser using the 'setfileposition'. - Improved some diagnostic messages. The implementation of the CID font emulator is still incomplete : 1. The CID font to CID font mapper and the True Type to CID font mapper use different map files - cidfmap and cidttmap. 2. SubstNWP is being ignored. 3. An optimization is wanted for gs_type42_get_outline_from_TT_file. See comment in there. </pre></blockquote> <p><strong><a name="2003-01-31_1251"></a> 2003-01-31 12:51 Ralph Giles</strong></p> <blockquote><pre> Fixup makefile dependencies after changing header includes in gp_unifs.h. Part of the fix for SF bug 675847. </pre></blockquote> <p><strong><a name="2003-01-31_1248"></a> 2003-01-31 12:48 Ralph Giles</strong></p> <blockquote><pre> Use the ANSI-standard FILENAME_MAX from stdio.h instead of MAXPATHLEN from sys/param.h for unix path buffers. Fixes SF bug 675847. DETAILS: We should actually be using gp_file_name_sizeof here, but it's currently a static define to a lowest common denominator, and we prefer a more unix-friendly default. This can of course be changed if the _sizeof is properly configured per platform. </pre></blockquote> <p><strong><a name="2003-01-31_0936"></a> 2003-01-31 09:36 Igor Melichev</strong></p> <blockquote><pre> The CID to TT mapping : 1. Providing an access to glyphs on demand. 2. Handle TTC font format. DETAILS: This patch should not change any behavior if a new file gs/lib/cidttmap is not added. Normally it is not. With this patch glyf and loca tables are being skipped while loading a True Type into RAM. An access by demand is provided instead (This works for CIDFontType 2; it is not used for Type 42). Map file may contain records with SubfontID, which specifies a font number in a TTC collection. TTC format is implemented for disk files only, because embedded fonts never use it. To provide the on-demand access, the patch introduces a special extension of the Postscript language. A CIDFontType 2 dictionary may contain /File with a file value. It should be a positionable file of the TTF or TTC format. When it presents, the dictionary must contain /file_table_pos, which's value is a dictionary of 2-element arrays, which specify position and length of a TT table in the file. 2 arrays must present with keys /loca and /glyph. We would like to optimize this implementation. See comment in gs_type42_get_outline_from_TT_file. </pre></blockquote> <p><strong><a name="2003-01-31_0905"></a> 2003-01-31 09:05 Dan Coby</strong></p> <blockquote><pre> Fix for 673108. The test file has a stream which contains an invalid stream length. However Acrobat handles the file. Details: The invalid stream length was bad enough that we were positioning beyond the end of the file when we searched for the endstream. A check was added for this case and if so then we ignore repositioning the file before searching for the endstream. Note: There is already logic in the code which emits a warning message if the endstream is not found. A second part of this fix was to clean up the stack if the endstream is not found. </pre></blockquote> <p><strong><a name="2003-01-30_1044"></a> 2003-01-30 10:44 Igor Melichev</strong></p> <blockquote><pre> CID font emulation : Adding a code for CIDMap generation, and moving the xlatmap scanner to gs_fntem.ps . DETAILS: This patch only changes a code which work for FAPI or for CID font emulation. Regular GS invocation should not change a behavior. This is a next step of the CID font emulation. Now it correctly maps most CIDs to Unicode fonts. Secondary changes : - I made xlatmap accessible from gs_ttf.c . It should be used choosing a cmap. - improving some comments and function names. - Removed a redundant definition of a CIDFont, which was unintentionally introduced with the previous patch. The implementation of the CID font emulator is still incomplete : 1. Entire True Type fonts are loaded into VM. 2. SubfontID is being ignored. 3. The CID font to CID font mapper and the True Type to CID font mapper use different map files - cidfmap and cidttmap. 4. Access to glyphs by demand is not done. 5. SubstNWP is being ignored. 6. The choice the Unicode cmap is hardcoded. Should use xlatmap instead. The previous log message recommends to use PMINGLIU.TTF. Actually it requires a True Type bytecode interpreter, which GS doesn't provide. The font mshei.ttf does not. </pre></blockquote> <p><strong><a name="2003-01-29_2024"></a> 2003-01-29 20:24 Ray Johnston</strong></p> <blockquote><pre> Fix for incorrect colors with pswrite device when painting rectangles. SF bug 677009. DETAILS: The call to gdev_vector_update_clip_path followed the update_fill call which set the color, but the clip path performed a 'Q q' (grestore gsave) which reverted to whatever color was part of the previous saved gstate. Changing the order of the calls fixes the problem. </pre></blockquote> <p><strong><a name="2003-01-29_1100"></a> 2003-01-29 11:00 Igor Melichev</strong></p> <blockquote><pre> Enhancing the resource machinery with mapping CID fonts to True Types. DETAILS: This patch should not change any behavior if a new file gs/lib/cidttmap is not added. Normally it is not. Adding 2 new files gs_fntem.ps and gs_cidtt.ps and reorganizing old files gs_cidfn.ps, gs_fapi.ps, gs_resmp.ps with them. This moves a part of FAPI support to a more general level. The moved stuff is shared with the FAPI and the new CID font mapper. After this change Ghostscript can load Unicode True Type fonts as a substitution to a CIDFontType 2 and render it. At least the Windows font PMINGLIU.TTF succeeds. But the implementation is very incomplete : 1. The CID to GID mapping is fully wrong. 2. Entire True Type fonts are loaded into VM. 3. The CID font to CID font mapper and the True Type to CID font mapper use different map files - cidfmap and cidttmap. All these 3 solutions are temporary and to be improved later. To involve the new feature, create a new file gs/lib/cidttmap, and put records to there of the following format : /ShinGo-Bold << /FileType /TrueType /Path (F:/WIN2000/Fonts/PMINGLIU.TTF) /CSI [(Japan1) 2] /SubstNWP /Japan1 >> ; It is similar to gs/lib/FAPIcidfmap, see Use.htm about the latter. This patch does not include a change to documentation, because it is too early to announce it to users. </pre></blockquote> <p><strong><a name="2003-01-29_0923"></a> 2003-01-29 09:23 Igor Melichev</strong></p> <blockquote><pre> FAPI : Removing unuseful includes. </pre></blockquote> <p><strong><a name="2003-01-29_0919"></a> 2003-01-29 09:19 Igor Melichev</strong></p> <blockquote><pre> FAPI : A further improvement for the GS/FreeType bridge. Patch from Graham Asher. DETAILS : Without FAPI plugins this patch doesn't change any behaviour. Minor improvements by igorm : - fixed a spelling; - FAPI_METRICS_ADD was buggy - a fixed overflow (thanks to Graham). - removed unuseful dependencies from makefile. </pre></blockquote> <p><strong><a name="2003-01-29_0853"></a> 2003-01-29 08:53 Igor Melichev</strong></p> <blockquote><pre> Fix : Eliminate .forceput from gs_resmp.ps . DETAILS: This patch should not change any behavior. A mapped category used an array to store a set of procedures. Sometimes the set grows, and the old implementation used .forceput to replace the array with a bigger one in the category dictionary, which is read-only. The new code represents the set as a dictionary, so that .forceput is not longer needed. </pre></blockquote> <p><strong><a name="2003-01-29_0850"></a> 2003-01-29 08:50 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Implementing DW2 and W2. DETAILS : This feature is not tested with comparefiles and should not cause regressions. But the test file 093-01.ps may render differently due to a bug the test file. See SF bug #674418. </pre></blockquote> <p><strong><a name="2003-01-28_1909"></a> 2003-01-28 19:09 Ray Johnston</strong></p> <blockquote><pre> Fix regression of 119-01.ps caused by previous patch while retaining the fix for #667658 when CR and/or LF comes between the '~' and the '>'. DETAILS: The logic was also fixed so that if the end of buffer is reached while searching for the '>' character (past CR and/or LF) no error would be issued unless we have the 'last' condition indicating that no more data is available. Thanks to Igor M. for spotting the above potential problem during code review. </pre></blockquote> <p><strong><a name="2003-01-27_1729"></a> 2003-01-27 17:29 Ralph Giles</strong></p> <blockquote><pre> Switching to the new type 1 hinter and the new filling algorithm. THIS IS INCOMPATIBLE CHANGE. Most documents render better. DETAILS: Rudiments of old code to be kept until beta-testing is completed. Patch from Igor Melichev. </pre></blockquote> <p><strong><a name="2003-01-27_1621"></a> 2003-01-27 16:21 Ralph Giles</strong></p> <blockquote><pre> Improve the wording of and clarify the documentation for AlignToPixels. Also restores the documentation for -dPDFFitPage removed by the initial commit of the AlignToPixels feature. </pre></blockquote> <p><strong><a name="2003-01-26_1145"></a> 2003-01-26 11:45 jeong</strong></p> <blockquote><pre> If s_A85D_process encounters CR/LF between '~' and '>', it returns ioerror. Now it is changed to ignore CR and/or LF before '>', and works fine. Fixes SF#667658. </pre></blockquote> <p><strong><a name="2003-01-26_0858"></a> 2003-01-26 08:58 Igor Melichev</strong></p> <blockquote><pre> Fix : Removing an unused variable from set_cache_device. </pre></blockquote> <p><strong><a name="2003-01-26_0824"></a> 2003-01-26 08:24 Igor Melichev</strong></p> <blockquote><pre> Implementing a new user parameter AlignToPixels and a new command line argument AlignToPixels. They allow to choose the alignment of glyphs to integral pixels or to subpixels while a text rendering. DETAILS: This patch should not change any behavior except -dAlignToPixels=0 is specified. A change to documentation about the new parameter is included. With NEW_TYPE1_HINTER = 1 the value 0 of AlignToPixels implies : 1. Caching a glyph raster, fractional glyph origins give different images, which are stored in individual slots. The space consumption in the character cache increases. This happens for all font types. 2. While hinting a Type 1 or 2 font, glyph origins and widths are rounded to subpixels rather than to pixels, and the grid fitting is done to the subpixel grid. CIDFontType 0 descendents had NULL pointer to gs_font_dir. The new code needs to access the font directory, so the pointer is now set. The new code needs glyph origin and log2_scale to lookup a glyph in cache. Therefore show_proceed and set_cache_device were reorganized with a new function compute_glyph_raster_params. The new algorithm uses a slightly different (and more complicated) logics for computation and initialization of penum->origin. It was well tested, but in case of problems please consider it as a weak point. </pre></blockquote> <p><strong><a name="2003-01-25_2250"></a> 2003-01-25 22:50 Ralph Giles</strong></p> <blockquote><pre> Universally prefer the __MACOS__ platform predefined symbol used by recent releases of Metrowerks CodeWarrior to the older __MACINTOSH__. </pre></blockquote> <p><strong><a name="2003-01-25_1632"></a> 2003-01-25 16:32 Igor Melichev</strong></p> <blockquote><pre> Fix (dropout prevention) : Insetred a check for VMerror. DETAILS: This patch cheanges a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-25_0109"></a> 2003-01-25 01:09 Ralph Giles</strong></p> <blockquote><pre> Supply local macros to replace non-portable min() and max() functions from MSVC. </pre></blockquote> <p><strong><a name="2003-01-24_2230"></a> 2003-01-24 22:30 Dan Coby</strong></p> <blockquote><pre> This is a temporary backout of rev 1.12 while its changes are being investigated. This is being done to prevenet interference with some other efforts. </pre></blockquote> <p><strong><a name="2003-01-24_2053"></a> 2003-01-24 20:53 Ray Johnston</strong></p> <blockquote><pre> Add a new feature to scale PDF images to the current page size (rather than selecting a PageSize corresponding to the document CropBox or MediaBox). The command line option is -dPDFFitPage and will also position the image to the printable area of the page (inside .HWMargins). </pre></blockquote> <p><strong><a name="2003-01-24_1939"></a> 2003-01-24 19:39 Ray Johnston</strong></p> <blockquote><pre> Fix inconsistent type on QueryUser -- get_param was returning a 'bool' but set_param required an 'int'. Error was /typecheck in setpagedevice or could be /rangecheck in .installpagedevice after a page was processed. </pre></blockquote> <p><strong><a name="2003-01-24_1932"></a> 2003-01-24 19:32 Ray Johnston</strong></p> <blockquote><pre> Correct typo (missing space) in previous change. </pre></blockquote> <p><strong><a name="2003-01-24_1928"></a> 2003-01-24 19:28 Ray Johnston</strong></p> <blockquote><pre> Change to use ECHOGS_XE instead of system echo to avoid problems if an echo is found on the PATH that expands wildcards '*' character. Problem found by Torsten Erler when Cygwin echo caused a problem. </pre></blockquote> <p><strong><a name="2003-01-24_1334"></a> 2003-01-24 13:34 Igor Melichev</strong></p> <blockquote><pre> New Type 1 hinter : Fixing a bug in alignment to (non-sub)pixels. DETAILS: This patch changes a disabled code only. Also improving the debug drawing of grid. </pre></blockquote> <p><strong><a name="2003-01-24_0725"></a> 2003-01-24 07:25 Igor Melichev</strong></p> <blockquote><pre> Fix (dropout prevention) : Did not work with -dNOCACHE. DETAILS: bbox_width was taken from a clipped bbox. </pre></blockquote> <p><strong><a name="2003-01-24_0503"></a> 2003-01-24 05:03 Igor Melichev</strong></p> <blockquote><pre> New Type 1 hinter : Fixing glyph widths. DETAILS: This patch changes a disabled code only. See comment in code. Also improved a comment and C-style. </pre></blockquote> <p><strong><a name="2003-01-24_0039"></a> 2003-01-24 00:39 Igor Melichev</strong></p> <blockquote><pre> New Type 1 hinter : (1) It did not work with pdfwrite because gx_path_init_bbox_accumulator doesn't provide a memory. (2) Coded an alignment to subpixels. (3) Removed a hack about suppressing a microscopic segment. DETAILS: This patch changes a disabled code only. It codes an alignment to subpixels, but for a while it is permanently turned off. gx_path_init_bbox_accumulator is used by gs_default_glyph_info for computing a bounding box for a glyph. It does not store segments to memory, therefore a reference to memory manager is not provided. But the new hinter accesses it if a stack-allocated array overflows. Implementing an immediate transfer of outline poles to the output path without storing them intermediately in arrays. This mode works when a grid fitting is not required. Only exception is flex poles : up to 9 of them are stored in arrays while flex accumulates. It must not overflow arrays. The hack about microscopic segment was a rudiment of old code. gs_op1_closepath was unintentionally called while exporting an outline from the hinter. I believe that the hack is incorrect and should not be applied. Some outlines render differently. I'm sorry for mixing 3 things in a single patch. I've started the subpixel alignment, and then occasionally discovered other problems. It's hard to separate changes after they are done, and I don't think that the separation is so important. </pre></blockquote> <p><strong><a name="2003-01-23_2011"></a> 2003-01-23 20:11 Igor Melichev</strong></p> <blockquote><pre> Fix : A misprint in the recent patch to default_get_outline. </pre></blockquote> <p><strong><a name="2003-01-23_0514"></a> 2003-01-23 05:14 Dan Coby</strong></p> <blockquote><pre> Fix for [ 662117 ] uniprint produces black pages, with bugfix. This fixes several problems created in the uniprint device when the device API was changed for 8.0. This includes changes from Stefan Scherer, the originator of the report, plus some changes for monochrome devices. </pre></blockquote> <p><strong><a name="2003-01-22_1736"></a> 2003-01-22 17:36 Ray Johnston</strong></p> <blockquote><pre> Pulled unneeded #undef jcdp, there was no matching define. Original patch by Henry Stiles for GhostPCL version. </pre></blockquote> <p><strong><a name="2003-01-22_1546"></a> 2003-01-22 15:46 Igor Melichev</strong></p> <blockquote><pre> FAPI project : fixing a problem about preparation renderer's font data for non-disk CIDFontType 0 fonts. DETAILS: Without FAPI renderers this patch doesn't change any behavior. The old code crashed with Free Type because it misinterpreted gs_font_cid0_data as gs_type1_data. Improving the protocol for font data preparation : the new code now tells to a renderer about a top-level CID font, then about it's descendents (which are Type 1), then again about the top level font. A new type FAPI_descendent_code represents a type of request. See comments, which this patch adds to code. </pre></blockquote> <p><strong><a name="2003-01-22_0854"></a> 2003-01-22 08:54 Russell Lang</strong></p> <blockquote><pre> Improve gsapi examples for Windows to not require _Windows on MSVC. </pre></blockquote> <p><strong><a name="2003-01-22_0751"></a> 2003-01-22 07:51 Russell Lang</strong></p> <blockquote><pre> Update DSC parser to current Ghostgum Software version. Fixes SourceForge bug #657289, SEGV on Alpha in DSC parser. DETAILS: A %%Page line with mismatched parentheses around the page label was ignored, but parser state was updated to scanning pages, not setup section. This resulted in access to dsc->page[-1] which is invalid and caused a SEGV on Alpha. The updated code now checks that dsc->page_count is non-zero before accessing dsc- >page[dsc->page_count-1]. It also makes a second attempt at finding the page ordinal at the end of a line like: %%Page: (label with closing parentheses 1 Other parser updates include support for DCS2 files (which is not quite compliant with DSC), removing a few compiler warnings, %%HiResBoundingBox, %%CropBox, %%PageCropBox, and being more resilient to incorrect DSC. </pre></blockquote> <p><strong><a name="2003-01-22_0738"></a> 2003-01-22 07:38 Russell Lang</strong></p> <blockquote><pre> Treat files starting with %Pxxx as PostScript, not PDF. Process empty files without error. Fixes SourceForge bug #663150, Some PS files half-recognized as PDF files DETAILS: Changes for the 8.00 release to allow reading of PDF files from stdin caused files starting with %Pxxx to be half recognised as PDF files. This patch simplifies the PDF recognition code and makes it treat only files starting with "%PDF-" as PDF. Testing of this code found that zero length input files caused a PostScript error. This was an existing error which is fixed by the gs_epsf.ps patch and last line of the pdf_main.ps patch. </pre></blockquote> <p><strong><a name="2003-01-22_0734"></a> 2003-01-22 07:34 Russell Lang</strong></p> <blockquote><pre> Add the ijs device to the MSVC Windows build. </pre></blockquote> <p><strong><a name="2003-01-22_0042"></a> 2003-01-22 00:42 Igor Melichev</strong></p> <blockquote><pre> pdfwrite : Implementing widthshow and xshow for composite and CID fonts. The old (default) implementation converted to raster fonts and gave inaccurate glyph positions. The new implementation doesn't convert fonts to raster except for Type 3. DETAILS: This also closes the Source Forge bug "[ 663635 ] ps2pdf cannot tune spacing by xshow for CJK text". and provides better glyph positions with ashow for WMode 1. There are small changes to graphics library : 1. Added interface function gx_current_char, which retrieves a code of current character from a gs_text_enum_t instance. The function was factored out from an old code. 2. Provided a default metrics for CID fonts for WMode 1. This is done pretty roughly, because the interface function glyph_info cannot pass some necessary information (WMode). Minor changes : 1. Removed the comment "We know that the Tw and Tc values are zero", It was wrong a long time ago. 2. Inserted a comment about unimplemented DW2. An old code near the comment depends on the fact that DW2 is not implemented. This patch brings more access to gs_text_enum_t::fstack around the defined interface functions. The list of gs_text_enum_t interface functions to be revised. Expecting progressions with pdfwrite : 327-01.ps Altona.Page_3.2002-09-27.pdf CIDembedded.pdf Openhuis_pdf_zw.pdf RodinCIDEmbed.pdf </pre></blockquote> <p><strong><a name="2003-01-21_2357"></a> 2003-01-21 23:57 Igor Melichev</strong></p> <blockquote><pre> Fixing gcc compiter warnings in gxfill.c, gxdtfill.h . </pre></blockquote> <p><strong><a name="2003-01-20_2241"></a> 2003-01-20 22:41 Dan Coby</strong></p> <blockquote><pre> Fix for [ 664473 ] 64bit color indexes break X driver. This fix corrects some problems found with the X window driver and 64 bit gx_color_indexes found by customer 1110. DETAILS: The problems were found on Sparc workstations running the Solaris 8.0. The problem has not been reported on other systems. However the fix is simple (and contributed by customer 1110) and should work on all systems. The fix is simply to use "long" for values passed to X windows system routines. This is done via a combination of casts or local variables depending upon the situation. The use of "long" for gx_color_index was the default prior to the 8.0 release. The X windows device does not need the extra size for color values. </pre></blockquote> <p><strong><a name="2003-01-19_2304"></a> 2003-01-19 23:04 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Improving a comment about ashow, awidthshow. DETAILS: This patch does not change any behavior. </pre></blockquote> <p><strong><a name="2003-01-19_1959"></a> 2003-01-19 19:59 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : With CID fonts 'show' set up cache devive and inconsistently skipped any rendering to it. It must not set up cache device. Thanks to Toshia Suzuki for spotting the problem. DETAILS: This problem was not tested with comparefiles. Requesting to add a new test showopsH.ps from Toshia Suzuki. </pre></blockquote> <p><strong><a name="2003-01-19_1817"></a> 2003-01-19 18:17 Igor Melichev</strong></p> <blockquote><pre> Fix (Dropout prevention) : Returning the gx_adjust_if_empty hack for cases when dropout prevention is not applied. It was removed erroneously. DETAILS: This patch changes a disabled code only. Debugged with -r72 with smdf.90441.102.pdf, test2.pdf . </pre></blockquote> <p><strong><a name="2003-01-19_1017"></a> 2003-01-19 10:17 Russell Lang</strong></p> <blockquote><pre> Within the display device, correctly allocate the memory device with the correct structure descriptor. DETAILS: The display device was allocating a memory device by taking a memory device prototype from gdev_mem_device_for_bits and then using gs_copydevice on it. This allocates the wrong size because the prototype does not have a structure descriptor. The correct way is to allocate it with gs_alloc_struct with st_device_memory as an argument. This bug was found when using the display device in GhostPCL, which was complaining on shutdown about the unfreed structure descriptors left behind by gs_copydevice. </pre></blockquote> <p><strong><a name="2003-01-18_0952"></a> 2003-01-18 09:52 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : When pdfwrite text buffer overflows, it wrote an extra text positioning command with wrong arguments. DETAILS: See comment in code. Source Forge bug "[ 667271 ] text position scrambled". This patch causes 2 progressions with pdfwrite : comparefiles\Altona.Page_3.2002-09-27.pdf comparefiles\Testform.v1.0.2.pdf </pre></blockquote> <p><strong><a name="2003-01-17_1732"></a> 2003-01-17 17:32 Igor Melichev</strong></p> <blockquote><pre> Fix (Type 42 interpreter) : Providing a tolerance to bytecode segmentation with sfnts string. DETAILS: Source Forge bug "[ 667362 ] /rangecheck in --.type42execchar--", Customer #411. According to Type 42 specifications, the segmentation is not allowed. Perhaps the test file has it. IMO it is easier to fix than to prove to the customer. This slightly changes the interface function gs_type42_data::string_proc . See comments in code. By the way, added a check for absenting vmtx/hmtx (gstype42.c ln 530). The old code was not safe. </pre></blockquote> <p><strong><a name="2003-01-16_2136"></a> 2003-01-16 21:36 Igor Melichev</strong></p> <blockquote><pre> Fix (Free Type bridge) : A new revision with MetricsCount handling. DETAILS: This patch has no effect for regular GS build (with no Free Type). </pre></blockquote> <p><strong><a name="2003-01-16_1849"></a> 2003-01-16 18:49 Ray Johnston</strong></p> <blockquote><pre> Add a message for filters (such as JBIG2Decode) that we can't handle and continue processing the file as much as we can without the problem data. This is related to SourceForge bug #668580. DETAILS: The Repaired flag is preserved across the 'pdfformaterror' calls so that we don't squawk about the Creator of the PDF (its our fault, not theirs). Also a special utility filter was created to /.EOFDecode that gives an immediate EOF without consuming any data from its input. </pre></blockquote> <p><strong><a name="2003-01-16_1829"></a> 2003-01-16 18:29 Ray Johnston</strong></p> <blockquote><pre> Restructure the PDF top level processing (runpdf) to factor out a 'begin', 'do', and 'end' procedures. These can be used by clients to open a PDF then access information from the PDF interpreter dictionaries about the document or pages prior to actually processing pages with 'dopdfpages'. DETAILS: This will allow information to be accessed such as Dests, Names and Annots. For example, to get the Names info, use: (somefile.pdf) (r) file runpdfbegin Trailer /Root oget /Names knownoget Similarly, Annotations for a page (page 3 in the example below) can be accessed using: (somefile.pdf) (r) file runpdfbegin 3 pdffindpage /Resources oget /Annots knownoget { % process Annots } if </pre></blockquote> <p><strong><a name="2003-01-16_1625"></a> 2003-01-16 16:25 Igor Melichev</strong></p> <blockquote><pre> Fix (New Type 1 hinter) : A bug computing a stem width. DETAILS: This patch changes a disabled code only. Also fixing a bug in debug drawing the imported outline, and disabling it by default. Debugged with comparefiles/455690.pdf . </pre></blockquote> <p><strong><a name="2003-01-16_1520"></a> 2003-01-16 15:20 Igor Melichev</strong></p> <blockquote><pre> Fix (Dropout prevention) : Sometimes active lines were not ordered, causing a dropout. DETAILS: This patch changes a disabled code only. The filling algorithm consider 2 cases : when an Y-gap contains pixel centers and when it doesn't. The old algorithm used a trick for better performance, which skips the line ordering for the case of no pixel centers. Perhaps the order is important for dropout prevention. Disabling the trick when dropout prevention is on. Here are some files which are sensitive to it with 72 dpi and with the new hinter : 000040cf.000_60.pdf 017-01.ps 159.pdf 268-10.ps 281-01.ps 86554321.pdf acrobat.pdf (39 files total). </pre></blockquote> <p><strong><a name="2003-01-16_1259"></a> 2003-01-16 12:59 Igor Melichev</strong></p> <blockquote><pre> Fix (New type 1 hinter) : Removing hint complexes and fixing bugs. DETAILS: This patch changes a disabled code only. 1. An optimization : hint complexes are replaced with hint_range. The old code was overcomplicated. 2. A bug in t1_hinter__compute_type1_stem_ranges - an extra pole was added at range end. 3. A bug in t1_hinter__align_stem_poles - Some offcurve poles were erroneously grid fitted with a wrong hint. This change causes multiple differences in hinted outlines, almost all files render few differently. </pre></blockquote> <p><strong><a name="2003-01-16_1037"></a> 2003-01-16 10:37 Igor Melichev</strong></p> <blockquote><pre> Fix (New type 1 hinter) : A bug in t1_hinter__interpolate_other_poles. DETAILS: This patch changes a disabled code only. The old implementation missed some outline extremes, and the interpolation was wrong. This change causes multiple differences in hinted outlines, almost all files render differently. </pre></blockquote> <p><strong><a name="2003-01-15_1820"></a> 2003-01-15 18:20 Raph Levien</strong></p> <blockquote><pre> Fix: Correctly initialize private cmyk_cs as returned from gx_concrete_space_CIE(). Fixes SF bug #667322. </pre></blockquote> <p><strong><a name="2003-01-15_1632"></a> 2003-01-15 16:32 Igor Melichev</strong></p> <blockquote><pre> Fix (New type 1 hinter) : A bug calling the hinter. DETAILS: This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-15_0812"></a> 2003-01-15 08:12 Dan Coby</strong></p> <blockquote><pre> Modifies pick_cell_size to make a more accurate, and less round-off error dependent, selection of screen cell size. DETAILS The prior code in pick_cell_size used an unusual metric for measuring the "closeness of fit" of an actual screen cell to the requested frequency and angle. If the angle variation was 0 (quite likely for the common 0/45/90 degree angles), the frequency variation was ignored. In addition, this metric was very sensitive to floating-point arithmetic round-off errors. The new metric is both more reasonable and less round-off error dependent. </pre></blockquote> <p><strong><a name="2003-01-14_1909"></a> 2003-01-14 19:09 Jack Moffitt</strong></p> <blockquote><pre> Add src/gxdtfill.h to whitelist for double inclusion protection test. </pre></blockquote> <p><strong><a name="2003-01-14_1906"></a> 2003-01-14 19:06 Jack Moffitt</strong></p> <blockquote><pre> Fix timezone information for CVS timestamps. </pre></blockquote> <p><strong><a name="2003-01-14_1210"></a> 2003-01-14 12:10 Igor Melichev</strong></p> <blockquote><pre> Fix (New type 1 hinter) : Removing unused variables. DETAILS: This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-14_1151"></a> 2003-01-14 11:51 Igor Melichev</strong></p> <blockquote><pre> New type 1 hinter : Round glyph origin to integral pixels. DETAILS: This patch changes a disabled code only. See comment in code. </pre></blockquote> <p><strong><a name="2003-01-14_0800"></a> 2003-01-14 08:00 Igor Melichev</strong></p> <blockquote><pre> New type 1 hinter : Implementing the type 1 flex feature. DETAILS: This patch changes a disabled code only. Debugged with comparefiles/chess.ps with -r72 and -r30 (sic!). </pre></blockquote> <p><strong><a name="2003-01-14_0001"></a> 2003-01-14 00:01 Jack Moffitt</strong></p> <blockquote><pre> Added documentation about new configuration mechanisms in the testing framework. </pre></blockquote> <p><strong><a name="2003-01-13_2343"></a> 2003-01-13 23:43 Jack Moffitt</strong></p> <blockquote><pre> Convert configuration options to use a configuration file, and move config options from run_nightly into the normal config framework. Also, add regression checkpoint time to the daily report. Fixes SF #657178. </pre></blockquote> <p><strong><a name="2003-01-13_1103"></a> 2003-01-13 11:03 Igor Melichev</strong></p> <blockquote><pre> Fix (New type 1 hinter) : A bug in complex_link. DETAILS: This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-12_1958"></a> 2003-01-12 19:58 Igor Melichev</strong></p> <blockquote><pre> New type 1 hinter : Implementing alpha bits, and fixing bugs. DETAILS: This patch changes a disabled code only. Changes : 1. A bug in t1_hinter__drop_hints; 2. A bug in t1_hinter__can_add_pole; 3. Rename initialization routines; 4. Align to pixels rather than to subpixels; 5. Dynamic allocation of stem_snap. </pre></blockquote> <p><strong><a name="2003-01-12_1955"></a> 2003-01-12 19:55 Igor Melichev</strong></p> <blockquote><pre> Fix (dropout prevention) : wrong number of alphs bits was passed to dev_proc(dev, copy_alpha). DETAILS: This patch changes a disabled code only. See also "Correctly compute depth for cached character images", Fri, 3 Jan 2003 08:39:33 -0800, http://www.ghostscript.com/pipermail/gs-cvs/2003-January/002751.html </pre></blockquote> <p><strong><a name="2003-01-12_1203"></a> 2003-01-12 12:03 Igor Melichev</strong></p> <blockquote><pre> Fix (New type 1 hinter) : A bug in t1_hinter__hint_mask . DETAILS: This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-11_1921"></a> 2003-01-11 19:21 Igor Melichev</strong></p> <blockquote><pre> New type 1 hinter : Fixing gcc compiler errors. DETAILS: This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-11_1847"></a> 2003-01-11 18:47 Igor Melichev</strong></p> <blockquote><pre> zchar1.c revision 1.23 appears wrong (an inaccurate type cast, compiler warnings). Unwinding the patch. </pre></blockquote> <p><strong><a name="2003-01-11_1826"></a> 2003-01-11 18:26 Igor Melichev</strong></p> <blockquote><pre> New type 1 hinter : Fixing types for import function prototypes. DETAILS: This patch doesn't change any behavior. In import functions prototypes 't1_glyph_space_coord' was erroneously used instead 'fixed'. </pre></blockquote> <p><strong><a name="2003-01-11_1820"></a> 2003-01-11 18:20 Igor Melichev</strong></p> <blockquote><pre> New type 1 hinter : Enable the grid fitting separately for X and Y. DETAILS: With NEW_TYPE1_HINTER = 0 the new code must be equivalent to old one. We disable grid fitting if an axis is too sloped (if tan(angle) > 1/10 ). </pre></blockquote> <p><strong><a name="2003-01-11_1746"></a> 2003-01-11 17:46 Igor Melichev</strong></p> <blockquote><pre> Removing redundant code from zchar1.c . DETAILS: This is completion for the patch "Reducing the C stack consumption in ztype1execchar". The new code must be equivalent to the old one. </pre></blockquote> <p><strong><a name="2003-01-11_1555"></a> 2003-01-11 15:55 Igor Melichev</strong></p> <blockquote><pre> New type 1 hinter : Attaching it to type 2 interpreter. With NEW_TYPE1_HINTER = 0 the new code must be equivalent to old one. DETAILS: 1. Attaching the new hinter to gstype2.c . 2. Reorganizing the nationalization of the new hinter for better performance. 3. Adding vdtrace instructions for drawing the hinter import on-fly. 4. Implementing alignment priorities. It improves quality for comparefiles/dave.pdf, and makes the alignment logics some simpler. 3. Fixing a bug about the trailing moveto. Fonts with no Metrics got a wrong advance width. </pre></blockquote> <p><strong><a name="2003-01-11_1420"></a> 2003-01-11 14:20 Igor Melichev</strong></p> <blockquote><pre> Fix: A bag in the visual trace implementation. </pre></blockquote> <p><strong><a name="2003-01-11_0439"></a> 2003-01-11 04:39 Ralph Giles</strong></p> <blockquote><pre> Revert changes accidentally included in the last commit. </pre></blockquote> <p><strong><a name="2003-01-11_0438"></a> 2003-01-11 04:38 Ralph Giles</strong></p> <blockquote><pre> Revert to the default gcc (3.1) on MacOS X. We had switched to 2.95 to work around a bug in Apple's first shipped gcc3. The issue has been resolved in the December 2002 Apple Developer Tools release. </pre></blockquote> <p><strong><a name="2003-01-11_0427"></a> 2003-01-11 04:27 Ralph Giles</strong></p> <blockquote><pre> Revert to the default gcc (3.1) on MacOS X. We had switched to 2.95 to work around a bug in Apple's first shipped gcc3. The issue has been resolved in the December 2002 Apple Developer Tools release. </pre></blockquote> <p><strong><a name="2003-01-10_0817"></a> 2003-01-10 08:17 Igor Melichev</strong></p> <blockquote><pre> Reducing the C stack consumption in ztype1execchar. The new code must be equivalent to the old one. DETAILS: The new type 1 hinter (with NEW_TYPE1_HINTER = 1 in gx.h) puts more 11K of data to C stack. Perhaps due to a recursion in bbox_draw 2 instances of the hinter were placed in C stack simultaneously, causing C stack overflow with gswin32c.exe on Windows NT 4.0 (but not on Windows 2000). Perhaps the recursion is not necessary. Reorganizing the sequence of calls to avoid the recursion. New argument 'exec_cont' was added to several functions for transferring the call request to clients. Corresponding comments are added in code. Also z1_glyph_info prototype was added in ichar1.h . It was missed a long time ago, Cygwin/gcc warned. A further improvement may be done with factoring out a common code from bbox_finish_fill, bbox_finish_stroke, bbox_fill, bbox_stroke. Delaying it until a regression testing. </pre></blockquote> <p><strong><a name="2003-01-10_0056"></a> 2003-01-10 00:56 Jack Moffitt</strong></p> <blockquote><pre> Allow tests to run without modifying the daily tracking database. run_regression now takes the --track option to create and update daily tracking databases, and runs normally otherwise. </pre></blockquote> <p><strong><a name="2003-01-09_2358"></a> 2003-01-09 23:58 Jack Moffitt</strong></p> <blockquote><pre> Small formatting improvement. </pre></blockquote> <p><strong><a name="2003-01-09_2249"></a> 2003-01-09 22:49 Jack Moffitt</strong></p> <blockquote><pre> Factor out gscheck_raster.py from run_regression. </pre></blockquote> <p><strong><a name="2003-01-09_2239"></a> 2003-01-09 22:39 Jack Moffitt</strong></p> <blockquote><pre> Fixes another Python 2.2 compatibility error. </pre></blockquote> <p><strong><a name="2003-01-09_2135"></a> 2003-01-09 21:35 Jack Moffitt</strong></p> <blockquote><pre> Fixes check for exception instances by using isinstance() instead of issubclass(). This is required for Python 2.2 compatibility. </pre></blockquote> <p><strong><a name="2003-01-09_2133"></a> 2003-01-09 21:33 Jack Moffitt</strong></p> <blockquote><pre> Increase maximum memory restrictions on Ghostscript for regression tests. </pre></blockquote> <p><strong><a name="2003-01-09_2112"></a> 2003-01-09 21:12 Ralph Giles</strong></p> <blockquote><pre> Include libz in the autoconf test for libpng. DETAILS: This is a fix for systems without interlibrary dependencies. We don't use the LIBS variable constructed by default by the AC_CHECK_LIB macro and did not maintain it in our previous zlib test, thus -lz was not included on the link line in the libpng test. Our primary test systems for the autoconf build (Debian GNU/Linux and MacOS X + fink) include an interlibrary dependency, so this did not cause a problem. On systems where this is not the case, it results in a confusing error. Patch from Peter Breitenlohner. </pre></blockquote> <p><strong><a name="2003-01-09_0433"></a> 2003-01-09 04:33 Ralph Giles</strong></p> <blockquote><pre> Correct warnings in the display device. Removes two unused declarations and marks a local function private. After a patch by Peter Breitenlohner. </pre></blockquote> <p><strong><a name="2003-01-09_0431"></a> 2003-01-09 04:31 Ralph Giles</strong></p> <blockquote><pre> Add a missing header file. DETAILS: This corrects a missing prototype warning for gs_get_colorname_string, declared in zht2.h. iname.h was also added to the dependencies for zht2.c. After a patch by Peter Breitenlohner. </pre></blockquote> <p><strong><a name="2003-01-08_2139"></a> 2003-01-08 21:39 Ralph Giles</strong></p> <blockquote><pre> Correct a nesting error in the libpng detection code. DETAILS: This does not change actually behavior, because of the way M4 works, the literal loop end was just interchanged with the implicit one from the AC_CHECK_LIB() macro with no code inbetween, which is why the mistake went undetected. Thanks to Peter Breitenlohner for catching this. </pre></blockquote> <p><strong><a name="2003-01-08_1657"></a> 2003-01-08 16:57 Igor Melichev</strong></p> <blockquote><pre> New type 1 hinter : Implementing dynamic array allocation; Skipping degenerate path segments; Renaming configuration flags. This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-08_1644"></a> 2003-01-08 16:44 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : Self-intersections must not contribute peaks. Also removed the LOOP_FILL_TRAPEZOID_FIXED macro. This patch must not change any behavior. </pre></blockquote> <p><strong><a name="2003-01-08_0539"></a> 2003-01-08 05:39 Dan Coby</strong></p> <blockquote><pre> 1. Added documentation for the PSD, XCF, and spotcmyk devices. 2. Corrected various minor spelling problems. </pre></blockquote> <p><strong><a name="2003-01-08_0251"></a> 2003-01-08 02:51 Ralph Giles</strong></p> <blockquote><pre> Add source files for the new type 1 hinter to the index in the developer documentation. </pre></blockquote> <p><strong><a name="2003-01-07_1754"></a> 2003-01-07 17:54 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : (1) Replace the horizontal line processing. (2) Returning the hack about horizontal lines for non-character fills. This patch changes a disabled code only. DETAILS: With the old type 1 hinter, hinted outlines get self-intersections at small resolution. It's a problem of the old hinter. Perhaps it discovered a defect in horizontal line handling. With self-intersections, the side of spot interior may be different for different parts of same line. This patch completely replaces the handling of horizontal lines. It maintains 2 lists of horizontal lines, which correspond to y and y1 in fill_loop_by_trapezoids. Then we intersect those lines with margins and add corresponding segments of boundaries separately for each part delimited with an intersection. The "* This is a hack to make sure that isolated horizontal * lines get stroked." was erroneously disabled for non-character fills, causing a regression with QA_Inv.pdf . Restoring it now, except for characters. This patch removes the contour area computation, which was introduced in revision 1.19 . </pre></blockquote> <p><strong><a name="2003-01-07_1632"></a> 2003-01-07 16:32 Igor Melichev</strong></p> <blockquote><pre> fuzzy.c : Add writing the fuzzy difference to PPM or BMP file. DETAILS: Additional (optional) argument added to specify the result file path. We did not take care about compression. BMP files usually store image upside down. Rather negative BITMAPINFOHEADER::biHeight specify "upside up" representation, Windows Paint cannot handle it. Therefore we write BMP file in reverse order. </pre></blockquote> <p><strong><a name="2003-01-06_2337"></a> 2003-01-06 23:37 Ralph Giles</strong></p> <blockquote><pre> Add standard license banners to some macos-specific header files. </pre></blockquote> <p><strong><a name="2003-01-06_2331"></a> 2003-01-06 23:31 Ralph Giles</strong></p> <blockquote><pre> Add standard copyright banner and RCS id line. DETAILS: This change is made with the contributor's permission. His verification is recorded here: http://www.ghostscript.com/pipermail/gs-devel/2003-January/002326.html Thanks to Brett Smith at the FSF for pointing out the non-standard header. </pre></blockquote> <p><strong><a name="2003-01-06_1957"></a> 2003-01-06 19:57 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : A better marking of margin interior. This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-06_1743"></a> 2003-01-06 17:43 Igor Melichev</strong></p> <blockquote><pre> Initial commit for a new type 1 hinter. This patch must not change any behavior. DETAILS: This is a porting from HINTER branch. The old hinter cannot handle overlapping hints, but real fonts do use them. The handling of overlapped hints cannot be done within a single-pass algorithm. Therefore we intend to replace entire thing. Besides, it should fix a set of known problems : - stem degradation at small resolutions; - stem missing or misrecognition; - proper adjustment of dependent stems; - suppress overshoots closer to Adobe; This patch introduces a couple of new macros, which will be removed later. For switching to the new hinter, change the definition of NEW_TYPE1_HINTER in gx.h . It is not well debugged yet. New files added : gxhintn.c, gxhintn.h . </pre></blockquote> <p><strong><a name="2003-01-06_1700"></a> 2003-01-06 17:00 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : Removing unused variables. This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-05_2113"></a> 2003-01-05 21:13 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : A bug in continue_margin_common. This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-05_2048"></a> 2003-01-05 20:48 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : Better compute the spot contiguity, and improve the peak cut-off. This patch changes a disabled code only. </pre></blockquote> <p><strong><a name="2003-01-05_1729"></a> 2003-01-05 17:29 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : Computing a contour area with fixed point arithmetics. This patch changes a disabled code only. DETAILS: For debugging enable both CONTOUR_AREA_WITH_FIXED_POINT and CONTOUR_AREA_WITH_FLOATING_POINT. </pre></blockquote> <p><strong><a name="2003-01-04_1637"></a> 2003-01-04 16:37 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : Improving the predicate about adding horizontal lines to Y list. This patch changes a disabled code only. DETAILS: The predicate was inaccurately duplicated. </pre></blockquote> <p><strong><a name="2003-01-04_1504"></a> 2003-01-04 15:04 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : (1) Fixing a problem with improper contour direction in some (wrong) fonts. (2) Improving the CHECK_SPOT_CONTIGUITY feature. This patch changes a disabled code only. DETAILS: See comment in code about (1). </pre></blockquote> <p><strong><a name="2003-01-03_1734"></a> 2003-01-03 17:34 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : Adding a serif adjustment. This patch changes disabled code only. DETAILS: See big comment in code. </pre></blockquote> <p><strong><a name="2003-01-03_1729"></a> 2003-01-03 17:29 Igor Melichev</strong></p> <blockquote><pre> Dropout prevention : Correctly compute depth for cached character images. </pre></blockquote> <p><strong><a name="2003-01-02_1811"></a> 2003-01-02 18:11 Igor Melichev</strong></p> <blockquote><pre> Fix (gswin32) : Improving the image window title for debug technology. </pre></blockquote> <p><strong><a name="2003-01-01_0655"></a> 2003-01-01 06:55 Ray Johnston</strong></p> <blockquote><pre> Revert previous commit. This version is now back to the same as 1.22. </pre></blockquote> <p><strong><a name="2002-12-31_2308"></a> 2002-12-31 23:08 Ray Johnston</strong></p> <blockquote><pre> Handle copying arrays (and their composite elements that are in VM) to global VM when processing the ***params functions such as currentuserparams Fixes SourceForge #647685 that impacted .setsafe usage. </pre></blockquote> <p><strong><a name="2002-12-31_1952"></a> 2002-12-31 19:52 Ralph Giles</strong></p> <blockquote><pre> Add new dropout prevention source files to the documentation. </pre></blockquote> <p><strong><a name="2002-12-30_2231"></a> 2002-12-30 22:31 Igor Melichev</strong></p> <blockquote><pre> Fix (dropout prevention) : A bug in store_margin. This patch changes disabled code only. </pre></blockquote> <p><strong><a name="2002-12-30_1921"></a> 2002-12-30 19:21 Igor Melichev</strong></p> <blockquote><pre> Fix (dropout prevention) : Direction of horizontal lines was computed wrongly. DETAILS: This patch changes disabled code only. Debugged with character 's' in the 1st page of 033-52-5873.pdf . </pre></blockquote> <p><strong><a name="2002-12-30_1824"></a> 2002-12-30 18:24 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Don't try to get a glyph name for CID fonts. Thanks for Graham Asher for spotting it. DETAILS: It was an inaccurate coding. I'm sorry. </pre></blockquote> <p><strong><a name="2002-12-30_0551"></a> 2002-12-30 05:51 Ray Johnston</strong></p> <blockquote><pre> Reduce state.width delta radius calculation for shadings that was made too large by the previous commit. DETAILS: Previous commit mistakenly included the state.dr value as both the X and Y component in the distance transform that produced the dev_dr vector. The hypot is actually all that is required to handle getting the correct scaled radius distance independent of the CTM rotation. The use of state.dr for both X and Y preceded the use of hypot on dev_dr and wasn't taken out when the hypot function use was added. This should eliminate most, if not all regressions caused by the 12/24 1.18 patch to this module. </pre></blockquote> <p><strong><a name="2002-12-29_1942"></a> 2002-12-29 19:42 Igor Melichev</strong></p> <blockquote><pre> Fix (Type 1 interpreter) : setcurrentpoint missed the vstem3 shift. DETAILS: Detected with character 'm' in -r150 comparefiles/NIL_0003.pdf . The missed vs_offset erroneously shifted a part of path coordinates relatively to stem hint coordinates so that stems could not recognize. The character rendered unhinted. This patch causes differences in character rendering. Regression test on Windows detects a difference with -r300 comparefiles/NIL_0003.pdf only, which looks unimportant. </pre></blockquote> <p><strong><a name="2002-12-28_1235"></a> 2002-12-28 12:35 Igor Melichev</strong></p> <blockquote><pre> Improving the dropout prevention algorithm This patch changes disabled code only. DETAILS: In zchar42.c I set path adjustment to zero. It is the correct value with dropout prevention. The last revision of dropout prevention algorithm appears buggy : the order of margins in margin_list can be wrong and causes dropouts. This is essentially important with CJK True Types, which have thing horizontal stems and no hinting with GS. This revision replaces the representation of margins with a simpler one. It is not optimized for bold characters, perhaps the optimization is not hard. See comment in code about "bold". A good advantage is the removal of insert_pseudo_margin. It appears done due to insufficient knowledge of the old algorithm. </pre></blockquote> <p><strong><a name="2002-12-26_1126"></a> 2002-12-26 11:26 Igor Melichev</strong></p> <blockquote><pre> Fix : fuzzy.c wrongly compared images. DETAILS: It didn't compare w/2 rows near the upper edge of the image. MSVC release build compared an uninitialized data instead them. </pre></blockquote> <p><strong><a name="2002-12-24_1900"></a> 2002-12-24 19:00 Ray Johnston</strong></p> <blockquote><pre> Radial shading did not work if the CTM was rotated (mat.xx == mat.yy ==0). DETAILS: The state.width calculation would end up 0 if the circles were concentric and the CTM was rotated. Revised calculation should work even for other non-orthogonal CTMs. File added to the regression suite. Fixes SF bug #658286 for Artifex customer #190. </pre></blockquote> <p><strong><a name="2002-12-24_1420"></a> 2002-12-24 14:20 Igor Melichev</strong></p> <blockquote><pre> Improving and optimizing the dropout prevention algorithm with splitting gx_default_fill_parallelogram into 2 variants. DETAILS: This patch almost changes a disabled code. A simple reorganization of some enabled code should not cause a behavior difference. Filling a "small" character, we always subdivide trapezoids into rectangles instead passing them to device virtual function. It allows : 1. Not passing narrow trapezoids to applications which implement fill_trapezoid with own means; Narrow trapezoids could cause dropouts in there. 2. Optimize variants of fill_trapezoid algorithm which are used for different purposes (preventing about 10% slowdown with shadings). We believe this change isn't harmful because regularly we render small characters to cache device, which simply forwards trapezoids to default implementation. Alternatively we could insert a check for narrow trapezoids into loop_fill_trap, but such check appears complex and it would sensibly reduce performance. New files added : gdevddrw.h, gxdtfill.h . Change to lib.mak accounts them. Besides that, with dropout prevention we now skip empty paths in characters, because Adobe doesn't paint them. </pre></blockquote> <p><strong><a name="2002-12-23_1817"></a> 2002-12-23 18:17 Igor Melichev</strong></p> <blockquote><pre> Fix : Fixing a typo in comment. </pre></blockquote> <p><strong><a name="2002-12-23_1227"></a> 2002-12-23 12:27 Igor Melichev</strong></p> <blockquote><pre> Initial commit for the dropout prevention code in rasterizer. It doesn't not change any behavior. DETAILS: Switching to new code is being controlled with DROPOUT_PREVENTION macro defined in gx.h . Now it is set to "use old code". This patch : 1. Ports the "margin" algorithm from HINTER branch. Now the algorithm renamed to "pseudo-rasterization". 2. Ports the dropout prevention to gx_default_fill_trapezoid from HINTER branch, providing a contiguous fill for slightly slanted trapezoids. 3. Adds CONNECT_RECTANGLES into gx_default_fill_trapezoid providing a contiguous fill for highly slanted trapezoids. 4. Fixes some problems in the "pseudo-rasterization". 5. Disables all hacks about path adjustment and oversampling when DROPOUT_PREVENTION is on. Those hacks were attempts to fix dropouts for small characters, but they do not solve the problem completely. 6. Provide visual trace instructions for debugging purpose. Changes to gxpcopy.c and gxpflat.c only insert visual trace instructions for debugging purpose. Currently all them compile to empty code. Changes to gdevddrw.c, gxchar.c, gxtype1.c, gx.h are protected with DROPOUT_PREVENTION. With current settings they compile to old code. Changes to gxfill.c are not so obvious. I was unhappy with duplicating a thousand of lines in #if...#else...#endif. Therefore I've inserted some dynamic checks. They are controlled with 'pseudo_rasterization' flag. Currently it always false, so that inserted sections are either bypassed or immediately return from subroutines. Changes to lib.mak only add some dependences on vdtrace.h . In local testing the patch caused no difference with Comparefiles (if DROPOUT_PREVENTION is 0). If someone wants to try new code, DROPOUT_PREVENTION to be modified in gx.h . In this case all old hacks about path adjustment are disabled, and therefore characters render some lighter. Visual trace may be activated with -Tf option in gs command line. Note that it paints a big draft for any character rendered, so you should run only simple PS files with a single character. Also the draft scale is hardcoded in VD_SCALE constants, so it may give an unuseful result with big character rasters. At last please remember that visual trace window is implemented only for Windows - other platforms will not paint anything. The visual trace window does not implement a regeneration of painting, therefore windows must not overlap. Run gswin32.exe with no file, move windows and then perform 'quit' to store window layout to system Registry. here is a simple test, which visualize improvements when DROPOUT_PREVENTION is on : %! 100 350 moveto /Courier findfont 2 scalefont [5 0 0 1 0 0] makefont setfont (/) show showpage With 72dpi the old code paints nothing. The (DROPOUT_PREVENTION=1) paints a spot. Testing the new code with -r300 001.01.ps, the box 001-12 renders better : no dropouts in "4", characters look better. In gx.h I've added FILL_TRAP_WITH_SWAPPED_AXES flag. The goal is to archive and document a dead branch of the development. I'd like to store it into archive and then remove it in the next revision. Two temporary configuration switches added for benchmarking purpose : - PSEUDO_RASTERIZATION in gxfill.c disables the pseudo-rasterization separately from other changes. - CONTIGUOUS_FILL disables additional checks in gdevddrw.c separately from other changes. With text documents performance change is almost invisible. With Coons01.ps each of these flags give a 10% slowdown. I guess the reason is that the code becomes too complex for global optimization with MSVC 6.0 for Intel Pentium 3. Other compilers/processors may give different results. Thanks to Ray Johnston and Raph Levien for useful remarks. This patch accounts them. </pre></blockquote> <p><strong><a name="2002-12-23_1059"></a> 2002-12-23 10:59 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Removing a rudiment about writing /Name to font resources. It is not longer useful since revision 1.50 of lib/pdf_font.ps . </pre></blockquote> <p><strong><a name="2002-12-20_1717"></a> 2002-12-20 17:17 Ray Johnston</strong></p> <blockquote><pre> Accumulate CVS log instead of only having one night's worth of change info. It used to work that way but that "feature" got dropped inadvertently. </pre></blockquote> <p><strong><a name="2002-12-20_1139"></a> 2002-12-20 11:39 Igor Melichev</strong></p> <blockquote><pre> Initial commit for the dropout prevention code in rasterizer. It doesn't not change any behavior. DETAILS: Switching to new code is being controlled with DROPOUT_PREVENTION macro defined in gx.h . Now it is set to "use old code". This patch : 1. Ports the "margin" algorithm from HINTER branch. Now the algorithm renamed to "pseudo-rasterization". 2. Ports the dropout prevention to gx_default_fill_trapezoid from HINTER branch, providing a contiguous fill for slightly slanted trapezoids. 3. Adds CONNECT_RECTANGLES into gx_default_fill_trapezoid providing a contiguous fill for highly slanted trapezoids. 4. Fixes some problems in the "pseudo-rasterization". 5. Disables all hacks about path adjustment and oversampling when DROPOUT_PREVENTION is on. Those hacks were attempts to fix dropouts for small characters, but they do not solve the problem completely. 6. Provide visual trace instructions for debugging purpose. Changes to gxpcopy.c and gxpflat.c only insert visual trace instructions for debugging purpose. Currently all them compile to empty code. Changes to gdevddrw.c, gxchar.c, gxtype1.c, gx.h are protected with DROPOUT_PREVENTION. With current settings they compile to old code. Changes to gxfill.c are not so obvious. I was unhappy with duplicating a thousand of lines in #if...#else...#endif. Therefore I've inserted some dynamic checks. They are controlled with 'pseudo_rasterization' flag. Currently it always false, so that inserted sections are either bypassed or immediately return from subroutines. Changes to lib.mak only add some dependences on vdtrace.h . In local testing the patch caused no difference with Comparefiles (if DROPOUT_PREVENTION is 0). If someone wants to try new code, DROPOUT_PREVENTION to be modified in gx.h . In this case all old hacks about path adjustment are disabled, and therefore characters render some lighter. Visual trace may be activated with -Tf option in gs command line. Note that it paints a big draft for any character rendered, so you should run only simple PS files with a single character. Also the draft scale is hardcoded in VD_SCALE constants, so it may give an unuseful result with big character rasters. At last please remember that visual trace window is implemented only for Windows - other platforms will not paint anything. The visual trace window does not implement a regeneration of painting, therefore windows must not overlap. Run gswin32.exe with no file, move windows and then perform 'quit' to store window layout to system Registry. here is a simple test, which visualize improvements when DROPOUT_PREVENTION is on : %! 100 350 moveto /Courier findfont 2 scalefont [5 0 0 1 0 0] makefont setfont (/) show showpage With 72dpi the old code paints nothing. The (DROPOUT_PREVENTION=1) paints a spot. Testing the new code with -r300 001.01.ps, the box 001-12 renders better : no dropouts in "4", characters look better. In gx.h I've added FILL_TRAP_WITH_SWAPPED_AXES flag. The goal is to archive and document a dead branch of the development. I'd like to store it into archive and then remove it in the next revision. Two temporary configuration switches added for benchmarking purpose : - PSEUDO_RASTERIZATION in gxfill.c disables the pseudo-rasterization separately from other changes. - CONTIGUOUS_FILL disables additional checks in gdevddrw.c separately from other changes. With text documents performance change is almost invisible. With Coons01.ps each of these flags give a 10% slowdown. I guess the reason is that the code becomes too complex for global optimization with MSVC 6.0 for Intel Pentium 3. Other compilers/processors may give different results. Thanks to Ray Johnston and Raph Levien for useful remarks. This patch accounts them. </pre></blockquote> <p><strong><a name="2002-12-19_2044"></a> 2002-12-19 20:44 Igor Melichev</strong></p> <blockquote><pre> More optimizations are enabled with MSVC_VERSION != 5. Using them MSVC 6.0 creates 1.5 times faster code. Thanks to Russell Lang and to Pierre Arnaud. </pre></blockquote> <p><strong><a name="2002-12-19_0927"></a> 2002-12-19 09:27 Russell Lang</strong></p> <blockquote><pre> Prevent the bbox put_params from using the color mapping functions before the device is opened. Fixes Sourceforge bug #645531 "seg fault: bbox device + PAPERSIZE". DETAILS: Using "-sPAPERSIZE=a4 -sDEVICE=bbox" crashes in GS 8 when the device parameters are being set prior to opening the bbox device. bbox_put_params calls bbox_copy_params, gx_device_black then the bbox encode_color which is NULL. This is wrong because encode_color must not be called before the device is open. See doc/Drivers.htm#Life_cycle for details. Prior to the DeviceN changes this did not matter because the map_rgb_color function was valid. Post DeviceN the encode_color procedure is called and this is NULL until just before the bbox device is opened. The fix prevents bbox_copy_params from calling the encode_color procedure while the device is closed. </pre></blockquote> <p><strong><a name="2002-12-18_1730"></a> 2002-12-18 17:30 Alex Cherepanov</strong></p> <blockquote><pre> Following MS Windows practice "Ok" is changed to "OK" in dialog controls. Fixes SourceForge bug #655623 '"Ok" should be "OK"' </pre></blockquote> <p><strong><a name="2002-12-18_1359"></a> 2002-12-18 13:59 Igor Melichev</strong></p> <blockquote><pre> Fix : Improving the portability of the vd_trace interface. </pre></blockquote> <p><strong><a name="2002-12-17_1824"></a> 2002-12-17 18:24 Jack Moffitt</strong></p> <blockquote><pre> Update test scripts to omit -rXXX parameter for pdfwrite, instead of using -r720 explicitly, so that it uses the default behavior. </pre></blockquote> <p><strong><a name="2002-12-17_1754"></a> 2002-12-17 17:54 Jack Moffitt</strong></p> <blockquote><pre> Always run pdfwrite with the default resolution of 720, since that is the common use case. </pre></blockquote> <p><strong><a name="2002-12-16_1231"></a> 2002-12-16 12:31 Igor Melichev</strong></p> <blockquote><pre> Fix : Improving the vd_trace interface. DETAILS: It is some simplification and optimization. It doesn't affect the current GS build because vtrace.h is currently never included. </pre></blockquote> <p><strong><a name="2002-12-15_1904"></a> 2002-12-15 19:04 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Text matrix was wrongly computed. Source Forge bug "[ 651643 ] PS->PDF changes font slant". DETAILS: The bug is visible if FontMatrix for a base PS font is slanted with findfont...copydict...ReplaceFontMatrix...definefont. I don't know whether we need to canonize FontMatrix embedding a font. Delaying this until we get more tests which help to choose a right decision. EXPECTED PROGRESSIONS : CompareFiles\455690.pdf CompareFiles\Altona.Page_3.2002-09-27.pdf </pre></blockquote> <p><strong><a name="2002-12-15_1320"></a> 2002-12-15 13:20 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Don't request decodingID for embedded fonts, because it is only useful for disk fonts. </pre></blockquote> <p><strong><a name="2002-12-14_1906"></a> 2002-12-14 19:06 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : 'cmap' was written wrongly with subsetted True Type fonts. Source Forge bug "[ 651148 ] pdfwrite embeds bad font". </pre></blockquote> <p><strong><a name="2002-12-14_0039"></a> 2002-12-14 00:39 Ralph Giles</strong></p> <blockquote><pre> Add the display device (for the gsapi client interface) to the default MacOS build. </pre></blockquote> <p><strong><a name="2002-12-12_0144"></a> 2002-12-12 01:44 Dan Coby</strong></p> <blockquote><pre> Fix for [ 652147 ] overprintmode not boolean. Adobe TN5145 defines the paramters to/from setoverprintmode/currentoverprintmode as being boolean. This change modifies the implementation to match the TN. DETAILS: Previously the operators setoverprintmode and currentoverprintmode had been defined to match the requirements of PDF which uses an integer for the parameter. However Adobe TN5145 defines the postscript implementation as using a boolean value. This change modifies the definition of these operators in lib/gs_ll3.ps to convert the parameter type. The internal operators .setoverprintmode/.curentoverprintmode still use the PDF integer parameter. The postscript code in lib/gs_ll3.ps converts the parameter type. </pre></blockquote> <p><strong><a name="2002-12-11_2031"></a> 2002-12-11 20:31 Ray Johnston</strong></p> <blockquote><pre> Handle TrueType fonts that contain poorly formatted 'post' tables. These were seen as font subsets embedded in PDF files. Fixes SourceForge bug #651164 for customer #150. DETAILS: The file contains an embedded TT font subset that has a badly formatted 'post' table. This table is used to replace names in the standard encoding for specific glyphs. The 'post' table in question maps a bunch of glyphs that are not part of the subset to the first name in glyphnames section, but the glyphnames section is empty. It should have at least a single byte of 0x00 to form a zero length Pascal string. I also added a warning that prints if the DEBUG is enabled. Since the 'postglyphs' string is automatically extended with a 0x00 byte when the problem is detected, the warning only prints once for the font. This file was created by: /Producer (OneVision PDF Writer \(Build 05.950\)) /Creator (Solvero Version 4.5 \(SR 4\)) </pre></blockquote> <p><strong><a name="2002-12-10_1749"></a> 2002-12-10 17:49 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Removing erroneous declarations from gdevpdfx.h . </pre></blockquote> <p><strong><a name="2002-12-10_1518"></a> 2002-12-10 15:18 Ralph Giles</strong></p> <blockquote><pre> Fix (FAPI) : Rename round() to fapi_round() to avoid shadowing the C99 call of the same name. DETAILS: In particular, the redeclaration of round() causes a compiler error under Apple's gcc (October 2002 Developer Tools, MacOS X 10.2.2). MSVC doesn't implement the C99 round() and in any case we don't need the full behaviour, so a private implementation seems the best portable option. </pre></blockquote> <p><strong><a name="2002-12-10_1352"></a> 2002-12-10 13:52 Igor Melichev</strong></p> <blockquote><pre> (pdfwrite) : Implementing /PAGELABEL pdfmark. Code from Joerg Baumann with minor improvements. </pre></blockquote> <p><strong><a name="2002-12-10_1133"></a> 2002-12-10 11:33 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Correcting the implementation of fapi_round. </pre></blockquote> <p><strong><a name="2002-12-10_0821"></a> 2002-12-10 08:21 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Work around MSVC bug which doesn't define 'round' in math.h . </pre></blockquote> <p><strong><a name="2002-12-09_1142"></a> 2002-12-09 11:42 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Remove dependency on interpreter structures from fapi_ft.c . Code from Graham Asher. </pre></blockquote> <p><strong><a name="2002-12-09_1105"></a> 2002-12-09 11:05 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Allow to convert CIEBasedA with non-identity MatrixA to ICCBased. Source Forge bug "[ 647124 ] gs 8.00 makes a large and slow PDF file". </pre></blockquote> <p><strong><a name="2002-12-08_1054"></a> 2002-12-08 10:54 Igor Melichev</strong></p> <blockquote><pre> Changing copyright banner in Free Type bridge modules. </pre></blockquote> <p><strong><a name="2002-12-08_1050"></a> 2002-12-08 10:50 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Passing the replaced metrics to renderer. DETAILS FAPI client provides replaced metrics data in all cases. UFST bridge now provides a minimal handling for replaced metrics - for fonts with MetricsCount only. Other cases require to implement a new feature to UFST. Free Type is not fixed with this patch. Need to implement a new feature in Free Type. </pre></blockquote> <p><strong><a name="2002-12-08_1040"></a> 2002-12-08 10:40 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Fixing a spelling in a comment. </pre></blockquote> <p><strong><a name="2002-12-06_1928"></a> 2002-12-06 19:28 Ralph Giles</strong></p> <blockquote><pre> Increment version number and date after 8.00 release. </pre></blockquote> <p><strong><a name="2002-12-06_1602"></a> 2002-12-06 16:02 Igor Melichev</strong></p> <blockquote><pre> Free Type integration. Code from Graham Asher. </pre></blockquote> <p><strong><a name="2002-12-06_0845"></a> 2002-12-06 08:45 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Improving documentation about compression choice. </pre></blockquote> <p><strong><a name="2002-12-06_0111"></a> 2002-12-06 01:11 Alex Cherepanov</strong></p> <blockquote><pre> Avoid the stack overflow. Don't put all CID values on the operand stack at once during identity CMap generation. Fixes SourceForge bug #646809 "/stackoverflow" DETAILS: The sample file pushed about 50K numbers to the operand stack causing /stackoverflow. Since the numbers are always sequential the new procedure takes a range of numbers. The range is defined by the initial value and string length. </pre></blockquote> <p><strong><a name="2002-12-05_2348"></a> 2002-12-05 23:48 Alex Cherepanov</strong></p> <blockquote><pre> Work around a common error in PDF files when the length of the xref entry is nor equal to 20 bytes. Use readline to advance to the next entry instead of seeking 20 bytes forward. Fixes SourceForge bug #646809, customer #1060 "/typecheck in --add--" Fixes SourceForge bug #641280, customer #780 "/typecheck in --add--" </pre></blockquote> <p><strong><a name="2002-12-05_0029"></a> 2002-12-05 00:29 Ray Johnston</strong></p> <blockquote><pre> Adjust comments to reflect the current status (which FDSelect format can possibly overflow the operand stack) and add comments to identify which format corresponds to each procedure. DETAILS: A test case that used Format 0 was not available, so no change was made to avoid large operand stack usage for Format 0, but the previous comment placement may have left the impression that Format 3 still had the problem. </pre></blockquote> <p><strong><a name="2002-12-04_1950"></a> 2002-12-04 19:50 Ray Johnston</strong></p> <blockquote><pre> Handling of OpenType (OTTO) fonts with CFF fonts inside would fail if the CFF table was not the first table in the table directory. Also stack overflow could occur when building the FDSelect array. Now Asian fonts sold by Adobe (as OpenType .otf fonts) can be used with Ghostscript. DETAILS: The initial table scanning checked the 32-bit table type against the (CFF ) string, but then failed to skip the following 12 bytes if the table was not CFF. Since the initial table is usually BASE, most OTTO fonts were not usable. Also the FDSelect array construction used the stack, so could easily overflow if there was a largest glyph index in the font was too large. The method used creates a 65535 element array, then fills it using the info from the font's FDSelect info. The extra elements of the array are 'trimmed' using getinterval. </pre></blockquote> <p><strong><a name="2002-12-04_1445"></a> 2002-12-04 14:45 Jack Moffitt</strong></p> <blockquote><pre> Fixed another typo in pdf tests. </pre></blockquote> <p><strong><a name="2002-12-04_1435"></a> 2002-12-04 14:35 Jack Moffitt</strong></p> <blockquote><pre> Fixed a bug in previous patch. </pre></blockquote> <p><strong><a name="2002-12-04_0905"></a> 2002-12-04 09:05 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Phase was missed writing a pattern. Source Forge bug "[ 646062 ] (pdfwrite) Wrong pattern phase(270-01.ps". </pre></blockquote> <p><strong><a name="2002-12-04_0745"></a> 2002-12-04 07:45 Igor Melichev</strong></p> <blockquote><pre> Changing copyright banner in Free Type bridge modules. </pre></blockquote> <p><strong><a name="2002-12-03_1643"></a> 2002-12-03 16:43 Jack Moffitt</strong></p> <blockquote><pre> Fix: Turn logging on where it was overlooked. </pre></blockquote> <p><strong><a name="2002-12-03_1455"></a> 2002-12-03 14:55 Igor Melichev</strong></p> <blockquote><pre> Fix (FAPI) : Implementing MetricsCount. DETAILS: This fixes FAPI client, but still there are problems with renderers. Both FreeType and UFST cannot properly handle a replaced metrics. This problem is not in Ghostscript. The FAPI client also has problems with replaced metrics. See the big comment added into zfapi.c . Need to fix UFST and Free Type first. </pre></blockquote> <p><strong><a name="2002-12-03_1354"></a> 2002-12-03 13:54 Ralph Giles</strong></p> <blockquote><pre> Remove references to deprecated bug-gs-dev, bug-gs-beta, and mac-gs-* lists. </pre></blockquote> <p><strong><a name="2002-12-03_1336"></a> 2002-12-03 13:36 Ralph Giles</strong></p> <blockquote><pre> Document that UseFlateCompression is treated as always on. Thanks to mpsuzuki for noticing this change. </pre></blockquote> <p><strong><a name="2002-12-03_0740"></a> 2002-12-03 07:40 Russell Lang</strong></p> <blockquote><pre> When adding a missing showpage to an EPS file, don't bind showpage to allow user to override it. DETAILS: The EPS encapsulation code in ghostscript adds a showpage if one is not present, so that displaying, printing and converting all behave the same. Some users are feeding multiple EPS files to ghostscript, intending to print them on a single page. The current code will print each EPS file on a single page. For example following code would print three pages: save /showpage {} def save (file1.eps) run restore save (file2.eps) run restore restore showpage With this fix, it will print a single page. Other ways to avoid this problem are to use -dNOEPS, or (file.eps) (r) file cvx exec </pre></blockquote> <p><strong><a name="2002-12-03_0617"></a> 2002-12-03 06:17 Igor Melichev</strong></p> <blockquote><pre> Free Type integration. Code from Graham Asher. DETAILS: New files added : fapi_ft.c wrfont.c write_t1.c write_t2.c wrfont.h write_t1.h write_t2.h The Free Type bridge (fapi_ft.c and dependents) needs to be rewritten with replacing all access to interpreter's data with FAPI_font callbacks. Committing it now to allow other developers to work on it. File names to be improved. </pre></blockquote> <p><strong><a name="2002-12-03_0600"></a> 2002-12-03 06:00 Igor Melichev</strong></p> <blockquote><pre> Free Type integration. Code from Graham Asher. DETAILS: New files added : fapi_ft.c wrfont.c write_t1.c write_t2.c wrfont.h write_t1.h write_t2.h The Free Type bridge (fapi_ft.c and dependents) needs to be rewritten with replacing all access to interpreter's data with FAPI_font callbacks. Committing it now to allow other developers to work on it. File names to be improved. </pre></blockquote> <p><strong><a name="2002-12-03_0241"></a> 2002-12-03 02:41 Dan Coby</strong></p> <blockquote><pre> Fix: Partial fix for [ 600288 ] /undefined in --setcolorspace--. This fix consists of two parts. 1. Resolve and substitute the alternate color space for an ICCBased color space. 2. Correct a reference counting problem with the same alternate color space. </pre></blockquote> <p><strong><a name="2002-12-02_1959"></a> 2002-12-02 19:59 Jack Moffitt</strong></p> <blockquote><pre> Fix: Report useful error information when updating, building, or installing fails. Fixes SF bug #484752. </pre></blockquote> <p><strong><a name="2002-12-02_1921"></a> 2002-12-02 19:21 Jack Moffitt</strong></p> <blockquote><pre> Fix: Make sure all test code checks and reacts appropriate to the exit status of Ghostscript. </pre></blockquote> <p><strong><a name="2002-12-02_1502"></a> 2002-12-02 15:02 Igor Melichev</strong></p> <blockquote><pre> Fix : Use GetTempFileName for creating temporary files on Windows. SourceForge bug "[ 592925 ] Unable to open initial device (winXP)". Code from Russell Lang with minor improvements. DETAILS: See comment in code. Further improvements with FILE_FLAG_DELETE_ON_CLOSE require experimenting with multiple platforms to find a consistent logics for clist and other temporary files with automatic removal. In this connection see http://www.ghostscript.com/pipermail/gs-code-review/2002-November/003437.html and other messages in the thread. </pre></blockquote> <p><strong><a name="2002-12-02_1330"></a> 2002-12-02 13:30 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Names preceded with two null characters were not handled properly. SourceForge bug "[ 641697 ] gs 7.33 regression". DETAILS: pdf_write_value did not recognize names being preceded with two null characters. Such names were introduced to pdfmark implementation with the patch http://www.ghostscript.com/pipermail/gs-code-review/2002-January/001737.html for SF bug #505877. The patch appears incomplete : pdf_write_value did not recognize such names as names, and as a consequence special characters in them were not encodes with #-escape. </pre></blockquote> <p><strong><a name="2002-11-29_1624"></a> 2002-11-29 16:24 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Skip the obsolete Type 1 charstring command code 15, because Acrobat Reader 5 on Linux chokes with it. SourceForge bug "[ 641296 ] acrobat generates bad ps from gs pdf". DETAILS: GS ignores the command 15. Now skipping it while converting to CFF. Printing a file with such font, AR5 on Linux generates an incomplete eexec section. </pre></blockquote> <p><strong><a name="2002-11-27_2036"></a> 2002-11-27 20:36 Alex Cherepanov</strong></p> <blockquote><pre> Fix: Use "\n" line endings instead of "\r\n". MS-DOS line endings were introduced in some lines with my earier fix. </pre></blockquote> <p><strong><a name="2002-11-27_1557"></a> 2002-11-27 15:57 Igor Melichev</strong></p> <blockquote><pre> Fix (pdfwrite) : Skip redundant clipping paths. SourceForge bug "[ 624168 ] poor performance on patterns". DETAILS: Besides others, the document "a)page Afrique(VECTO).eps" creates multiple redundant clip paths with any AI "pattern" (actually it doesn't use PS patterns). The old code was too conservative, using only a comparison of path identifiers. The patch creates a stable copy of clipping path written to PDF, and compares it when PS clip path changes. The old comparison is left unchanged for better performance. Also fixes return codes from pdf_put_clip_path and improved the initializer of gx_device_pdf. </pre></blockquote> <p><strong><a name="2002-11-27_1537"></a> 2002-11-27 15:37 Igor Melichev</strong></p> <blockquote><pre> Fix : gx_clip_path::outer_box was wrongly computed with empty path. DETAILS: It's a prtial fix for SourceForge bug "[ 624168 ] poor performance on patterns". </pre></blockquote> <p><strong><a name="2002-11-27_1525"></a> 2002-11-27 15:25 Igor Melichev</strong></p> <blockquote><pre> Fix : A partial fix for Source Forge bug "[ 592925 ] Unable to open initial device (winXP)". Providing a diagnostics when failed to open temporary file or the device output file. DETAILS: This change provides an explanation to user about the problem, rather than fixes it. An improvement about the failure will be a separate patch. gp_macio.c and gp_unifs.c contained C-style.htm problems. This patch doesn't fix them for simplifying the History. To be done separately. </pre></blockquote> <p><strong><a name="2002-11-27_1447"></a> 2002-11-27 14:47 Ralph Giles</strong></p> <blockquote><pre> Correct a non-portable symbol after #endif. </pre></blockquote> <p><strong><a name="2002-11-26_1515"></a> 2002-11-26 15:15 Ralph Giles</strong></p> <blockquote><pre> Remove some unused variables. </pre></blockquote> <p><strong><a name="2002-11-26_1438"></a> 2002-11-26 14:38 Ralph Giles</strong></p> <blockquote><pre> Adapt MacOS port to build under Metrowerks CodeWarrior 8.3. These changes maintain compatibility with CW7. CW6 has not been tested. Also clean up some of the mac-specific sources, removing dead and unnecessary code and improving header includes. </pre></blockquote> <p><strong><a name="2002-11-26_1255"></a> 2002-11-26 12:55 Ralph Giles</strong></p> <blockquote><pre> Correct changelog typos. Thanks to William Bader for spotting this. </pre></blockquote> <p><strong><a name="2002-11-26_0237"></a> 2002-11-26 02:37 Ralph Giles</strong></p> <blockquote><pre> Remove echogs as part of the mostlyclean makefile target. After a patch by William Bader. </pre></blockquote> <p><strong><a name="2002-11-22_0049"></a> 2002-11-22 00:49 Ray Johnston</strong></p> <blockquote><pre> Fix: Descriptions of the regression testing script did not correspond to the script header. Thanks to Russell Lang of GSView fame for spotting this (someone finally read at least part of this document!). </pre></blockquote> <p><strong><a name="2002-11-21_1029"></a> 2002-11-21 10:29 Raph Levien</strong></p> <blockquote><pre> Change GS_DOT_VERSION to use two-digit minor version number, which is our new policy. </pre></blockquote> <p><strong><a name="2002-11-21_0940"></a> 2002-11-21 09:40 Russell Lang</strong></p> <blockquote><pre> When processing EPS files, empty the path after checking the page size. </pre></blockquote> <p><strong><a name="2002-11-21_0851"></a> 2002-11-21 08:51 Russell Lang</strong></p> <blockquote><pre> Update copyright date in Windows installer. </pre></blockquote> <p><strong><a name="2002-11-21_0826"></a> 2002-11-21 08:26 Raph Levien</strong></p> <blockquote><pre> Second commit of 8.00 release: autogen change logs and history file (note new History8.htm file). </pre></blockquote> <h1><a name="Version8.00"></a>Version 8.00 (2002-11-21)</h1> <p> This is the 8.00 release of AFPL Ghostscript. The most significant new feature since 7.0x is support for DeviceN colorspaces, up to 8 colorants total at 8 bits per component. Also, pdfwrite has seen considerable improvement in font handling, and many other bug fixes. <p> The following SourceForge bug numbers were open at the time of this release: 405342, 407342, 414947, 414985, 446344, 458261, 458775, 458780, 459647, 465936, 484752, 484753, 487953, 493348, 505429, 510808, 526099, 526491, 530011, 535366, 535752, 535836, 538033, 539239, 546823, 554076, 558151, 558435, 563287, 569573, 570772, 573744, 578838, 578865, 584990, 592160, 592837, 592841, 592925, 592930, 595760, 596009, 600288, 601255, 601336, 601694, 603934, 605830, 607425, 607850, 610356, 610478, 610727, 611694, 611701, 611727, 611898, 612801, 614298, 615165, 616970, 616976, 617077, 617523, 621246, 623292, 624515, 625085, 626059, 626295, 626358, 626419, 626464, 627545, 628110, 629335, 633299, 634036, 634358, 634514, 636210, 640159, 641278, 641280, 641283, 641296, 641490. <h3><a name="8.00_Incompatible_changes"></a>Incompatible changes</h3> <p>No incompatible changes in this release. <pre> </pre> <h2><a name="8.00-Documentation"></a>Documentation</h2><pre> First commit of 8.0 process: update versions and dates, update to News.htm. (doc/API.htm [1.29], doc/Bug-form.htm [1.33], doc/Bug-info.htm [1.32], doc/C-style.htm [1.39], doc/Commprod.htm [1.26], doc/Copying.htm [1.25], doc/DLL.htm [1.27], doc/Deprecated.htm [1.6], doc/Develop.htm [1.101], doc/Devices.htm [1.58], doc/Drivers.htm [1.37], doc/Fonts.htm [1.35], doc/Helpers.htm [1.29], doc/History1.htm [1.25], doc/History2.htm [1.25], doc/History3.htm [1.25], doc/History4.htm [1.25], doc/History5.htm [1.27], doc/History6.htm [1.42], doc/History7.htm [1.29], doc/Htmstyle.htm [1.30], doc/Install.htm [1.39], doc/Issues.htm [1.33], doc/Language.htm [1.58], doc/Lib.htm [1.27], doc/Maintain.htm [1.36], doc/Make.htm [1.62], doc/New-user.htm [1.44], doc/News.htm [1.121], doc/Projects.htm [1.49], doc/Ps-style.htm [1.23], doc/Ps2epsi.htm [1.27], doc/Ps2pdf.htm [1.49], doc/Psfiles.htm [1.40], doc/Readme.htm [1.47], doc/Release.htm [1.74], doc/Source.htm [1.25], doc/Tester.htm [1.24], doc/Testing.htm [1.14], doc/Unix-lpr.htm [1.25], doc/Use.htm [1.71], doc/Xfonts.htm [1.25], doc/gs-vms.hlp [1.24], man/dvipdf.1 [1.22], man/font2c.1 [1.22], man/gs.1 [1.23], man/gslp.1 [1.22], man/gsnd.1 [1.22], man/pdf2dsc.1 [1.21], man/pdf2ps.1 [1.23], man/pdfopt.1 [1.21], man/pf2afm.1 [1.22], man/pfbtopfa.1 [1.23], man/printafm.1 [1.22], man/ps2ascii.1 [1.21], man/ps2epsi.1 [1.20], man/ps2pdf.1 [1.27], man/ps2pdfwr.1 [1.26], man/ps2ps.1 [1.29], man/wftopfa.1 [1.22]: 2002/11/21 07:12:16 raph) </pre><h2><a name="8.00-Procedures"></a>Procedures</h2><pre> First commit of 8.0 process: update versions and dates, update to News.htm. (version.mak [1.58]: 2002/11/21 07:12:17 raph) </pre><h2><a name="8.00-Utilities"></a>Utilities</h2><pre> Fixes problems: - Don't overwrite source file when ps2pdf.bat is used with 1 argument and the argument has no ".ps" extension. (Fixed by Moritz Barsnick) Bug #631974 (lib/ps2pdfxx.bat [1.13]: 2002/11/20 03:01:23 alexcher) </pre><h2><a name="8.00-Drivers"></a>Drivers</h2><pre> Documents the old macos output device as deprecated. This is superceeded by the gdevdsp. (gdevmac.c [1.7]: 2002/11/20 18:24:44 giles) </pre><h2><a name="8.00-PDF_writer"></a>PDF writer</h2><pre> Fixes problems: - Fix (pdfwrite) : pdf_put_colored_pattern wrongly accessed pattern mask. SourceForge bugs "[ 623989 ] (pdfwrite) wrong colors with 269-01.ps", "[ 602995 ] (pdfwrite) 269-01.ps limitcheck". (gdevpdfv.c [1.20]: 2002/11/18 22:23:40 igor) - Fix (pdfwrite) : Providing additional documentation about embedded fonts. (gdevpdtb.c [1.12]: 2002/11/20 10:21:15 igor) - Fix (pdfwrite) : Encoding Differences were not written for embedded Type 1,2 fonts that have a very instandard Encoding. Discovered with SF bug "[ 641296 ] acrobat generates bad ps from gs pdf". (gdevpdtt.c [1.24]: 2002/11/21 00:05:06 igor) - Fix (pdfwrite) : The previous patch about Encoding Differences was inaccurate about True Types and CID fonts. Improving it with a better condition. (gdevpdtt.c [1.25]: 2002/11/21 03:44:11 igor) </pre><h2><a name="8.00-PDF_Interpreter"></a>PDF Interpreter</h2><pre> Fixes problems: - Pattern stream was copied to the string failing with rangecheck for long streams. The patch uses strings when possible and switches to reusable streams for longer streams. Bug #634080, customer #561 (lib/pdf_draw.ps [1.63]: 2002/11/21 01:29:07 alexcher) </pre><h2><a name="8.00-Interpreter"></a>Interpreter</h2><pre> Fixes problems: - Correction for 637954 dina3_watermark.pdf fails on GS 7.33. This forces the color space to /DeviceGray whenever the initgraphics operator is called. Previously if color space substitution was active and the last colorspace was /DeviceGray then its substituted colorspace would remain active. (lib/gs_cspace.ps [1.5]: 2002/11/18 23:42:18 dan) - Packed array is accepted now as an encoded user path in insideness testing operators. Bug #640855 (zupath.c [1.7]: 2002/11/20 18:17:28 alexcher) - Fix : (1) gc_status.requested was not initialized for stable memories, but used by alloc_acquire_chunk. (2) setting gc_status.vm_threshold and gc_status.enabled for stable memories synchronously with non-stable ones. This allows to control stable memories with setvmthreshold and vmreclaim. With default settings pdfwrite now works faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf" (zvmem2.c [1.7]: 2002/11/20 18:56:56 igor) - Bring /SubstituteFont procedure prototype up to the standard: <name> SubstituteFont <name> . Do traditional GS font substitution after the standard font substitution. Use no-op standard font substitution for backward compatibility. Bug #637424 Customer #71 (lib/gs_fonts.ps [1.24]: 2002/11/21 04:43:58 alexcher) When processing multiple EPS files, call showpage if necessary for subsequent files. (lib/gs_epsf.ps [1.10]: 2002/11/19 20:14:01 ghostgum) Corrects a small typo in the api documentation. (gdevdsp.h [1.7]: 2002/11/20 17:46:26 giles) First commit of 8.0 process: update versions and dates, update to News.htm. (lib/gs_init.ps [1.74]: 2002/11/21 07:12:17 raph) </pre><h2><a name="8.00-Library"></a>Library</h2><pre> Fixes problems: - Fix : lsb must not apply to True Type subglyphs. The offset to be taken from composite only. SourceForge bugs "[ 623122 ] component shift in TrueType composites", "[ 536863 ] Type11 layout bugs". (gstype42.c [1.25]: 2002/11/20 09:55:26 igor) - Fix : (1) gc_status.requested was not initialized for stable memories, but used by alloc_acquire_chunk. (2) setting gc_status.vm_threshold and gc_status.enabled for stable memories synchronously with non-stable ones. This allows to control stable memories with setvmthreshold and vmreclaim. With default settings pdfwrite now works faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf" (gsalloc.c [1.18]: 2002/11/20 18:56:43 igor) - Fix : (1) gc_status.requested was not initialized for stable memories, but used by alloc_acquire_chunk. (2) setting gc_status.vm_threshold and gc_status.enabled for stable memories synchronously with non-stable ones. This allows to control stable memories with setvmthreshold and vmreclaim. With default settings pdfwrite now works faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf" (gsalloc.h [1.6]: 2002/11/20 18:57:10 igor) First commit of 8.0 process: update versions and dates, update to News.htm. (gscdef.c [1.32]: 2002/11/21 07:12:17 raph) </pre> <!-- [2.0 end contents] ==================================================== --> <!-- [3.0 begin visible trailer] =========================================== --> <hr> <p> <small>Copyright © 2005 artofcode LLC. All rights reserved.</small> <p> This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of the license contained in the file LICENSE in this distribution. For more information about licensing, please refer to http://www.ghostscript.com/licensing/. For information on commercial licensing, go to http://www.artifex.com/licensing/ or contact Artifex Software, Inc., 101 Lucas Valley Road #110, San Rafael, CA 94903, U.S.A., +1(415)492-9861. <p> <small>Ghostscript version 8.53, 20 October 2005 <!-- [3.0 end visible trailer] ============================================= --> </body> </html>