2005-10-20 19:46 Ray Johnston

>     Update doc files and version files for 8.53 release.

> [doc/API.htm 1.53, doc/Bug-form.htm 1.49, doc/Bug-info.htm 1.49, doc/C-style.htm 1.55, doc/Commprod.htm 1.41, doc/Copying.htm 1.39, doc/DLL.htm 1.43, doc/Deprecated.htm 1.20, doc/Details8.htm 1.24, doc/Develop.htm 1.159, doc/Devices.htm 1.90, doc/Drivers.htm 1.58, doc/Fonts.htm 1.51, doc/Helpers.htm 1.44, doc/History1.htm 1.39, doc/History2.htm 1.39, doc/History3.htm 1.39, doc/History4.htm 1.39, doc/History5.htm 1.41, doc/History6.htm 1.56, doc/History7.htm 1.44, doc/History8.htm 1.29, doc/Htmstyle.htm 1.44, doc/Install.htm 1.56, doc/Issues.htm 1.52, doc/Language.htm 1.98, doc/Lib.htm 1.43, doc/Maintain.htm 1.50, doc/Make.htm 1.90, doc/News.htm 1.168, doc/Projects.htm 1.67, doc/Ps-style.htm 1.37, doc/Ps2epsi.htm 1.42, doc/Ps2pdf.htm 1.88, doc/Ps2ps2.htm 1.7, doc/Psfiles.htm 1.68, doc/Readme.htm 1.71, doc/Release.htm 1.95, doc/Source.htm 1.39, doc/Testing.htm 1.37, doc/Unix-lpr.htm 1.39, doc/Use.htm 1.136, doc/Xfonts.htm 1.39, doc/gs-vms.hlp 1.37, man/dvipdf.1 1.37, man/font2c.1 1.37, man/gs.1 1.38, man/gslp.1 1.37, man/gsnd.1 1.37, man/pdf2dsc.1 1.36, man/pdf2ps.1 1.38, man/pdfopt.1 1.36, man/pf2afm.1 1.37, man/pfbtopfa.1 1.38, man/printafm.1 1.37, man/ps2ascii.1 1.37, man/ps2epsi.1 1.35, man/ps2pdf.1 1.42, man/ps2pdfwr.1 1.41, man/ps2ps.1 1.44, man/wftopfa.1 1.37, src/gscdef.c 1.58, src/version.mak 1.87]

2005-10-20 19:42 Ray Johnston

>     Remove trailing ^M () characters.

> [src/gdevbmp.c 1.12, src/slzwd.c 1.7]

2005-10-20 18:51 Raph Levien

>     Fixes broken compile on amd64 platforms (see bug #688047 for details).
>     This patch should be safe on all platforms with 32-bit longs, and is
>     my best guess as to the right thing to do on Tru64 (where long is 64
>     bits).

> [src/tttypes.h 1.3]

2005-10-20 13:04 Igor Melichev

>     Fix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued 2).

>     DETAILS :

>     Bug 688167 "change of real number fomat from fixed to exponential format".

>     The last patch doesn't correctly handle numbers between 1e-7 and 1e-2.

>     EXPECTED DIFFERENCES :

>     None.

> [lib/gs_pdfwr.ps 1.52]

2005-10-18 20:31 Igor Melichev

>     Fix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued).

>     DETAILS :

>     Bug 688167 "change of real number fomat from fixed to exponential format".

>     This improves the patch
>     http://ghostscript.com/pipermail/gs-cvs/2005-September/005717.html
>     with writing small reals in a fixed point number format.

>     We did it after Raph's request in Comment #5 of the bug 688167.
>     But we don't see a visible difference against the old implementation with any viewer.
>     Therefore we believe that we shouldn't have done it (as we did before the implementation).
>     Storing it now mainly for archiving purpose.

>     If this change causes a problem, the author has no objection for unwinding it.

>     EXPECTED DIFFERENCES :

>     None.

> [lib/gs_pdfwr.ps 1.51]

2005-10-18 09:05 Igor Melichev

>     Fix (pdfwrite) : Indexed colors were distorsed with encryption.

>     DETAILS :

>     Bug 688313 "pdfwrite : image colors depend on encryption".

>     The old code applied encryption with a wrong (zero) object id to
>     the palette of the indexed color space. After a viewer decrypts
>     the palette with a right object id, colors appear wrong.

>     1. Use the PS string encoding instead the hexadecimal string encoding
>     while converting the palette to PDF format (gdevpdfc.c).
>     It provides a correct work of the part 3 below.
>     See also part 4 below.

>     2. Don't apply encryption when adding the palette
>     to cos object (gdevpdfc.c, devs.mak).
>     The old code was hacky, and new one is based on a general convention.

>     3. Apply encryption with a right object id
>     to the string which represents the palette
>     when writing the cos object to the output PDF file.
>     This is an implicit consequence of
>     using the PS string encoding in the part 1
>     due to a general convention about
>     applying encryption when writing cos objects to the output file.

>     4. Disable writing hexadecimal strings because their
>     encryption is not yet implemented (gdevpdfu.c).

>     The generated PDF may become longer in 1-2 kilobytes per palette
>     due to PS encoding is less effective for palettes.
>     This could be optimized with implelenting an encryption method
>     for hexadecimal encoded strings in pdf_put_encoded_hex_string,
>     and undo the part 1. The method should apply 3 filters :
>     hexadecimal string decode, arc4 encode, hexadecimal string encode,
>     because cos object stores strings in the outer format.
>     Delaying this optimization for better times.

>     EXPECTED DIFFERENCES :

>     None.

> [src/devs.mak 1.140, src/gdevpdfc.c 1.54, src/gdevpdfo.c 1.35, src/gdevpdfu.c 1.89]

2005-10-18 07:58 Igor Melichev

>     Fix (pdfwrite) : Propagate error codes from pdf_write_value.

>     DETAILS :

>     This is a preparation for fixing the bug
>     688313 "pdfwrite : image colors depend on encryption".

>     In cases when no error happens, this code is algorithmocally equivalent.

>     EXPECTED DIFFERENCES :

>     None.

> [src/gdevpdfo.c 1.34, src/gdevpdfu.c 1.88, src/gdevpdfx.h 1.138]

2005-10-17 19:23 Igor Melichev

>     Fix (pdfwrite) : /BP pdfmark could create dead PDF objects (continiued).

>     DETAILS :

>     Bug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef".

>     1. Prevent a potential crash while dereferencing NULL.
>     2. Don't put unnamed objects into local_named_objects.

>     Thanks to SaGS for pointing these problems out.

>     EXPECTED DIFFERENCES :

>     None.

> [src/gdevpdfm.c 1.50]

2005-10-12 17:59 Igor Melichev

>     Fix : Don't instantiate pattern when rendering to null device.

>     DETAILS :

>     Bug 688308 "Error: undefined; OffendingCommand: .type1execchar".

>     The test case executes cshow or kshow with intrevene changing
>     the current color space, causing a color load callout from fill_with_rule
>     _after_ the callout completes. After that the check
>     ctile->depth == dev->color_info.depth in gx_pattern_cache_lookup fails
>     (not sure why - probably due to gsave-grestore in the pattern procedure).
>     This patch skips entire character drawing when the device is null,
>     so that those cumbersome stuff isn't envolved.

>     EXPECTED DIFFERENCES :

>     None.

> [src/gsdevice.c 1.25, src/gspaint.c 1.10, src/gxdevcli.h 1.41]

2005-10-12 11:05 Igor Melichev

>     Implementing a pointer stability validation in the garbager, continued.

>     DETAILS :

>     This patch is currently disabled, so the change is syntactically equivalent.

>     Bug 688226 "The garbager must check a pointer stability.".

>     This fixes a minor bug in the last patch.

>     EXPECTED DIFFERENCES :

>     None.

> [src/ilocate.c 1.14]

2005-10-12 10:45 Igor Melichev

>     Implementing a pointer stability validation in the garbager.

>     DETAILS :

>     This patch is currently disabled, so the change is syntacticly equivalent.

>     Bug 688226 "The garbager must check a pointer stability.".

>     This patch extends the object header with a space order number field,
>     and compares the origin and the destination order numbers for each pointer
>     while validating the heap. The enhanced object header is still
>     within 16 bytes with the 32-bits architecture. See ialloc_validate_pointer_stability
>     about the order number definition.

>     This patch detected so many problems while running any document,
>     as we can't enable it now. It is disabled with IGC_PTR_STABILITY_CHECK
>     macro defined in gxobj.h .

>     EXPECTED DIFFERENCES :

>     None.

> [src/gsalloc.c 1.24, src/gxalloc.h 1.12, src/gxobj.h 1.7, src/ialloc.c 1.8, src/ilocate.c 1.13]

2005-10-12 08:16 Igor Melichev

>     Fix (pdfwrite) : Skip a clip path, which is set by setcachedevice (continued after July 28 205).

>     DETAILS :

>     Bug 687678 "pdfwrite : A Type 3 character cut-off".
>     Bug 688327 "incorrect masking fill in pdfwrite".

>     The old patch for this problem appears to define a too weak
>     condition for recognizing a clipping set by setcachedevice, sectachedevice2.

>     Now we think that a special stuff for this condition isn't needed because
>     the condition may be united with the contition for "setcharwidth" :
>     both things need to skip the clipping path, which was set exactly by
>     setcachedevice, sectachedevice2 or setcharwidth.
>     Checking the rectangle coordinates is not relevant.

>     Therefore the change consists of 2 parts :
>     1. Unwinding the patch http://ghostscript.com/pipermail/gs-cvs/2005-July/005625.html (IM1358)
>        (see also http://ghostscript.com/pipermail/gs-cvs/2005-July/005626.html).
>     2. Remowing the (control == TEXT_SET_CHAR_WIDTH) check from pdf_text_set_cache,
>        so that the "caching" clipping path will be skipped in any case.

>     Will add Bug688327.ps to comparefiles.

>     EXPECTED DIFFERENCES :

>     None.

> [src/gdevpdfb.h 1.14, src/gdevpdfd.c 1.71, src/gdevpdfx.h 1.137, src/gdevpdti.c 1.53, src/gdevpdtt.c 1.104]

2005-10-11 10:04 Igor Melichev

>     Fix (PS interpreter) : Allocate gs_screen_enum in same space as its components.

>     DETAILS :

>     Bug 688330 "A dangling pointer in gx_screen_enum.".

>     The old code allocates gs_screen_enum in current memory space and frees to
>     the memory space of its components, which is obtained from
>     the 'setscreen' operand (the spot function).
>     In the test case the first memory space is local, and the second one is global.
>     We guess the last statement became true after a recent change to the PDF interpreter.

>     This patch allocates gs_screen_enum in same space as its components.
>     The pritotype of zscreen_enum_init has been changed due to no method for
>     obtaining a space attribute value for iref from a gs_memory_t instance
>     (well, generally it is impossible, but one could solve if the memory
>     allocator is a PS interpreter's allocator except stable ones).

>     We noticed that components of gs_screen_enum have pointers to memory
>     allocator structures, but don't list them in the related memory descriptors.
>     We're not sure whether a memory allocator structure may relocate or not -
>     our investigation through code didn't give an unique answer.
>     For now we leave component descriptors as they were before the patch.

>     EXPECTED DIFFERENCES :

>     None.

> [src/iht.h 1.6, src/zht.c 1.8, src/zht1.c 1.7, src/zht2.c 1.14]

2005-10-10 19:09 Igor Melichev

>     Fix: Cygwin/gcc warninhs.

>     EXPECTED DIFFERENCES :

>     None.

> [src/devs.mak 1.139, src/gdevpdfb.c 1.34]

2005-10-10 18:58 Igor Melichev

>     Optimizing the transparency compositor.

>     DETAILS :

>     Bug 688255 "ai7 pdf fails on 7.03, runs for ten + minutes on 8.51".

>     The old code always allocates a transparency buffers for entire band.
>     The new code accounts group bbox to minimize buffers.
>     Due to that buffers appear empty for many of bands.
>     The time consumption for the test case of the bug 688255 is dropped in about 100 times
>     (from 8000 seconds to 71 seconds on a 3.07GHz machine, measured with debug build).

>     1. The transparency bbox computes in pdf14_begin_transparency_group from
>        the group bbox and the CTM (gdevp14.c).
>     2. Handle an empty buffer pdf14_buf_new, pdf14_pop_transparency_group (gdevp14.c).
>     3. Fixed a bug in the rectangle clipping in
>        pdf14_mark_fill_rectangle, pdf14_mark_fill_rectangle_ko_simple.
>        The old code didn't sense it because bbox always covered entire band (gdevp14.c).
>     4. Write the bbox to clist in c_pdf14trans_write and read it in c_pdf14trans_read.
>     5. The pdf14 compositor needs CTM to transform the group bbox to the device space.
>        Forced the writing of CTM to clist before writing the compositor in clist_create_compositor.
>        (Sorry, it appears some ugly due to pcte->type->procs.write creates a body
>        of a command, but we need to create a set of two commands;
>        Another minor optimization - a narrowing the set of bands - is delayed,
>        see comments in code in clist_create_compositor) (gxclimag.c).
>     6. New functions cmd_write_ctm_return_length, cmd_write_ctm are factored out for (5)
>        (gxclpath.c, gxclpath.h). This part of the change is algorithmically eqiuivalent.
>     7. Minor change : fixed coding style of "} else {" in gdevp14.c .

>     EXPECTED DIFFERENCES :

>     None.

> [src/gdevp14.c 1.35, src/gxclimag.c 1.13, src/gxclpath.c 1.21, src/gxclpath.h 1.13]

2005-10-07 19:49 Ray Johnston

>     Add missing space in CVS PRE-RELEASE string.

> [src/gscdef.c 1.57]

2005-10-07 19:46 Ray Johnston

>     Bump version after the 8.52 release (to 8.53 CVS PRE-RELEASE).

> [doc/News.htm 1.167, lib/gs_init.ps 1.120, src/gscdef.c 1.56, src/version.mak 1.86]