2007-11-21T19:44:40.574652Z Ralph Giles

>     Revert the change to using an environment variable for the MSVC LIBPATH.

>     Details:

>     This wasn't effective in addressing the problem and could cause
>     additional trouble if the environment isn't configured. The changes
>     in r8394 should properly address the issue of quote interpretation
>     with MSVC6.

> [src/msvc32.mak]

2007-11-21T06:10:53.144641Z Henry Stiles

>     Check that a device halftone exists before writing it.  Fixes
>     segmentation fault in xps.  No differences expected.

> [src/gdevp14.c]

2007-11-21T05:57:23.672501Z Ray Johnston

>     Fix compiler flag conflict for non-debug build (seen when switching
>     PCL6 build to default to non-debug default). Changes /ZI to /Zi.

> [src/msvccmd.mak]

2007-11-20T18:36:58.009554Z Ray Johnston

>     Fix broken MSVC 6 build issue caused by change in src/msvccmd.mak that puts
>     a LIBPATH into the link command line. MSVC linker can't handle spaces in the
>     LIBPATH even if within " ". We use an environment variable set by Microsoft
>     MSVC 6 'vcvars32.bat' instead. This can be manually set if needed.

> [src/msvc32.mak]

2007-11-20T11:42:22.623309Z Ken Sharp

>     Batch file to create MSVC solution and projects.

>     Usage:
>     msvcxml gs obj\ld.tr > ghostscript.sln

>     This is the first attempt, and very poor.

> [toolbin/msvcxml.bat]

2007-11-19T23:57:46.396323Z Ralph Giles

>     Change the product name for the release.

> [src/gscdef.c]

2007-11-19T23:56:28.975783Z Ralph Giles

>     Update changelogs for release.

> [doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]

2007-11-19T20:36:07.538187Z Igor Melichev

>     Fix (transparency) : Wrong background color of a soft mask group.

>     DETAILS :

>     Bug 689531 "Regression: PDF file has undesired extra gray object.".

>     The old code used the 0th component of the background color
>     instead its gray equivalent.  The bug was introduced when
>     working on bug 687176.

> [src/gdevp14.c]

2007-11-19T20:24:07.302766Z Ralph Giles

>     Update documentation timestamps for 8.61.

> [doc/History7.htm doc/Projects.htm doc/History8.htm man/dvipdf.1 man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Source.htm doc/Deprecated.htm man/ps2epsi.1 doc/Install.htm doc/API.htm doc/Issues.htm doc/DLL.htm doc/Drivers.htm man/pfbtopfa.1 doc/Release.htm doc/Commprod.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm man/gs.1 man/pf2afm.1 doc/Ps2ps2.htm doc/Fonts.htm man/printafm.1 doc/Ps2pdf.htm doc/Develop.htm doc/Helpers.htm man/pdf2dsc.1 doc/Psfiles.htm doc/Lib.htm doc/gs-vms.hlp doc/Htmstyle.htm man/font2c.1 man/gsnd.1 man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 doc/Testing.htm doc/Make.htm doc/Details8.htm doc/Unix-lpr.htm doc/C-style.htm doc/Ps-style.htm doc/History1.htm doc/History2.htm man/gslp.1 man/wftopfa.1 doc/History3.htm man/ps2ps.1 doc/Ps2epsi.htm doc/History4.htm man/ps2pdfwr.1 doc/History5.htm doc/History6.htm]

2007-11-19T20:23:39.904096Z Ralph Giles

>     Remove the verification checks for PVERSION and JVERSION, which we no
>     longer use.

> [toolbin/pre.tcl]

2007-11-19T20:15:45.795513Z Ralph Giles

>     Add new files to the documentation.

> [doc/Develop.htm doc/Psfiles.htm]

2007-11-19T20:15:43.672566Z Ralph Giles

>     Update release notes and date for 8.61.

> [doc/News.htm src/version.mak]

2007-11-18T22:50:36.855233Z Alex Cherepanov

>     Normalize weigts in the Mitchell filter and use proper rounding to ensure
>     that the constant value is not changed by the filter.
>     Bug 689556, customer 581.

> [src/siscale.c]

2007-11-18T16:48:41.008511Z Igor Melichev

>     Fix (clist interpreter) : Transparency caused a wrong color depth.

>     DETAILS :

>     Bug 689520 Regression: 1bpp and grayscale output broken.

>     The clist interpreter clist_playback_band maintains 2 devices :
>     the clist reader and target. The clist reader device stores
>     private interpreter's data. However using a device structure
>     for this purpose is pretty confusing, because the target
>     device may have same device fields with different values.
>     Particularly while processing a transparency, the target device
>     chage to a transparency buffer device,
>     which may have a different number of color components.

>     The problem happens due to the clist interpreter used
>     a wrong device to obtain the number of color components.
>     This patch changes the code with taking color components
>     from the target device.

>     Now we don't try to analyze all other access to the clist device -
>     it should be a subject of a separate job.
>     Therefore the code may need further improvements.
>     The right way would be to define a special structure for the clist interpreter,
>     and to drop the clist reader device at all.

> [src/gxclrast.c]

2007-11-18T09:30:55.737640Z Russell Lang

>     Remove incorrect and unnecessary gtk+ separation code. Fixes bug 689541.

> [src/dxmain.c]

2007-11-18T06:07:20.783700Z Igor Melichev

>     Fix (clist) : Improving the debug printing.

>     DETAILS :

>     This patch only inserts some debug trace printing about the pdf14 compositor.
>     The old code is confusing due to mapping an obsolete instruction to "set_color[*]".

> [src/gxclpath.h]

2007-11-18T05:30:55.503323Z Igor Melichev

>     Fix (clist) : Improving the debug printing.

>     DETAILS :

>     This patch only inserts some debug trace printing about the pdf14 compositor.
>     The old code generates a confusing trace due to missing an important information.

> [src/gstrans.c src/gdevp14.c]

2007-11-16T21:39:22.306411Z Ray Johnston

>     Fix dependency problems that caused obj/gs_init.ps to be missed. Also fix a
>     typo that caused CMap files to be missing.

>     DETAILS:

>     This method of putting the gs_init.ps dependency down in lib.mak require
>     us to get gs_init.ps. This hack was discussed with Ralph and is an
>     alternative to adding a dependency to all of the top level makefiles.
>     The dummy gs_init.ps is only made when we are NOT including the PS
>     interpreter (PSI_INCLUDED) since we need the real one for the language
>     switch build. Note that the dummy file doesn't get added to the %rom%
>     file system since PS_ROMFS_ARGS is empty if int.mak is not included.

> [src/lib.mak src/int.mak]

2007-11-16T21:14:31.380613Z Ralph Giles

>     Correct typos and spelling errors in the change log. Bug 688940.

> [doc/History8.htm]

2007-11-16T08:11:05.046465Z Igor Melichev

>     Fix (clist) : Providing clist instruction ids and offsets to debug trace (continued 2).

>     DETAILS :

>     The last patch (rev 8365) appears incorrect and causes crashes with halftoning devices.

>     The problem happens due to gx_device_clist_reader::offset_map
>     has been initialized too early in clist_reader_init.
>     At that moment the device is still a clist writer,
>     but the field offset_map belongs to clist reader.
>     Due to gx_device_clist_s is a union, the field overlaps band_range_list.head,
>     and the letter was prematurely reset. It caused some commands were not written
>     to clist file while the page closes. With the test case (pbmraw -r300 012-01.ps)
>     it missed cmd_opv_ext_put_halftone and did not miss cmd_opv_ext_put_drawing_color
>     with color index type == ht_binary. It caused the crash in gx_dc_ht_binary_readdue to
>     pis->dev_ht was not set. (cmd_opv_ext_put_halftone does set, but it was missed).

>     The log message of the revision 8365 reads :
>     "This change is algorithmically equivalent for release build."
>     This statement is false due to the premature initialization of
>     gx_device_clist_reader::offset_map.
>     This patch fixes that with removing its initialization from
>     clist_reader_init. A subsequent call to clist_render_init initializes it.

>     The last patch was made buggy due to the function name
>     clist_reader_init does not properly reflects its finction.
>     This patch fixes the naming.

>     Also provided more stability in gxht.c with a check for NULL pointer.

> [src/gxclread.c src/gxht.c]

2007-11-16T02:10:56.107493Z Ralph Giles

>     Update the makefile for current pkgconfig macros.

> [ijs/Makefile.am]

2007-11-16T01:52:09.559298Z Ralph Giles

>     Don't generate build files for the ijs package when building. Since this
>     is distinct from 'make dist' the results are not optimal Bug 689425.

> [doc/Release.htm]

2007-11-15T07:22:43.143761Z Igor Melichev

>     Fix (clist) : Providing clist instruction ids and offsets to debug trace (continued).

>     DETAILS :

>     The last patch appears incorrect for the debug build
>     and causes crashes sometimes. Not sure why local testing didn't detect that.

>     This change is algorithmically equivalent for release build.
>     In the debug build it fixes problems of the last patch.

>     1. Offset map could be prematurely released by the garbager
>     (It could cause a crash. Not sure why the local test didn't detect it).
>     A new pointer gx_device_clist_reader::offset_map prevents that.
>     Added it to the garbager descriptor and provided its initialization.

>     2. buffer_segment_index can fail with returning a negative index.
>     Checked that and propagated error codes.

>     4. Besides top_up_cbuf, the buffer topping up also happens
>     with calling memmove when reading bitmap data.
>     Added calls to top_up_offset_map for accounting that.

>     5. See comment in top_up_offset_map about the improved invariant.

>     6. The prototupe of top_up_cbuf is changed with passing the error code.
>     Due to that the variable 'cbp' is droped the 'register' modifier.
>     We believe it won't cause a visible slowdown because
>     modern compilers are smart enough.

>     7. Do not maintain offset_map when -ZL is not specified.
>     It saves some CPU time with debug build.

> [src/gxclist.c src/gxcldev.h src/gxclist.h src/gxp1fill.c src/gxclrast.c src/gxclread.c src/gxclpage.c src/gxclutil.c]

2007-11-14T23:03:22.440437Z Ralph Giles

>     Remove an obsolete include.

> [src/gendev.c]

2007-11-14T22:06:13.972530Z Ray Johnston

>     Refactor the gs int.mak and lib,mak to simplify building COMPILE_INITS=1 without PS (PCL
>     only build). Make sure gs/src/ugcclib.mak does conditional assignment of COMPILE_INITS

> [src/lib.mak src/ugcclib.mak src/int.mak]

2007-11-14T22:04:53.375824Z Ray Johnston

>     Fix number of macro arguments that showed an error when FPU_TYPE=-1 (no FPU)

> [src/gsciemap.c]

2007-11-14T18:37:45.596510Z Igor Melichev

>     Fix (clist) : Providing clist instruction ids and offsets to debug trace.

>     DETAILS :

>     This change is algorithmically equivalent for release build.
>     In the debug build it only adds a new debug printing.

>     Let clist segment is consecutive instuctions buffered for same band.

>     1. gx_device_clist_writer::ins_count counts clist segments.

>     2. cmd_prefix_s::id is the number of clist segment that it belongs to.

>     3. stream_band_read_state_s::offset_map stores a table for mapping
>     clist segments' buffer offsets to clist file offsets.

>     4. s_band_read_init_offset_map, s_band_read_dnit_offset_map,
>     clist_file_offset, top_up_offset_map maintain the table.

>     5. Inserted a debug printing into gxclutil.c, gxclrast.c .

> [src/gxclist.c src/gxcldev.h src/gxclist.h src/gxclrast.c src/gxclread.c src/gxclutil.c]

2007-11-14T18:09:02.242685Z Igor Melichev

>     Fix (clist) : A preparation for providing clist instruction ids and offsets to debug trace.

>     DETAILS :

>     We would like this change to be algorithmically equivalent,
>     but the proof is too complex. Therefore we commit it separately
>     in order to check for raster differences.

>     1. Inserted a new field into cmd_prefix_s.
>     For now this field is never used, but it changes memory allocation.
>     Due to that the bufferring in the clist writer goes slightly different.
>     Particularly it may cause new effects while restarting failed instructions.

>     2. Early return from top_up_cbuf when the stream is over.
>     The new code does not top up the last portion of the data stream.
>     It shouldn't be important for the reader, but we can't proove for sure.
>     This change is necessary because we want to add more fields to gx_clist_state_s,
>     and the new fields would be invalid after s_close resets stream::state.
>     See the next patch for details.

> [src/gxclist.h src/gxclrast.c]

2007-11-14T02:22:53.263144Z Ralph Giles

>     Add support for passing EXPAT_CFLAGS from the top-level makefile.
>     Passing -DHAVE_MEMMOVE is required in the unix build.

> [src/expat.mak]

2007-11-14T02:06:05.012311Z Ralph Giles

>     Remove spurious executable bits.

> [expat/MANIFEST expat/conftools/expat.m4 expat/tests/benchmark/benchmark.c expat/lib/internal.h expat/COPYING expat/Changes expat/lib/utf8tab.h expat/tests/runtestspp.cpp expat/tests/runtests.c expat/lib/expatw_static.dsp expat/lib/libexpat.def expat/amiga/include/proto/expat.h expat/tests/README.txt expat/xmlwf/xmlfile.c expat/xmlwf/xmlfile.h expat/xmlwf/ct.c expat/lib/Makefile.MPW expat/xmlwf/codepage.c expat/vms/descrip.mms expat/xmlwf/codepage.h expat/bcb5/elements.bpf expat/lib/amigaconfig.h expat/amiga/expat_lib.c expat/bcb5/elements.bpr expat/lib/expat.h expat/win32/README.txt expat/conftools/get-version.sh expat/doc/valid-xhtml10.png expat/examples/outline.dsp expat/xmlwf/readfilemap.c expat/bcb5/outline.mak expat/lib/xmlrole.c expat/amiga/launch.c expat/bcb5/expat_static.mak expat/lib/xmlrole.h expat/lib/winconfig.h expat/examples/elements.dsp expat/win32/expat.iss expat/win32/MANIFEST.txt expat/amiga/expat.xml expat/bcb5/outline.bpf expat/expat_config.h.in expat/lib/libexpatw.def expat/lib/expatw.dsp expat/bcb5/expat.mak expat/lib/xmltok.c expat/vms/README.vms expat/tests/benchmark/README.txt expat/bcb5/expat_static.bpf expat/lib/xmltok.h expat/tests/xmltest.sh expat/lib/latin1tab.h expat/bcb5/outline.bpr expat/tests/minicheck.c expat/xmlwf/xmlwf.dsp expat/conftools/PrintPath expat/tests/minicheck.h expat/Makefile.in expat/lib/expat_static.dsp expat/bcb5/libexpat_mtd.def expat/bcb5/expat_static.bpr expat/lib/xmltok_impl.c expat/bcb5/expatw.mak expat/amiga/include/interfaces/expat.h expat/lib/xmltok_impl.h expat/xmlwf/filemap.h expat/bcb5/expatw_static.mak expat/vms/expat_config.h expat/bcb5/expat.bpf expat/xmlwf/xmlwin32url.cxx expat/lib/xmltok_ns.c expat/xmlwf/xmltchar.h expat/doc/reference.html expat/tests/benchmark/benchmark.dsp expat/bcb5/expat.bpr expat/bcb5/xmlwf.mak expat/bcb5/setup.bat expat/lib/xmlparse.c expat/tests/benchmark/benchmark.dsw expat/conftools/install-sh expat/configure.in expat/conftools/libtool.m4 expat/bcb5/expatw.bpf expat/amiga/Makefile expat/bcb5/expatw_static.bpf expat/bcb5/expatw.bpr expat/bcb5/expatw_static.bpr expat/bcb5/xmlwf.bpf expat/lib/expat_external.h expat/configure expat/lib/macconfig.h expat/conftools/ac_c_bigendian_cross.m4 expat/lib/ascii.h expat/amiga/expat_vectors.c expat/conftools/mkinstalldirs expat/bcb5/README.txt expat/amiga/README.txt expat/bcb5/xmlwf.bpr expat/xmlwf/unixfilemap.c expat/doc/xmlwf.sgml expat/bcb5/all_projects.bpg expat/xmlwf/xmlurl.h expat/doc/expat.png expat/amiga/include/inline4/expat.h expat/examples/elements.c expat/expat.dsw expat/amiga/stdlib.c expat/amiga/include/libraries/expat.h expat/lib/iasciitab.h expat/xmlwf/xmlmime.c expat/tests/chardata.c expat/xmlwf/xmlmime.h expat/doc/style.css expat/README expat/tests/chardata.h expat/conftools/config.guess expat/doc/xmlwf.1 expat/conftools/ltmain.sh expat/conftools/config.sub expat/lib/nametab.h expat/bcb5/libexpatw_mtd.def expat/lib/asciitab.h expat/xmlwf/xmlwf.c expat/lib/expat.dsp expat/examples/outline.c expat/xmlwf/win32filemap.c expat/bcb5/elements.mak expat/bcb5/makefile.mak]

2007-11-13T18:57:18.728921Z Igor Melichev

>     Fix (make) : Could not build for x64 platform with Developer Studio 2005.

>     DETAILS :

>     1. The old code uses the 32 bits compiler for compiling build utilities
>     (genarchg, echogs), and then tries to link them with x64 libraries.

>     2. Developer Studio 2005 doesn't support -ZI
>     (debug database for edit end continue) for the x64 platform.

> [src/msvccmd.mak]

2007-11-13T10:01:55.069333Z Ken Sharp

>     Fix (pdfwrite): type 3 fonts with exceedingly small BoundingBox
>     entries were clamped to 0 or 1.

>     Details:
>     Bug #689537 "FontBBox wrong in pdf generated by ps2pdf (breaks
>     acrobat 8)".

>     The type 3 font has a FontBBox of [0 0 0.3 0.3]. Because
>     pdfwrite uses integers to record the font bounding box, this was
>     being clampled to [0 0 1 1]. This should not cause a prolem, but
>     for unknown reasons causes Acrobat 8 to render *very* slowly.

>     (gdevpdtf.h), 'struct /*type 3*/', alter the FontBBox member from
>     a gs_int_rect to a gs_rect to preserve floating point box values.

>     (gdevpdtt.c), pdf_make_font3_resource, copy the font bbox values
>     instead of floor'ing the lower and ceil'ing the upper values.

>     (gdevpdfu.c), create a new function 'pdf_write_font_bbox_float'
>     to write the bbox as floats instead of ints.

>     (gdevpdfx.h) prototype 'pdf_write_font_bbox_float'

>     (gdevpdtw.c), pdf_finish_write_contents_type3, use the new
>     routine to write out a floating point bounding box.

> [src/gdevpdfx.h src/gdevpdtt.c src/gdevpdfu.c src/gdevpdtw.c src/gdevpdtf.h]

2007-11-12T08:59:35.891834Z Ken Sharp

>     Fix (pdfwrite): named objects, created via a pdfmark such as /BP,
>     could not have their content modified after the object was completed.

>     DETAILS:
>     Bug #689104 "Overwriting transformation /Matrix in XObject previously
>     created with /BP & /EP pdfmarks".

>     Some pdfmarks, such as /BP create named objects. These can accumulate
>     information until a matching pdfmark (/EP in this case) completes the
>     object. When complete, objects were written to the final destination
>     PDF file. This made it impossible to later modify the object.

>     (gdevpfm.c) pdfmark_bind_named_object, change the call to
>     pdf_substitute_resource to defer writing the object to the
>     destination file, if the object is named. This means the object is still
>     available for modification until the end of the job. NB if the object
>     is not named, we still write it immediately, as there is no mechanism
>     for modifying an unnamed object, nor do we currently have a mechanism
>     for maintaining a record of unnamed objects.

> [src/gdevpdfm.c]

2007-11-10T17:20:49.620638Z Alex Cherepanov

>     Pre-scan the stream for '{' during the stream length check to avoid reading
>     to the end of the stream and closing it. Bug 689551, customer 661.

> [lib/pdf_base.ps]

2007-11-09T21:18:04.579128Z Ralph Giles

>     Remove the JVERSION makefile variable.

>     We only support the current version 6 library, and it seems
>     unlikely to revise in the the near future. We also include
>     our own copy of the source now, so it is less important to
>     support a variety of third party library versions.

> [src/openvms.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/openvms.mmk src/bcwin32.mak src/ugcclib.mak src/gs.mak src/Makefile.in doc/Make.htm src/msvc32.mak src/unix-gcc.mak src/macos-mcp.mak src/watclib.mak src/jpeg.mak]

2007-11-09T21:15:56.512922Z Ralph Giles

>     Remove the PNGVERSION makefile variable.

>     We no longer support building older versions of the libpng source,
>     and now include our own version, so there is no reason to maintain
>     this.

> [src/openvms.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/openvms.mmk src/bcwin32.mak src/ugcclib.mak src/gs.mak src/libpng.mak doc/Make.htm src/msvc32.mak src/unix-gcc.mak src/macos-mcp.mak src/all-arch.mak src/watclib.mak]

2007-11-09T21:00:48.139238Z Ralph Giles

>     Update the top level makefiles with the current libpng version number.

> [src/bcwin32.mak src/openvms.mak src/ugcclib.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/msvc32.mak src/unix-gcc.mak src/unixansi.mak src/macos-mcp.mak src/msvclib.mak src/all-arch.mak src/openvms.mmk src/os2.mak src/watclib.mak]

2007-11-09T20:58:19.833269Z Ralph Giles

>     Use PNGSRCDIR and PNGVERSION instead of PSRCDIR and PVERSION in
>     the top level makefiles.

> [src/openvms.mak src/macosx.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/openvms.mmk src/bcwin32.mak src/ugcclib.mak src/gs.mak src/libpng.mak src/Makefile.in doc/Make.htm src/msvc32.mak src/unix-gcc.mak src/macos-mcp.mak src/all-arch.mak src/watclib.mak]

2007-11-09T19:54:57.891517Z Ralph Giles

>     Minor cleanup of the expat makefile.

> [src/expat.mak]

2007-11-09T01:14:15.828665Z Ralph Giles

>     Change the jbig2dec license from GPLv2 to GPLv2 or later.

> [jbig2dec/LICENSE]

2007-11-08T07:57:21.838362Z Suzuki Toshiya

>     Fix: Ignore problematic post table in format 2.0 with ISOLatin1Encoding glyph names.

>     DETAILS:
>     Some TrueType fonts converted by "Windows Type 1 Installer" have
>     problematic post table format 2.0 including MacGlyphEncoding
>     entries which should be omitted. Such extra entries in the
>     beginning of glyphName array make /Encoding broken. By checking
>     if glyph name in post table is predefined one in MacGlyphEncoding,
>     such problematic post table can be detected. By ignoring such
>     problematic post table, bug 689495 is fixed.

>     However, some TrueType fonts designed for Microsoft redefines
>     MacGlyphEncoding glyph name out of predefined range. To permit
>     such font, the post table in format 2.0 is checked by
>     ISOLatin1Encoding which is the cross section of MacGlyphEncoding
>     and WinAnsiEncoding. ISOLatin1Encoding is enought to fix the
>     bug 689495.

> [lib/gs_ttf.ps]

2007-11-07T07:13:45.310142Z Ralph Giles

>     Preliminary makefile for the expat third party library.

>     Can be used to link to the system expat with SHARE_EXPAT=1,
>     but compiling the source doesn't work on linux in this revision
>     because of missing configuration defines.

> [src/gs.mak src/expat.mak]

2007-11-07T05:04:06.063702Z Ralph Giles

>     Copy the expat-2.0.1 tag source into the gs tree.

>     This 3rd party library is needed for XPS and eventually SVG support.

> [expat]

2007-11-07T04:19:13.410191Z Alex Cherepanov

>     Add a skeleton implementation of the text extraction device.
>     It doesn't do anything useful yet, only prints "Hello world" once per page.

> [src/gdevtxtw.c src/bcwin32.mak src/openvms.mak src/macosx.mak src/watcw32.mak src/Makefile.in src/msvc32.mak src/unix-gcc.mak src/unixansi.mak src/macos-mcp.mak src/devs.mak src/os2.mak]

2007-11-02T19:09:03.093400Z Marcos Woehrmann

>     Fix for Bug 689316.

>     On some systems XInitImage() appears to have
>     problems with images that are one pixel in height, so
>     if XInitImage() returns an error call XPutImage() instead.

> [src/gdevx.c]

2007-11-02T18:16:45.038692Z Ralph Giles

>     Document the interaction between a the vector device beginpage method
>     and gdev_vector_stream() more clearly.

> [src/gdevvec.h]

2007-11-01T20:49:28.224038Z Ray Johnston

>     Make sure that errors are propogated to caller in the WTS device (such
>     as VMerror). Bug 689511 for customer 951.

>     DETAILS:

>     This doesn't really fix the underlying problem seen by the (embedded)
>     customer where the clist rendering uses a large amount of RAM.

> [src/gdevwts.c]

2007-11-01T17:22:45.182105Z Igor Melichev

>     PS interpreter : Trace the executed operators' names (continued).

>     DETAILS :

>     Fix an inaccurate coding of the last patch.

> [src/iinit.c]

2007-11-01T16:20:01.816428Z Igor Melichev

>     PS interpreter : Trace the executed operators' names.

>     DETAILS :

>     This change is syntactically equivalent for a default build.
>     For obtaining the new functionality Ghostscript must be compiled
>     with a new predefined macro DEBUG_TRACE_PS_OPERATORS.
>     The new debug switch '!' prints names of operators executed while the interpretation.
>     Note : Inline operators (which are expanded inside interp.c) are not printed.

> [src/iinit.c doc/Use.htm src/int.mak src/iinit.h src/interp.c]

2007-11-01T15:56:22.262417Z Alex Cherepanov

>     Move a 32K array from the stack to the heap to save stack space.

>     DETAILS:
>     Ghostscript is designed to run with 64K stack space for compatibility with
>     embedded environments. Unlike other MS systems, Windows NT enforces stack
>     space limit claimed by the application. MSVC 6 run-time uses about 8K
>     internally and remaining 56K stack was insufficient.

> [src/gdevpdfi.c]

2007-10-31T17:01:02.758539Z Ralph Giles

>     Rewrite gs_getdefaultdevice to avoid allocating memory.

>     The new version also skips tabs as whitespace and is more robust.

> [src/gsdevice.c]

2007-10-31T17:00:59.582623Z Ralph Giles

>     Add a new GS_DEV_DEFAULT makefile variable for passing a preferred list
>     of default devices, in order of priority. These are passed through to
>     the C code, and searched for in gs_getdefaultdevice().

> [src/gs.mak src/Makefile.in src/gscdefs.h src/gsdevice.c src/gscdef.c]

2007-10-31T17:00:55.551499Z Ralph Giles

>     Add Postcript bindings to gs_getdefaultdevice() and use them to set the
>     default device in the interpreter. Bug 689273.

> [doc/Language.htm src/zdevice.c lib/gs_init.ps]

2007-10-31T17:00:51.435508Z Ralph Giles

>     Add a gs_getdefaultdevice() call and use it when printing the help
>     message. It just returns the first device as before. Bug 689273.

> [src/gsdevice.h src/imainarg.c src/gsdevice.c]

2007-10-30T23:45:46.184301Z Ralph Giles

>     Add missing dependencies to the contrib device build.

> [contrib/contrib.mak]

2007-10-30T19:26:01.651347Z Igor Melichev

>     Fix (banding) : Improving the debug trace about compositors (continued).

>     DETAILS :

>     This change is algorithmically equivalent for release build.
>     In the debug build it only improves debug printing
>     with distinguishing gs_ and gx_ operations.

> [src/gstrans.c]

2007-10-30T17:47:49.373667Z Igor Melichev

>     Fix (banding) : Improving the debug trace about compositors.

>     DETAILS :

>     This change is algorithmically equivalent for release build.
>     In the debug build it only adds more debug printing.

>     1. Added a debug printing for alpha, overprint and rop compositors
>     when writing/reading from/to clist.

>     2. (gxclrast.c) When printing a matrix with the 'L' switch,
>     use global page coordinates as rectangle operations do.
>     It allows to map reading operatrions to corresponding writeing operations.

> [src/gsropc.c doc/Use.htm src/gsalphac.c src/gsovrc.c src/gxclrast.c]

2007-10-30T00:58:44.912591Z Ralph Giles

>     Add a cast to prevent a warning.

> [src/zfjpx.c]

2007-10-28T23:33:59.326612Z Alex Cherepanov

>     Move "true .setaccuratecurves" to the PDF graphic state initialization
>     where it belongs. This fix enables accurate curve rendering by GSview
>     doesn't use some parts of Ghostscript startup code. Bug 688434.

> [lib/pdf_main.ps lib/pdf_ops.ps]

2007-10-28T18:22:29.779063Z Ralph Giles

>     Correct a typo.

> [doc/Use.htm]

2007-10-28T17:17:47.899537Z Alex Cherepanov

>     Change pdf_base.ps::.pdfrun and pdf_sec.ps::.decpdfrun to ensure
>     "PDFScanRules" == "true" while scanning the PDF, and if necessary revert
>     it back to "null" before returning. Thanks to SaGS for the patch. Bug 688598.

>     DETAILS:
>     The bug is triggered by the construct "//DeviceGray" found in  the sample PDF.
>     The following command fails with the same error as GSView, and for the
>     same reason:

>         pdfopt.bat media_365163.pdf output.pdf

>     When Ghostscript interprets a PDF directly, most of the job is done by
>     LIB\pdf_main.ps::dopdfpages which sets "PDFScanRules" correctly. However,
>     the initial part of scanning the PDF (trailer dict, ...), and the rebuild
>     logic scan the PDF with wrong "PDFScanRules". Also GS's own various tools
>     and GSView don't set/ reset it as needed.

>     Implementation details:

>     (A) ".pdfrun" and ".decpdfrun" dinamically construct procedures that do the
>     real work and immediately execute them. The patch changes  these procedures
>     to include setting/ restoring "PDFScanRules". If "PDFScanRules" == "true"
>     already, then "setuserparams" is not called at all, so normally
>     (when ".[dec]pdfrun" executed during "dopdfpages") there's practically no
>     impact on performance.

>     There are also "token" calls outside these 2 procedures, but these calls are
>     for scanning the xref and "# # obj" lines, which don't contain PDF name
>     objects.

>     (B) ".getuserparam" GS-specific operator changed to recognize scanner options
>     too ("PDFScanRules" and "PDFScanInvNum"). This is needed by ".[dec]pdfrun"
>     for restoring "PDFScanRules"; also used for an optimization (to omit calling
>     "setuserparams" when not actually needed).

>     Note:
>         For "Process[DSC]Comment" it returns "true" if a procedure
>         is set, and not the actual procedure. To retrive the
>         procedures (or null if none set), use "currentuserparams".

>     (C) ".currentuserparams" is NOT modified, so it does not return scanner
>     options. If it did, these ended up being put into "userparams" and be
>     affected by "save"/ "restore" (see the  redefinition of "restore" in
>     gs_lev2.ps).

> [src/itoken.h lib/pdf_base.ps lib/pdf_sec.ps src/zusparam.c src/ztoken.c]

2007-10-28T14:19:46.108672Z Alex Cherepanov

>     Stop reading the xref+trailer at the closing ">>" because PDF 1.7 Reference
>     made "startxref" optional in some cases. Thanks to SaGS for thr patch.
>     Bug 688283.

>     DETAILS:
>     The PDF 1.7 Reference, section F.2.3 "First-Page Cross-Reference
>     Table and Trailer (Part 3)", 2nd paragraph on page 1031 states:

>        "The first-page trailer may optionally end with startxref, an
>         integer, and %%EOF, just as in an ordinary trailer. This
>         information is ignored."

>     (note the word "optionally"), so in such a case a PDF interpreter
>     cannot rely on anything particular (like "startxref"/ "startref"/
>     "xref") to follow the trailer dictionary. Now consider a linearized
>     PDF being incrementally updated, and you get that in the general
>     case a "previous trailer" may lack the "startxref". Apparently,
>     Acrobat does a similar thing when creating hybrid-ref PDFs.

> [lib/pdf_main.ps lib/pdf_rbld.ps]

2007-10-27T19:55:00.858126Z Igor Melichev

>     Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 9).

>     DETAILS :

>     Bug 689526 "Regression: performance issues with r8118".

>     This patch clips triangles an trapezoids with band bbox
>     during the clist playback. The old code spends much time
>     for rasterizes parts that fall outside the band,
>     espcially if the band height is small.

>     Also fixed an obsolete comment.

> [src/gxclrast.c]

2007-10-27T18:55:14.195971Z Alex Cherepanov

>     Extract and process default PDF file from the PDF collection when
>     it is defined. Otherwise process the container PDF file.

>     DETAILS:
>     The procedure pdf_collection_files can be extended to select other
>     PDF files from the collection and extract them for processing.

> [lib/pdf_main.ps lib/pdf2dsc.ps]

2007-10-26T07:41:30.826491Z Ken Sharp

>     Fix (pdfwrite): Type 1 CharStrings could be converted to invalid
>     type 2 CharStrings if the glyph program used implicit start points
>     for subpaths.

>     DETAILS:
>     Bug #689055 "pdfwrite creates a bad Type1C font"

>     If a type 1 CharString used an implicit point, either the initial point
>     (0,0) or the point resulting from a closepath, then the type 2 output
>     code duplicated this. Unfortunately this is illegal in type 2 CharStrings
>     where each subpath must begin with one of the 'move' instructions.

>     (gdevpsfx.c) psf_convert_type1_to_type2, create a new boolean variable
>     'need_moveto' initialised to true. When we encounter a move operation,
>     set it to false. When we encounter a closepath, set it back to true.
>     Thus this variable is always true at the beginning of a subpath, and
>     becomes false as soon as a move instruction is encountered.

>     While converting type 1 CharStrings, whenever the current instruction is
>     a line drawing operation, if 'need_moveto' create a move instruction,
>     taking account of any pending glyph widths.

>     This is only performed on the second (conversion) pass through the type 1
>     CharSrtring as we don't need to worry about this during the first (hint
>     collection) pass.

> [src/gdevpsfx.c]

2007-10-26T01:49:56.180182Z Ralph Giles

>     Merge makeset.tcl into makehist.tcl.

> [toolbin/makehist.tcl toolbin/makeset.tcl]

2007-10-26T01:49:54.293117Z Ralph Giles

>     Remove obsolete release and diff scripts.

> [toolbin/3way.tcl toolbin/makefonts.tcl toolbin/maketars.tcl toolbin/makemaster.tcl toolbin/makeset.tcl toolbin/makewin.tcl]

2007-10-26T01:08:04.549848Z Ralph Giles

>     Document how to use -dTTYPAUSE with -dSAFER. Bug 687988.

> [doc/Use.htm]

2007-10-25T22:14:22.288695Z Ralph Giles

>     Correct some gcc warnings.

> [jbig2dec/config.h jbig2dec/jbig2_text.c jbig2dec/jbig2_image.h jbig2dec/jbig2_symbol_dict.c jbig2dec/jbig2_generic.c jbig2dec/jbig2_page.c jbig2dec/jbig2_refinement.c]

2007-10-25T00:30:18.383197Z Ralph Giles

>     Include an example of how to create non-ASCII font names in the cidfmap.
>     Bug 688203.

> [doc/Use.htm]

2007-10-24T23:32:20.291355Z Ralph Giles

>     Append the CUPS font directory to the search path. Bug 689334.

> [src/configure.ac]

2007-10-24T22:46:28.083133Z Ralph Giles

>     Add an XCFLAGS macro to the MSVC build to match the variable of the same
>     name in the unix builds. This is intended mainly for adding preprocessor
>     defines at make time. Bug 689530.

> [src/msvc32.mak]

2007-10-24T22:46:25.428278Z Ralph Giles

>     Only add XLDFLAGS to LDFLAGS temporarily when checking for the
>     additional X libraries. Bug 689411.

> [src/configure.ac]

2007-10-24T18:39:55.448984Z Ralph Giles

>     Use the proper build machinery to link to cups.

>     DETAILS:

>     Previously, the configure script just appended the output of cups-config
>     to CFLAGS and LIBS which could confuse other parts of the build. The
>     LIBS setting was actually ignored by cups.mak which hard coded liking
>     to cups and cupsimage through the genconf -lib option, although it
>     depended on it for the search patch if cups was in a non-standard
>     location.

>     Instead, we parse the output of cups-config to separate the dependent
>     libraries and additional search paths if any, and pass those through
>     to genconf in the intended way. This destroys the order of the link
>     line, but GNU ld, at least, applies all -L paths to all -l libraries,
>     so that should not distrurb the build. We pass any extra include paths
>     in a special variable and use it directly when compiling gdevcups.c to
>     avoid confusing the search path for other components.

>     Configure also used to ignore cups-config if it found cups/raster.h in
>     the current search path. We now prefer cups-config.

> [src/Makefile.in src/configure.ac cups/cups.mak]

2007-10-24T18:39:51.211490Z Ralph Giles

>     Abstract the autoconf build's link line flattening for generic use.

>     DETAILS:

>     The Ghostscript build system expects a list of bare library names
>     for specifying library dependencies through the .dev files to
>     genconf. The configure script had some code to decompose the usual
>     unix-style "-lX11 -lXt" link flags returned by AC_PATH_XTRA.

>     As we've added more optional external libraries to the autoconf
>     build, this has become a general need, so the code is now abstracted
>     into an autoconf macro for use elsewhere in the configure script.

> [src/configure.ac]

2007-10-24T07:31:09.815969Z Ken Sharp

>     Fix (pdfwrite) : An integer arithmetic overflow while converting Type 1 CharStrings into Type 2.

>     DETAILS :

>     Bug #689106 "Wrong charpath direction in PDF"
>     Patch from Rolf Becker with minor improvements.

>     A processing of big integers was implemented in gstype1.c
>     while rendering a glyph, but it was not implemented
>     in pdfwrite while converting a Type 1 font into Type 2.
>     It caused an incorrect glyph outlines embedded into PDF.
>     This patch factors out the old processing as a new
>     function gs_type1_check_float and applies it in gdevpsfx.c .
>     The function prototype is added to gxtype1.h as it needs to be public.

>     The patch also improves comments in code
>     because now we understand better what happens in there.
>     For more details see comments in code.

>     The change to gstype1.c is algorithmically equivalent
>     except inserting a new check for overflow in float2fixed.
>     The new check may fail when the old code
>     renders an incorrect outline.
>     We have no practical cases that demonstrate it.

> [src/gstype1.c src/gdevpsfx.c src/gxtype1.h]

2007-10-23T03:48:59.052392Z Alex Cherepanov

>     Handle yet another type of broken PDF generated by Adobe Acrobat 8.1
>     that lacks startxref operator. Bug 689413, customer 531.

> [lib/pdf_main.ps]

2007-10-21T20:49:29.646397Z Alex Cherepanov

>     Process duplicate entries in PDF 1.5 context stream the same way as
>     the entries from regular streams: the first entry found (i.e. the last
>     in the xref chain) takes efferct. Keep rebuilding logic intact, where
>     the last entry wins. Bug 689513, customer 700.

> [lib/pdf_main.ps lib/pdf_rbld.ps]

2007-10-20T23:14:30.016619Z Alex Cherepanov

>     Check for unbalanced q operators in the pattern stream and add Q as needed.
>     Bug 689523, customer 870.

> [lib/pdf_draw.ps]

2007-10-20T19:14:28.348994Z Alex Cherepanov

>     Make IGC_PTR_STABILITY_CHECK an independent compile-time flag that can be set
>     from the command line without editing gxobj.h .

> [src/gxobj.h]

2007-10-20T16:34:38.276462Z Alex Cherepanov

>     Relax ICCBased color space validation. Don't reject correct PDF files that have
>     ICCBased color space as an alternative color space to another ICCBased color
>     space. Bug 689524, customer 870.

> [lib/gs_icc.ps]

2007-10-20T00:55:55.884848Z Ralph Giles

>     Pass the CFLAGS obtained for fontconfig from pkg-config separately
>     to avoid contaminating the general build.

> [src/Makefile.in src/configure.ac src/unix-aux.mak]

2007-10-20T00:37:23.775560Z Ralph Giles

>     Remove a redundant check for pkg-config.

> [src/configure.ac]

2007-10-20T00:37:19.682121Z Ralph Giles

>     Look for fontconfig even if pkg-config doesn't find it.

>     DETAILS:

>     Like the comment says, pkg-config isn't universally installed,
>     so we should not depend on it. If pkg-config isn't available
>     or doesn't find fontconfig, check for the library and headers
>     it in the standard locations.

> [src/configure.ac]

2007-10-18T18:58:54.836534Z Ralph Giles

>     Install header files as data, not executables. Bug 689466.

> [src/unix-dll.mak]

2007-10-18T00:36:37.403207Z Ralph Giles

>     Remove a spurious CFLAGS instance from the jasper compile line.

>     DETAILS:

>     The definition of CC_ passed from the top level makefile should
>     already include a copy of the CFLAGS for environment overrides,
>     so the duplicate copy here was unnecessary.

>     Furthermore, the second expansion of CFLAGS at the end of the
>     compiler command line could result in picking up a version of
>     the jasper headers installed elsewhere in the system instead
>     of the copy in JASSRC, causing the build to fail on undefined
>     preprocessor symbols, since upstream doesn't have our error
>     reporting callback.

> [src/jasper.mak]

2007-10-18T00:05:55.933230Z Ralph Giles

>     Replace our included libpng with the new upstream 1.2.22 release.

> [libpng]

2007-10-18T00:01:45.449158Z Ralph Giles

>     Move the current copy of libpng out of the way for a pending update.

> [libpng]

2007-10-17T23:04:50.954798Z Ralph Giles

>     Avoid memory corruption with broken files.

>     Patch from the Ubuntu libjasper package.

> [jasper/src/libjasper/jpc/jpc_cs.c jasper/src/libjasper/jpc/jpc_dec.c jasper/src/libjasper/jp2/jp2_cod.c]

2007-10-16T07:54:08.209510Z Ken Sharp

>     ps2write: When encountering font names which contain unfortunate characters
>     such as white space, or delimiters, emit the name as an escaped string and
>     'cvn' instead of a literal name.

>     DETAILS:
>     Bug #689420 "Errors with ps2write and special chars in FontName"

>     Patch from SaGS with some minor improvements.

>     Fonts whose name contains white space, or delimiter characters (eg /,(,[ etc)
>     were being written into the type 1 font stream using the name unchanged. This
>     causes the resulting PostScript to fail on any PostScript interpreter. The
>     exact error varies depending on the placement of the invalid character and
>     the following data.

>     This is now handled by emitting the font name as a string, and using the cvn
>     operator to convert the string to a name, escaping characters if required.
>     Note that both the C portion of the code needs to change, in order to write
>     escaped names, and the PostScript prolog in order to undo any name escapement.

>     1. (gdevpsf1.c) write_font_name, check to see if the font name contains any
>        characters which we need to escape. If so, then use the existing routine
>        's_PSSE_template.process' to convert the name to an escaped character
>        sequence.

>        Update the write_font_name routine so that it optionally writes a name
>        to the output. If the name does not need escaping, then simply prepend a
>        '/' to make a literal name, otherwise append a 'cvn' to convert the
>        escaped string to a name. When writing out the font header we just need
>        the font name as a human readable string. When writing the /FontName
>        entry in the font dictionary we need a PostScript name, either a literal
>        or a PostScript escaped string converted to a name. (see below)

>     2. (gdevpsf1.c) psf_write_type1_font, alter the use of write_font_name in two
>        places. Firstly to emit the name as part of the font comment, secondly to
>        put the name as the value for the /FontName key in the fotn dictionary. In
>        the first case we write it as a simple string, in the second as a name.

>     3. (opdfread.ps) The TypeDameons procedure extracts the FontName from the Font
>        dictionary in the body of the job. Since the FontName can now be escaped,
>        we need to undo the escapement before defining the font. Firstly we define
>        a new procedure 'UnPDFEscape', secondly we call this when dealing with the
>        FontName and the BaseFont keys, in order to convert the escaped name back
>        to a normal name, so that the font can be found with findfont.

> [src/gdevpsf1.c lib/opdfread.ps]

2007-10-16T00:36:28.849878Z Ralph Giles

>     Don't override the memory set by the caller in the JPXDecode stream.

> [src/sjpx.c]

2007-10-16T00:36:27.806530Z Ralph Giles

>     It's the client's responsibility to call the set_defaults
>     method on a new stream. Bug 689362.

>     DETAILS:

>     The JPXDecode stream implementation was calling set_defaults
>     from within its own init method, clobbering the colorspace
>     request passed in through the stream's parameter dictionary.

> [src/zfjpx.c src/sjpx.c]

2007-10-15T22:31:54.394164Z Henry Stiles

>     Error code from clist_decode_segment did not propagate back because
>     the inner automatic variable code shadowed the outer.

> [src/gxclrast.c]

2007-10-15T18:09:18.231759Z Ray Johnston

>     Prevent C-stack overflow caused by infinite recursion. Related to
>     previous fix in same function to access the correct target color
>     procedure.

>     DETAILS:

>     Testing with other problem files detected the recursion. The previous
>     method to access the saved target get_color_comp_index is moved
>     before either use.

>     EXPECTED DIFFRENCES:

>     None.

> [src/gdevp14.c]

2007-10-15T13:11:16.778228Z Ken Sharp

>     pdfwrite: When writing the /CreationDate /ModDate keys in the Info dictionary,
>     properly write the system local time instead of UTC.

>     DETAILS:
>     Bug #688783 "commit 6892 mis-uses the TZ environmental"

>     A rather lengthy thread, but in essence quite simple. A change to calculate
>     the system local time as an offset from UTC, and store this information in
>     the form described in the PDF Reference (Section 3.8.3 "Dates" on p133 of
>     the 1.6 PDF Reference).

>     The patch uses code supplied by SaGS.

>     (gdevpdf.c) pdf_initialize_ids, use the C runtime 'time' and 'gmtime' to
>     determine the difference between local system time and GMT. Use this to
>     calculate the difference (positive, negative, or none) from GMT, and the
>     number of hours and minutes comprising the difference. Use 'localtime' to
>     find the local system date and time.

>     Take all of the information from above, and format the result according to
>     the specification in the PDF Reference:

>     (D:YYYYMMDDhhmmssZhh'mm')

>     Where YYYY=4 digit local time year
>             MM=2 digit local time month
>             DD=2 digit local time day
>             hh=2 digit local time hours (24 hour)
>             mm=2 digit local time minutes
>             ss=2 digit local time seconds
>              Z=offset of local time from UTC
>                Z=no difference
>                +=local time later than UTC
>                -=local time earlier than UTC
>            hh'=hours difference between local time and UTC
>            mm'=minutes difference between local time and UTC

> [src/gdevpdf.c]

2007-10-15T06:43:04.430544Z Marcos Woehrmann

>     Added code to the pxlcolor device (gdevpx.c) to set the color space even
>     if the test for "portrait transformations" fails.

>     DETAILS:

>     The pclxl_begin_image() function performs a rather complicated test to
>     see if the image transformation can be "handled" (line 1434).  If this
>     test fails the routine falls through to using gx_default_begin_image().
>     However, in this case the pcl-xl color space is never set and if
>     the previous color space was eGray the pcl-xl stream will fail with
>     ExtraData (because 3 times as much data as expected will be written).
>     Presumably the inverse is also true, but I don't have a test case for it.

>     The solution is to call pclxl_set_color_space() in the use_default
>     case (a possibly more correct solution would be to call
>     pclxl_set_color_palette()).

> [src/gdevpx.c]

2007-10-12T20:22:08.884187Z Ray Johnston

>     Fix SEGV when clist used with pdf14_cmykspot device.
>     Bug 689493 for customer #190.

>     DETAILS:

>     When the clist is used, the pdf14 device sets the clist color procs
>     (including get_color_comp_index) to it's own procedures, saving the
>     actual target procs. When the Separation name is new, we need to use
>     the saved target procs.

> [src/gdevp14.c]

2007-10-12T16:38:07.833396Z Ray Johnston

>     Fix divide by zero crash. Bug 689493 reported by customer #190.

>     DETAILS:

>     When new_width is 0, just use 1 in the test (works well enough
>     for checking overflow)

> [src/gdevprn.c]

2007-10-11T16:36:26.031981Z Ray Johnston

>     Fix incorrect colors with transparency to cmyk+spot devices (such as tiffsep).
>     Bug 689494 for customer #190.

>     DETAILS:

>     CMYK + Spot colors are subtractive. The blending with the 'bg' color was
>     inverted, causing very strange colors.

>     Note that the pdf14_cmykspot_put_image is VERY inefficient and at the
>     very least should have logic added to write runs of the same color
>     as a wide rectangle (rather than the current 1x1 pixel rectangles).

> [src/gdevp14.c]

2007-10-10T23:02:18.957895Z Igor Melichev

>     Fix (stroking) : Prevent installing an extra clipper device, step 2.

>     DETAILS :

>     Bug 689427 "Superposed clippers".

>     The last patch doesn't fix the problem when stroking
>     a path with a shading color.

>     The new code distinguishes 3 cases :

>     1. When painting happens through low level device methods
>     which don't accept a clipping path. It happens inside
>     stroke_fill, so the new code passes the clipper device to it.

>     2. When the painting happens through fill_path,
>     which does handle a clipping path. It happens inside
>     FILL_STROKE_PATH, so the new code doesn't pass the clipper to it,
>     but passes the clipping path as it worked before the last patch.

>     3. When the stroking algorithm is called from 'strokepath',
>     don't need a clipping at all. This case works as before,
>     but the new code doesn't construct a clipping device.

>     Minor change : Added a new argument 'dev' to the macro
>     FILL_STROKE_PATH to simplify the code understanding and debugging.

> [src/gxstroke.c]

2007-10-10T18:42:35.474048Z Ralph Giles

>     Pass the results of calling cups-config to cups.mak from configure
>     through the top-level makefile rather than calling cups-config directly,
>     so that passing an alternate cups environment to configure works.
>     Bug 689496.

>     DETAILS:

>     This is more consistent, since configure and cups.mak were previously
>     calling cups independently. However, setting the cups environment at
>     the make level my have accidentally worked before; it won't work now.

> [src/Makefile.in src/configure.ac cups/cups.mak]

2007-10-10T17:40:38.235834Z Ralph Giles

>     Turn on keyword substitution on pdf_cslayer.ps. This is the correct fix
>     for the issue mentinoed in r8283. Also set native line endings and
>     remove some spurious executable properties.

> [lib/EndOfTask.ps lib/PDFX_def.ps lib/PDFA_def.ps lib/dumphint.ps lib/pdf_cslayer.ps]

2007-10-10T16:19:23.023493Z Marcos Woehrmann

>     Fixed Id line to make nightly regression run happy.

> [lib/pdf_cslayer.ps]

2007-10-10T15:28:26.622499Z Igor Melichev

>     Fix (stroking) : Prevent installing an extra clipper device.

>     DETAILS :

>     Bug 689427 "Superposed clippers".

>     The old code installs a clipper in gx_stroke_path_only_aux
>     and then (indirectly) calls gx_general_fill_path
>     with passing same clipping path. It caused gx_general_fill_path
>     to install a second clipper with same clipping path.
>     This patch simply passes down a NULL clipping path.

>     Minor change : Added a 'pcpath' argument to the macro
>     FILL_STROKE_PATH for easier understanding and debugging.

> [src/gxstroke.c]

2007-10-10T10:13:45.175824Z Igor Melichev

>     Fix (pdf14 device) : Optimize the buffer backdropping, step 2.

>     DETAILS :

>     1. Intersect the backdrop rectangle with the bbox of a real painting to the transparebcy buffer,
>     which is accummulated from pdf14_fill_rectangle. It reduces the rectangle for a faster blending.
>     1.1. Removed min_int, max_int from pdf14_buf_new against an integer overflow when computing
>     sizes of rectangles.
>     1.2. Do intersect rectangles in In pdf14_put_image, pdf14_cmykspot_put_image, pdf14_custom_put_image.

>     2. dump_planar_rgba still could access outside the buffer due to a recent patch is incomplete.

> [src/gdevp14.c]

2007-10-10T09:38:32.826812Z Igor Melichev

>     Fix (pdf14 device) : Optimize the buffer backdropping, step 1.

>     DETAILS :

>     This change is algorithmically equivalent.
>     It only defines some local variables as a preparation to the next change.

> [src/gdevp14.c]

2007-10-10T08:59:39.164904Z Igor Melichev

>     Fix (pdf14 device) : Don't allocate transparency buffer for bands that appear outside the transparency bounding box.

>     DETAILS :

>     This is an optimization, which should be algorithmically equivalent.

>     For bands outside the transparency bounding box the old code
>     allocated a zero length buffer and performed fake operations with it.

>     The main change is gdevp14.c ln 550.
>     Others prevent an access to the buffer when it is not allocated.

>     Note that in some cases the new check is excessive
>     because (width <= 0 || height <= 0) normally means no buffer.
>     We check for (buf->data == NULL) anyway to simplify the sefity proof
>     and documentation.

> [src/gdevp14.c]

2007-10-10T08:12:49.566532Z Igor Melichev

>     Fix (pdf14 device) : Properly intersect rects when composing transparency buffers (continued 2).

>     DETAILS :

>     Bug 689498 "transparency: The buffer backdroping code can write outside bufers.".
>     Bug 688631 "PDF segfault".

>     This patch ports the revision 7064 changes from pdf14_put_image to
>     pdf14_cmykspot_put_image and pdf14_custom_put_image, which were added
>     after the revision 7064. They need same improvement, which was mised
>     due to a development miscoordination.

>     This change is committed without any testing,
>     because the author has no test cases which involve
>     pdf14_cmykspot_put_image and pdf14_custom_put_image.
>     Possibly they need to build Ghostscript with special options
>     and to run the test case of the bug 688631 with special devices.
>     The bug 689498 is passed to Suport for further processing and testing.

> [src/gdevp14.c]

2007-10-09T19:33:27.492485Z Till Kamppeter

>     On "make soinstall" some files did not get installed.

> [src/unix-dll.mak]

2007-10-09T17:02:49.926924Z Igor Melichev

>     Fix (FAPI / UFST bridge) : A crash when processing an embedded CIDFontType 11.

>     DETAILS :

>     Debugged with running the test case of the bug 689471 with FAPI.
>     Needs an additional change to lib/FAPIconfig for running the test case with FAPI :

>     - /HookDiskFonts        [1 2 9 11 42]  % FontType values for disk PS fonts to be redirected to FAPI.
>     - /HookEmbeddedFonts    [1 2 9 11 42]  % FontType values for embedded PS fonts to be redirected to FAPI.
>     + /HookDiskFonts        [2 9 11 42]  % FontType values for disk PS fonts to be redirected to FAPI.
>     + /HookEmbeddedFonts    [2 9 11 42]  % FontType values for embedded PS fonts to be redirected to FAPI.

>     because UFST still can't handle embedded Type 1.

>     This patch passes impl_PCLchId2ptr as p_PCLglyphID2Ptr argument.
>     We believe it is correct for True Type,
>     but we're not sure about Type 1,
>     because Type 1 composite glyphs refer subglyphs
>     in an inobvious way - see Type 1 specification.

> [src/fapiufst.c]

2007-10-09T08:28:49.108879Z Ken Sharp

>     pdfwrite: Allow downsampling of images in a /Indexed colour space, provided the
>     downsampling type is 'subsample'.

>     DETAILS:
>     Bug 689265 "PDF created by GS 8.57 is much larger than from competitive creator"

>     The original job contains several images, including one large one, which are in a
>     /Indexed colour space. We can't use average or bicubic downsampling with /Indexed
>     colour space, because the colours in the space may not be linear. It ought to be
>     possible to use subsampling though.

>     Where we previously checked the image colour space and decided to disable downsampling
>     if the colour space was /Indexed, we now additionally check the downsampling type
>     and permit it if the type is 'Subsample'.

>     (gdevpdfi.c) pdf_begin_typed_image, check the downsample type as well as the colour
>     space before deciding not to allow downsampling.

>     (gdevpdsi.c) psdf_setup_image_filters, check if the colour space is /Indexed before
>     deciding which set of image parameters to use (2 places). Also, if we do encounter a
>     /Indexed space, make the compression filter into Flate to ensure we don't try and use any
>     kind of JPEG compression, which may not work properly with Indexed spaces, and in any case
>     is not the most appropriate type of compression in this situation.

> [src/gdevpsdi.c src/gdevpdfi.c]

2007-10-09T00:06:24.193850Z Igor Melichev

>     Fix (font emulation) : Could not handle unknown Ordering with FAPI.

>     DETAILS :

>     Debugged with running the test case of the bug 689471 with FAPI.

> [lib/gs_fntem.ps]

2007-10-08T10:05:33.511010Z Ken Sharp

>     pdfwrite: Alter the AIIM URL emitted when creating PDF/A files.

>     DETAILS:
>     Bug #689375 ""

>     When writing PDF/A files we need to put a URL for the AIIM group in the metadata. Previously we were writing 'http://www.aiim.org/pdfa/ns/id.html' which is what Acrobat 7 does, now we write 'http://www.aiim.org/pdfa/ns/id/' which is what Acrobat 8 does.

>     (gzpdfe.c) pdf_write_document_metadata change the URL as above.

> [src/gdevpdfe.c]

2007-10-08T07:13:32.510990Z Ken Sharp

>     pdfwrite: when encountering a glyph in a type 3 font for which no Charproc is defined
>     emit a simple setcachedevice operation instead of an empty stream.

>     DETAILS:
>     Bug #688834 "Undefined characters in Type 3 fonts cause PDF conversion to fail"

>     The original report, based on an older version of pdfwrite, states that an error occurs with
>     pdfwrite when using glyphs from a type 3 font where there is no charproc defined for the
>     glyphs.

>     In fact, with the current version of pdfwrite, no error occurs, but the resulting file
>     causes Acrobat to give warnings and display the result incorrectly. NB other PDF consumers
>     do not behave this way.

>     This appears to be caused by pdfwrite emitting an empty stream (length 0), because no charproc
>     is captured for the glyph (since it has none). For some reason Acrobat takes exception to this.

>     A simple solution is to write a stream which is not empty. The sequence '0 0 0 0 0 0 d1'
>     , a

>     setcachedevice with arguments all 0, resolves the problem.

>     (gdevpdtt.c) In pdf_text_process, after capturing a Charproc for a type 3 font, check the length
>     of the stream. If it is 0 bytes, then emit '0 0 0 0 0 0 d1' and carry on.

> [src/gdevpdtt.c]

2007-10-07T18:09:11.121700Z Igor Melichev

>     Fix (pdfwrite) : Ignore font errors that do not belong to embedded subset.

>     DETAILS :

>     Bug 689068 "ps2pdf13 fails with Error: /invalidfont in --ashow--".

>     The document could successfully rasterize,
>     but failed with invalidfont when converting to PDF.
>     It happened due to a missed glyph,
>     which is not atually used in the doeument.

>     The patch skips font errors that do not belong to the font subset.
>     However if the user requests to embed a complete font,
>     a warning is printed to stderr and the document fails
>     due to the font error as before the patch.

>     Changes :

>     1. gdevpdtb.c : Process a coplete font copy error as explained above.

>     2. gsfont.c : Ignore missed glyphs when computing the "fixed width" font feature.

> [src/gdevpdtb.c src/gsfont.c]

2007-10-04T06:46:54.927607Z Ralph Giles

>     Revert a change inadvertently included r8257. This broke the MSVC
>     build, which does not define CC_SHARED.

> [src/lib.mak]

2007-10-03T17:37:35.315273Z Ray Johnston

>     Revert patch 8268 (restoring the FCOfontmap-* files) and add the Encoding/
>     directory to the RESOURCE_LIST so that it will be include in the %rom%
>     file system. This is the _real_ fix to bug #689050 and explains why the
>     symptoms appeared to be related to having Wingdings installed on the
>     system. Thanks to Henry and Igor in pointing out the incorrect Encoding
>     used in the previous patch that led me to the actual problem.

> [lib/FCOfontmap-PCLPS3 lib/FCOfontmap-PS3 src/int.mak lib/FCOfontmap-PCLPS2]

2007-10-03T04:40:18.040901Z Ray Johnston

>     Fix FCOfontmap-* files so that Wingdings will be found.
>     Bug #689050 for customer #951.

> [lib/FCOfontmap-PCLPS3 lib/FCOfontmap-PS3 lib/FCOfontmap-PCLPS2]

2007-10-03T00:18:12.256656Z Ralph Giles

>     Document the .IgnoreNumCopies device parameter. Bug 689491.

> [doc/Use.htm doc/Language.htm]

2007-10-02T23:55:30.880679Z Alex Cherepanov

>     Add extraction of layer information from Illustratir CS2/CS3 PDF files
>     to the code base but don't run it in the default configuration.

> [src/int.mak doc/Develop.htm lib/pdf_cslayer.ps]

2007-10-02T07:31:58.125500Z Ken Sharp

>     pdfwrite: Convert 'text' followed by 'text charpath stroke' to a single text
>     operation by using text rendering mode 2.

>     DETAILS:
>     Bug #689310 "Offset between text and outline in pdfwrite.dev"

>     Emitting text, followed by the same text as an argument to charpath, and then stroking the
>     resulting path previously resulted in a large path being emitted and stroked in the PDF file.

>     This is inefficient, but worse the path is not grid fitted, whereas the text is. When
>     used to stroke the outline of previously rendered text, either in a different colour or to
>     create a 'bold' effect, the emitted path did not always precisely match the rendered text.

>     This change is to emit this PostScript construct using the closest available match in PDF,
>     which is the text rendering mode. There are two parts to this change, firstly to identify
>     when a path is the result of a charpath, and secondly to merge text followed by charpath/stroke
>     operations into a single operation on output.

>     1. (gzpath.h) Add a new member 'last_charpath_segment' to the gx_path_s structure. Update the
>        path garbage collection code for relocation of new variable.

>     2. (gxpath.c) Initialise the new member 'last_charpath_segment' to 0 in
>        gx_path_init_contents, and also in path_alloc_copy to prevent copies being identified as
>        the result of a charpath.

>     3. (gxchar.c) We need to be able to tell if a path was the result of a charpath. To do this
>        we store the final segment of a path in 'last_charpath_segment' of the path
>        structure during show_finish, if the current operation was a charpath. See also item 11.

>     4. (gdevpdfx.h) Add a new member 'last_charpath_op' to the gx_device_pdf_s structure, to
>        hold the boolean argument associated with a charpath operation. Also add to the
>        pdf_substream_s structure to allow us to save and restore this value on entry to or
>        exit from a PDF substream.

>     5. (gdevpdti.c) Save and restore the value of last_charpath_op in pdf_enter_substream
>        and pdf_exit_substream.

>     6. (gdevpdfx.h) Add a new member variable 'last_charpath_op' to the 'pdf_substream_save_s'
>        structure to allow us to save and restore the last_charpath_op as noted above.

>     7. (gdevpdtt.c) During gdev_pdf_text_begin, if the operation is a charpath, check the
>        following conditions, if met then store a copy of the charpath boolean variable in
>        a new member of the gx_device_pdf_s structure.
>            1. Operation must be a charpath
>            2. Current path must be empty (can't handle charpath concatenated to existing path)
>            3. The font being used for the current text must be the same as the font used for
>               the previous stored (but not yet emitted) text.
>            4. The initial point of the text for the charpath must match the initial point of
>               the previous stored text.
>            5. The text bytes must be the same as the previous stored text.
>            6. The point size of the text must match the previous stored text.
>        Also, move the calculation of the font point size out of pdf_update_text_state so that
>        we can calculate the size in pdf_compare_text_state_for_charpath' defined in 9 below
>        without duplicating code.

>     8. (gdevpdtt.h) Prototype 'pdf_calculate_text_size'

>     9. (gdevpdts.c) Add a new function 'pdf_compare_text_state_for_charpath' to do the
>        checking noted above. The pdf_text_state_s structure is not defined publicly, so
>        we need code to access its members. Also add a function 'pdf_modify_text_render_mode'
>        which will attempt to add a rendering mode (stroke, fill or clip) to existing text
>        by updating the existing text rendering mode. Returns 0 if the existing text cannot
>        be modified, and we fall back to emitting a path and stroke.

>     10. (gdevpdts.h) Add prototypes for the functions required in 9.

>     11. (gdevpdfd.c) In pdf_stroke_path, if the 'last_charpath_op' member of the pdf device
>        structure is set, perform some more checks (below) and if passed, set the text render
>        mode of the stored text, set the stroke colour, set the line width, and force the stored
>        text to be emitted. This conveniently results in a gsave/grestore pair round the
>        graphics state changes.
>           1. The last charpath operation must have been 'false charpath'
>           2. There must be a non-empty path (result of the charpath operation)
>           3. The 'last_charpath_segment' stored in the path must match the actual last segment
>              in the path. (can't handle path segments added to the result of a charpath)

>     12. (gdevpdfg.h) Make the pdf_reset_color routine public, as we need to be able to set the
>        colour from pdf_stroke_path.

>     13. (gddevpdfg.c) We need to be able to set a stroke colour while in a TEXT context,
>        previously the routine pdf_reset_color, which emits colours and spaces, immediately
>        switched to a STREAM context, which caused pending text to be flushed. pdf_reset_color
>        was only called from two places, pdf_set_drawing_color and pdf_set_pure_color. The
>        switch to a STREAM context has been moved to these routines, leaving pdf_reset_color to
>        actually do the work without worrying about the context.
>        It was found necessary to also reproduce some checks before switching context, to
>        prevent unnecessary context switches.
>        Removed unused local variable 'process_color' from pdf_reset_color.

>     There is scope for additional enhancement with this code. Presently there is no attempt to
>     deal with 'charpath gsave fill grestore stroke' constructs, nor to handle clipping paths
>     resulting from charpath. There may be other possibilities.

> [src/gdevpdfx.h src/gxchar.c src/gdevpdts.c src/gdevpdtt.c src/gzpath.h src/gdevpdfd.c src/gdevpdts.h src/gdevpdfg.c src/gdevpdti.c src/gdevpdtt.h src/gdevpdfg.h src/gxpath.c]

2007-10-01T23:02:53.086636Z Ralph Giles

>     Have mkromfs use $(GS_INIT) instead of hard-coding gs_init.ps. It was
>     intended that this be part of r8257.

> [src/int.mak]

2007-10-01T23:00:35.110412Z Ralph Giles

>     Update pkg-config support in the ijs tree.

> [ijs/Makefile.am]

2007-10-01T22:59:59.038063Z Ralph Giles

>     Improve portability in the autoconf build. Solaris doesn't support 'grep
>     -q'. Bug 689490.

> [src/configure.ac]

2007-10-01T06:26:21.808008Z Suzuki Toshiya

>     Fix: (TT font handler) : Use given prebuilt_encoding when Apple Roman TrueType cmap subtable is chosen

>     DETAILS:
>     As current implementation assumes /prebuilt_encoding[] is
>     compatible with WinAnsiEncoding when Microsoft UCS2 TrueType
>     cmap subtable is chosen, current implementation assumes
>     /prebuilt_encoding[] is same with MacRomanEncoding when
>     Apple Roman TrueType cmap subtable is chosen.
>     /prebuilt_encoding[] is completely ignored and the inverse
>     of MacRomanEncoding is used. Therefore, when Apple Roman
>     TrueType cmap subtable is chosen but /Encoding is
>     StandardEncoding or PDFDocEncoding, some characters are
>     shown by wrong glyphs. This patch uses /prebuild_encoding[]
>     if it's given, when Apple Roman TrueType cmap subtable is
>     chosen.

>     According to PDF Ref 1.7 p. 431, MacRomanEncoding does not
>     cover all characters in Apple Roman TrueType cmap subtable,
>     16 characters are missing. To exploit the glyphs as many
>     as possible via Apple Roman TrueType cmap subtable, this
>     patch introduces "MacRomanEncodingForTrueType" including
>     missing 16 characters. By this change, 16 glyphnames
>     can be exploited via Apple Roman TrueType cmap subtable.

>     There might be broken TrueType fonts that use the names
>     in MacRomanEncoding at incompatible 8bit charcode. The
>     text drawn by such fonts would be broken, the results are
>     unexpected.

> [lib/gs_ttf.ps]

2007-10-01T06:19:18.139797Z Suzuki Toshiya

>     Fix: Preprocess the glyphnames in prebuilt_encoding by AdobeGlyphList for Microsft UCS2 cmap subtable

>     DETAILS:
>     According to PDF Ref 1.7 p. 430, Adobe modern products
>     always prioritize Microsoft UCS2 TrueType cmap subtable
>     regardless with /Encoding, as far as the font is declared
>     as Nonsymbolic by /Flags. For example, even if /Encoding
>     is MacRomanEncoding, Microsoft UCS2 TrueType cmap subtable
>     is prioritized than Apple Roman TrueType cmap subtable.
>     The encoding of Microsoft UCS2 TrueType cmap is not a
>     superset of MacRomanEncoding, see PDF Ref 1.7 Appendix D.
>     Current implementation expects the content of /Encoding
>     is always compatible with chosen TrueType cmap subtable,
>     thus unexpected mismatching causes loss of glyph like:
>     bug 689351 "Content Loss for certain Embedded Type42 Glyphs with gs8.57"

>     When Microsoft UCS2 TrueType cmap subtable is chosen,
>     the glyphnames used in /prebuilt_encoding[] should be
>     preprocessed: the glyphnames changed to the charcode
>     compatible with Microsoft UCS2 encoding scheme, before
>     combining with charcode-glyph mapping table in Microsoft
>     UCS2 TrueType cmap subtable. The preprocessing should
>     be done by AdobeGlyphList that maps known glyphnames
>     to UCS2 charcode. The unknown glyphnames are left to
>     second processing in /.pdfmapchars. This preprocess
>     fixes bug 689351.

>     There might be broken TrueType fonts that use the names
>     in AdobeGlyphList at incompatible UCS2 charcode. The text
>     drawn by such fonts would be broken, the results are
>     unexpected.

> [lib/gs_ttf.ps]

2007-09-30T19:46:25.258028Z Alex Cherepanov

>     Add an option that controls rendering of PDF annotations. By default
>     annotations are rendered as before.

> [lib/pdf_main.ps doc/Use.htm]

2007-09-29T05:53:34.943145Z Alex Cherepanov

>     Following the PDF spec, don't use .notdef glyph in Type 3 font.
>     .notdef may not be present at all. Bug 689475

> [lib/pdf_font.ps]

2007-09-27T23:06:07.081517Z Ralph Giles

>     Remove the mkromfs code under 'make clean'. Bug 689474.
>     Also, use the GS_INIT define instead of hard-coding gs_init.ps
>     as the root of the postscript library code.

> [src/lib.mak src/gs.mak]

2007-09-27T20:30:39.973443Z Ralph Giles

>     Improve shared build support on MacOS X.

> [src/configure.ac src/unix-dll.mak]

2007-09-27T20:26:51.405933Z Ralph Giles

>     Install iapi.h and ierrors.h as part of the soinstall makefile target.
>     Bug 689466.

> [src/macosx.mak src/Makefile.in src/unix-dll.mak src/unix-gcc.mak]

2007-09-27T20:20:46.283268Z Ray Johnston

>     Prevent BandWidth from being set smaller than the page width. Fixes
>     crash reported in bug #688734.

> [src/gxclist.c]

2007-09-26T09:48:55.994917Z Igor Melichev

>     Fix (Windows installer) : MSVC can't build dwinst.c .

>     DETAILS :

>     A recent patch erroneusly replaced 'private' keyward in a C++ class definition.

> [src/dwinst.h]

2007-09-26T04:37:20.025441Z Alex Cherepanov

>     Fix multiple inclusion of page objects in the optimized PDF file.
>     Extend special handling of page objects to Annots and AcroForm
>     object enumeration. Bug 689292, customer 932.

> [lib/pdfopt.ps]

2007-09-25T13:31:24.199299Z Ralph Giles

>     Replace the 'private' define with the now standard C keyword 'static'.

>     DETAILS:
>                                                                                     The compilers we support have supported static for some time now, so
>     idiomatic, and removes one of the obstacles to compiling Ghostscript
>     as C++.

>     The patch also removes support for compilation with -dNOPRIVATE, which
>     is not longer necessary with modern debuggers.

> [src/gdevm48.c src/idstack.c src/gdevmsxf.c src/gdevrinkj.c src/gdevmem.c src/gdevmem.h src/gdevwdib.c src/gxoprect.c src/gdevsunr.c src/zvmem.c src/gdevpdtc.c src/gstrap.c src/gsfcmap1.c src/gxxfont.h src/gswts.c src/gsstate.c src/gdevlbp8.c src/zcsdevn.c src/gdevdm24.c src/zcontext.c src/gxdhtserial.c src/gdevpdts.c src/gdevcljc.c src/iscanbin.c src/gdevmiff.c contrib/gdevlx7.c src/gxclutil.c src/gp_mshdl.c src/zfont.c contrib/japanese/gdevml6.c src/zarray.c src/gxdevcli.h src/gdevpe.c src/zchar42.c src/gsfont0.c src/gscscie.c contrib/lips4/gdevlips.c src/gdevwts.c src/zdfilter.c src/icfontab.c src/zht1.c src/zdevcal.c src/zpcolor.c src/gdevpdfi.c src/zcssepr.c src/sdcparam.c contrib/gdevcd8.c src/bcwin32.mak src/zdps1.c src/gdevokii.c src/gdevpdtd.c src/zcfont.c src/zhsb.c src/gdevprna.c src/zcolor.c src/gxhtbit.c src/sfxfd.c src/zupath.c contrib/lips4/gdevl4v.c src/gdevpdtt.c src/gpmisc.c src/gdevpbm.c src/ireclaim.c src/gdevmrun.c src/gconf.c contrib/japanese/gdevnpdl.c src/zfbcp.c contrib/japanese/gdevmag.c src/gserver.c src/gp_psync.c src/gdevcmap.c src/zht2.c src/gdevpdfj.c src/zfarc4.c src/gp_os2pr.c src/gdevwprn.c src/gdevpsd.c src/gsiomacres.c src/gxclfile.c src/gxpdash.c src/ztrap.c src/gxfilltr.h src/gdevpdte.c src/gdevdevn.c doc/Drivers.htm contrib/japanese/gdevalps.c src/gsgcache.c src/zfile.c src/gdev4693.c src/gsptype1.c src/gxchar.c src/gxclbits.c src/zfcid0.c src/gsfcid2.c src/zgstate.c contrib/gomni.c src/gsalloc.c src/zfontenum.c src/gdevmeds.c src/gdevmpla.c src/gdev4081.c src/gscicach.c src/watclib.mak src/gxclzlib.c src/istack.c src/zfont0.c src/zmath.c src/gdevpdfk.c src/gdevhit.c src/gxclimag.c src/gxhintn1.c src/gxfillts.h src/gdevpdtf.c src/gdevddrw.c src/gschar.c src/gxht.c src/gdevpsfm.c src/sarc4.c src/gdevpsdp.c src/gxcht.c src/gsptype2.c src/gdevpsu.c src/gdevxalt.c src/gdevclj.c src/zvmem2.c src/zfcid1.c src/gstrans.c contrib/gdevln03.c src/gstype2.c src/icontext.c src/zstring.c src/zfont32.c src/gzspotan.c src/gxclip2.c src/gdevdrop.c src/gp_macio.c src/sbhc.c src/scfd.c src/gsdps.c src/zfont1.c src/spngp.c src/gdevcgml.c src/gdevpx.c src/gsmatrix.c src/gdevl256.c src/igcref.c src/zcharx.c src/gxtype1.c src/zdouble.c src/spdiff.c src/gdevcp50.c src/gsmemret.c src/gdevpdtw.c src/gxclip.c src/sfilter1.c src/iname.c src/zmedia2.c src/gxiscale.c src/gxpcmap.c src/gdevnfwd.c src/zcontrol.c src/gdevxcmp.c src/gsfcmap.c src/scfe.c src/zfont2.c src/gdevlj56.c src/gxp1fill.c src/gsciemap.c src/gdevhl7x.c src/zdscpars.c src/gdevos2p.c src/gsparam.c src/gdevpdfm.c src/gp_unix_cache.c src/imain.c src/gdevwpr2.c src/zfilter2.c src/zfont42.c src/zchar.c src/smd5.c src/gdevsun.c src/ztrans.c src/sjpx.c src/zcsindex.c src/gdevrops.c src/gxipixel.c src/zcidtest.c src/sfilter2.c src/gdevijs.c src/gdevsnfb.c src/gdevifno.c src/gscrd.c src/gxmclip.c src/gdevjpx.c src/gdevcslw.c src/zfdctd.c src/zdps.c contrib/gdevhl12.c src/gdevdsp.c src/zmatrix.c src/gdevescp.c src/gsiodev.c src/igc.c src/gdevpipe.c src/msvc32.mak src/gdevmacxf.c src/gsfunc0.c src/gdevsvga.c src/gdevpdti.c src/zdosio.c src/gdevepsn.c src/gsparam2.c src/gdevpsf1.c src/gdevpsds.c src/zfsample.c src/zfdecode.c src/gsstruct.h src/siscale.c src/gxfill.c src/gsdsrc.c src/gximag3x.c src/gxclread.c src/dwtrace.c src/gdevmswn.c src/gdevjpeg.c src/siinterp.c src/gdevbbox.c src/gsdll.c src/gspath1.c src/gdevtfax.c src/gdevpjet.c src/gdevphex.c src/sjpegc.c src/gshtscr.c src/zfdcte.c src/gsnogc.c src/zfcmap.c src/gdevbit.c src/gdevfax.c src/gdevbmpa.c src/gsequivc.c src/gp_wsync.c src/gsdevice.c src/gxclmem.c src/gscparam.c src/gshtx.c src/gdevsj48.c src/gdevpdfo.c src/sdctd.c src/gsmemory.c contrib/japanese/gdevfmlbp.c src/gdevcdj.c src/scfdgen.c src/ttcalc.c src/gdevtknk.c src/gdevpsf2.c src/gxidata.c src/gsroptab.c src/gdevm1.c src/gsistate.c src/os2.mak src/sstring.c src/gscolor2.c src/gxpath.c src/scfparam.c src/gdevupd.c src/interp.c src/gsmalloc.c src/zcrd.c src/ttfmain.c doc/C-style.htm src/gdevm40.c contrib/japanese/dviprlib.c src/gsiodisk.c src/gdevpsim.c contrib/japanese/dviprlib.h src/gdevpcfb.c src/gdevvec.c src/gp_msprn.c src/gdevmgr.c src/sdeparam.c src/gxacpath.c src/gdevpdfp.c src/ziodev.c src/gslib.c src/gdevimgn.c src/gdevvglb.c src/sdcte.c src/gsovrc.c src/gxshade1.c src/gxccache.c src/gdevm32.c src/gxfdrop.c src/gp_unifs.c src/gsparams.c src/gxhintn.c src/gsiorom.c src/gdevbjcl.c src/dvx-gcc.mak src/gdevpsdu.c src/gp_mswin.c src/gdevm2.c src/gspath.c src/gdevwddb.c src/gp_os2.c src/zcolor1.c src/gxpcopy.c src/gdevdjet.c src/gdevstc.c src/ialloc.c src/gxfapiu.c contrib/japanese/gdevlbp3.c src/zpath1.c src/gdevm24.c contrib/eplaser/gdevescv.c contrib/gdevxes.c src/ilocate.c src/gxdcolor.c src/gdevpm.c src/gdevbmp.c src/gschar0.c src/gdevbmpc.c src/zdevice.c src/gscie.c src/gdevsppr.c src/igcstr.c src/gxi16bit.c src/gdevn533.c src/idebug.c src/gsht.c src/gsncdummy.c src/gsfunc3.c src/gdevm16.c src/gdevperm.c src/genconf.c src/zfilter.c src/gstype42.c src/sa85d.c src/sbcp.c src/zcolor2.c src/gdev3b1.c src/gdevtrac.c src/gp_ntfs.c src/gdevatx.c src/zfproc.c src/genht.c src/zgeneric.c src/gs.c src/gxclrect.c src/zdevice2.c src/gsshade.c src/sjbig2.c src/gdevpdfb.c src/gscrdp.c src/msvclib.mak src/sjbig2.h src/gxclrast.c src/gsicc.c src/zcid.c src/zfile1.c src/gdevp2up.c src/zimage3.c src/gdevo182.c src/zarith.c src/gdevpdfr.c src/zcspixel.c src/gximage1.c src/gdevppla.c src/zmisc1.c contrib/gdevop4w.c src/wccommon.mak src/gsfunc4.c src/gxclpath.c src/gxcmap.c src/gxfcopy.c src/gdevpsft.c src/gdevtfnx.c src/gsmisc.c src/gxicolor.c src/zpath.c src/gdevm4.c contrib/opvp/gdevopvp.c src/gxfillsl.h src/zcolor3.c src/gxpageq.c src/gsdparam.c src/gxcpath.c src/gdevprn.c src/gdevlxm.c contrib/japanese/gdevdmpr.c src/gdevcif.c src/gxdevndi.c src/gdevprn.h src/gdevpdfc.c contrib/gdevgdi.c src/gdevabuf.c src/gdevherc.c src/gdevsgi.c src/zcie.c src/gdevsco.c src/stream.c src/gdevdflt.c src/zcharout.c src/gdevepsc.c src/gdev8510.c src/gximage2.c src/srld.c src/zht.c src/zncdummy.c src/gxstroke.c src/gxshade4.c contrib/gdevlx32.c src/zmisc2.c src/iparam.c src/sjpx_luratech.c src/zrelbit.c src/iinit.c src/gdevxini.c src/gxclist.c contrib/japanese/gdevmjc.c src/watcw32.mak src/gxccman.c src/gsalphac.c src/gdevpsfu.c src/gxshade.c contrib/japanese/gdevmjc.h src/gdevlp8k.c src/zfunc.c src/gsclipsr.c src/idict.c src/ttfmemd.c src/gscoord.c contrib/japanese/gdevrpdl.c src/genarch.c src/ztype.c src/gdevxxf.c src/zshade.c src/gdevpdfd.c src/gdevdgbr.c src/gdevmr2n.c src/gdevxcf.c src/gdevcfax.c src/zicc.c src/zchar1.c src/vdtrace.c src/gscdevn.c src/iscan.c src/gsnotify.c src/gdevpdft.c src/gximage3.c src/gdevpsdi.c src/srle.c src/zfilterx.c contrib/gdevlx50.c src/shcgen.c src/zmisc3.c src/zfapi.c src/zfunc4.c contrib/gdevbjc_.c src/gscpixel.c src/ziodev2.c src/gsiodevs.c src/zmisc.c src/gdevplnx.c src/gxttfb.c src/simscale.c src/zfzlib.c src/Makefile.in src/dscparse.c src/gscsepr.c src/gdev3852.c src/iutil2.c src/dscparse.h src/gsimage.c src/gxwts.c src/gstext.c contrib/japanese/gdevj100.c src/msvccmd.mak src/gdevpdfe.c src/gsflip.c contrib/lips4/gdevlprn.c src/gdevadmp.c src/sidscale.c src/zchar2.c src/zdpnext.c src/geninit.c src/zusparam.c src/gdevjbig2.c src/gdevpdfu.c src/gximage4.c contrib/gdevdj9.c src/gxshade6.c src/gdevp14.c contrib/lips4/gdevl4r.c src/dwinst.h src/gdevpdf.c src/macosx.mak src/zpacked.c src/ifont.h src/zfmd5.c src/gp_dosfe.c src/iutil.c src/gdevpng.c src/zrop.c src/zalg.c src/zfjpx.c src/gzpath.h src/sfxstdio.c src/gspaint.c src/sjbig2_luratech.c contrib/japanese/gdev10v.c contrib/gdevmd2k.c src/sjbig2_luratech.h src/gdevccr.c src/gdevdcrd.c src/zbseq.c src/ziodevsc.c src/imainarg.c src/zfrsd.c src/gdevl31s.c src/gdevdjtc.c src/spprint.c src/gdevpcx.c src/zfileio.c src/zbfont.c src/slzwd.c contrib/japanese/gdevespg.c src/unix-gcc.mak src/gdevpdfv.c src/gxpflat.c src/gxifast.c src/zsysvm.c src/gsimpath.c src/gdevx.c contrib/gdevbjca.c src/gsmemlok.c src/sbwbs.c src/gximage.c src/gdevstc4.c src/ziodevs.c src/unixansi.mak src/gdevpsfx.c src/szlibd.c src/gscspace.c src/gdevimdi.c src/gdevdfax.c src/gdevm8.c src/gdevpnga.c src/gsropc.c src/zstack.c src/gsfcid.c src/gsfont.c src/isave.c src/zimage.c src/gdevm64.c src/gdevcgm.c src/zdict.c src/zfimscale.c src/gdevtsep.c src/gsfont0c.c src/iccfont.c src/gsht1.c src/gdevpdfg.c contrib/japanese/gdevp201.c src/gdevps.c src/gspcolor.c src/gxi12bit.c src/gxcllzw.c src/zfjbig2.c src/gdevpdtb.c src/gsdps1.c src/gdevs3ga.c src/slzwe.c src/gshsb.c src/gscolor.c src/smtf.c src/ztoken.c src/gxpaint.c src/x_.h src/gdevtifs.c src/zchar32.c src/seexec.c src/gdevm56.c src/spsdf.c src/gximono.c src/fapiufst.c src/szlibe.c src/gxctable.c src/gp_vms.c src/gp_iwatc.c src/gp_os9.c src/gdevbj10.c src/gxclipm.c src/zpaint.c src/gdevmac.c src/stdpre.h src/iplugin.c contrib/japanese/gdevfmpr.c src/gsgdata.c src/gdevmac.h]

2007-09-24T03:52:18.847453Z Alex Cherepanov

>     Ignore color operations in uncolored type 3 font in PDF files for
>     compatibility with Acrobat Reader 6 and higher.
>     Bug 689302, customer 870.

> [src/int.mak lib/pdf_draw.ps src/zchar.c]

2007-09-20T12:15:52.643667Z Igor Melichev

>     Fix : A crash in garbager after clist playback fails in image.

>     DETAILS :

>     This problem was occasionally detected when disk overflow happens with
>     the test case of the bug 689440.

>     device_clist_enum_ptrs, device_clist_reloc_ptrs process
>     gx_device_clist::writer.clip_path when image_enum_id is not zero.
>     The clist playback code sets it when processing an image.
>     We guess it was done to avoid redundant clist writing,
>     and we think it's not a best way to do that.

>     If an image processing fails with an error,
>     the old code  does not reset image_enum_id.
>     Later (when the interpreter closes)
>     the garbager processes gx_device_clist::writer.clip_path .
>     But in the test case it appears to be a pointer from global memory
>     to local memory, and its relocation appears wrong.
>     A crash happens while validating the heap after the relocation.

>     We're not sure why gx_device_clist::writer.clip_path
>     needs to be set between image plane data portions,
>     and why the garbager methods are coded to process it.
>     We guess all these manipulations are wrong,
>     and a right way should be to call cmd_check_clip_path
>     in clist_image_plane_data.

>     See also comment in cmd_check_clip_path :
>     "The clip path might have moved in memory".
>     We guess it assumes that the pointer is not relocated
>     when image_enum_id is zero and the ppointer is set.
>     We guess it should be regular assumption
>     for all cases, and the clist device garbager methods
>     must never process it.

>     This patch applies a minimal change to prevent the crash,
>     and does not close other suspections.
>     The change simply closes the image enumerator
>     when writing to it ends with an error.

> [src/gxclrast.c]

2007-09-20T08:49:49.922199Z Igor Melichev

>     Fix (pdfwrite) : Allow image encoding filter initialization with no parameters passed from the client.

>     DETAILS :

>     Bug 689458 "pdfwrite image crash (pcl and xps)".

>     The change 6122 doesn't account that some client
>     may pass no parameters for filter initialization.
>     Fixing it now and improve the documentation.

> [src/gdevpsdi.c]

2007-09-18T19:11:21.591397Z Ralph Giles

>     Update the build instructions to reflect current practice of shipping
>     all the 3rd party libraries we depend on. Bug 689446.

> [doc/Make.htm]

2007-09-18T19:01:34.199941Z Ralph Giles

>     Correct some documentation errors. Bug 689433.

> [doc/Projects.htm lib/ps2pdf.cmd doc/Use.htm lib/ps2pdf.bat doc/Ps2pdf.htm]

2007-09-18T17:32:31.734909Z Ralph Giles

>     Remove obsolete font encoding and compilation instructions from the
>     documentation. Bug 689432.

> [doc/Fonts.htm]

2007-09-18T15:41:08.152952Z Igor Melichev

>     Fix : The interpolation of imagemask must not apply to high resolution images (continued).

>     DETAILS :

>     Fixing an inaccuracy in a comment in the last patch.

> [lib/gs_img.ps]

2007-09-18T15:33:51.055573Z Igor Melichev

>     Fix : The interpolation of imagemask must not apply to high resolution images.

>     DETAILS :

>     Bug 689249 "Major performance degradation rendering PDF",

>     The revision 7123 implements a conversion of imagemask
>     into a bigger image with a smoother pixel granularity.
>     Actually the conversion isn't useful for high resolution images
>     which map an image pixel into a small number of device pixels.
>     This patch implements such check and it apparently helps for pdfwrite.

>     Note it includes an arbitrary threshold,
>     which may need further adjustment.
>     See comment in code.

> [lib/gs_img.ps]

2007-09-14T10:17:07.152885Z Igor Melichev

>     Banding : Extend clist language with trapezoids, linear color trapezoids and linear color triangles (continued 8).

>     DETAILS :

>     Bug 689436 "pattern rendering regression with revision 8095".

>     Do not write tile phase to clist before trying to write the color.
>     If the latter fails, the phase may become wrong due to
>     overloading cmd_opv_set_tile_phase with tile phase and device halftone phase.

>     With the test case the old code, when writing a trapezoid to clist,
>     first writes halftone phase, then fails to write the pattern color
>     and falls back to gx_default_fill_trapezoid.
>     The latter writes strip_copy_rop with it own phases.
>     But the clist reader expects strip_copy_rop phase to be written
>     *after* the tile header, so the reader misses the phase sychronizm.

>     The fix simply delays writing the phase after the color is written.

> [src/gxclpath.c]

2007-09-14T05:23:52.359324Z Alex Cherepanov

>     Add recognition of a CFF file fith the extended header = <01000C02>.
>     Bug 689449, customer 1110.

> [lib/pdf_font.ps lib/gs_cff.ps]

2007-09-13T08:30:48.823871Z Ken Sharp

>     Update pdfwrite to handle type 0 fonts with type 1 or type 2 descendant fonts (continued).

>     DETAILS:
>     Bug #689212 "irregular baselines - gs pdfwrite changes CFF to Type 3". There are no functional changes, the new code behaves the same as the old. The
>     temporary buffer allocated in pdf_text_process is used to hold the list of glyph
>     name indices, and the working buffer of indices for pdf_obtain_font_resource_unencoded,
>     rather than allocating new memory. This considerably simplifies the clean-up on
>     error in scan_cmap_text.

>     1. gdevpdtt.c In pdf_text_process, ensure that enough memory is available in the
>        temporary buffer. We need to promote character codes to glyph name indices, so
>        we need storage for as many glyph name indices as there were input character
>        codes. In addition, we need a temporary buffer of the same size for
>        pdf_obtain_font_resource_unencoded (maximum required) so we need to double this amount.

>     2. Update process_cmap_text to pass the buffer allocated in pdf_text_process, and
>        passed as an argument to process_cmap_text, to scan_cmap_text.

>     3. Alter the definition of scan_cmap_text to take the temporary buffer as an
>        argument. Modify the code in scan_cmap_text to use the temporary buffer rather
>        than allocating new space. Remove all the code for allocating and especially freeing
>        the temporary memory. Some corrections to indenting also performed here.

> [src/gdevpdtc.c src/gdevpdtt.c]

2007-09-11T19:29:17.888456Z Igor Melichev

>     Fix (filling algorithm) : Split big segments before filling a path.

>     DETAILS :

>     Bug 689397 "Infinite loop is PS ATS file tp pcxcmyk device."

>     The old code didn't split big segments due to an inaccurate coding.
>     It caused a fixed overflow with in a coordinate compitation
>     and a loop of about 2^30 steps.

> [src/gxpcopy.c]

2007-09-10T08:31:42.651229Z Ken Sharp

>     Update pdfwrite to handle type 0 fonts with type 1 or type 2 descendant fonts.

>     DETAILS
>     Bug #689212 "irregular baselines - gs pdfwrite changes CFF to Type 3"

>     There was previously no code in pdfwrite to handle type 0 fonts with type 1 descendant
>     fonts. This caused pdfwrite to 'fall back' to the default implementartion which converts
>     glyphs to a type 3 bitmap font.

>     This change is to enable scalable fonts to be embedded in the output. NB it is not
>     possible, in PDF, to construct a type 0 font with anything other than CIDFonts as
>     descendants, and we must therefore output one or more type 1 fonts to do the job.

>     1. (gdevpdtt.c) in scan_cmap_text add a case to handle a type 1 descendant font. The main
>         work is done in this routine; we create a list of glyph name indices representing
>         each of the input character codes and later we use pdf_obtain_font_resource_unencoded
>         and the TEXT_FROM_GLYPHS operation to mark the font usage, and create an 'encoded'
>         string for output.

>         If font->procs.next_char_glyph returns a glyph name index, then we simply add it to
>         our list, if it returns a character code (a CMap can map a character code in the type
>         0 font to a character code in a descendant font) then we use the descendant font
>         'procs.encode_char' to get a glyph.

>         Once we have a complete list of glyphs, we pass it to
>         pdf_obtain_font_resource_unencoded to add the glyphs to the encoding, and return a
>         string where the character codes match the newly created/modified encoding.

>         Finally we pass the encoded string and glyph list to process_text_modify_width, using
>         the descendant font.

>         A couple of minor points; its possible to change descendant fonts in the middle of a
>         string, and we need to cope with that, hence the copying of the last glyph in the list
>         when a font_change occurs. Its possible to return a different pdfont if we run out of
>         encoding positions in the current one, which can result in multiple type 1 fonts in
>         the output.

>     2. We need to use the function adjust_first_last_char, which was defined private in
>        gdevpdte.c, so this has been made public.

>     3. A prototype for adjust_first_last_char has been added to gdevpdtt.h

>     4. The function reserve_char_code_in_pdfont was written to handle single glyphs, it can
>        now be called with multiple glyphs. The loop for re-using positions in the encoding
>        with /.notdef codes didn't use the 'last_reserved_char' argument, which meant that it
>        kept returning the same position. To prevent this it now pays attention to the
>        'last_reserved_char' argument.

>     5. Finally, the routine pdf_make_text_glyphs_table_unencoded, which calls
>        reserve_char_code_in_pdfont also did not previously expect to be called with multiple
>        glyphs. The loop below do_unkown has been modified to use a local variable, instead of
>        pdfont->u.simple.last_reserved_char. THis means that, should an error occur, the value
>        of pdfont->u.simple.last_reserved_char will not be modified.

> [src/gdevpdtc.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdtt.h]

2007-09-09T00:53:12.649192Z Alex Cherepanov

>     Make pswrite and epswrite devices generate proper line-interleaved image
>     stream even when they receive several scan lines at once. This happens when
>     the source image operator takes large strings as multiple data sources.
>     Bug 688200, customer 632.

> [src/gdevps.c]

2007-09-08T22:31:20.200765Z Alex Cherepanov

>     Declare Ghostscript as _LARGEFILE64_SOURCE program, i.e. request transitional
>     interface to large file support. Check for mkstemp64() availability specially.

> [src/Makefile.in src/configure.ac src/stdpre.h src/gp_unifs.c]

2007-09-08T21:59:54.482448Z Alex Cherepanov

>     Include our std.h header first to ensure consistent type definitions in
>     contributed files. This is required on HP-UX with aC++ compiler.

> [contrib/gomni.c contrib/pcl3/eprn/pagecount.c contrib/pcl3/src/pclcap.c contrib/gdevlx50.c contrib/opvp/gdevopvp.c contrib/pcl3/eprn/mediasize.c]

2007-09-08T17:05:59.540260Z Till Kamppeter

>     Reflect in the PPD files that the CUPS support comes with GPL Ghostscript now and not with ESP Ghostscript.

> [cups/pxlmono.ppd cups/pxlcolor.ppd]

2007-09-05T19:21:05.959793Z Alex Cherepanov

>     Replace non-standard function call fdopen64() with fdopen(). The former
>     is not available on most platforms and not needed anyway because O_LARGEFILE
>     flag is set earlier in the code. Bug 689175.

> [src/gpmisc.c]

2007-09-05T07:54:54.782032Z Suzuki Toshiya

>     Fix (TT fonts) : Suppress loading trailing data after chosen cmap subtable.

>     DETAILS:

>     The current cmap selector/loader tries to load a subtable
>     for Microsoft platform && UCS2 encoding with anything
>     in trailer, although only MS+UCS2 subtable is used.
>     Thus, if the cmap table has several additional subtables
>     after MS+UCS2 subtable (e.g. multiple 16bit cmap subtable
>     for Shift-JIS/Big5/GB2312/Wansung/Johab, or very long
>     32bit subtable in format 8/10/12, or simple junk data),
>     cmap subtable loader tries to load MS+UCS2 subtable and
>     trailing garbage, and tries to define /cmaptab for
>     concatenated string of them. So, rangecheck or limitcheck
>     error can occur due to too-long string. Typical example
>     is found in bug 688337 which is caused by TrueType font
>     including cmap subtable in format 12.

>     If we restrict the scope to MS+UCS2 subtable, it must
>     not be greater than 0xFFFF bytes. Because cmap subtable
>     headers in format 0,2,4,6 define these tables length in
>     16bit. The cmap parser is fixed to check the subtable
>     header content and read exact length of chosen subtable,
>     to exclude trailing garbage.

>     In addition, /getinterval_from_stringarray has a bug
>     that appears when the end of requested string just fits
>     to the gap of member strings. The bug is fixed, too.

>     By this patch, bug 688337 is fixed.

>     DIFFERENCE:

>     None.

> [lib/gs_ttf.ps]

2007-09-03T13:19:11.511212Z Alex Cherepanov

>     Fix reference counting logic for clip stack elements. The reference counter
>     now shows the number of gstates that point to a given element directly or
>     indirectly. Bug 689429.

> [src/gsclipsr.c src/gsstate.c]

2007-08-31T20:53:42.169700Z Igor Melichev

>     Fix (graphics library) : Always set HWResolution to clipper device.

>     DETAILS :

>     Fixes the bug 689365
>     "Clipper device may have a wrong HWResolution".

> [src/gxfill.c src/gxclip.c]

2007-08-31T19:09:47.125231Z Igor Melichev

>     Fix (graphics library) : Distinguish two methods gx_make_clip_device_on_stack, gx_make_clip_device_in_heap.

>     DETAILS :

>     This is a preparation for fixing the bug 689365
>     "Clipper device may have a wrong HWResolution",
>     step 2.

>     This change is algorithmically equivalent.

>     1. Drop tx, ty,arguments, because they always zero.

>     2. There are 2 different cases in code:
>     allocation on stack or in heap.
>     Now we define them explicitely.

>     3. Adding the 'target' argument,
>     and adjust reference counters inside the "in heap" method.
>     The call to open_device is moved inside the methods.

>     Note that the old code in some cases calls open_device
>     after doing some settings (2 occurances in gxfill.c).
>     The new code does before that.
>     We belirvr it is algorithmically equivalent,
>     because we checked open_device against using the
>     data being set there.

> [src/gdevbbox.c src/gxcpath.h src/gximask.c src/gxccache.c src/gxfill.c src/gxclip.c src/gxstroke.c src/gxclrast.c src/gdevdbit.c src/gxipixel.c]

2007-08-31T17:22:21.775099Z Igor Melichev

>     Fix (graphics library) : Expand gx_make_clip_path_device, gx_make_clip_device.

>     DETAILS :

>     This is a preparation for fixing the bug 689365
>     "Clipper device may have a wrong HWResolution".

>     This change is algorithmically equivalent.

>     The old code defines a function gx_make_clip_path_device,
>     and a macro gx_make_clip_device similar as a small wrappers for
>     gx_make_clip_translate_device. This patch expands
>     and removes them as FOR a standardization.

>     The 'list' argument of gx_make_clip_translate_device is replaced with
>     'pcpath' argument, because the old code always extract the list
>     from pcpath. The extraction is now done inside gx_make_clip_translate_device.

> [src/gdevbbox.c src/gxcpath.h src/gximask.c src/gxccache.c src/gxfill.c src/gxclip.c src/gxstroke.c src/gxclrast.c src/gdevdbit.c src/gxipixel.c]

2007-08-31T15:31:06.557286Z Igor Melichev

>     Fix : Remove the pdfwrite/NODISPLAY nonsense from the documentation.

>     DETAILS :

>     That statement was always false.

> [doc/Use.htm]

2007-08-31T08:29:55.996410Z Igor Melichev

>     Fix (pdfwrite) : A wrong encoding of Metadata (continued).

>     DETAILS :

>     The revision 8181 added a bug which caused an infinite loop
>     with -dPDFA Altona-Testsuite_p2_S_x3.pdf

> [src/gdevpdfe.c]

2007-08-31T08:27:16.425671Z Igor Melichev

>     Fix (pdfwrite) : A crash with incorrect shading.

>     DETAILS :

>     Bug 689394  "SEGV with MSVC7 run time checking in Type 7 shading."
>     See comment in code.

> [src/gdevpdfi.c]

2007-08-31T05:43:44.869532Z Igor Melichev

>     Fix (Type 1 hinter) : Infinite loop in t1_hinter__fix_subglyph_contour_signs.

>     DETAILS :

>     Bug 689298 "Infinite loop in t1_hinter__fix_subglyph_contour_signs()".

>     Well it's a student level error in the algorithm.
>     Thanks to Alex for the test case with 5 nesting contours.

> [src/gxhintn1.c]

2007-08-31T04:47:58.034291Z Igor Melichev

>     Fix (font rendering) : alloc_char_bits could fall into infinite loop.

>     DETAILS :

>     Bug 689036 "infinite loop in char cache logic".

>     The character cache algorithm assumes that a pointer to
>     any allocated cached_char instance appears somewhere in ccache.table .
>     However from the old experience we know that
>     this obvious invariant appears frequently broken due
>     to inaccurate manipulation with cache by clients.
>     For example, a client sometimes reserves and initializes
>     a cached_char instance and then fail due to another error
>     before storing the pointer to ccache.table.

>     In the old code a cycle in alloc_char_bits
>     strongly depends on this invariant,
>     and therefore it is potentially harmful.
>     In the past we have got a lot of bugs about it.
>     Now we restrict the cycle with the cache size.
>     Changed few function prototypes with returning error
>     if the invariant is broken.
>     Note that the graphics library interface changes,
>     so other interpreters must update the calls to
>     alloc_char_bits.

> [src/gxchar.c src/gxccman.c src/gxchar.h src/gxccache.c]

2007-08-30T05:53:42.339598Z Igor Melichev

>     Fix (pdfwrite) : Uninitialized data after converting a Type 42 font into CID font.

>     DETAILS :

>     Bug 689399 "PDFA-Option cause gswin32 to crash".

>     This change is important with -dPDFA only,
>     and doesn't change the behavior otherwise.
>     Some font descriptor fields were not initialized.

> [src/gdevpdtd.c]

2007-08-30T02:36:52.268008Z Igor Melichev

>     Fix (pdfwrite) : Properly handle FontMatrix of a Type 3 font.

>     DETAILS :

>     Bug 689267 "File converted to PDF displays badly in Acrobat".

>     Patch from SaGS. His explanation is quoted below.

>     Part #1: pdfwrite fixes (gdevpdti.c, gdevpdte.c, gdevpdtt.h, gdevpdtt.c :

>     - Generalize pdfwrite computations for glyph widths and placement,
>       which currently assume an [s 0 0 s tx ty]-type original (= ignoring
>       changes made by makefont & similar) FontMatrix, to work with an
>       arbitrary matrix.

>     - Fix: the "wy" operand of "d0"/"d1" in Type 3 charproc streams must
>       be zero. Note: other parts of the code already consider wy == 0,
>       and don't need to be changed.

>     - Remove font_orig_scale() and pdf_font3_scale(), which are not used
>       anymore. Their simple presence is a sign of the assumption that
>       font matrices are simple scalings.

>     - Minor: remove a dead variable ("int code = 0; ... return code;").
>       This variable is never changed, because there's another "int code"
>       inside the "for", but it is confusing and takes a lot of research
>       to figure out the behaviour is OK and no usefull error code is
>       lost (it's the 2nd time I stumble against this...)

>     Notes:
>       - All non-Adobe PDF viewers that I tested (Evince/ Fedora 7,
>         Foxit Reader 2.0/ Windows, Jaws PDF Editor 3.5/ Windows, and
>         Ghostscript -r8204) have problems with "weird" font matrices.
>         The bug in ghostscript is addressed below.
>       - I do have an alternate patch, which "normalises" the
>         FontMatrix, for better viewers compatibility . But this method
>         cannot work when fonts are not embedded: cannot "normalize"
>         something stored in an external file.

>      part #2: PDF interpreter fixes (pdf_font.ps, pdf_ops.ps) :

>     - Force the "wy" parameter of "d0", not only of "d1", in Type 3
>       charproc streams to 0. Comment changed to suggest this is an action
>       is expected to be done as part of enforcing the metrics stored in
>       the PDF (which always imply wy == 0), and not some strange
>       behaviour in Reader.

>     - A detail in PDF1.7 Ref 5.3.3 "Text Space Details" states that "wy"
>       (or "wx" in WMode 1) must be forced to 0 in PDF text space too, not
>       only in PDF glyph space. To implement this with non-[s 0 0 s tx ty]
>       font matrices, a different method is used: decode "show" strings
>       and extract glyph widths with "cshow", put these into an array,
>       then render the text with "x/yshow".
>       - since "wy/x" = 0 in glyph space, the code does not need to use
>         "idtransform", a "div" by "FontMatrix.xx" is sufficient;
>       - use a trick (see comment in code) when "FontMatrix.xx" = 0.

>     CIDFonts are not changed. Those with a "straight" matrix continue to
>     work, but there's no improvement if they have a weird "/FontMatrix".
>     I think this would require a radical change, and the result will be
>     much slower than it is now.

>     part #3: supplemental ps2write fixes (in opdfread.ps).

>     - opdfread.ps assumed the FontMatrix is a simple scaling by 0.001;
>       generalize the computations to work with an arbitrary matrix.

>     - Implement a detail of PDF1.7 Ref 5.3.3 "Text Space Details" (nuking
>       the "wy" in text space) if a non-[s 0 0 s tx ty] "/FontMatrix".
>       Similar to the change in the main PDF interpreter, but shorter
>       because opdfread.ps does not handle vertical writing or CID fonts.

>     Also "wy" in "d0"/"d1" is already 0 (see patch for pdfwrite), so
>     needs no adjustment.

> [lib/pdf_font.ps src/gdevpdtt.c src/gdevpdte.c lib/opdfread.ps src/gdevpdti.c src/gdevpdtt.h lib/pdf_ops.ps]

2007-08-29T17:36:36.852840Z Igor Melichev

>     Fix (TT font handling) : pdfwrite recieved meanless font names.

>     DETAILS :

>     Bug 688006 "Font names used with pdfwrite are strange with GS, OK with Adobe Distiller".

>     This is a continuation for the Revision 5862 change
>     made on Wed Apr 20 20:05:41 2005 UTC (2 years, 4 months ago) by ray.

>     Thanks to Edward for a code sample for accounting font style string.

>     1. (zbfont.c) When a Postscript file is generated with Adobe printer driver for Windows,
>     the old code (sinse Revision 5862) extracts OrigFintName
>     for building a meanful FontName.
>     This patch adds an use of OrigFontStyle as suggested by Edward,
>     so the FontName is created in the form "Arial,Bold".

>     2. (zfcid1.c) The old code sometimes dropped the good FontName in zbuildfont11
>     due to an extra call to get_font_name. Few lines above
>     the function build_gs_TrueType_font creates the good font name
>     during an indirect call to sub_font_params, so the call to
>     get_font_name is not necesary when OrigFontName presents.
>     However it is still necessary with regular FontType 11
>     because they have no FontName and sub_font_params
>     doesn't use CIDFontName.

>     3. (zfcid0.c) Applying the (2) change to FontType 9 as for symmetry.
>     We're tested it a few, but we have no untrivial examples
>     when a FontType 9 is embedded with OrigFontName.
>     Maybe (just guessing) ones could be obtained with installing
>     Adobe Type Library and printing with Adobe printer driver.

>     4. After doing all above, we unexpectedly detected a regression
>     with comparefiles/korea.ps : all Korean glyphs were replaced with
>     hollow boxes. Analyzing it we found that the document defines a
>     composite font with to CIDFontType 2 descendent,
>     which both appears to be same font. In same time,
>     the CMap supplies different CIDs for those 2
>     descendents for a half of code space. While the old code
>     used meanless unique font names, those 2 descendents
>     were converted to 2 PDF fonts. When we switched to the meanful name,
>     which of course is same for both descendents,
>     pdfwrite tries to merge the descendents.
>     However doing so it assumed same character mapping
>     for both descendents.

>     To fix this problem more changes are done to pdfwrite :

>     4.1. (gdevpdtf.h) The font descriptor of a type 0 font now stores font_index,
>     which is the index of its descendent font in the DescendentFonts array
>     of the source Type 0 font. This happens because in PDF type 0 fonts
>     always have a single descendent.

>     4.2. (gdevpdtf.c) Added an initialization for the new field.

>     4.2. (gdevpdtt.c, gdevpdtt.h) pdf_obtain_parent_type0_font_resource creates
>     unique type 0 fonts for each descendent in spite of same font name.

>     4.3 (gdevpdtc.c) pdf_obtain_parent_type0_font_resource needs
>     font index as a new argument.

>     4.4. (gdevpdtt.c) pdf_find_type0_font_resource also takes the new parameter.

>     With Korea.ps we create 2 font subsets where a single font
>     would be enough. An optimization may be done with a dynamic
>     check for encoding conflicts rather than creating another font
>     for each font index of the CMap. Delaying it for better times.

> [src/zfcid0.c src/gdevpdtc.c src/zfcid1.c src/gdevpdtt.c src/zbfont.c src/gdevpdtf.c src/gdevpdtt.h src/gdevpdtf.h]

2007-08-29T09:42:15.384249Z Igor Melichev

>     Fix (TT font handler) : Place thr True Type interpreter and its data into stable memory (continued 2).

>     DETAILS :

>     Bug 688429 "Crash on vmreclaim".

>     The revision 8209 change is incorrect
>     because it effectively frees a memory allocator instance.
>     Thanks to Henry for pointing this out.

>     This is the second attempt to fix that...

> [src/gxttfb.c]

2007-08-29T09:36:29.695665Z Igor Melichev

>     Fix (TT font handler) : Place thr True Type interpreter and its data into stable memory (continued).

>     DETAILS :

>     Bug 688429 "Crash on vmreclaim".

>     The revision 8209 change is incorrect
>     because it effectively frees a memory allocator instance.
>     Thanks to Henry for pointing this out.

> [src/gxttfb.c]

2007-08-29T07:09:01.667008Z Igor Melichev

>     Fix (font rendering) : CIDFontType 9 missed PaintType.

>     DETAILS :

>     Bug 687970 "PaintType and StrokeWidth ignored with CIDFonts".

>     To make a decision about filling or stroking,
>     the old code uses PaintType of the current font,
>     However with CIDFont 9 it is a Type 1 subsidiary,
>     which has no PaintType.

>     The patch implements the 'or' logic for the PaintType of the root font
>     and the PaintType of the current font. We believe it should
>     correctly handle cases when PaintType 2 is set to
>     a root font or to its descendent. However we have not enough
>     practical test cases to test all varuiants.

>     Particularly, we would like to test a Type 0 font with
>     2 descendents, each of which is CIDFontType 9
>     and they have didfferent PaintType.
>     In such case this patch may need a further improvement.

>     The desision about filling or stroking a character is done in type1exec_bbox
>     and in nobbox_finish. The patch also passes a pointer to gs_text_enum_t instance
>     to type1exec_bbox to provide the data for the decision.

> [src/zfcid0.c src/zchar1.c]

2007-08-28T16:18:27.199037Z Igor Melichev

>     Fix (pdfwrite) : Uninitialized defaultWidthXwhile while converting a Type 1 font into Type 2.

>     DETAILS :

>     Bug 689406 "Valgrind: Uninitialised defaultWidthX in psf_convert_type1_to_type2()".

>     The last patch appears incomplete and doesn't compile.
>     Fixing now.

> [src/gdevpsf2.c src/gdevpsf.h src/gdevpsfx.c]

2007-08-28T16:06:12.766158Z Igor Melichev

>     Fix (pdfwrite) : Uninitialized defaultWidthXwhile while converting a Type 1 font into Type 2.

>     DETAILS :

>     Bug 689406 "Valgrind: Uninitialised defaultWidthX in psf_convert_type1_to_type2()".

>     Thanks to Alex for the problem localization and for the suggested patch.
>     This change is equivalent to Alex's patch
>     expect the better documentation.
>     See comment in code.

>     The old code accessed pfont->data.defaultWidthX,
>     which is never used or initialized elsewhere with a Type 1 font,
>     because defaultWidthX is a Type 2 feature.

> [src/gdevpsfx.c]

2007-08-28T06:34:08.453844Z Ray Johnston

>     Correct obvious typo in default rgb to cmyk color mapping. It makes
>     no sense to use the 'g' component to calculate the 'k' for black
>     generation and undercolorremoval.

> [src/gxcmap.c]

2007-08-27T20:44:27.984183Z Igor Melichev

>     Fix (TT font handler) : Place the True Type interpreter and its data into stable memory.

>     DETAILS :

>     Bug 688429 "Crash on vmreclaim".

>     With the old code gx_ttfReader and ttfInterpreter instances
>     were prematurely released by 'restore' while
>     gs_font_dir and cached_fm_pair instances contain
>     references to them. Since TT interpreter is a global singleton,
>     we're safe to store it in stable memory.

> [src/gxttfb.c src/gxccman.c]

2007-08-27T01:16:47.532710Z Alex Cherepanov

>     Change the order of include files to define a macro before it's used.
>     The undefined macro in the old code passed as a function declaration.

> [src/gxshade1.c]

2007-08-27T00:53:59.301536Z Alex Cherepanov

>     Add HP-UX to the long list of systems that need both time.h and sys/time.h

> [src/time_.h]

2007-08-26T23:32:21.633797Z Alex Cherepanov

>     Cast the pointers to the same type because aC++ compiler cannot compare
>     pointers of different types.

> [contrib/japanese/gdevmjc.c]

2007-08-26T23:24:57.663909Z Alex Cherepanov

>     Fix a typo in a contributed driver for HP color printers detected by aC++
>     compiler. Assuming that pointers compare as unsigned values, the fix doesn't
>     have any run-time effects.

> [contrib/gdevcd8.c]

2007-08-23T18:00:19.425565Z Alex Cherepanov

>     When the same name maps to more than one glyph change the name.
>     Don't treat /.notdef names specially because glyphs corresponding
>     to /.notdef names can look different. Bug 689408, customer 770.

>     DIFFERENCE:
>     None

> [lib/gs_ttf.ps]

2007-08-22T06:38:36.487276Z Suzuki Toshiya

>     Fix (TT fonts) : Ignore invalid entries in loca table.

>     DETAILS :

>     Some problematic TrueType fonts have loca table that
>     the offset to a data in glyf table is larger than
>     the size of glyf table. In previous implementation
>     since trunk revision 5707 (ghostscript-8.57), when
>     such invalid entry is found, the font loading procedure
>     is immediately aborted and invalid font error is
>     returned. To continue the problematic TrueType object,
>     the invalid entries of loca tables now are ignored and
>     the font loading procedure is continued. If all entries
>     are invalid, the invalid font error is returned.

>     After the sorting of loca table entries by their values,
>     the invalid entries with too large offsets are collected
>     in the end of the sorted loca entries (psortary[]).
>     By this patch, the sorted loca entries are scanned from
>     from the end to the beginning, and the number of valid
>     entry is counted (num_valid_loca_elm). By this number,
>     the invalid loca entries are initialized to have null
>     glyph (the data size of glyph is set to 0).

>     By this patch, bug 689347 is fixed.

> [src/gstype42.c]

2007-08-21T22:26:58.681438Z Ralph Giles

>     Correct more changelog substitution errors. Bug 689388.

> [doc/History8.htm doc/Details8.htm]

2007-08-20T17:15:22.306956Z Alex Cherepanov

>     Fix command list-based devices on 64-bit platforms. Ghostscript always writes
>     int values to the command list but old code interpreted the bit pattern as a
>     long int, causing conversion of the negative values to large positive ones.
>     Bug 689353.

> [src/gxclrast.c]

2007-08-20T17:10:51.151066Z Ray Johnston

>     Use the color lookup cache in wtsimdi_contone_get_bits_rectangle.
>     This results in a 6% overall performance improvement on the 12
>     performance test files, and up to a 38% improvement on WW2KA122.prn
>     Also clean up the MSVC and gcc warnings.  Customer #951.

>     DETAILS:

>     There is a note about the allocation of cmyk_buffer relying on
>     the alignment when using gs_malloc. The note also describes the
>     method to remove this reliance on the alignment assumption.

> [src/gdevwts.c]

2007-08-17T18:50:33.373530Z Ray Johnston

>     Fix stdint.h related problems with the Cygwin build (gcc 3.4.4)

>     DETAILS:

>     There was a workaround for an obsolete version of Cygwin tools that had
>     u_int32_t (and other types) instead of uint32_t that is standard on linux
>     and Cygwin stdint.h now. These changes were needed for the PCL, XPS and
>     language_switch builds -- the gs build worked thanks to autoconf.

> [src/unix-gcc.mak src/stdint_.h]

2007-08-17T13:58:12.668319Z Alex Cherepanov

>     Fully initialize pdf_resource_t object allocated in pdf_alloc_aside()
>     to avoid a Valgrind warning. Bug 688907.

> [src/gdevpdfu.c]

2007-08-17T13:02:19.679286Z Alex Cherepanov

>     Add missing initialization of txy_fixed_valid field. Since the fixed
>     coordinates are valid, the patch eliminates possible re-calculation of the
>     fixed coordinates but doesn't affect the end result. Bug 688914.

> [src/gdevpdfv.c]

2007-08-17T04:49:22.864920Z Ray Johnston

>     This set of changes is an example for users or Artifex customers
>     that want to intercept the color spaces and perform their own
>     color space conversion for the CIEBased or ICCBased color spaces,
>     converting all of these spaces to the PostScript color management
>     link space "CIE XYZ". There were changes needed to implement this
>     that transcended the original custom color callback scheme, but
>     the approach taken is intended to minimize changes to the color
>     space processing.

>     Artifex customer #330

>     DETAILS:

>     Rather than rely on the hack in gx_cie_to_xyz_alloc that sets the
>     pis->cie_render to ~0, we establish a separate boolean for this,
>     cie_to_xyz which indicates that we don't need a CRD (gxistate.h,
>     gsistate.c, gsciemap.c, gscie.c). Note that the gx_cie_to_xyz_alloc
>     function is also used in the lab_range function in gdevpdfk.c
>     to construct an L*a*b* ICC conversion space for the pdfwrite
>     device.

>     The 'pclient_color_space_data' is now handled in the ENUM and
>     RELOC procedures for the gs_color_space base structure shared
>     by all color spaces (gscspace.c). A side effect of this is that
>     the pclient_color_space_data structure MUST be allocated with
>     appropriate GC structure calls an with an appropriate GC type
>     of macro to identify the structure for the GC and establish
>     the ENUM and RELOC hooks. This was needed to allow a gs_imager_state
>     structure to be allocated for the CIE color spaces and to have
>     both structures to be 'known' to the GC logic.

>     The CIE_LOAD_CACHE_BODY macro and the gx_install_cie_abc function
>     are now exported in gscie.h rather than local to gscie.c so that
>     gsncdummy.c and other custom callback clients can use them.

>     Finally, the gsncdummy.c module now includes example handling
>     that allow the graphics library to convert colors to XYZ if
>     the original color space was one of the CIEBased or ICCBased
>     spaces. Since CIE XYZ to L*a*b* is a direct conversion, this
>     allows clients to work with device independent color.

>     The conversion from XYZ to ICC L*a*b* code exists in gdevpdfk.c
>     in the function xyz_to_lab() which might be useful enough to
>     export in the future. For the short term clients can 'clone'
>     this small function if needed into their own color callback
>     processing.

>     Note that -dUseCIEColor (or << /UseCIEColor true >> setpagedevice
>     PostScript sequence) will mean that all Device* colorspaces also
>     get mapped through the Default* colorspaces to XYZ (DeviceGray,
>     DeviceRGB and DeviceCMYK).

> [src/gxistate.h src/gscie.h src/gsistate.c src/gsncdummy.c src/gsciemap.c src/gscspace.c src/gscie.c]

2007-08-14T21:28:55.383671Z Ralph Giles

>     Revert r8187, which is part of the CJKV patch set reverted in r8190.

> [src/int.mak]

2007-08-14T20:48:29.233978Z Till Kamppeter

>     Removed CJK patches.

> [examples/cjk src/zchar42.c lib/gs_cidtt.ps src/gxfont42.h src/gstype42.c src/unixinst.mak src/zchar1.c lib/cjkv lib/gs_init.ps]

2007-08-14T18:53:48.875152Z Ralph Giles

>     Throw an diagnostic error if the wts_plane_* halftone files cannot
>     be opened. Propagate the error and clean up properly to avoid a
>     segfault.

>     Also #ifdef DEBUG protects some debug printouts to reduce noise.

> [src/gdevwts.c src/gdevimdi.c]

2007-08-14T16:18:28.564745Z Ralph Giles

>     Change the path to the icc link profile to the current working
>     directory, the same path used for the wts_* halftone files and
>     for link.icc in gdevimdi.c. Motivated by simplifying running
>     the device in regression testing.

> [src/gdevwts.c]

2007-08-13T17:07:58.742285Z Ralph Giles

>     Add the library files from the cjkv to the romfs file list. This
>     restores executability of the build with COMPILE_INITS=1 which
>     was broken by r8185.

> [src/int.mak]

2007-08-13T16:00:16.465824Z Till Kamppeter

>     Fixed DESTDIR support in Koji Otani's CJK patches

> [src/unixinst.mak]

2007-08-13T10:08:05.772194Z Till Kamppeter

>     Added CJK patches from Koji Otani

> [src/zchar42.c examples/cjk lib/gs_cidtt.ps src/gxfont42.h src/gstype42.c lib/cjkv/cjkcidcm.ps lib/cjkv/baseutil.ps src/zchar1.c lib/cjkv/cjkvttcf.ps examples/cjk/all_ac1.ps lib/cjkv lib/cjkv/cjkvinit.ps examples/cjk/all_ag1.ps examples/cjk/iso2022.ps examples/cjk/all_aj1.ps examples/cjk/gscjk_ac.ps examples/cjk/all_ak1.ps examples/cjk/all_aj2.ps lib/cjkv/tt11util.ps lib/cjkv/cjkfnmap.ps examples/cjk/gscjk_ag.ps lib/cjkv/tt42util.ps src/unixinst.mak examples/cjk/gscjk_aj.ps examples/cjk/gscjk_ak.ps examples/cjk/article9.ps lib/gs_init.ps]

2007-08-12T17:29:29.699921Z Alex Cherepanov

>     Use inline and intristic functions to improve the speed of CIE cache set-up.
>     Bug 689153, customer 850.

> [src/gscie.h src/gscie.c]

2007-08-11T03:57:31.402230Z Alex Cherepanov

>     Change stream keyword handling to accommodate yet another kind of a broken PDF.
>     Bug 689400, customer 580.

>     DETAILS:
>     Valid stream keyword can be followed by (\n) or (\r\n). Invalid PDF files
>     accepted by Acrobat Reader can insert blank characters or terminate the stream
>     with (\r). Old code tolerated ( \r) termination, but didn't tolerate ( \r\n).
>     New code assumes blank characters and (\r) termination at the same time are not
>     probable and tolerates ( \r\n) or (\r) but not ( \r).

> [lib/pdf_base.ps]

2007-08-10T08:15:58.076010Z Henry Stiles

>     This code change should have been committed in tandem with the change
>     in revision 8055 (see 8055 log for details).

> [src/gxclpath.c]

2007-08-09T18:12:59.257962Z Ray Johnston

>     Update the testing.cfg.example to match the current (after rev 7854) of
>     the regression scripts in toolbin/tests. The r7854 had included a
>     testing.cfg file instead of the example file (see comment for rev 7862).

>     DETAILS:

>     I don't really like the difficulty of changing the comparegs directory in
>     the current way gsconf.py processes the testing.cfg. IMHO, it would make
>     sense to allow for some of the higher level directory variables to be
>     used, simplifying changing it for testing from a particular gs checkout
>     that has been modified. Also having some of the other values able to
>     be relative to 'root' (for the comparefiles, database, etc.) would be
>     handy.

>     A task for later along with better documentation.

> [toolbin/tests/testing.cfg.example]

2007-08-08T00:12:49.260263Z Timothy Osborn

>     Updating CMAP files as per bug report #689386

>     DETAILS:

>     See:

>     ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/00README

>     for more details.

> [Resource/CMap/UniJIS2004-UTF16-V Resource/CMap/UniJIS2004-UTF32-H Resource/CMap/UniJIS2004-UTF8-V Resource/CMap/UniJIS2004-UTF16-H Resource/CMap/UniJIS2004-UTF8-H Resource/CMap/ETenms-B5-V Resource/CMap/ETenms-B5-H Resource/CMap/UniCNS-UTF32-H Resource/CMap/UniCNS-UTF16-H Resource/CMap/UniCNS-UTF8-H Resource/CMap/UniJISX02132004-UTF32-V Resource/CMap/UniJIS2004-UTF32-V Resource/CMap/UniJISX02132004-UTF32-H]

2007-08-07T00:40:18.162968Z Alex Cherepanov

>     Pacify MSVC 7 run time checks. Change the order of condition checking to avoid
>     returning an uninitialized value. The code is algorithmically equivalent,
>     except it doesn't assign anything instead of assigning an uninitialized value.
>     Bug 689387

> [src/gdevpdfd.c]

2007-08-05T13:55:26.215718Z Igor Melichev

>     Fix (pdfwrite) : A wrong encoding of Metadata.

>     DETAILS :

>     Bug 689244 "Wrong encoding of title in metadata for PDF/A".

>     Thanks to mpsuzuki for preliminary analyzis.

>     1. See the documentation change.
>     2. gs_pdfwr.ps converts the specified name into a translation table.
>        We believe that popolar encodings translate into single Unicode
>        characters, so we don't implement Unicode compositions now.
>        This may be a subject of further improvements. In this case
>        the generated integer array should use a complex format
>        for representing the translation table.
>     3. The translation table is passed to pdfwrite
>        as a new device parameter DSCEncodingToUnicode.
>     4. When it is specified, gdevpdfe.c performs the translation
>        first into UTF-8, then into XML.
>     5. The new modules ConvertUTF.c, ConvertUTF.h are obtained from
>        Unicode Inc.

> [src/gdevpdfx.h src/ConvertUTF.c src/gdevpdfp.c doc/Ps2pdf.htm src/ConvertUTF.h src/gdevpdfe.c src/gdevpdfb.h src/devs.mak lib/gs_pdfwr.ps lib/gs_agl.ps]

2007-08-04T21:42:53.446406Z Alex Cherepanov

>     Change the order of tests to identify fonts with FID attribute that have been
>     both scaled and copied. Bug 689390

>     DETAILS:
>     Prior to this revision Ghostscript mis-recognized such fonts as scaled-only
>     in build_gs_font() and rejected with /invalidfont during font validation.

> [src/zfont.c src/zbfont.c]

2007-08-04T14:30:04.276917Z Alex Cherepanov

>     Take rendering intent type from the /Intent key of the CRD created by Adobe
>     ProcSet "Adobe_AGM_Core 2.0 0" and pass it to the graphic state. Bug 689379

> [lib/gs_lev2.ps lib/pdf_ops.ps lib/gs_init.ps]

2007-08-03T16:29:44.050173Z Timothy Osborn

>     Fix for seg fault caused by undersized buffer as reported in bug report #687397

>     DETAILS:

>     Although the patch submitted by the reporter did appear to fix the problem,
>     it was more masking it than fixing it. While the analysis of the problem
>     being that ss->Items was too small was correct, the real cause was a rounding
>     problem in siscale.c/contrib_pixels(). The problem did not happen on my Mac,
>     but was reproduced up on peeves because of differnces in the way the two
>     systems perform rounding.

> [src/siscale.c]

2007-08-03T15:46:03.840774Z Ralph Giles

>     Correct a substitution script error in the change logs.

> [doc/Changes.htm doc/History8.htm doc/Details8.htm doc/Details.htm]

2007-08-02T08:53:09.078741Z Igor Melichev

>     Fix (transparency in clist) : Write transparent paths and images to clist as high level objcts.

>     DETAILS :

>     Bug 689186 "PDF segfaults or exits with no output".

>     With the test case the old code creates a 2.5Gb clist file,
>     because it transformes transparent paths and images into rectangles.
>     The new code writes them as high level objects,
>     so that the clist file reduces to 477Mb.

>     1. (gdevp14.c) The old code appears to provide all necessary
>     methods for writing paths and images to clist as high level objects,
>     but doesn't call them. To activate them we simply replace default implementations
>     with forwarding methods in pdf14_clist_*_device.

>     2. (gdevp14.c) The old code sets the lop_pdf14 flag to
>     the clist reader's imager state. Particularly
>     it may be set when calling p14dev->pdf14_procs->put_image.
>     It causes gx_image_enum_begin to fail,
>     and the image silently dissappers from the output.
>     We fixed it with resetting the flag immediately before
>     calling p14dev->pdf14_procs->put_image.
>     A better way would be to synchronize log_op
>     in clist_create_compositor, but we don't like to
>     write it to all bands as other compoitor commands do.

>     3. (gdevp14.h, gdevp14.c) New fields inserted into pdf14_device_t
>     to provide a synchronization of encode_color, decode_color, get_color_mapping_procs,
>     get_color_comp_index with changing color_info. Debugged with pkmraw -r300 Bug688631.pdf .
>     Without them the 1bpc color conversions
>     were called from pdf14_cmap_cmyk_direct with an 8bpc color,
>     causing an almost white page instead blue axial and radial shadings.

>     4. (gdevm4.c) The old code defines a wrong color_info for mem_mapped4_device.
>     It defines 3 components instead the correct value 4 (3 colored and 1 gray).

>     5. (gdevp14.c) During the clist playback the new code does not change color_info
>     for the clist writer (p14dev->target->color_info). We marked this change
>     with the comment :
>     /* Disabled because *p14dev has no forwarding methods during the clist playback. */
>     We ise #if 0 because we're not sure why the old code does so.
>     We suspect it was done by a mistake and has no any effect.
>     #if 0 will keep it for a while.

>     More possible optimization :

>     1. Use pdf14_buf::bbox when back dropping a transparency buffer.
>     2. Use pdf14_buf::rect to restrict bands which set up the transparency compositor.
>        Now it is written to all bands.
>     3. Write text to clist as high level object.

> [src/lib.mak src/gdevp14.h src/gdevm4.c src/gdevp14.c]

2007-08-02T04:08:11.471770Z Alex Cherepanov

>     Pacify Valgrind - initialise both operands of the product. Valgrind considers
>     a product of 0 and an uninitialized value to be uninitialized. Bug 689384.

> [src/gximage3.c]

2007-08-02T01:22:14.242094Z Ralph Giles

>     Update the interpreter library version number to match the one in
>     version.mak. The previous commit just improved the comments.

> [lib/gs_init.ps]

2007-08-01T23:56:58.305050Z Ralph Giles

>     Bump the revision number post release.

> [doc/News.htm lib/gs_init.ps src/gscdef.c src/version.mak]

2007-08-01T22:38:01.441981Z Ralph Giles

>     Correct some cut-and-paste typos in the change log update.

> [doc/Changes.htm doc/History8.htm]

2007-08-01T22:10:56.427930Z Ralph Giles

>     Update change logs and the open bug list or final release.

> [doc/Changes.htm doc/History8.htm doc/News.htm doc/Details8.htm doc/Details.htm]