Detailed History of Ghostscript versions 8.xx

## Table of contents

> - Version 8.11 (2003-08-16)
> - Version 8.10 (2003-05-21)
> - Version 8.00 (2002-11-21)
>   - Incompatible changes, Documentation, Procedures, Utilities, Drivers, PDF writer, PDF Interpreter, Interpreter, Library

This document is a record of changes in Ghostscript releases numbered 8.xx. For earlier versions, see the the history documents:

> History of Ghostscript versions 7.n
> History of Ghostscript versions 6.n
> History of Ghostscript versions 5.n
> History of Ghostscript versions 4.n
> History of Ghostscript versions 3.n
> History of Ghostscript versions 2.n
> History of Ghostscript versions 1.n

For other information, see the Ghostscript overview.

### Version 8.11 (2003-08-16)

Ghostscript 8.11 is the first stable release since 8.00, building on the features in the 8.10 beta, and with numerous additional fixes and improvements. In particular, font rendering is greatly improved (thanks to Igor Melichev's new hinting code), PDF 1.4 transparency rendering is much more likely to be correct, and there is better support for CID font substitution. Processing of incorrect and broken PDF files is also improved, including files corrupted xref tables and non-ASCII font names. Many other smaller fixes are included.

Users may want to experiment with the new -dAlignToPixels=0 setting, which enables subpixel positioning for antialiased font rendering.

The following bugs.ghostscript.com numbers were open at the time of this release:

> 405501, 406273, 414947, 430175, 446344, 456692, 458261, 458775, 458780, 459647, 463688, 465936, 487460, 487953, 493348, 509829, 526099, 526491, 530011, 535366, 535932, 542629, 553187, 555072, 558151, 558435, 563287, 572865, 578865, 592160, 592837, 595760, 600288, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 624515, 626295, 628110, 629335, 634036, 634358, 636210, 645316, 651644, 656414, 656510, 664484, 667301, 669654, 674241, 674417, 674418, 677324, 677383, 677430, 680301, 681469, 684778, 684866, 685335, 686746, 686747, 686750, 686752, 686765, 686770, 686778, 686779, 686782, 686788, 686789, 686796, 686803, 686813, 686815, 686816, 686817, 686819, 686822, 686824, 686833, 686834, 686837, 686839, 686841, 686842, 686843, 686844, 686845, 686850, 686852, 686853, 686860, 686863, 686865, 686867, 686873, 686877, 686883, 686885, 686889, 686892, 686896, 686897, 686902, 686903, 686904, 686908, 686909, 686919, 686930, 686931, 686933, 686936, 686937, 686938, 686943, 686944, 686946, 686947, 686948, 686949, 686950, 686951, 686952, 686953, 686954, 686956, 686957, 686958, 686959, 686961, 686963, 686966, 686975, 686978, 686980, 686981, 686990, 686996, 686998, 686999, 687000.

### Incompatible changes

The mechanism for locating resources has changed since 8.00. See the usage documentation for details of the new mechanism.

Ghostscript now runs in save level 1 by default, which has changed since 8.10. Jobservers will need to use the -dNOOUTERSAVE option to restore the old behavior.

### Changelog

2003-08-16 19:52 giles

>     Correct the release date in the documentation footer and increment the version number for release.

> [doc/API.htm 1.36, doc/Bug-form.htm 1.38, doc/Bug-info.htm 1.37, doc/C-style.htm 1.43, doc/Commprod.htm 1.29, doc/Copying.htm 1.28, doc/DLL.htm 1.32, doc/Deprecated.htm 1.9, doc/Develop.htm 1.119, doc/Devices.htm 1.69, doc/Drivers.htm 1.40, doc/Fonts.htm 1.38, doc/Helpers.htm 1.32, doc/History1.htm 1.28, doc/History2.htm 1.28, doc/History3.htm 1.28, doc/History4.htm 1.28, doc/History5.htm 1.30, doc/History6.htm 1.45, doc/History7.htm 1.33, doc/History8.htm 1.5, doc/Htmstyle.htm 1.33, doc/Install.htm 1.43, doc/Issues.htm 1.38, doc/Language.htm 1.75, doc/Lib.htm 1.31, doc/Maintain.htm 1.39, doc/Make.htm 1.69, doc/New-user.htm 1.48, doc/Projects.htm 1.53, doc/Ps-style.htm 1.26, doc/Ps2epsi.htm 1.30, doc/Ps2pdf.htm 1.55, doc/Psfiles.htm 1.49, doc/Readme.htm 1.51, doc/Source.htm 1.28, doc/Tester.htm 1.28, doc/Testing.htm 1.22, doc/Unix-lpr.htm 1.28, doc/Use.htm 1.88, doc/Xfonts.htm 1.28, doc/gs-vms.hlp 1.27]

2003-08-16 19:48 giles

>     Bump the release date for Ghostscript 8.11.

> [doc/News.htm 1.134, doc/Release.htm 1.80, man/dvipdf.1 1.26, man/font2c.1 1.26, man/gs.1 1.27, man/gslp.1 1.26, man/gsnd.1 1.26, man/pdf2dsc.1 1.25, man/pdf2ps.1 1.27, man/pdfopt.1 1.25, man/pf2afm.1 1.26, man/pfbtopfa.1 1.27, man/printafm.1 1.26, man/ps2ascii.1 1.25, man/ps2epsi.1 1.24, man/ps2pdf.1 1.31, man/ps2pdfwr.1 1.30, man/ps2ps.1 1.33, man/wftopfa.1 1.26, src/version.mak 1.65]

2003-08-16 19:43 giles

>     Document testing.cfg as well as testing.cfg.example.

> [doc/Testing.htm 1.21]

2003-08-16 07:53 raph

>     Cleans up the behavior of the .tempfile operator, primarily making it
>     consistent across all the platforms, ensuring that the TMPDIR and TEMP
>     environment variables are effective, the system temp directory is used
>     when these are not specified, and the permissions for tempfile
>     creation work as expected (allowed in the simple case, but closing off
>     potential vulnerabilities in other cases. Intended as a final fix for
>     bug #686922.

>     DETAILS:

>     1. The permissions behavior of .tempfile is changed so that simple
>     prefixes are always allowed, absolute pathname prefixes are checked
>     using the PermitFileWriting logic, and other cases are disallowed. In
>     particular, it is no longer possible to specify temp prefixes relative
>     to the current directory, or as subdirectories of the standard temp
>     directory. Both such cases are potential security holes, and are
>     probably not useful in any real application.

>     2. The meaning of gp_open_scratch_file() is made more consistent
>     across the platforms. In particular, it is now the clear
>     responsibility of this function to add the appropriate temp
>     directory. As such, gp_gettmpdir() is no longer exported in the public
>     gp.h interface (gpmisc.h is intended only for the convenience of gp_
>     implementations).

>     3. On VMS, gp_open_scratch_file() didn't previously add the
>     temporary directory pathname. Now it does.

>     4. On Windows, gp_open_scratch_file()'s behavior was somewhat
>     inconsistent, calling GetTempPath() only when the length of the TMPDIR
>     or TEMP environment variables overflowed the buffer provided. It
>     now additionally uses GetTempPath() in the cases where these
>     environment variables are not set.

>     5. Since gp_open_scratch_file() now takes responsibility for
>     determining the temporary directory, ztempfile() no longer attempts
>     to do this.

> [doc/Language.htm 1.74, src/gp.h 1.25, src/gp_mswin.c 1.22, src/gp_vms.c 1.32, src/gpmisc.h 1.12, src/lib.mak 1.131, src/zfile.c 1.36]

2003-08-16 06:51 ray

>     Convert ASCII range font names found during the FONTPATH scanning to
>     simole ASCII aliases (original Unicode names preserved). Fixes bug 686861
>     for customer 131.

>     DETAILS:

>     This is an interim patch that establishes the alias in the ASCII code
>     range if (and only if) the high byte of ALL characters in the name are
>     NULL (\000).

>     The future improved implementation would be to add a UTF-8 fontname when
>     the TTF font has the name in Unicode. This would allow simple PostScript
>     applications that use the 8-bit character name to work as this patch does.

> [lib/gs_fonts.ps 1.41]

2003-08-16 00:42 ray

>     Pass path across grestore using base "identity" coordinates to prevent
>     limitcheck errors. The upath operator returns coordinates in the current
>     user space, but these are no longer valid across a CTM change such as
>     "grestore" or "setgstate" causes. Fixes SF bug #687001 for customers
>     580 and 590.

>     DETAILS:
>     The patch gets the upath using identity user space, then stuffs it into
>     the graphics state after the grestore in the same identity space
>     restoring the CTM of the grestore after the uappend.

>     Both grestore_nopath and setgstate are modified. These could probably
>     be refactored later to share PS code, but the value is minimal (IMO).

>     Interesting that this hadn't turned up before, but two customers tripped
>     over this recently.

> [lib/pdf_ops.ps 1.31]

2003-08-15 22:32 raph

>     Fixes two pointers to freed objects that were left dangling
>     in the PDF 1.4 transparency logic. Fixes bug #686994.

>     DETAILS:

>     With some test files, saved graphics states had held on to pointers to
>     the device filter stack that had already been freed by a
>     gs_pop_device_filter() call. These dangling pointers can cause garbage
>     collection corruption. This patch introduces reference counting
>     discipline to these pointers so that the dfilter_stack objects are not
>     actually freed until the last reference is dropped.

>     A similar but simpler argument applies to the pdf14_ctx object in the
>     pdf14_device. This patch simply sets the pointer to NULL when freeing
>     the context.

> [src/gdevp14.c 1.19, src/gsdfilt.c 1.8, src/gsdfilt.h 1.9, src/gsstate.c 1.21, src/gzstate.h 1.9]

2003-08-15 20:23 giles

>     Correct a typo in the previous commit.

> [src/gp_macio.c 1.29]

2003-08-15 20:19 giles

>     Remove redunant prototypes from gp_mac.h and modernise the implementation
>     of gp_open_scratch_file on MacOS to match the updated prototype in gp.h.
>     Also adds some limit checking in that implementation.

>     Note that gp_mac.h is now empty. I've left it in the build in expectation of
>     future usefulness.

> [src/gp_mac.h 1.5, src/gp_macio.c 1.28]

2003-08-14 22:28 ghostgum

>     Update DSC parser to latest version from GSview.

>     DETAILS:
>     Recognise MacBinary or AppleSingle files and process the data
>     fork only, similar to DOS EPS files.
>     Handle DCS2 files that contravene the spec by putting the TIFF
>     preview between the composite and the separations.
>     Recognise CMYK and RGB names if separations are renamed using
>     epstool.

> [src/dscparse.c 1.13, src/dscparse.h 1.12]

2003-08-14 19:56 alexcher

>     Fix make files and portability layer to compile on Borland 5.5
>     freeware compiler.

> [src/bcwin32.mak 1.29, src/unistd_.h 1.9, src/winint.mak 1.20]

2003-08-14 17:52 alexcher

>     Include time.h and sys/time.h on Intel compiler as requested by Duraid Madina.
>     Fix bug 686984

> [src/time_.h 1.7]

2003-08-14 17:32 alexcher

>     Update non-DLL version to support visual tracer.
>     Fix bug 686993

> [src/dwdll.c 1.6, src/dwnodll.c 1.5, src/msvc32.mak 1.47]

2003-08-13 16:04 alexcher

>     Fix portability issues: add a portable header for sscanf() and
>     use specific handle HDROP instead of generic HANDLE.

> [src/dwimg.c 1.9, src/winint.mak 1.19]

2003-08-13 15:56 alexcher

>     Don't rely on MS linker merging global variables defined multiple times.

> [src/dwtrace.h 1.5]

2003-08-13 15:54 alexcher

>     Update GS icon file by re-saving it in MSVC 6. Old icon file was incompatible
>     with OpenWatcom resource compiler.

> [src/gswin.icx 1.2]

2003-08-13 15:49 alexcher

>     Remove comma from the linker command line because the following indirect
>     file contains keyword-value pairs, not a list of values.

> [src/watcw32.mak 1.27]

2003-08-13 15:14 alexcher

>     OpenWatcom doesn't define LPRGBQUAD. Add the corresponding typedef.
>     Partial fix for 686816

> [src/windows_.h 1.5]

2003-08-12 14:13 ray

>     Add the headers ($Id: Details8.htm,v 1.2 2003/08/16 21:42:00 giles Exp $ line and copyright notices).

> [toolbin/genfontmap.ps 1.2]

2003-08-12 13:32 igor

>     Fix : The condition for empty environment string was wrong in ztempfile.
>     Bug 686922 "no default temp dir"

> [src/zfile.c 1.35]

2003-08-11 19:14 igor

>     Fix (pdfwrite) : The default implementation of stringwidth is incompatible with Type 3 font processing.

>     DETAILS :

>     With Type 3 fonts the default implementation of stringwidth renders characters to PS cache,
>     causing them to convert to bitmaps in further rendering. This patch implements stringwidth
>     with Type 3 fonts inside pdfwrite, allowing the charproc accumulation during stringwidth.

>     Bug 686992 "Duplicated characters in Arabian Type 3".

> [src/gdevpdte.c 1.43, src/gdevpdtt.c 1.54, src/gxchar.c 1.30, src/gxchar.h 1.14]

2003-08-11 17:42 ray

>     Correct offsets into .bigstring (broken when string size changed from 1000).

> [lib/gs_frsd.ps 1.8]

2003-08-11 11:50 igor

>     Fix (pdfwrite) : Don't write OP into charprocs.

>     DETAILS :

>     Bug 686986  "Could not find the extended graphic state ..." error

> [src/gdevpdfg.c 1.34]

2003-08-11 11:44 igor

>     Fix (pdfwrite) : Check a run out charstring while converting Type 1 font into Type2.

>     DETAILS :

>     1. Compare the instruction pointer with the charstring end address (gdevpsfx.c).
>     2. Error codes were not propagated.

>     Bug 686985 "pdfwriter segfaults converting a charstring".

> [src/gdevpdtb.c 1.21, src/gdevpsf2.c 1.27, src/gdevpsfx.c 1.22]

2003-08-10 06:33 dan

>     Fix for Bug 686991  Memory leak in CET test file 12-07.ps.

>     DETAILS:

>     A pointer to a free object was found while running the CET with the
>     memory allocation test switches (-Z@?$).  The free object was a color
>     space and the pointer was inside a gs_image_enum_common structure.

>     The situation occurs when an error is found in the data source for
>     for an image.   The actual cause was that the image enum common
>     structure should have also been released.

>     Note:  The data source checking is the only place that has this
>     problem.  After the data source checking, the image enum common
>     structure pointer is placed into an image enum structure.  Errors
>     that are detected after that point call gx_image_cleanup which
>     handles all of the data in the image enum structure including the
>     image enum common structure.

> [src/zimage.c 1.12]

2003-08-08 18:45 ray

>     Adjust internal string lengths to allow for long path/filenames such as
>     for Resource paths. OS limits may be shorter than the 8192 length allowed
>     for after this changes, but now interpreter internals won't cause a failure.
>     Customer 590 found this with a long GenericResourceDir. Bug #686989.

>     DETAILS:

>     While 8192 is also arbitrary, now all strings used for path/filenames are
>     the same and probably long enough for a while.

>     Also I made all the string lengths used for file copy operations be the
>     same 64000 bytes (they were highly inconsistent).

> [lib/gs_cidcm.ps 1.11, lib/gs_diskn.ps 1.5, lib/gs_fntem.ps 1.7, lib/gs_fonts.ps 1.40, lib/gs_frsd.ps 1.7, lib/gs_pdfwr.ps 1.36, lib/gs_pfile.ps 1.5, lib/gs_res.ps 1.34, lib/gs_resst.ps 1.3, lib/gs_statd.ps 1.12, lib/gslp.ps 1.6, lib/pdf_main.ps 1.76, lib/pphs.ps 1.6, lib/wftopfa.ps 1.5]

2003-08-07 18:19 ray

>     Add a utility to create a Fontmap format file after forcing a scan of all
>     FONTPATH directories. The created Fontmap file will contain direct links
>     to all fonts found, so that subsequent runs of Ghostscript that use this
>     Fontmap won't need to perform the time consuming scan of the FONTPATH.

> [toolbin/genfontmap.ps 1.1]

2003-08-07 17:09 igor

>     Fix (pdfwrite) : Widths were computed wrongly with Type 3 fonts.

>     DETAILS :

>     1. With glyphshow process_text_modify_width called pdf_char_widths with GS_NO_CHAR.

>     2. In pdf_char_widths an index for real_widths array was wrong (2 times smaller) with Type 3.

>     3. Now we write Widths as reals, improving the precision.
>        Now the precision isn't smaller than 1/100, rather the old code
>        looses all significant digits when a width is smaller than 1.
>        A better way would be re-scaling the font, but currently we don't see a strong need for that.

>     Bug 686988 "test-setweightvector.ps wrongly converts to PDF".

>     This patch fixes the test-setweightvector.ps problem and improves glyph positions in
>     Altona.Page_3.2002-09-27.pdf .

> [src/gdevpdte.c 1.42, src/gdevpdtw.c 1.23]

2003-08-06 17:05 alexcher

>     Allocate larger buffer for generated charstrings. Old allocation was
>     insufficient for gray block characters. (Unicode 2591, 2592, 2593).
>     Fix bug 686987.

> [lib/bdftops.ps 1.7]

2003-08-06 16:24 giles

>     Disable the legacy macstdio device in the default Codewarrior build. It conflicts
>     with and is obsoleted by the modern Metrowerks Standard Library and our default
>     Carbon build, which most users are now using.

> [src/macos-mcp.mak 1.21]

2003-08-06 16:13 giles

>     Remove an unused local variable

> [src/gdevpdtw.c 1.22]

2003-08-06 15:50 giles

>     Fix incorrect line endings.

> [src/gdevpdtw.c 1.21]

2003-08-04 13:51 giles

>     Document adding the jbig2dec source to the source release.

> [doc/Release.htm 1.79]

2003-08-02 22:50 igor

>     Fix (pdfwrite) : Providing an access to the original font matrix via a special
>     font dictionary key /.OrigFont (part 2).

>     DETAILS :

>     The patch
>     http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003482.html
>     was buggy. This patch corrects it and fixes the 2003-08-02 regression
>     with two_encodings.ps .

> [src/gdevpdtt.c 1.53, src/zbfont.c 1.23]

2003-08-02 15:52 igor

>     Fix (pdfwrite) : A workaround for Type 3 fonts with instandard BuildChar.

>     DETAILS :

>     Bug 686982 "Wrong characters in PDF".

> [src/gdevpdti.c 1.18, src/gsccode.h 1.12, src/zbfont.c 1.22]

2003-08-02 12:00 igor

>     Fix (pdfwrite) : xshow, xyshow array index was wrong.

>     DETAILS :

>     Bug 686976 "type3 fonts are mangled in pdf conversion",
>     but the problem was more general than Type3.

> [src/gdevpdtc.c 1.26, src/gdevpdte.c 1.41]

2003-08-02 09:54 igor

>     Fix (pdfwrite) : gs_copied_can_copy_glyphs used glyph names instead glyph indices with Type 42.

>     DETAILS :

>     This change is a continuation of the glyph/glyph_index cleanup
>     started in http://www.ghostscript.com/pipermail/gs-cvs/2003-June/003354.html .

>     Bug 686983 "TT fonts converted to type3".

> [src/gxfcopy.c 1.31]

2003-08-01 20:37 igor

>     Fix (pdfwrite) : Providing an access to the original font matrix via a special
>     font dictionary key /.OrigFont .

>     DETAILS :

>     The new key is implementation specific and should not affect regular documents.
>     It works for the case when a font is copied like this :

>     	/x findfont dup length dict copy
>     	/y exch definefont

>     - it points from the copy to the original font.

>     This change fixes Ghostscript Bug 686970 "Overlapping characters"
>     and causes a progression with 455690.pdf with pdfwrite.

>     A long ago Peter L. Deutsch and me discussed the heuristic in
>     pdf_font_orig_matrix/font_orig_scale. I was aware of its limitations,
>     but I followed Peter's authority. Now we get a real case that it can't handle,
>     and therefore I take the responsibility for the different approach.

>     -igor.

> [lib/gs_fonts.ps 1.39, src/gdevpdtt.c 1.52, src/gsfont.c 1.21, src/gxfont.h 1.20, src/zbfont.c 1.21]

2003-08-01 16:50 jack

>     Update News.htm with current open bugs and incompatible changes.

> [doc/News.htm 1.133]

2003-08-01 15:53 giles

>     Remove a redundant dependency definition.

> [src/lib.mak 1.130]

2003-08-01 15:40 giles

>     Set release dates on the documenation.

> [doc/News.htm 1.132, man/dvipdf.1 1.25, man/font2c.1 1.25, man/gs.1 1.26, man/gslp.1 1.25, man/gsnd.1 1.25, man/pdf2dsc.1 1.24, man/pdf2ps.1 1.26, man/pdfopt.1 1.24, man/pf2afm.1 1.25, man/pfbtopfa.1 1.26, man/printafm.1 1.25, man/ps2ascii.1 1.24, man/ps2epsi.1 1.23, man/ps2pdf.1 1.30, man/ps2pdfwr.1 1.29, man/ps2ps.1 1.32, man/wftopfa.1 1.25]

2003-08-01 15:21 giles

>     Update release date for stable 8.11 release.

> [doc/News.htm 1.131, src/gscdef.c 1.37, src/version.mak 1.64]

2003-07-31 20:14 alexcher

>     Create a table that decides whether the glyph index belongs to
>     [WinAnsiEncoding, StandardEncoding, MacExpertEncoding], or SymbolEncoding,
>     or none of them. Use this table instead of searching the encoding vectors
>     for every glyph.
>     Fix bug 686929

> [doc/Develop.htm 1.118, src/devs.mak 1.93, src/gdevpdtv.c 1.1, src/gdevpdtv.h 1.1, src/gdevpdtw.c 1.20, toolbin/encs2c.ps 1.4]

2003-07-31 12:15 igor

>     Fix (the new Type 1 hinter) : Accent was misplaced in composite Type 2 glyphs.

>     DETAILS :

>     Bug 686971 "Characters with accents problem".
>     Expected progressions :

>     	Altona.Page_3.2002-09-27.pdf
>     	Svd.pdf

> [src/gstype2.c 1.27, src/gxhintn.c 1.29]

2003-07-30 20:24 giles

>     Document the .bindnow operator and the need to rebind bind to .bind after
>     calling it with -dDELAYBIND. Closes bug 633299.

> [doc/Language.htm 1.73, doc/Use.htm 1.87]

2003-07-30 15:48 ray

>     Remove superfluous 'save pop' from .setpdfwrite definition since gs_init.ps
>     now performs the outer level save which addresses the font loading issue
>     .setpdfwrite was solving.

> [lib/gs_pdfwr.ps 1.35]

2003-07-30 13:35 ray

>     Add -dNOOUTERSAVE when -c false 0 startjob pop is used to set up a job
>     server environment so that Genoa tests will operate as if under a job
>     server and so that global VM will be restored when Genoa tests check the
>     exitserver operation.

> [toolbin/tests/gstestgs.py 1.20]

2003-07-30 07:26 ray

>     Add an initial outermost save unless -dNOOUTERSAVE option is specified.
>     Fixes Bug #686972 and others that were closed with the instructions to
>     use -c "save pop" prior to the file.

>     DETAILS:
>     The initial save is needed for several ProcSets from Adobe applications
>     and those of other vendors that expect objects in global VM to be retained
>     after a restore that would otherwise remove objects in global VM defined
>     after the corresponding save.

>     This kept recurring because several ProcSets from Adobe, Quark and others
>     expect to run under a job server. The -dNOOUTERSAVE is needed for backward
>     compatibility and for those that want to run under a job server and want
>     global VM to be restored between jobs (as expected under a job server).

>     Note that the save object is discarded so that it cannot be used to restore
>     to the state prior to .setsafe and thus circumvent security when -dNOSAFER
>     is used and .setsafe or .locksafe is subsequently used to go to SAFE mode.

> [doc/Use.htm 1.86, lib/gs_init.ps 1.93]

2003-07-30 00:25 giles

>     Properly handle the absence of a parameter dictionary in the JBIG2Decode
>     filter implementation. Closes bug 686979.

>     DETAILS:

>     Filter implementations can be called with  <paramdict> or just
>     with  on the stack. Previously our jbig2 decode filter only
>     supported the former. This went undetected because previous files we'd
>     encountered from the CVISION and Adobe encoders included a /JBIG2Globals
>     filter parameter even if it was empty. The file submitted with the bug
>     has no filter params at all for the JBIG2Decode stream. It identifies
>     itself as having been generated by CVISION Technologies' PDFCompressor 2.0.

> [src/zfjbig2.c 1.3]

2003-07-29 12:24 giles

>     Correct capitalization of the -d parameter in the IJS examples.

> [doc/Devices.htm 1.68]

2003-07-26 19:23 dan

>     Correct a problem which was created when the SeparationOrder parameter
>     was implemented.  The usual symptom was an uninitialized value left in
>     the cyan component for a gray color space.

> [src/gdevdevn.c 1.9]

2003-07-25 14:08 giles

>     Build fix of the jbig2 makefile. OOur portable (v)snprintf implementation is
>     in snprintf.c, notvsnprintf.c. Reported in but 686966.

> [src/jbig2.mak 1.6]

2003-07-25 00:05 giles

>     Record that .buildnativefontmap has been run even if .getnativefonts returns
>     false (unimplemented). This was causing an endless loop if a font was not
>     found as dofindfont tried to call the native font enumeration code over and
>     over.

> [lib/gs_fonts.ps 1.38]

2003-07-24 15:22 ray

>     Fix a SEGV that could occur during 'shfill' if a GC occurred between the
>     .buildhading and the .shfill internal operators.

>     DETAILS:

>     The DataSource sub-structure that is part of the shading_mesh_params was
>     not being traced, so that memory pointed to by elements of that structure
>     would be prematurely freed.

>     This was detected running files produced by libGL2ps that turned an Open GL
>     rendering into LOTS of shapes to be filled with Gouraud triangles.

> [src/gsshade.c 1.9, src/gsshade.h 1.7, src/gsstruct.h 1.16]

2003-07-24 00:25 giles

>     Fix security issue with .setnativefontmapbuilt. Procedures that change the
>     systemdict must be execute-only so the .forceput cannot be extracted and
>     used to change other parameters. Thanks to Russell Lang for this.

> [lib/gs_fonts.ps 1.37]

2003-07-24 00:07 giles

>     Since globaldict isn't always available and userdict is subject to save/restore,
>     keep /.nativefontmapbuilt in systemdict, with an accompanying procedure to set
>     its value since systemdict is read-only from the normal runlevel.

> [lib/gs_fonts.ps 1.36]

2003-07-23 23:31 giles

>     Record whether the .buildnativefontmap has been run as a boolean under
>     the key /.nativefontmapbuilt in userdict, instead of the array hack
>     used previously.

>     A better choice would be globaldict which is less susceptible to save/restore
>     but this is a language level 2 feature and not defined with gs_fonts.ps is
>     run.

> [lib/gs_fonts.ps 1.35]

2003-07-23 21:27 raph

>     More transparency fixes: set color space when computing /BC in soft-mask
>     transparency groups. Implement /TR transfer function in soft-mask groups.

> [lib/pdf_draw.ps 1.73, src/gdevp14.c 1.18]

2003-07-23 17:20 giles

>     Enable native font enumeration by default. This change also corrects some
>     flaws in the search logic. Like with the FONTPATH directory scanning,
>     .buildnativefontmap will only be called the first time a font cannot be found.
>     However, it can still be run manually to update the in-memory Fontmap.

>     DETAILS:

>     To record that .buildnativefontmap has been run, we define /.nativefontmapbuilt
>     as an array containing a single element, either 'true' or 'false'. We use an
>     array to avoid local vs. global issues when the value is set during the call
>     to .buildnativefontmap.

> [lib/gs_fonts.ps 1.34]

2003-07-19 06:13 raph

>     More transparency fixes: fix broken remapping of Separation and DeviceN
>     colorspaces in PDF 1.4 mode. Convert background color for soft mask
>     groups to DeviceGray colorspace using PostScript code (currentgray).

> [lib/pdf_draw.ps 1.72, src/gdevp14.c 1.17, src/ztrans.c 1.20]

2003-07-18 21:40 raph

>     Draws the alpha plane of PDF 1.4 SMask images as a soft masked group.

> [lib/pdf_draw.ps 1.71]

2003-07-17 13:49 giles

>     Speed up native font enumeration on MacOS by caching the results of parsing the FOND resource
>     table.

>     Also return paths of the from '%macresource%path:to:file#POST' for resource files without
>     FOND tables, on the assumption these are LWFN files. The font loading machinery doesn't yet
>     support such paths, and they are simply skipped without being added to the in-memory font map.

> [src/gp_macio.c 1.27]

2003-07-15 16:47 giles

>     Rename reftable to fond_table, etc. to avoid confusion with postscript references.

> [src/gp_macio.c 1.26]

2003-07-15 01:05 giles

>     Improve native font enumeration on MacOS. This feature is still not enabled.

>     DETAILS:

>     There are six different api calls to open a resource file on MacOS Carbon,
>     all of various provenance and history. We were using FSOpenResourceFile()
>     in our FOND parsing code because it will open the data fork of .dfont files
>     or the resource fork of resource font files. Very convenient. However, it
>     fails for some common font files with broken resource maps. Therefore we
>     now fall back to FSpOpenResFile() which only tries the resource fork, but
>     can handle the broken maps, if the first attempt fails. I've not encountered
>     any .dfont files with broken resource maps; they're a recent phenomenon so
>     we should be safe there.

>     Also contains changes to skip the FOND parsing for .ttf and .otf filenames,
>     to ask for 'Local' instead of 'Global' fonts in the enumerator (the difference
>     is unclear) and changes to use the Carbon headers in the Carbon build.

> [src/gp_macio.c 1.25]

2003-07-14 19:32 ray

>     Read a PostScript embedded ICC input profile into a bytestring (.bigstring)
>     rather than a temp file. This is faster and doesn't leave the temp file
>     laying around. Bug #686926 for Artifex customer #1110.

>     DETAILS:

>     Since we don't know the size of the bytestring needed to invoke .bigstring,
>     we read the ICC profile data into an array of 64,000 byte strings, then
>     create the bytestring and fill it with putinterval.

>     This bytestring then becomes the source for a ReusableStreamDecode filter
>     which is a seekable filter. We'd like to have simply used SubFileDecode
>     filter and ASCIIHexDecode as the source for ReusableStreamDecode, but
>     this only works if SubFileDecode has a count.

> [lib/gs_icc.ps 1.10]

2003-07-14 07:20 ghostgum

>     Exclude NT file attributes when building zip file of sources.

> [doc/Release.htm 1.78]

2003-07-11 15:18 giles

>     Have configure define DONT_HAVE_JMEMSYS_H is appropriate, is support of the eventual generation of gconfig_.h by the configure script rather than unix-aux.mak.

> [src/configure.ac 1.32]

2003-07-10 22:32 dan

>     Added casts to remove some warning messages from MSVC.  Partial fix for
>     bug #686592.

> [src/gdevdevn.c 1.8, src/gdevpsd.c 1.5]

2003-07-10 19:21 ray

>     Comment out the #define for the DUMP_TO_PNG debug mode (it will need make
>     file changes to compile correctly since png.h may not be on standard
>     include paths.

> [src/gdevp14.c 1.16]

2003-07-10 18:42 raph

>     First batch of transparency improvments. With these changes,
>     ChineseOpera.ai and a number of other files using soft mask groups
>     should render correctly.

> [src/gdevp14.c 1.15, src/gstrans.c 1.17, src/gxblend.c 1.5]

2003-07-10 18:34 raph

>     A code clarity change only. Make the value of 1-input stitching function
>     more explicit in the degenerate case.

> [src/gsfunc3.c 1.15]

2003-07-10 18:07 giles

>     Update version information and links to the web and bts sites, after a patch from Ambrose Li. Bug 686939.

> [doc/Bug-info.htm 1.36, doc/New-user.htm 1.47]

2003-07-10 17:55 giles

>     Generate the list of X11 libraries we need to link to in configure. Previously this was hardwired, but some systems do require the addition of the X_PRE_LIBS and X_EXTRA_LIBS discovered by the configure macro. Closes bug 686938.

> [src/Makefile.in 1.26, src/configure.ac 1.31]

2003-07-10 17:46 ray

>     Prevent divide by zero when invalid Bounds arrays are encountered. Earlier
>     we allowed invalid Bounds to be compatible with Adobe, but did not supply
>     a non-zero denominator value. Fix required for ChineseOpera.ai

> [src/gsfunc3.c 1.14]

2003-07-10 17:11 giles

>     Recognize the 0.3 source release jbig2dec.

> [src/configure.ac 1.30]

2003-07-10 17:08 giles

>     Improve a comment in the generated gconfig_.h on unix.

> [src/unix-aux.mak 1.10]

2003-07-10 02:56 ray

>     Add some casts to prevent excessive warnings when compiling C fonts with
>     MSVC 6. This only affects the syntax of the generated fonts.

> [lib/font2c.ps 1.6]

2003-07-09 23:55 igor

>     Fix: Cygwin/gcc warnings.

>     DETAILS :

>     One of them actually was a bug in the recent patch.

> [src/gxtype1.c 1.26, src/zchar1.c 1.31]

2003-07-09 23:46 igor

>     pdfwrite : Improving the font metrics handling.

>     DETAILS :

>     1. Metrics, Metrics2 was ignored for CID fonts;
>     2. usematrix was ignored;
>     3. v-vector was erroneusely scaled down in 1000 for TT fonts;
>     4. glyph_info mixed WMode 0 1nd 1 in some cases.

>     This patch is a partial fix for the bug #686947 "rotated japanese chars".
>     A complete fix should include a handling of CDevProc.

>     This patch causes an unexpected progression of pdfwrite with keyboard.pdf
>     at any resolution, and a minor difference with 093-01.ps at 300dpi.

> [src/gdevpdtc.c 1.25, src/gdevpdte.c 1.40, src/gdevpdtt.c 1.51, src/gstype42.c 1.32, src/gxfcopy.c 1.30, src/gxtype1.c 1.25, src/ichar1.h 1.10, src/int.mak 1.114, src/zchar1.c 1.30, src/zfcid1.c 1.18]

2003-07-09 14:03 igor

>     Fixing a C++ style comment in fapi_ft.c.

> [src/fapi_ft.c 1.10]

2003-07-08 21:03 giles

>     Don't redefine _Windows, since msvctail.mak passes it on the command line. Fixes a warning under
>     MSVC reported by Igor Melichev.

> [src/iapi.h 1.10]

2003-07-08 17:31 giles

>     Use 'fontname' instead of 'name' as an argument to gp_enumerate_fonts_next()
>     to avoid a warning on MSVC. Thanks to Igor for pointing out the issue.

> [src/gp.h 1.24, src/gp_dvx.c 1.10, src/gp_iwatc.c 1.15, src/gp_macio.c 1.24, src/gp_mswin.c 1.21, src/gp_os2.c 1.28, src/gp_os9.c 1.11, src/gp_unix.c 1.12, src/gp_vms.c 1.31, src/zfontenum.c 1.3]

2003-07-08 15:02 giles

>     Add dmmain.c to the list of (platform-specific) source files exempt from the C++ comment policy.

> [toolbin/tests/check_comments.py 1.2]

2003-07-08 14:58 giles

>     Remove some C++ style comments.

> [src/gsiomacres.c 1.4]

2003-07-08 14:56 giles

>     Remove some C++ style comments and correct formatting.

> [src/zfontenum.c 1.2]

2003-07-08 14:51 giles

>     Add zfontenum.c to the file listing in the documentation.

> [doc/Develop.htm 1.117]

2003-07-08 13:26 igor

>     Fix (pdfwrite) : Enlarge font resource arrays on demand.

>     DETAILS :

>     The patch fixes CID fonts that provide a lesser CIDCount than
>     CIDs used in a document. Rather PS requires to print CID=0,
>     we need to provide a bigger CIDCount since we don't
>     re-encode the text. The text should look fine if the
>     viewer application substitutes the font.

>     Fixes the pdfwrite regression with 401-01.ps, which caused a segfault on Linux.
>     Thanks to Ray Johnston for the fault analyzis.

> [src/gdevpdtc.c 1.24, src/gdevpdtf.c 1.31, src/gdevpdtf.h 1.20]

2003-07-07 21:54 jack

>     Implement C++ style comment checking.  Partially fixes bug #538033.

> [toolbin/tests/check_comments.py 1.1]

2003-07-07 21:53 jack

>     Require python2.2 now, since the new C++ style comment checking requires it.

> [toolbin/tests/check_all.py 1.4, toolbin/tests/check_dirs.py 1.7, toolbin/tests/check_docrefs.py 1.8, toolbin/tests/check_source.py 1.6, toolbin/tests/dump_testdb 1.5, toolbin/tests/get_baselines 1.2, toolbin/tests/gscheck_all.py 1.4, toolbin/tests/gscheck_fuzzypdf.py 1.6, toolbin/tests/gscheck_pdfwrite.py 1.14, toolbin/tests/gscheck_raster.py 1.5, toolbin/tests/make_testdb 1.11, toolbin/tests/make_two_pdfversions 1.7, toolbin/tests/make_two_versions 1.11, toolbin/tests/revert_baseline 1.11, toolbin/tests/revert_pdfbaseline 1.9, toolbin/tests/run_nightly 1.19, toolbin/tests/run_regression 1.12, toolbin/tests/testdiff 1.3, toolbin/tests/update_baseline 1.12, toolbin/tests/update_pdfbaseline 1.8]

2003-07-04 19:31 giles

>     Initial check in of the native font enumeration mechanism with an implementation for MacOS. The
>     code is currently disabled pending resolution of bugs regarding some font files.

>     DETAILS:

>     This adds a trio of gp_enumerate_fonts calls which implement an interator for querying the native
>     operating system for font files. This is essentially required to make use of the support for
>     reading resource-based font collection files on MacOS since there is no convenient way to
>     construct a Fontmap by hand. Thus our initial implementation focusses there and only stubs are
>     provided on other platforms. However, it would generally be a useful feature on any system that
>     provides such services.

>     An iterator object is created with gp_enumerate_fonts_init() and released with
>     gp_enumerate_fonts_free(). Between these calls, each font is returned by a successive
>     call to gp_enumerate_fonts_next() as a pair of C strings giving the access path and reported font
>     name.

>     On MacOS these are implemented using the FMFontIterator API from Carbon. Unfortunately, while this
>     returns font names and files, it does not provide details about the resource internals so we must
>     open the file and extract the resource id corresponding to the font itself. It also is not always
>     possible to obtain the correct postscript name from the OS call.

>     Connection is made to postscript through the .getnativefonts operator, implemented in zfontenum.c.
>     I handles the interation and places the results on the stack as an array of two element arrays,
>     each representing the name and path as postscript strings. New code in gs_fonts.ps calls this and
>     adds the entries to the fontmap after first calling .findfontname on each path to verify
>     accessibility and in case the reported font name is unreliable. This is implemented as the
>     .buildnativefontmap procedure, which is called by the font location logic if a requested font
>     is not found in the Fontmap.

>     Caveats: This can be a very expensive operation, so like the FONTPATH directory scanning it should
>     probably only happen once in a given session, instead of every time a font isn't found. The macos
>     implementation could also be considerably streamlined.

> [lib/gs_fonts.ps 1.33, src/gp.h 1.23, src/gp_dvx.c 1.9, src/gp_iwatc.c 1.14, src/gp_macio.c 1.23, src/gp_mswin.c 1.20, src/gp_os2.c 1.27, src/gp_os9.c 1.10, src/gp_unix.c 1.11, src/gp_vms.c 1.30, src/int.mak 1.113, src/zfontenum.c 1.1]

2003-07-04 15:08 giles

>     Apparently Metrowerks CodeWarrior defines _WINDOWS_ instead of the normal __WINDOWS__. Support both for determining the calling conventions of the client api. Problem reported by Des Courtney as bug 686934.

> [src/iapi.h 1.9]

2003-07-04 13:02 giles

>     Add the new get_baselines script to the regression test documentation.

> [doc/Testing.htm 1.20]

2003-07-03 12:20 igor

>     Fix (Type 1 hinter) : -dAlignToPixels=0 was ignored with -dNOCACHE.

>     DETAILS :

>     Now we pass the oversampling scale and the number of subpixels
>     to the Type 1 hinter in separate parameters. The old interface
>     was wrong when alpha buffer is installed with -dNOCACHE.

>     The patch cause difference in rendering with -dTextAlphaBits=2,4.
>     These cases are not tested by the regression test tool.

>     Minor changes :

>     - fixed C-style in gxhintn.c;
>     - removed "const gs_log2_scale_point no_scale = {0, 0}" to simplify calls
>       to gs_type1_interp_init.

> [src/gdevpsfx.c 1.21, src/gstype1.c 1.24, src/gstype1.h 1.7, src/gstype2.c 1.26, src/gxfcopy.c 1.29, src/gxhintn.c 1.28, src/gxhintn.h 1.13, src/gxtype1.c 1.24, src/gxtype1.h 1.13, src/zchar1.c 1.29]

2003-07-02 23:41 jack

>     Report upgraded baselines in the last 24 hours. Closes bug #654532.

> [toolbin/tests/get_baselines 1.1, toolbin/tests/gscheck_raster.py 1.4, toolbin/tests/run_nightly 1.18, toolbin/tests/testing.cfg.example 1.3]

2003-07-02 14:35 giles

>     Change the release instructions to refer to GPL Ghostscript rather than GNU Ghostscript. We're no longer part of the GNU project. Closes bug 686913.

> [doc/Release.htm 1.77]

2003-07-02 13:16 giles

>     Document passing -DGX_COLOR_INDEX_TYPE in unixansi.mak in response to the confusion reported in bug 686876.

> [src/unixansi.mak 1.32]

2003-07-01 15:01 giles

>     Correct a bug with zero-length files in .findfontvalue, used by .findfonttype and .findfontname.

> [lib/gs_fonts.ps 1.32, lib/gs_ttf.ps 1.31]

2003-07-01 14:41 giles

>     Document the need to set /OutputFile to a valid filename before calling 'setdevice' with the pdfwrite device. Closes bug 686784.

> [doc/Language.htm 1.72]

2003-07-01 10:00 igor

>     Fix : merge Adobe Glyph List to gs/Resource/Decoding/Unicode.

> [Resource/Decoding/Unicode 1.3]

2003-07-01 04:37 alexcher

>     Fix premature increment of a nested string counter.
>     Skip white space characters before '(' on 0 level.

> [src/geninit.c 1.8]

2003-07-01 04:19 alexcher

>     Include default font map into compiled initialization files but use it only
>     if the default font map file fails to open at run time.
>     Fix bug 414985.

> [lib/Fontmap 1.2, lib/gs_fonts.ps 1.31, doc/Make.htm 1.68]

2003-06-30 16:23 alexcher

>     Fix a typo in a comment.

> [lib/gs_stres.ps 1.5]

2003-06-26 22:42 dan

>     Fix for 686927  Bug in implementation of .hsb2rgb (gs_cspace.ps).
>     This is a bug report, fix, and a test file from Heiko Oberdiek.
>     I love it when the bug reporter also includes an analysis, a fix and a
>     test file.  The problem was an error in the calculations for an HSB (hue,
>     saturation, brightness) color to RGB when the hue was 1.  The only change
>     that I made in Heiko's fix was to change a few more comments.

> [lib/gs_cspace.ps 1.6]

2003-06-26 22:20 alexcher

>     PDF fonts can have different widths assigned to character codes corresponding
>     to the same glyph. There is no equivalent feature in PostScript. In this case
>     we define a new entry in CharString dictionary, and change Encoding vector and
>     Metrics accordingly. Currently the font adjustment is applied to Type1,
>     MMType1, and TrueType font resources as defined in adjustfonttypes dictionary.
>     Fixes bug 623292

> [lib/pdf_font.ps 1.57, lib/pdf_ops.ps 1.30]

2003-06-26 15:59 alexcher

>     Don't oversample characters for rendering in non-pure color. Search the
>     character cache for the exact match -- don't do routine downsampling.
>     Move cached image depth calculations to compute_glyph_raster_params().
>     Fix downsampling depth calculation although it is not expected to be used
>     in normal operation. Leave the downsampling code intact because it is also
>     used for error recovery.
>     Fix bug 570772 from customer 1.

> [src/gxccache.c 1.17, src/gxccman.c 1.8, src/gxchar.c 1.29]

2003-06-26 09:14 igor

>     Fix : Improving an error message.

> [src/imain.c 1.32]

2003-06-24 10:57 igor

>     Fix : gs/Resource/Decoding/Unicode contained wrong codes for Cyrillic and Herbrew.

> [Resource/Decoding/Unicode 1.2]

2003-06-22 11:15 igor

>     Fix (pdfwrite) : pdev->black and pdev->white were not set when ProcessColorModel changes.
>     Bug 686921 "/ProcessColorModel /DeviceCMYK causes black page".

> [src/gdevpdfg.c 1.33]

2003-06-21 15:16 igor

>     Fix (pdfwrite) : Improving the condition for writing ToUnicode CMap for simple fonts.

> [src/gdevpdte.c 1.39, src/gdevpdtw.c 1.19]

2003-06-21 12:12 igor

>     Fix : Remove LONG_MIN from gxfill.c for a better portability.

> [src/gxfill.c 1.38]

2003-06-20 15:52 giles

>     Give the explicit maximum buffer size in bytes. Suggestion by Ray re bug
>     686925.

> [doc/API.htm 1.35, doc/DLL.htm 1.31]

2003-06-20 14:32 giles

>     Document the 64 KB length limit on input data passed through the
>     gsapi_run_string* and gsdll_run_cont() calls. Fixes bug 686925.

> [doc/API.htm 1.34, doc/DLL.htm 1.30]

2003-06-20 13:20 giles

>     Remove <limit.h> inclusions as it defines types that conflict with our
>     std*.h on HPUX and probably other systems. Fix for bug 686920.

>     Also correct the copyright dates for gxhintn.c.

>     DETAILS:

>     limits.h was defining ushort on HPUX which conflicts with the definition
>     imported in stdpre.h. There are two approaches within our portability
>     framework: don't use these defines, or make them part of the
>     output from genarch. Since there's only one use in the code (for
>     MIN_LONG) I simply defined it at the top of the file.

>     The test used should work on all 2's complement systems and would
>     probably fail miserably on anything else. It was the most portable
>     define I could come up with. A less assuming variant
>     ((long)(ARCH_MAX_ULONG>>1)+1) also works but generates a warning about
>     the overflow.

>     genarch.c could of course test a variety of candidates and look for the
>     rollover. We could also switch to autoconf for provisioning the whole
>     set of defines. This was chosen as the simplest fix for the time.

> [src/gxfill.c 1.37, src/gxhintn.c 1.27]

2003-06-20 11:23 giles

>     Declare zimage_data_setup() as private to match its prototype. Corrects
>     a warning on the HPUX native compiler.

> [src/zimage.c 1.11]

2003-06-19 15:38 igor

>     Fix (pdfwrite) : FontMatrix was wrong when a standard font is used
>     with various encodings.

>     DETAILS :

>     The core of the change is one in pdf_font_std_alloc.
>     Others provide information for it.

>     Bug 686917 "bad type1 font handling in pdfwriter".

> [src/gdevpdtb.c 1.20, src/gdevpdtd.c 1.13, src/gdevpdtf.c 1.30, src/gdevpdtt.c 1.50, src/gxfcopy.c 1.28, src/gdevpdtb.h 1.9, src/gdevpdtf.h 1.19, src/gxfcopy.h 1.9]

2003-06-18 20:51 alexcher

>     Windows 2000 driver includes PJL into %%BeginFeature block.
>     Identify this from the operand stack pattern: countdictstack lucas mark
>     and fail the feature request.
>     Fix bug 686916

> [lib/gs_init.ps 1.92]

2003-06-18 20:01 alexcher

>     Use single '%' in a comment.

> [lib/gs_stres.ps 1.4]

2003-06-18 19:58 alexcher

>     Activate DSC parser only after all prologue files are read to
>     prevent spurious comments starting with '%%' from disturbing the parser.

> [lib/gs_pdfwr.ps 1.34]

2003-06-18 19:56 alexcher

>     Fix mis-identificaion of every DSC-conforming file as EPS.

> [src/gdevpdfp.c 1.32]

2003-06-18 19:53 alexcher

>     Add a paragraph documenting current page orientation options,
>     document limitations on ps2pdf options, and show a work-around.
>     Fixes bug 592930

> [doc/Ps2pdf.htm 1.54]

2003-06-18 13:30 igor

>     pdfwrite : Generate ToUnicode CMaps for CID fonts.

>     DETAILS :

>     This patch must not affect any rendering.

>     The main change is in gdevpdtc.c and zbfont.c .

>     Minor changes :

>     - removed an debug code (#if TEST_UNICODE_SUPPORT, #if 0 in gdevpdtc.c);
>     - Propagated error code in gdevpdf.c .

>     Bug 686887 "Searchable pdf".

> [src/gdevpdf.c 1.69, src/gdevpdtc.c 1.23, src/gdevpdte.c 1.38, src/zbfont.c 1.20]

2003-06-17 13:41 igor

>     Fix (type 1 hinter) : Don't apply alignment zone to horizontal stems
>     when the shift is bigger than half pixel.

>     DETAILS :

>     Fixes a problem with comparefiles/font_issue.pdf .

>     This patch causes minor differences in rendering of multiple files :

>     72dpi :

>     027-09.ps
>     bulletin.pdf
>     chess.ps
>     CIDembedded.pdf
>     fonttest.pdf
>     Svd.pdf
>     test.pdf

>     300dpi :

>     01_001.pdf
>     027-05.ps
>     027-09.ps
>     033-52-5873.pdf
>     045-01.ps
>     093-01.ps
>     136-01.ps
>     154-01.ps
>     158-01.ps
>     159.pdf
>     165-01.ps
>     1_pct_50_bang.pdf
>     231-01.ps
>     233-01.ps
>     251-01.ps
>     268-03.ps
>     268-05.ps
>     281-01.ps
>     327-01.ps
>     450-01.ps
>     455690.pdf
>     541.pdf
>     541_623.pdf
>     86554321.pdf
>     aaon97_p7.pdf
>     acrobat.pdf
>     adesso1.pdf
>     adesso3.pdf
>     adesso5.pdf
>     adesso6.pdf
>     adesso7.pdf
>     AdobeLic.pdf
>     alphabet.ps
>     Altona-Testsuite_p2_S_x3.pdf
>     Altona.Page_3.2002-09-27.pdf
>     ats-3-5-99.pdf
>     besttest.pdf
>     brochurep1.pdf
>     bug-gstest.pdf
>     bugsample.pdf
>     bulletin.pdf
>     ccc.pdf
>     chess.ps
>     CIDembedded.pdf
>     colorcir.ps
>     dave.pdf
>     Dave_Barry.pdf
>     DisplayedGood.pdf
>     DisplayedWrong.pdf
>     fonttest.pdf
>     frosch.pdf
>     gs5.98-dragon.pdf
>     gs6.0-dragon.pdf
>     H00216q.pdf
>     js.pdf
>     kazmir.pdf
>     KozukaB-ILEmbed.pdf
>     laballade.pdf
>     LD.pdf
>     narrow_font.pdf
>     ngnews.pdf
>     ngnews1.pdf
>     NIL_0003.pdf
>     Openhuis_pdf_zw.pdf
>     pdftops.pdf
>     PixelisAd.pdf
>     prfmm.pdf
>     pstopdf.pdf
>     pstopdfO3.pdf
>     QA_Inv.pdf
>     RealCities.pdf
>     rf1025.pdf
>     ridt91.eps
>     RodinCIDEmbed.pdf
>     S2_Digitalproof-Forum_x3k.pdf
>     smdf.90441.102.pdf
>     Svd.pdf
>     test.pdf
>     test2.pdf
>     test2a.pdf
>     textsavematrix.pdf
>     time1.pdf
>     vsem0093.pdf
>     waterfal.ps
>     xgfddg.pdf
>     xngnews.pdf

> [src/gxhintn.c 1.26]

2003-06-17 12:10 giles

>     Clarify a comment.

> [src/macos-mcp.mak 1.20]

2003-06-17 09:42 igor

>     Implementing the text rendering mode 3 with graphics library
>     to allowing PDF interpreter with pdfwrite to pass invisible text (continued).

>     DETAILS :

>     2 files were missed from the previous patch. Adding them now.

> [src/gsstate.c 1.20, src/gxistate.h 1.16]

2003-06-16 15:04 igor

>     Implementing the text rendering mode 3 with graphics library
>     to allowing PDF interpreter with pdfwrite to pass invisible text.

>     DETAILS :

>     This patch improves the text rendering mode 3 only.
>     Other text modes stay like they were -
>     implemented with charpath in pdf_ops.ps
>     (to be improved someday).

>     We process invisible text with TEXT_DO_NONE,
>     adding an additional check to op_show_restore in zchar.c .
>     We would like to implement a new mode TEXT_DO_INVISIBLE,
>     but we don't want to do so deep change without a strong neccessity.
>     It can be subject of a further improvement.

>     With this patch stringwidth won't work with text rendering mode 3.
>     We never use this combination.
>     TEXT_DO_INVISIBLE could work for it.

>     Bug 686914 "pdfwrite does not preserve invisible text".

> [src/gdevpdte.c 1.37, src/gdevpdtt.c 1.49, src/gsstate.h 1.9, src/gstext.c 1.12, src/int.mak 1.112, src/zchar.c 1.11, src/zgstate.c 1.8, lib/pdf_ops.ps 1.29]

2003-06-16 10:46 igor

>     Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong (3nd attempt).

>     DETAILS :

>     This patch defines a compatible workaround for fonts that use
>     ce1_setcurrentpoint in an illegal way. See comments in code.

> [src/gdevpsfx.c 1.20, src/gxhintn.c 1.25]

2003-06-11 19:49 igor

>     Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong (2nd attempt).

>     DETAILS :

>     The previous patch appears wrong.
>     This patch unwinds the change to gdevpsfx.c and fixes ce1_setcurrentpoint
>     in the new Type1 hinter.

> [src/gdevpsfx.c 1.19, src/gxhintn.c 1.24]

2003-06-11 12:02 igor

>     Fix : Errors in a comment documenting gs_glyph.

> [src/gsccode.h 1.11]

2003-06-11 01:35 giles

>     Print out modified file names and versions when generating the html changelog. Update the current
>     versions of Changes.html and Details.html as an example.

> [doc/Changes.htm 1.47, doc/Details.htm 1.6]

2003-06-11 01:31 giles

>     Print out modified filenames and versions when generating the html changelog.

> [toolbin/split_changelog.py 1.5]

2003-06-10 14:29 igor

>     Fix : (type 1 interpreter) : ce1_setcurrentpoint was wrong.

> [src/gdevpsfx.c 1.18, src/gstype1.c 1.23]

2003-06-09 22:25 alexcher

>     Edited to reflect new capabilities of Bugzilla and current bug reporting
>     practices.

> [doc/Bug-form.htm 1.37]

2003-06-09 22:16 alexcher

>     Change links from SourceForge bug tracker,
>     http://sourceforge.net/bugs/?group_id=1897
>     to Ghostscript Bugzilla, http://bugs.ghostscript.com
>     Fix bug #686888

> [doc/Bug-info.htm 1.35, doc/Make.htm 1.67]

2003-06-09 21:55 alexcher

>     Add hyperlinks to Ghostscript Bugzilla bug entries.

> [doc/Devices.htm 1.67, doc/Issues.htm 1.37, doc/Projects.htm 1.52]

2003-06-09 13:58 alexcher

>     Permit explicit specification of /GDBytes equal to 0 for incrementally
>     downloadable CIDFonts.
>     Fixes bug 686890 from customer 131.

>     DETAILS:
>     Incrementally downloadable CIDFont has GlyphDirectory key. According to
>     PLRM3 p. 376 "The binary data section of a CIDFont with a GlyphDirectory entry
>     does not need a charstring offset table or charstrings; if present, they will
>     be ignored". PLRM3 says nothing about GDBytes entry but it seems logical that
>     the entry is no longer needed when the structure it describes is ignored.

>     Old code used 0 as a default GDBytes value but required explicit specification
>     to be > 0. New code permits explicit 0 value because "Acrobat PDFMaker 5.0 for
>     Word" generates it.

> [src/zfcid.c 1.14]

2003-06-08 13:59 igor

>     Fix : Removing an unused code.

> [src/gdevbit.c 1.8]

2003-06-08 03:30 igor

>     Fix : Completing the extended semantics of gs_glyph.

>     DETAILS :

>     The extended semantics was introduced with the patch
>     http://www.ghostscript.com/pipermail/gs-cvs/2003-June/003354.html
>     That patch appears incomplete. Hopely this one completes it.
>     Also it fixes the bug #686910, which was not detected with comparefiles.

> [src/zfont42.c 1.16]

2003-06-07 21:17 igor

>     pdfwrite : Write Encoding for True Type fonts.

>     DETAILS :

>     See comment in code.

> [src/gdevpdtt.c 1.48]

2003-06-07 21:14 igor

>     Fix (PDF interpreter) : Account Encoding while building CharStrings for TrueType fonts.

>     DETAILS :

>     If an Encoding is specified with a symbolic TrueType font,
>     its character names to be used for generating CharStrings.
>     The old code uses SymbolEncoding instead, missing some characters.

>     Fixes the bug 686912 "PDF interpreter problem with True Type & Encoding".

> [lib/gs_ttf.ps 1.30, lib/pdf_font.ps 1.56]

2003-06-06 17:50 igor

>     Fix (pdfwrite) : Convert Type 0 fonts with multiple CID font descendents into
>     Type 0 fonts with single CID font descendents (the part 3).

>     DETAILS :

>     At last we got a non-degenerate test for multiple CID font descendents
>     and could debug this stuff with a real document.

>     This patch mixes several changes :

>     - In some cases CIDFontType 2 fonts wrongly computed glyph indices ignoring GlyphDirectory.
>       The new function z11_glyph_info works for it.

>     - The text decomposition in gdevpdtc.c mixed font indices of various font descendents.

>     - font->procs.get_glyph_info sometimes received glyph indices
>       instead glyph names or CIDs. This happened with subglyphs of a CIDFontType 2 glyph.
>       This patch improves the semantics of gs_glyph with distinguishing
>       CIDs and GIDs with a new tag in the 2nd high order bit.
>       The new macro GS_MAX_GLYPH_INDEX and related stuff
>       works for it.

>     - gdevpdtd.c tried to compute CID font features using glyph names,
>       which don't exist in this case. Replaced with CIDs.

>     - In gdevtrac.c a wrong glyph space was specified enumerating glyphs
>       (a minor change, since gdevtrac.c is almost an example).

>     - Fixed a compiler warning in gdevdevn.c .

>     Working on this patch, we can see rudiments
>     in pdfwrite code, which are inherited from pre-8.00 code
>     (before stable font copies are implemented), which to be fixed someday :

>     - subset_glyphs arguments in gdevpsft.c looks always NULL
>       and probably to be removed;

>     - COPY_GLYPH_BY_INDEX is now obsolete and to be removed;

>     - glyph enumeration procedures (*enumerate_glyph*) sometimes retrieve
>       a wrong tag in gs_glyph values. The new macro GS_GLYPH_TAG works against it,
>       rather an improvement to enumeration procedures would be useful.

>     The patch is debugged with korea.ps from the bug #686894.
>     After this change the embedded composite font with 2 CIDFontType 2
>     descendents is correctly decomposed into 2 Type 0 fonts with
>     single descendents (the old (gs8.10) code converts it into a Type 3
>     with outlines). The generated PDF satisfies the PDF specification
>     and Ghostscript can handle it. Meanwhile Acrobat Reader 4,5,6
>     fails with it. It appears an old known problem :
>     if a Type 42 font and a CIDFontType 2 with a non-standard CMap
>     appear in same PDF document, Acrobat Reader fails.
>     We believe it's a bug in Acrobat reader, because if we
>     modify the document with removing portions of text so that
>     only one of the 2 fonts is really used, Acrobat Reader renders it fine.
>     It fails only when both things are really used for rendering.
>     A workaround for this problem to do separately.

> [src/gdevdevn.c 1.7, src/gdevpdtc.c 1.22, src/gdevpdtd.c 1.12, src/gdevpdtf.c 1.29, src/gdevpdtt.c 1.47, src/gdevpsf.h 1.24, src/gdevpsft.c 1.30, src/gdevpsfu.c 1.11, src/gdevtrac.c 1.5, src/gsccode.h 1.10, src/gstype42.c 1.31, src/gxfcopy.c 1.27, src/gxfont42.h 1.15, src/zfcid1.c 1.17, src/zfont42.c 1.15]

2003-06-06 16:29 alexcher

>     Process encryption dictionary after reading all parts of xref. Old code
>     resolved encryption dictionary after reading the latest part of xref only
>     and returned null instead of the dictionary for some files.
>     Fixes bug 686907 from customer 1060.

> [lib/pdf_main.ps 1.75]

2003-06-03 07:31 igor

>     pdfwrite : Don't add subset prefix when a font doesn't embeed.
>     Ghostscript Bug 686893  NeverEmbed for Japanese CID fonts doesn't work correctly
>     Patch from Koji Nakamaru.

> [src/gdevpdtf.c 1.28]

2003-06-03 06:26 dan

>     Fix for 686785 segfault with PDF 1.4.  The PDF interpreter was calling
>     PDF 1.4 transparency features (begin_trasnparency_group) even though
>     the alpha involved was 1.0.  THe fix is to set a flag when the need
>     for transparency is done at the start of a page and then testing it
>     when transparency may be needed durng the page.

> [lib/pdf_draw.ps 1.70, lib/pdf_main.ps 1.74]

2003-06-03 05:30 dan

>     This fix corrects a recursion loop that exists with PDF form objects
>     with a transparency group.

> [lib/pdf_draw.ps 1.69]

2003-06-02 19:52 alexcher

>     Count 1st page objects as shared objects. This is the 1st version that
>     generates files compatible with AR5 used as a browser plug-in.
>     Earlier versions of Acrobat ignore malformed hint tables. All versions
>     ignore the tables when they read the file from disk.
>     Fixes bug 592841

> [lib/pdfopt.ps 1.20]

2003-06-02 16:21 igor

>     pdfwrite : Glyph indices were wrongly computed with copied FontType 11.
>     Ghostscript Bug 686894 "Corrupted CMap".

> [src/gxfcopy.c 1.26]

2003-06-02 13:35 giles

>     Add standard banner and (unnecessary) double include protection to satisfy policy tests.

> [src/macos_carbon_pre.h 1.2]

2003-06-02 13:29 giles

>     Correct listing of MacOS platform-specific source files.

> [doc/Develop.htm 1.116]

2003-05-31 00:10 ray

>     Previous commit was from a bad version of the file (prior to a local
>     correction in a different directory). This fix is the correct fix for
>     embedded fonts that have Length 0 for customer #590.

> [lib/pdf_font.ps 1.55]

2003-05-30 23:28 ray

>     Some PDF files have embedded fonts with Length == 0. These should default
>     to the same handling as when there is no embedded font. Fix for customer
>     #590.

> [lib/pdf_font.ps 1.54]

2003-05-29 19:28 giles

>     Add an example library client for MacOS, comparable to dxmain and dwmain for other platforms. This
>     implementation is specific to Metrowerk CodeWarrior, relying on the MSL/SIOUX stdio implementation
>     for the interactive window. No project file support at the moment.

>     Code contributed by Nigel Hathaway.

> [src/dmmain.c 1.1, src/dmmain.r 1.1]

2003-05-29 19:11 giles

>     Add a prefix header file for the MacOS Carbon build to enable target-specific settings.

>     DETAILS:

>     Metrowerks CodeWarrior doesn't really have an equivalent of the -D commandline option to set CPP
>     defines at compile time. This makes it difficult to set target-specific #ifdef's, for example the
>     __CARBON__ switches used in the MacOS support code. The closest thing offered is a hook in the
>     project file for a 'prefix' header file that will be prepended to each source file as it is fed to
>     the preprocessor. We add such a file for the carbon build, and enable it in the project file xml.

>     The conditional in macgenmcpxml.sh is a direct comparison for the Ghostscript carbon shlib name,
>     which is excessively brittle. Something like perl's =~ /carbon/i on the target name would be
>     preferable, but I couldn't figure out how to do that reliably in sh.

> [src/macgenmcpxml.sh 1.10, src/macos_carbon_pre.h 1.1]

2003-05-29 19:02 giles

>     Check for a valid filter name before trying to parse jbig2 global context streams.
>     Fixes bug 686829.

>     DETAILS:

>     The expansion of abbreviated filter names and check for supported filters was
>     happening after the special-case handling of JBIG2Decode parameters, resulting
>     is an '/undefined in /.jbig2makeglobalctx' error if Ghostscript was compiled
>     without jbig2 support, rather than the usual 'Unable to process' warnings for
>     files containing JBIG2Decode data.

> [lib/pdf_base.ps 1.38]

2003-05-29 16:38 giles

>     Remove spurious '-c' options to install. Closes bug 686895.

> [ijs/Makefile.in 1.2]

2003-05-27 16:10 alexcher

>     Initialize current color value as null when pattern color space is set.
>     Fixes bug 686805

> [src/zpcolor.c 1.10]

2003-05-24 22:41 igor

>     Fix : Don't fail when GlyphNames2Unicode can't be provided for a CID font.

> [lib/gs_fntem.ps 1.6]

2003-05-24 17:19 dan

>     A pair of fixes for Bug 686791   Device bitcmyk produces wrong output
>     The bitcmyk device produce the wrong output if GrayValues=8.  In this
>     case the pixel size is 32 bits.  The encode_color procedure was sign
>     extending the  MSB into the upper 32 bits of 64 bit gx_color_indexes.
>     The fix in gdevbit.c prevents this from happening.  The fix in gdevm32.c
>     makes it so that it does not matter.  I am including both for
>     completeness.  The bitcmyk device should not produce garbage in the
>     remaining bits.  Thus the first fix.  However there may be other
>     devices with this problem so I am including the fix in gdevm32.c.
>     There was a recent report from an AIX system with a similar problem

> [src/gdevbit.c 1.7, src/gdevm32.c 1.5]

2003-05-23 09:57 igor

>     Provide a trial support for converting a text to Unicode.

> [lib/gs_cidfn.ps 1.27, lib/gs_fntem.ps 1.5, lib/gs_fonts.ps 1.30, lib/gs_pdfwr.ps 1.33, src/gdevpdtc.c 1.21, src/zbfont.c 1.19]

2003-05-23 01:53 ray

>     Stream 'position' was not update correctly under some conditions.
>     Fixes Bug #686859 for customer #600.

>     DETAILS:

>     The stream position was not updated if the buffer was emptied by
>     sgets, which then called to spgetcc. The latter would reset the
>     read pointers needed in order to account for the empty buffer.

> [src/stream.c 1.22]

2003-05-22 23:37 igor

>     pdfwrite : Convert Type 0 fonts with multiple CID font descendents into
>     Type 0 fonts with single CID font descendents (part 2).

>     DETAILS :

>     The previous patch appears wrong for the case when same CID font is used with
>     different CMaps. Creating multiple Type 0 fonts for this case,
>     assigning them a composite font name with CMap name.

>     Minor changes :

>     - a compiler warning in gdevpdfv.c .

>     - a wrong error code was returned from zfcid0.c .

> [src/gdevpdfv.c 1.26, src/gdevpdtc.c 1.20, src/gdevpdtf.c 1.27, src/gdevpdtf.h 1.18, src/gdevpdtt.c 1.46, src/gdevpdtt.h 1.17, src/zfcid0.c 1.20]

2003-05-22 22:57 giles

>     Double-equals ('==') for string comparison is not portable shell. Thanks
>     to Nelson Beebe for pointing out the issue.

> [src/configure.ac 1.29]

2003-05-22 20:27 igor

>     Fix : Removed a debug hack.

> [src/gsfcmap1.c 1.6]

2003-05-22 15:51 ray

>     PDF Forms that contained indirect objects need to be resolved prior to
>     processing with 'execform'. Bug #686884 for customer #150.

> [lib/pdf_draw.ps 1.68]

2003-05-22 15:41 igor

>     Fix (pdfwrite) : Convert Type 0 fonts with multiple CID font descendents into
>     Type 0 fonts with single CID font descendents.

>     DETAILS :

>     Bug 686869 "Rasterized characters".

>     Our testbase doesn't test this case. Rather the test file for 686869
>     contains a font with 2 CID descendents, it actually uses only the 1st
>     descendent, so it's not a complete test.

>     The new code fails with 401-01.ps . This test file is buggy and
>     requires a special workaround, which should be a separate patch.

>     The main change is gdevpdtc.c, gdevpdtf.h .

>     Minor changes :

>     - added a new argument to a set of CMap management functions to access a
>       submap corresponding to a specified font index;

>     - gs_cmap_init now reserves so many gs_id numbers,
>       as many fonts it refer;

>     - removed some unused variables (gdevpdfm.c, gdevpdfv.c, gdevpdtb.c).

> [src/gdevpdfm.c 1.31, src/gdevpdfv.c 1.25, src/gdevpdtb.c 1.19, src/gdevpdtc.c 1.19, src/gdevpdtf.c 1.26, src/gdevpdtf.h 1.17, src/gdevpdtt.c 1.45, src/gdevpdtt.h 1.16, src/gdevpdtw.c 1.18, src/gdevpdtw.h 1.3, src/gdevpsf.h 1.23, src/gdevpsfm.c 1.14, src/gsfcmap.c 1.22, src/gxfcmap.h 1.15, src/zcidtest.c 1.3]

2003-05-22 06:02 igor

>     Fix (pdfwrite) : Removing the 'vdata' argument to simplify internal interfaces.

>     DETAILS :

>     This change is algorithmically equivalent.

>     Note that 'size' argument is replaced with 'bsize', which now passes the
>     buffer size rather than text size. Added some dynamical checks to ensure the
>     buffer size is enough.

> [src/gdevpdtc.c 1.18, src/gdevpdte.c 1.36, src/gdevpdtt.c 1.44, src/gdevpdtt.h 1.15]

2003-05-21 17:50 giles

>     Bump version number after the 8.10 release.

> [doc/News.htm 1.130, lib/gs_init.ps 1.91, src/gscdef.c 1.36, src/version.mak 1.63]

## Version 8.10 (2003-05-21)

The 8.10 release is an incremental release from 8.00. It contains some fairly substantial reworking of important modules, most notably in the font rendering. Because of the extent of the changes, we're labelling this as a beta release. It should be quite usable, but it hasn't been as thoroughly wrung out as our production releases.

The major new feature improved font rendering by Igor Melichev. The new font renderer prevents dropouts intelligently rather than relying on "fill_adjust" (which has the side effect of making the font bolder).

In addition, pdfwrite continues to evolve and improve. Most patterns and type 3 fonts are now output as high-level objects rather than being rasterized.

This is our first release with support for JBIG2 encoded images, using our jbig2dec library. This decoder is not yet complete, but successfully decodes many PDF files containing JBIG2 images.

This release also contains an important security fix. If you are using Ghostscript in a security-critical application, we recommend you upgrade now.

Finally, we include the usual bug fixes and improvements. Please exercise this release thoroughly, so we can make the next release rock-solid.

The following bugs.ghostscript.com numbers were open at the time of this release:

> 405501, 406273, 414947, 414985, 430175, 446344, 456692, 458261, 458775, 458780, 459647, 463688, 465936, 487460, 487953, 493348, 505429, 509829, 526099, 526491, 530011, 535366, 535752, 535932, 538033, 542629, 553187, 555072, 558151, 558435, 563287, 570772, 572865, 578838, 578865, 592160, 592837, 592841, 592930, 595760, 600288, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 621267, 623292, 624515, 626059, 626295, 628110, 629335, 633299, 634036, 634358, 636210, 637850, 645316, 651644, 654532, 656414, 656510, 664484, 667301, 669654, 674241, 674390, 674417, 674418, 677324, 677383, 677430, 677573, 680301, 681469, 684778, 684866, 685335, 686746, 686747, 686750, 686752, 686768, 686770, 686777, 686778, 686779, 686782, 686784, 686785, 686788, 686789, 686791, 686796, 686803, 686805, 686813, 686815, 686816, 686817, 686819, 686821, 686822, 686823, 686824, 686827, 686829, 686833, 686834, 686837, 686839, 686841, 686842, 686843, 686844, 686845, 686850, 686852, 686853, 686859, 686860, 686861, 686863, 686865, 686867, 686869, 686871, 686873, 686876, 686877, 686878, 686880, 686881.

## Incompatible changes

The mechanism for locating resources has changed. See the usage documentation for details of the new mechanism.

## Changelog

2003-05-21 00:17 Ralph Giles

>     Correct additional header dependency errors.

2003-05-20 23:50 Ralph Giles

>     Update changelog and history files for the 8.10 release.

>     DETAILS:

>     Turned out I'd forgotten to modify makehist.tcl to handle the new
>     changelog format, so the merge of News and Changes into History8.htm
>     was done manually. Fortunately this is much simpler now.

>     We will also need a separate 'detailed history' file in which to archive
>     the Details documents before the next release.

>     N.B. those trying to regenerate this: the gs8_00 tag was accidentally
>     modified in April, so the date-from-tag filtering recommended in the
>     release instructions does not work for this diff. Instead the xml
>     changelong was generated with hand-picked dates:

>     	cvs2cl.pl --xml --utc -T --follow trunk --usermap authors \
>     		--log-opts "-d'2002-11-21<2003-06-21'" -f doc/changelog.xml

2003-05-20 23:29 Ralph Giles

>     Some browsers don't like '--' in the body of an html comment.

2003-05-20 22:58 Ralph Giles

>     Add a missing header dependency.

>     DETAILS:
>     Our wrapper header memory_.h includes std.h, as most of them do, but
>     this dependency was not marked, causing a build error with a parallel
>     make. It began compiling the sjbig2.c before genarch was complete.

2003-05-20 21:30 Ralph Giles

>     Our bug tracker is now at ghostscript.com.

2003-05-20 21:06 Ralph Giles

>     Add release notes written by Raph Levien.

2003-05-20 20:16 Ralph Giles

>     Update open bug list for release.

2003-05-20 20:06 Ralph Giles

>     Add a missing dependendency definition.

2003-05-20 19:55 Ralph Giles

>     Propagate version number and release date to the documentation.

2003-05-20 19:52 Ralph Giles

>     Update libpng version to reflect the current release.

2003-05-20 19:48 Ralph Giles

>     Update version number and date for 8.10 release.

2003-05-20 18:59 Ralph Giles

>     Document the location of the jbig2dec releases on sourceforge in the build documentation.

2003-05-20 18:44 Ralph Giles

>     Bump the 'known-good' versions for the jbig2 makefile to include the 0.3 release.

2003-05-20 18:40 Ralph Giles

>     Include an RCS Id line in the generated html changelog files.

2003-05-20 13:46 Alex Cherepanov

>     Work around 64K limit in a few probable places.
>     Fixes bug 611727

2003-05-20 12:46 Igor Melichev

>     Fix (pdfwrite) : Merge the Encoding of the 'complete' font copy when merging fonts.

>     DETAILS :

>     "PPI-ProPag 2.6.1.4 (archivePg)" creates multiple font copies with reduced encodings
>     (we believe it is poorly designed), and we merge the copies back to a single font.
>     Doing so the Encoding was not merged for the "complete" font copy.
>     The patch fixes that.

>     Bug 686875 Missing characters with -dSubsetFonts=false

2003-05-20 09:10 Igor Melichev

>     Fix (pdfwrite) : 'loca' was wrong in some cases embedding a TT font subset.

>     DETAILS :

>     By TT spec, when a TT font uses indexToLocFormat==0, glyph offsets in 'glyf' must be even.
>     The old code doesn't take care about the glyph alignment while converting a font
>     from indexToLocFormat==1 to indexToLocFormat==0.
>     This patch inserts padding bytes into 'glyf' to align glyph offsets with indexToLocFormat==0.

>     Bug 686868 "Missing characters".

2003-05-19 06:18 Dan Coby

>     Add a warning message if the rebuilding logic found two or more objects
>     with the same object numbers and the same generation numbers.

2003-05-19 05:20 Dan Coby

>     1.  Ignore data after %%EOF whicl scanning for objects or trailer.
>     2.  Allow objects with duplicate object and generation numbers.
>     3.  Change heuristic for finding the trailer dictionary.

>     DETAILS:

>     The previous testing had on the rebuild facility had verified that
>     all test files ran without apparent problems.  However a full check
>     of the files in the regression test suite has found three cases of
>     the output images not matching between the normal PDF processing
>     and the rebuild processing.

>     1.  Many real life PDF files contain garbage after the final %%EOF
>     marker.  Ghostscript has known about and tolerated this situation for
>     some time.  I found a test case (adesso6.pdf) in which the repair
>     logic was finding what it considered a valid object in this garbage.
>     The revisions determine the location of the last %%EOF and form a
>     count of the data left in the file after the %%EOF.  This count is
>     used to exclude this data from the object scanning and the trailer
>     location scanning.

>     2.  A test case was found in which two objects were found to have
>     the same object number and revision number.  By my reading of the
>     PDF spec, the newer object should have a higher revision number.
>     However the object scanner was changed to accept the last such
>     object as the desired one.  Most PDF editors (at least Adobe) put
>     updated objects at the end of the file.

>     3.  A test case was found in which a Linearized PDF file had been
>     edited and a new xref list and trailer dictionary were placed at
>     the end of the file.  The heuristic for finding the trailer dictionary
>     was changed to check the specified location of the 'first' xref list.
>     If this location is in the first half of the file, then the start of
>     the file is searched for the first trailer.  Otherwise the end of the
>     file is searched for the last trailer.

>     With these three changes, all of the PDF files in the regression
>     test suite produce matching results using either the normal PDF
>     processing or the rebuild procedures.

2003-05-19 01:15 Ray Johnston

>     The TrueType font loading was quite a bit slower than it should be. This
>     optimized font loader is up to ten times faster. Fixes bug #686851.

>     DETAILS:

>     Analysis of the time spent during TT font loading led to two problem areas.

>     The first was that the cmap array was built inefficiently when their was
>     a large glyph range, that had large holes was built with a loop that
>     called a PostScript function 'putglyph' to fill unused areas with .notdef
>     (glyph ID 0). The revision pre-fills the 'glyphs' array with .notdef from
>     a static array pre-filled with 1024 zeroes.

>     The second problem was the code that built the encoding using the 'post'
>     table. This code had a 'repeat' loop to find the name from the start of
>     the glyphNames section of the 'post' table for each named glyph in the
>     encoding. By creating a temporary cross reference, only one pass through
>     the names is made.

2003-05-18 05:03 Alex Cherepanov

>     PostScript is a trademark and requires BiCapitalization.

2003-05-17 05:46 Ray Johnston

>     Security fixes. Add detection of %pipe% device when in SAFER mode. Also
>     fix detection of 'renamefile' to prevent rename from a file that is not on
>     the PermitFileControl list.

2003-05-17 05:40 Ray Johnston

>     Fix to prevent Windows function from creating file names like (xxx/\\yyy).
>     If there is a trailing path sep, GetTempFileName needs it to be \, not /.
>     Also remove extraneous ^M from previous commit.

2003-05-16 14:49 Ralph Giles

>     Correct the implementation of the new file_name_combine operators for MacOS.

>     Details:

>     The parent directory reference prefix is '::' rather than ':'. Also, a path
>     that begins with the ':' directory separator is a relative path from the
>     current working directory.

>     The more substantive change is in the implementation on gp_check_root(), intended
>     to return the 'root' prefix of a path, if any. The previous implementation returned
>     the location of the first patch separator, causing initialization to fail when
>     attempting to determine if GenericResourceDir ends in a directory separator in
>     gs_res.c.

>     Absolute paths are not a well defined concept on Classic MacOS. In that case we just
>     return 0, as if no path were ever absolute. This likely causes other problems not
>     addressed here. In the Carbon build, we make use of the FSGetVolumeInfo() call
>     to enumerate all mounted volumes, attempting to match each one. This call returns a
>     16-bit char unicode name for each volume which we make no attempt to convert to
>     whatever 8-bit encoding ghostscript might receive the path in orginally; however
>     we do match the lower 8 bits for the first 256 characters, which works well enough
>     for English volume names.

>     Note that this patch only provides support for MacOS-style paths with ':' as a
>     separator. The Metrowerks Standard Library also accepts unix-style paths and
>     on MacOS X users will expect to be able to use them. Support will need to be
>     extended to include this.

2003-05-16 12:55 Alex Cherepanov

>     Fix uninitialized variable in gp_open_scratch_file() when the temporary
>     file prefix is an absolute path.
>     Fixes bug 686874

2003-05-16 12:48 Alex Cherepanov

>     Disable binary encoding. PDF doesn't use binary encoding and may
>     contain characters in the range 128 to 159 in names.
>     Fixes bug 686866

2003-05-16 12:41 Alex Cherepanov

>     Wild core returned sometimes as an error code from pdf_image_end_image_data()
>     caused unexpected PS error and a low level stacks dump.
>     Fixes bug 686870.

2003-05-15 23:10 Dan Coby

>     Added new PS source file lib/pdf_rbld.ps.  This module contains procedures
>     for rebuilding damaged PDF files.

2003-05-15 23:06 Dan Coby

>     Added new PS source file lib/pdf_rbld.ps.  This module contains procedures
>     for rebuilding damaged PDF files.

2003-05-15 22:31 Dan Coby

>     This is a set of routines for attempting to recover PDF files which
>     have been mangled by EOL conversions.  This is a facility which Adobe
>     Acrobat has and thus we need to duplicate.

>     DETAILS:

>     THE PROBLEM:

>     The basic problem is that PDF files contain 'xref tables' which are
>     really object location indexes which contain the absolute position of
>     objects in a file.  If a file is changed by converting the type of
>     EOLs then the file size is changed and the xref data is no longer
>     valid.  In many cases, Acrobat can rebuild these files.  It is not
>     always possible to always rebuild files.  If the files contain binary
>     data which contains line feed or new line characters then the binary
>     data may be mangled and cannot be rebuilt.  We need to be able to
>     duplicate Acrobat's ability for rebuilding files.  (Note:  In theory
>     one can get more and more sophisticated about rebuilding files.  The
>     techniques used in this code are quite simple but effective.)

>     THE BASIC SOLUTION:

>     The solution to this problem consists of several pieces.  The first piece
>     was to modify the pdf interpreter's internal representation of the xref
>     data.  The xref data is stored into two larrays.  The larray Generations
>     contains the object's generation number.  This was not changed.  The
>     larray Objects contained the location of the xref entry in the file.
>     This was set initially by the readxref routine.  Since the xref entry
>     data is not valid (for mangled files) this was not useful.  Objects
>     was changed to contain the actual location of the object in the file.
>     This actually eliminates one step in the process.  Previously when an
>     object was referenced, the location of the xref entry in the file was
>     obtained from Objects and then the xref entry was read to determine
>     the actual location of the desired object.

>     The second part of the process was to put .internal_stopped trapping
>     around the two usages of readxref to catch any failures of that routine.
>     An error message is printed and we then try to rebuild the locations
>     of the objects and find the proper trailer dictionary.

>     The third part of the process is to locate the objects in the file.
>     This is done by a simple scan of the file looking for lines beginning
>     with x y obj where x is a object number and y is object generation
>     number and obj is the text 'obj'.  In theory this simple strategy can
>     be confused by binary data but with over 156 files tested, no problems
>     were found.

>     The fourth part of the process is to locate the appropriate 'trailer'
>     dictionary.  There is a trailer dictionary with each xref list.  In
>     theory there can be many trailer dictionaries in a file.  The only
>     desired trailer dictionary is the one associated with the 'first'
>     xref list.  Unfortunately since we cannot count on the location
>     information in a mangled file, following the xref links is problematic.
>     The solution used is simple.  For Linearized pdf files, we find the
>     first (at the front of the file) trailer dictionary otherwise we use
>     the last trailer dictionary in the file.  This simple method works
>     for the 151 known good files (see testing below) and all five known
>     bad files.

>     Included are diffs for the changes and the new file lib/pdf_rbld.ps.
>     The only change in the src directory was the addition of pdf_rbld.ps
>     to the int.mak file.

>     TESTING:

>     There have been two sets of test run on this code.  The first set
>     consists of running 151 pdf files from our regression test suite.
>     These files are not mangled.  However by disabling the normal readxref
>     routine, the new code was exercised.  All 151 pdf files were displayed
>     correctly.

>     The second set of tests consists of actual problem files.  I was able
>     to locate five files that we have been sent that have been mangled.

>     file name		Ghostscript	Acrobat 5.0.5
>     1003.pdf		   okay		   okay
>     cm_test.pdf		   okay		   okay
>     precon.pdf		   okay	  	   fail
>     ServletReport.pdf	   fail	       	   fail
>     dauben.pdf		   fail		   fail

>     As expected, not all files can be recovered.  I was pleased that,
>     for this small sample, we did better than Acrobat.

2003-05-15 22:25 Dan Coby

>     Revised fix for 686872 token operator sometimes leaves extra data on stack.
>     With some strings, the token operator can leave extra data on the stack.
>     In the test case, the token operator is generating a syntaxerror.  The
>     error is expected.  However the token operator is leaving 3 items on the
>     stack.  It should only leave one:  The original string.  This fix
>     corrects the problem.

>     DETAILS:

>     The problem was found while developing the xref data recovery facility
>     which uses the token operator to scan PDF files (including binary data).
>     The fix consists of simply recording the operator stack level at the
>     start of the string processing and restoring it if an error occurs.

>     The revision to the fix consists of using the 'pop' macro to modify
>     the o_stack pointer instead of directly setting the pointer.

2003-05-15 18:46 Alex Cherepanov

>     Fix negative shift count in operator << .
>     On 80x86 processors the shift argument is implicitely masked by 31.
>     Fixes bug #686743.

2003-05-15 16:59 Ralph Giles

>     Add the psd (Photoshop raster) output devices to the default autoconf build.

2003-05-15 10:01 Russell Lang

>     Log message:
>     For the pngalpha device, set the default background color to white
>     in the bKGD chunk.  Add an option -dBackgroundColor=16#RRGGBB to
>     explicitly set the background color.  This is needed by a common
>     web browser that doesn't correctly support PNG with alpha transparency.

>     DETAILS:
>     Programs that don't fully support alpha transparency let
>     libpng convert an RGBA image to RGB.  The background color
>     used is either provided by the program, or in the bKGD
>     chunk, or it falls back to gray.  MSIE was defaulting
>     to a gray background which is not commonly used on web
>     pages.  By writing a white bKGD chunk, PNG files will display
>     correctly against a white background in MSIE.
>     If a solid color for a web page background is used
>     with , then PNG images appearing
>     on that page would need to be created with
>     -dBackgroundColor=16#CCCC00.
>     For textured background there is no hope.
>     Microsoft needs to fix Internet Explorer.

2003-05-15 03:25 Dan Coby

>     Fix for 686872 token operator sometimes leaves extra data on stack.
>     With some strings, the token operator can leave extra data on the stack.
>     In the test case, the token operator is generating a syntaxerror.  The
>     error is expected.  However the token operator is leaving 3 items on the
>     stack.  It should only leave one:  The original string.  This fix
>     corrects the problem.

>     DETAILS:

>     The problem was found while developing the xref data recovery facility
>     which uses the token operator to scan PDF files (including binary data).
>     The fix consists of simply recording the operator stack level at the
>     start of the string processing and restoring it if an error occurs.

2003-05-14 13:36 Alex Cherepanov

>     Following PDF spec make MatrixA equal to WhitePoint of CalGray color
>     space. To avoud clipping set the max values of RangeLMN to the
>     corresponding values of WhitePoint.
>     Fixes bug 686749

2003-05-12 12:21 Igor Melichev

>     Fix : margin_set::y was not initialized starting a fill (2nd attempt).

>     DETAILS :

>     The previous patch caused differences in rendering,
>     and therefore it's log message appers wrong.
>     Actually the uninitialized variable caused an indeterministic behavior,
>     and the previous patch fixed it.

>     Meanwhile the initial value appears not good for the case
>     then the bottom of a character may cause a dropout.
>     This patch improves that case.

>     Expecting minor differences rendering the following files at 72dpi :

>     01_001.pdf
>     136-01.ps
>     165-01.ps
>     455690.pdf
>     86554321.pdf
>     aaon97_p7.pdf
>     ccc.pdf
>     chess.ps
>     CIDembedded.pdf
>     LD.pdf
>     messenger.pdf
>     messenger16.pdf
>     QuickNews_Nov22.pdf
>     RodinCIDEmbed.pdf
>     xgfddg.pdf

2003-05-11 13:59 Alex Cherepanov

>     Linearized PDF hints are rewritten as following:
>     (1) added shared object hint table
>     (2) added padding after every per-page entry in hint tables
>     (3) changed the values of some entries
>     Fixed a PS error in PDF files with empty /Contents array.
>     Added a check for encrypted PDF.
>     Fixes bug #611694.

>     DETAILS:
>     There are still many things to improve:
>     (1) detection of 1st page objects and shared objects yelds different
>         result from Adobe Acrobat.
>     (2) no optional hint tables are generated
>     (3) encrypted PDF is not supported

>     The optimizer was tested on all PDF files of our test suite. It fails on:
>     (1) all encrypted files
>     (2) 000040cf.000_60.pdf because of bad entries in 12 0 obj
>     (3) test_multipage_prob.pdf because one of the font names contains
>         a character recognized as a binary token

2003-05-11 13:33 Alex Cherepanov

>     Add missing quote to an error message.

2003-05-09 00:43 Ralph Giles

>     Replace generic always-on debug printfs with if_debugN() calls. To get
>     the old behavior, pass -Zs to the debug build.

2003-05-09 00:41 Ralph Giles

>     Correct a cut-and-paste error in FEATURE_DEVS.

2003-05-08 21:49 Raph Levien

>     Workaround to clean up after a PaintProc which leaves additional
>     garbage on the operator stack. Fixes bug #686855.

2003-05-08 18:32 Ralph Giles

>     Add the standard copyright banner and $Id line to the new changelog script.

2003-05-08 18:28 Ralph Giles

>     Add recent new files to the developer documentation.

2003-05-08 11:04 Igor Melichev

>     Fix (type 1 hinter) : Overshoot thresholds were wrongly computed with TextAlphaBits > 1.

2003-05-08 10:33 Russell Lang

>     When enumerating files on Windows, do not return directory
>     names.  Partial fix for Bug 686853  filenameforall enumerates
>     directory items.

2003-05-08 09:57 Igor Melichev

>     Fix : margin_set::y was not initialized starting a fill.

>     DETAILS :

>     It could indereministically execute some code in start_margin_set,
>     but the code appears idle in this case because margin_set::margin_list == NULL.
>     Therefore it could not cause an indeterministic result.
>     Therefore this patch is an equivalent change, which is useful
>     to simplify the job for code validation tools.

2003-05-08 08:16 Igor Melichev

>     Fix : gx_path::procs was not initialized in some cases.

2003-05-08 04:23 Igor Melichev

>     pdfwrite : Don't write colors to charproc.

>     DETAILS :

>     Bug 686856 "PDF interpreter : /undefined in --setgray--".

>     Rather Acrobat Reader ingonre colors in charprocs,
>     we should not write them, because it is not conforming.

>     Expecting differences with pdfwrite with the tests :

>     adesso8.pdf
>     grayalph.ps

2003-05-07 22:12 Dan Coby

>     Fix for 686857 bitcmyk has problems with -dBITS=2.  This fix corrects
>     a problem with the halftone calculations if the number of bits per
>     component is more than one and the process color model is subtractive.

>     DETAILS:

>     This problem was caused by a change (1.2) to src/gxdevndi.c

>       src/gxdevndi.c
>         Modified gx_render_device_DeviceN to always perform the conversion
>         from color component intensity values to halftone levels in an
>         additive sense, if the gray_colorspace operand is true. This is
>         necessary for compatibility with the pre-DeviceN code.

>     However the change only worked for max_value = 1.  This is the typical
>     case of 1 bit halftoning.  The fix works for any value of max_value.

2003-05-07 16:37 Ray Johnston

>     Add some Document structuring commands to improve conformance. Thanks to
>     HF Nordhaug for submitting these.

2003-05-07 12:55 Ralph Giles

>     Prefer the more modern __VMS platform define for including inttypes.h.

2003-05-07 11:31 Ralph Giles

>     Include inttypes.h on VMS. This provides the stdint types needed by jbig2dec,
>     at least on OpenVMS. After a patch from Jouk Jansen.

2003-05-06 20:50 Alex Cherepanov

>     dumphint is a new utility to print (to stdout) linearized PDF hint tables in
>     an easy-to-read form. The following deviations from the published
>     specification has been observed in PDF files produced by Acrobat suite
>     of products.

>     (1) /P (page offset hint table) key in hint stream dictionary has never been
>         generated by Adobe products. It is no longer required in PDF 1.5.
>     (2) Per-page items 4 and 5 of the page offset hint table start from 1st
>         page, not 2nd page as the spec claims.
>     (3) All array entries start from the new byte boundary.

2003-05-06 10:38 Jouk Jansen

>      Committing in .

>      jbig2 support for OpenVMS using MMK

>      Modified Files:
>      	gs/src/jbig2.mak gs/src/openvms.mmk
>      ----------------------------------------------------------------------

2003-05-06 10:05 Igor Melichev

>     pdfwrite : Don't convert type 1 patterns and type 3 fonts to rasters.

>     DETAILS :

>     Expecting differences with pdfwrite with the tests :

>     H:\AuxFiles\CompareFiles\012-09.ps
>     013-09.ps
>     014-09.ps
>     015-09.ps
>     017-01.ps
>     020-01.ps
>     027-13.ps
>     031-05.ps
>     032-07.ps
>     034-10.ps
>     035-07.ps
>     045-01.ps
>     083-09.ps
>     103-01.ps
>     118-01.ps
>     123-09.ps
>     136-01.ps
>     148-16.ps
>     149-05.ps
>     165-01.ps
>     169-09.ps
>     176-01.ps
>     192-01.ps
>     205-09.ps
>     212-01.ps
>     213-01.ps
>     214-01.ps
>     220-07.ps
>     222-09.ps
>     226-01.ps
>     231-01.ps
>     244-01.ps
>     245-01.ps
>     245-07.ps
>     245-13.ps
>     245-17.ps
>     250-01.ps
>     251-01.ps
>     255-01.ps
>     257-01.ps
>     258-01.ps
>     260-01.ps
>     263-01.ps
>     264-01.ps
>     269-01.ps
>     270-01.ps
>     281-01.ps
>     296-01.ps
>     297-01.ps
>     298-09.ps
>     303-01.ps
>     307-07.ps
>     310-04.ps
>     311-03.ps
>     321-09.ps
>     327-01.ps
>     334-01.ps
>     335-01.ps
>     336-01.ps
>     adesso8.pdf
>     grayalph.ps
>     mspro.pdf
>     Popafinalrep.pdf
>     prob1.pdf
>     Testform.v1.0.2.pdf
>     xes2ps-problem.pdf

2003-05-06 08:50 Igor Melichev

>     Fix (pdfwrite) : Pattern phase was wrongly computed for pattern stream accumulation (2nd attempt).

2003-05-06 03:51 Igor Melichev

>     Fix (pdfwrite) : Pattern phase was wrongly computed for pattern stream accumulation.

2003-05-05 12:57 Igor Melichev

>     Free Type Integration : commit an improved bridge.

>     DETAILS :

>     This commit corresponds to Free Type revision
>     http://www.graham.asher.btinternet.co.uk/artifex19.zip
>     http://www.graham.asher.btinternet.co.uk/artifex19.txt .
>     Note that it includes fixes opposite the current Free Type CVS.
>     The file ftwinfnt.h is missed in the zip, taken from an older version.

>     Rather the release note reads that all test files are passed except 2 ones,
>     we noticed failures running 01_001.pdf, 401-01.ps, Altona.Page_3.2002-09-27.pdf,
>     fonts.pdf (infinite loop), H00216q.pdf, HeiseiMinStd.pdf, keyboard.pdf,
>     test_multipage_prob.pdf (crash),
>     Also the character 'R' in 0.pdf renders wrongly.
>     Systematical testing was not done yet.

2003-05-05 11:53 Igor Melichev

>     Fix : Add the static resource gs/Decoding/StandardEncoding .

2003-05-05 11:50 Igor Melichev

>     Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .

2003-05-05 09:08 Igor Melichev

>     Fix (file_name_combine) : Check .tempfile permissions.

>     DETAILS :

>     The temporary directory is allowed for creating temporary files
>     without specifying a special permission. However when the
>     prefix argument of .tempfile is an absolute path,
>     the permission is checked for it.

>     Minor change :

>     On Windows gp_open_scratch_file now calls gp_gettmpdir,
>     making the logic closer to one on Unix.
>     The call to GetTempPath is left for backward compatibility
>     (when the environment specify TMP but no TEMP).

2003-05-04 22:01 Igor Melichev

>     Fix (AlignToPixels) : Provide a better stem contrast.

>     DETAILS :

>     Minor changes :
>     1. Alignment with AlingToPixels=1 was wrong (gxhintn.c ln 1370).
>     2. The debug graphic output wrongly drew integral pixels.

2003-05-04 20:06 Ralph Giles

>     Correct a programming error that prevented macos native font loading from working
>     under Metrowerks Codewarrior.

>     DETAILS:

>     Integers were being read by |-ing together the results of successive fgetc() calls
>     within a single expression. Binary or doesn't have a specific order of evaluation in
>     C so while gcc read the bytes in the correct order Metrowerks was re-ordering the first
>     two reads resulting in a byte-swap error. The new code uses fread() followed by
>     reordering based on array index.

2003-05-04 10:19 Igor Melichev

>     Fix (AlignToPixels) : Rounding formulas for glyph positions were wrong.

2003-04-30 20:02 Igor Melichev

>     Fix : FONTPATH was broken with lib/gs_fonts.ps revisions 1.17 and 1.25 .

2003-04-30 10:34 Russell Lang

>     If reopening the display device fails after setting the
>     callback, display an error message. Allocate the large display
>     bitmap using a low level allocator to avoid exceeding the memory
>     limit of the previously used device stable memory allocator.
>     Fixes bugs 686836 "-r doesn't work" and duplicate 686838
>     "Ghostscript doesn't do anything".

>     DETAILS:
>     The display memory device and the raster including line pointers
>     was allocated using the stable allocator of the display device.
>     This had a limit of 1Mbyte, which was exceeded when the
>     resolution was greater then 114dpi.  This would cause subsequent
>     allocations to fail, but it appears that nothing else tried to
>     use this allocator after the display device.  The display device
>     was changed to allocate the line pointers separately to allow
>     the raster to be allocated in special memory, e.g. video memory
>     or shared memory.  This caused the subsequent allocation of the
>     line pointers to fail when resolution exceeded 114dpi.

>     The modified code now allocates the raster with
>     gs_alloc_byte_array_immovable, which allocates directly from the
>     C heap, not subject to any memory limit apart from the overall
>     -K limit if specified, and is not subject to garbage collection.
>     The normal allocator now has sufficient memory to allocate the
>     line pointers without problem. The raster pointer is removed
>     from the pointers that are enumerated during garbage collection.

2003-04-30 01:11 Ray Johnston

>     Add a an option to disable the use of and embedded BeginICCProfile in
>     PostScript. The option is -dNOPSICC. Documentation is also added for
>     the option.

2003-04-29 22:50 Ralph Giles

>     Enable jbig2 support in the default windows build. The jbig2dec source is now required.

2003-04-27 23:46 Ralph Giles

>     Add the bbox device to the default macos shlib build. Bug 686811.

2003-04-26 18:40 Dan Coby

>     Log Message:

>     This is the fix for 686798 /typecheck in --setcolorspace-- with
>     -sDEVICE=x11cmyk. This fix increases the stack checking while sampling
>     tint transform functions. It also makes the error handling more robust
>     for invalid tint transforms.

>     DETAILS:

>     It is sad to say but this is a bug that we have seen before, several
>     times.  Ray and I fixed this problem at the last code fest in September.
>     However that fix did not make its way into CVS.

>     The cause of this problem is that certain proc sets from Adobe violate
>     the PLRM.  In the test file, the proc set is from Adobe Photoshop
>     Version 5.5.  The proce set contains tint transform functions which
>     violate the specification in two different ways.  In one case, the tint
>     transform function changes stack values outside of the given color value.
>     This is used as a test to see if the interpreter supports the given
>     duotone color space.  If so then the proc set creates a color space with
>     a tint transform which is unbalanced in its stack usage.  This could
>     cause a stack overflow/underflow during sampling of the tint transform.
>     Adobe apparently assumes that this tint transform is never executed
>     since the function starts with the name /NeverReached.

>     The fix involves checking the stack depth after each execution of the
>     tint transform function and verifying that it matches the correct
>     position given the number of function inputs and outputs.  If so then
>     the stack is returned to its original position and the sampling is
>     aborted.  Changes in lib/gs_sepr.ps make the tint transform sampling
>     logic more robust in case the tint transform modifies the top of the
>     stack.  (This occurs in this case since the tint transform is actually
>     popping extra items off of the stack.)  We also create a dummy tint
>     transform function if sampling fails.  The later was done to prevent
>     the /typecheck error and give pdfwrite something with which to work.

2003-04-26 18:28 Alex Cherepanov

>     Fix scanline size calculations and channel mix-up.

2003-04-26 17:05 Igor Melichev

>     Complete the set of Adobe CMaps.

2003-04-26 04:52 Alex Cherepanov

>     Following PDF 1.4, chapter 4.6.2 pattern is instantiated in the graphic state
>     harvested at the beginning of the pattern's parent content stream. This patch
>     fixes PS graphic state parameters only. PDF specific parameters are still
>     inherited from the current graphic state.
>     Bug #686834

>     DETAILS:
>     PS makepattern operator saves only PS graphic state for later use in PaintProc.
>     GS PDF interpreter implements PDF graphic state as a stack of dictionaries.
>     We should save full PDF graphic state and set it manually during execution of
>     PaintProc.

2003-04-24 19:42 Ray Johnston

>     Fix ASCII85Decode filter to match Adobe's when strings that are not multiples
>     of four are padded with other than zero. Tested against CPSI for exact match.
>     Also overflow error detection added to conform to the PLRM and CPSI.
>     Fixes bug #686840.

2003-04-24 06:37 Ray Johnston

>     Add processing of %%BeginICCProfile DSC section for (some) EPS file, notably
>     Adobe Photoshop. Final part of fix for bug 686797.

>     DETAILS:
>     The change to gs_pdfwr.ps was due to the fact that it did not properly
>     balance the stack.

>     The method of trying /N 4 + /DeviceCMYK, then /N 3 + /DeviceRGB, finally
>     /N 1 + /DeviceGray is a *hack* that could be avoided if we knew what color
>     space the ICC profile expected. Since .seticcspace fails if /N doesn't
>     match what is in the profile, this seems like a reasonable hack.

2003-04-24 06:20 Ray Johnston

>     Get rid of some dead code (left over from cut+paste)

2003-04-23 18:47 Ray Johnston

>     The DeviceN merge broke the command line -dUseCIEColor option. This patch
>     restores basic CMYK color conversion when -dUseCIEColor is set. Partial
>     solution to bug #686797.

2003-04-23 15:58 Ralph Giles

>     Remove some debug printouts.

2003-04-22 13:52 Igor Melichev

>     Applying the generic stream accumulation method to /BP pdfmark.

>     DETAILS:

>     This is an equivalent change.

2003-04-21 15:39 Igor Melichev

>     A preparation for non-convert PatternType 1 to rasters with pdfwrite.

>     DETAILS:

>     The patch defines a new device virtual function pattern_manage,
>     and a default implementation for it. The purpose is to inform
>     the device about pattern accumulation and to bypass the installation of
>     gx_device_pattern_accum when the device can handle the pattern command stream.

>     The new code is temporary disabled with PATTERN_STREAM_ACCUMULATION 0
>     macro defined in gx.h . When it is 0, the new device virtual
>     function is provided but never called. The behavior should not change.

>     The rest of this log message describes PATTERN_STREAM_ACCUMULATION 1.
>     In this mode pdfwrite doesn't convert PatternType 1 to rasters.
>     It creates good PDFs at least with 012-09.ps and 269-01.ps
>     (these are very complicated cases with patterns inside charprocs and patterns),
>     but there are problems when rasterizing the resulting PDFs with GS.
>     (A new bug 686834 issued for tracking this problem).

>     When a pattern stream is handled by the device,
>     we can't create a proper content of gx_color_tile.
>     However we need a correct content if the pattern is used
>     for rasterization of an object which the device can't handle
>     at the high level. An example is pdf14 device during a PDF re-distillation,
>     which handles transparency. Another example is
>     a conversion of composite fonts, which have multiple CID descendents -
>     pdfwrite still converts such fonts to raster fonts.

>     Since a proper contents may be needed for gx_device_color,
>     we define a new flag gx_color_tile::is_dummy, and account it in
>     gx_pattern_cache_lookup. Thus, if the current device is cache device
>     installed for the font conversion, the tiles with is_dummy == true
>     are being be dismissed. Vice versa, tiles with is_dummy == false are
>     being dismissed when current device is pdfwrite.

>     We do not move parts of zpcolor.c code to gx_default_pattern_manage,
>     because we don't see a proper place for it to be compatible to
>     the FEATURE_DEVS configurability. Instead that, we implement
>     a branching inside gsptype1.c and zpcolor.c . If more branches will
>     be necessary in future, this to be improved with moving code
>     fragments to specific implementations of pattern_manage,
>     together with improving the FEATURE_DEVS modularity.
>     Delaying this reorganization until a strong reason appears.

>     NOTE: The patch extends the device interface with gs_pattern1_instance_t.

>     Minor Changes :

>     1. Fixed some MSVC warnings.
>     2. gx_pattern_alloc_cache passed a wrong client ID to memory manager.
>     3. Skipped some unuseful graphic state parameters while a contents substream accumulation.

2003-04-18 22:00 Russell Lang

>     In the display device, store the line pointers separately from
>     the bits, so that the bits can be placed in special memory (e.g.
>     allocated in video memory).  Fixes Bug 686780 display_memalloc()
>     asks for too much memory.

2003-04-18 18:19 Igor Melichev

>     Fix (pdfwrite) : Applying a generic resource writing method to charprocs.

>     DETAILS:

>     pdf_write_resource_objects does it fine after a small change
>     to pdf_begin_data_stream.

>     This patch must not change any behawior except the PDF object writing sequence.

>     Minor Changes :

>     1. Removed rudiments of a dead development branch.
>     2. Generalized pdf_enter_substream and pdf_begin_data_stream .

2003-04-18 14:57 Ralph Giles

>     Calling the gsapi polling function from the Macintosh gp_check_interrupts
>     function voilates the layering of the interpreter over the graphics library.
>     Therefore we isolate the offending code to a separate module 'macpoll.dev'
>     in a fashion analogous to the mspoll feature dev available on the windows
>     build. Enable this by default in the CodeWarrior build.
>     Partial fix for Bug 686810. After a patch by Russell Lang.

2003-04-18 14:33 Ralph Giles

>     Use different output file names for the Classic and Carbon MacOS shlib targets.
>     Closes bug 686818.

2003-04-18 14:16 Igor Melichev

>     Complete the set of Adobe CMaps.

2003-04-18 01:18 Russell Lang

>     Call the gsapi polling function from the Macintosh gp_check_interrupts
>     function. Partial fix for Bug 686810 "CHECK_INTERRUPTS should allow
>     shorter worst-case abort".

2003-04-17 09:24 Russell Lang

>     Call the gsapi polling function during the main interpreter loop
>     timeslice code.  This allows a client to abort the interpreter
>     when running "{} loop". Fixes Bug 686810 "CHECK_INTERRUPTS
>     should allow shorter worst-case abort".

>     DETAILS:
>     PostScript which executed an infinite loop could not be stopped
>     by the gsapi client.  The time slice code in the main
>     interpreter loop is executed once for every 32767 passes through
>     the interpreter loop.  Within the time slice code we now call
>     the polling function and if the return value is non-zero, we set
>     code to gs_error_interrupt to cause the interpreter to exit.
>     This was not a client bug (as far as I know).  The original
>     request was from Zoltan Biro.

2003-04-17 00:49 Ralph Giles

>     Remove a C99 snprintf() call. In this case the length is limited by the format string.

2003-04-17 00:46 Ralph Giles

>     Remove two non-library files from the jbig2 makefile.

2003-04-17 00:42 Raph Levien

>     Added documentation of UseWTS user parameter.

2003-04-17 00:33 Ralph Giles

>     Define HAVE_STDINT_H in stdpre.h on MacOS. Required for a clean compile
>     under CodeWarrior.

>     DETAILS:

>     The jbig2dec library and headers require some of the C99 types. We've
>     made sure those are available, but the mechanism depended on either
>     passing -DHAVE_STDINT_H on the commandline or windows-specific typedefs.
>     Since there's no convenient way pass single defines through codewarrior
>     that would be seen by both the jbig2dec and the gs sources, we add a
>     platform-specific define to headers in each codebase.

2003-04-17 00:23 Ralph Giles

>     Enable jbig2 support in the MacOS CodeWarrior build, and add the local
>     library source to the search path. jbig2dec is now required for this build.

2003-04-16 23:32 Ralph Giles

>     Protect some defines that conflict with constants in stdint.h.

2003-04-16 16:37 Ralph Giles

>     Correct some typos.

2003-04-16 14:09 Ralph Giles

>     Add a license paragraph for the Resource directory asserting the AFPL with
>     an exception for the Adobe-owned CMap files.

2003-04-16 13:54 Ralph Giles

>     Test the optimization compiler flag '-O2' before using it since some vendor
>     compilers have different syntax.

>     DETAILS:

>     This is really just a quick fix; it doesn't check flags for the debug or profile
>     builds. A full solution would also try known options based on the compiler
>     being used. It's not fair to just disable optimization if -O2 doesn't work.

2003-04-16 13:38 Ralph Giles

>     JBIG2 code in the interpreter and stream library requires an -I argument
>     to find the jbig2dec headers when compiling with local source.

2003-04-16 08:31 Igor Melichev

>     Complete the set of Adobe CMaps.

2003-04-15 18:43 Igor Melichev

>     Fix (pdfwrite) : Compress charproc streams.

>     DETAILS:

>     This patch mixes 3 changes :

>     1. Applying a compression to vector charprocs. Bitmap charprocs are
>        left uncompresed. The written PDF should have same contents as before.

>     2. A preparation to Type 1 pattern accumulation with implementing
>        a pdf_substream_save stack. Moved accum_char_proc_* fields to there.
>        This change should be equivalent.

>     3. Renamed cos_write_stream_from_pipeline to cos_stream_from_pipeline,
>        because the old name appears confusable.
>        A new function with the old name is defined for another purpose.

>     No regression changes expected.

2003-04-15 14:36 Ralph Giles

>     Add new jbig2dec makefile and supporting defines to remaining platform-dependent makefiles.

2003-04-15 14:12 Ralph Giles

>     Add support for compiling in libjbig2dec statically from source. This makefile
>     is only good for v0.2.

2003-04-14 21:15 Igor Melichev

>     Fix (pdfwrite) : Use cos_write_stream for charproc accumulation.

>     DETAILS:

>     pdfwrite crashes with -r72 012-09.ps due to 2 nesting separates :
>     one for charproc accumulator, and another one for graphic state object inside it.
>     This problem does not happen with comparefiles with the default value of -r.
>     Meanwhile the problem is harmful because it occasionally depends on CTM.

>     Minor changes :
>     - A misprint in "pdf_begin_char_proc_gerneric".
>     - Removed some unused variables.
>     - Inserted some necessary #include statements.

2003-04-13 23:14 Igor Melichev

>     Fix (dropout prevention) : sfill was unintentionally slowed down.

>     DETAILS:

>     In some cases the scanline algorithm appears to speed up the sfill in about 2 times.
>     This patch enables the scanline algorithm when DROPOUT_PREVENTION is on,
>     except for characters. It brings the shfill case closer to the old algorithm.

>     This patch causes minor differences while filling a path,
>     especially with shfill, but such differences should be small
>     and almost unvisible.

>     Minor change :

>     The condition in gxfill.c line 2075 is changed to be closer to
>     the old algorithm when filling non-characters, because
>     dropout prewvention is not neccessary for this case.

2003-04-12 22:04 Russell Lang

>     Add Resource directory to the lib path configured by the Windows installer.

2003-04-12 18:08 Ray Johnston

>     Create more specific DEBUG switches in the interpreter initialization
>     modules to allow debugging to only include information of interest.
>     If -dDEBUG is set, then set all of the specific switches.

2003-04-12 17:39 Ralph Giles

>     Add the new Resource directory tree to the unix install target.

>     DETAILS:

>     We have a hard-wired list of directories to install under Resource. All
>     the files in these directories will be non-recursively copied to the
>     install directory. It is therefore only necessary to update RES_CATEGORIES
>     when a new category is added but not for individual files.

2003-04-12 13:28 Russell Lang

>     Add Resource directory to Windows installer.
>     Update copyright dates.
>     Exclude file attributes (ACLs) from the zip archives.

2003-04-11 21:47 Ralph Giles

>     Correctly dereference the arguments to the sort compare function used in the
>     device listing. This was incorrect in the previous commit.

2003-04-11 17:55 Igor Melichev

>     Fix : Increasing the text alpha bits thresholds.
>     Bug 686775 "Large text is not anti-aliased".

>     DETAILS:

>     We can't set infinite thresholds due to RAM consumption in character cache.

2003-04-11 17:54 Igor Melichev

>     Fix (pdfwrite) : Generate pseudo-random font names for subset fonts
>     from the glyph usage array.
>     Bug 686807 A "subset fonts" error in Adobe Acrobat from files made by GS8.00

>     DETAILS :

>     Since the revision 1.9 of gdevpdtb.c (Sun Sep 8 20:20:12 2002 UTC)
>     subset font names were deterministic to simplify the debugging.
>     The names were derived from resource IDs, and could cause a conflict
>     when merging documents. This patch generates different font names
>     hashing the glyph usage bitmask. Now the conflict can happen
>     with a very small probablility, when different subsets give same
>     hash value.

2003-04-11 11:05 Ralph Giles

>     Add the new default resource directory to the autoconf makefile.

2003-04-11 10:56 Igor Melichev

>     Fix : Remove an unintentional rudiment of a debug printing.

2003-04-11 09:36 Igor Melichev

>     Turn on the static resources with COMPILE_INIT=1.

>     DETAILS:

>     The OpenVMS case is not implemented in geninit.c .

2003-04-11 09:30 Igor Melichev

>     Switching to the new logics of resource file location.
>     THIS IS INCOMPATIBLE CHANGE, because the default resource path is now different :
>     resource files are moved to gs/Resource .
>     See gs/doc/Use.htm#Finding_files and gs/doc/Use.htm#Resource_related_parameters.

>     DETAILS:

>     This patch does not include necessary changes to Ghostscript installer.

>     The main code change in one to gp.h .
>     Rudiments of old code in gs/src and gs/lib are marked with NEW_COMBINE_PATH.
>     They to be removed after beta-testing.

>     Change to makefiles provide extended default values for
>     file search paths, which are platform dependent.

>     For convenience, here we summarize all related issues,
>     which were mentioned in previous patches :

>     1. The search method with multiple resource directories
>        appears not fully conforming to PLRM. We cannot ever call
>        ResourceFileName while executing findresource
>        or resourcestatus, because per PLRM it always
>        returns a single path. Therefore we implement
>        an extended search method in findresource,
>        resourcestatus and resourceforall, which first calls
>        ResourceFileName and checks whether the returned path
>        points to an existing file. If yes, the file is used,
>        othervise we search all directories specified in
>        LIB_PATH. With a single resource directory
>        it appears equivalent to Adobe.
>        THIS IS INCOMPATIBLE CHANGE.

>     2. ResourceFileName may be used for obtaining a path
>        where a resource file to be installed. In this case
>        Ghostscript to be invoked with -sGenericResourceDir=path,
>        specifying an absolute path. The default value for
>        GenericResourceDir is a relative path. Therefore
>        a default invocation with a Postscript installer
>        will install resources into gs/Resource.
>        THIS IS INCOMPATIBLE CHANGE.

>     3. We do not distinguish lib and Resource directories.
>        There is no file name conflicts because
>        lib does not contain subdirectories, but Resource
>        always store files in subdirectories.

>     4. We implement a new flag in gs_context_state,
>        which informs lib_file_open whether it is invoked
>        with a file specified in a command line argument.
>        Doing so because command line argument files
>        don't need to check permissions, and they
>        are executed with a special PS operator .runfile .
>        We cannot use a .runfile argument for passing this
>        information, because it would be a security hole
>        due to .runfile is available for documents
>        and cannot be hidden.

>     5. We still have a security hole while loading
>        resources from gs_init.ps .
>        Both the old and the new code load some resources
>        (such as CIDInit ProcSet) before entering
>        the SAFER mode. Therefore it is a way for
>        Postscript viruses to migrate.
>        To be fixed later.

>     6. Default values for GenericResourceDir and FontResourceDir
>        are platform dependent.
>        (The old code always use Unix notation - a bug).

>     7. Default value for GenericResourcePathSep is platform dependent.
>        The value is used before non-directory items only.
>        (The old code always use Unix notation - a bug).
>        (The old code used the value before directory items - a bug on OpenVMS).

>     8. If a path starts with a number of parent references,
>        a template with same number of parent references
>        must be added to permission list to allow the access in SAFER mode.
>        The template (*) allows access to any file.
>        THIS IS INCOMPATIBLE CHANGE, because
>        the old code ever rejects parent directories.

>     9. GenericResourceDir and FontResourceDir are not being added
>        to permission list while .locksafe. Instead that,
>        we generate (*/*) templates with all LIBPATH items.
>        THIS IS INCOMPATIBLE CHANGE, but for non-exotic cases
>        (such as "(./Resource/CMap/H) .libfile" in a document)
>        it should not be visible.

>     A. Scratch files with a non-absolute prefix always open
>        in a scratch directory. The old code can open them
>        in current and parent directories if an user modified
>        a default prefix in C code.
>        THIS IS INCOMPATIBLE CHANGE for users who had modified
>        a scratch file prefix in C code.
>        Permission for scratch directory is not checked
>        as well as in old code.

>     B. The operator .filenamedirseparator is removed,
>        because it cannot work properly on OpenVMS.
>        On OpenVMS it needs both prefix and trailer to
>        determine a correct separator.
>        We removed it because the new logics never needs it.

>     C. The operator .pathstring_not_bare is removed,
>        because .file_name_combine performs it's job better.

>     D. The functions gp_pathstring_not_bare, gp_file_name_references_parent,
>        char *gp_file_name_concat_string are removed.

>     E. New operators added to maintain the new logics :

>        <string> <string> <bool> .file_name_combine <string> true
>        <string> <string> <bool> .file_name_combine <string> <string> false

>           Combine a file name with a prefix.
>           The first argument is a prefix, the second is a file name.
>           Internal syntax of arguments and result is platform dependent.
>           The combination is being reduced to a shortest equivalent,
>           but if it starts with cwd reference, the starting
>           cwd reference persists.

>           If the <bool> argument is true, it considered to use the
>           "no sibling" mode. It prevents reduction of
>           (x/../y) to (y) for any x != y. With false such reduction
>           is allowed. The <bool> argument appears a rudinemt from
>           a dead branch. The new code always sets it to false.

>           On success, the result is a combined, reduced path and false.
>           On failure, the argument strings left on operand stack,
>           followed with false.

>        - .file_name_separator <string>

>           Returns a readonly string, which represents a separator
>           which is used in file names between directory item and file item.
>           Used for making the default value of GenericResourcePathSep.

>        - .file_name_directory_separator <string>

>           Returns a readonly string, which represents a separator
>           which is used in file names between two directory items.
>           Used for making the default value of GenericResourceDir
>           and FontResourceDir.

>        - .file_name_current <string>

>           Returns a readonly string, which represents a reference
>           to current working directory. Used for making the default
>           value of GenericResourceDir and FontResourceDir.

2003-04-11 07:59 Igor Melichev

>     Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .

2003-04-11 07:56 Igor Melichev

>     Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .

2003-04-11 07:48 Igor Melichev

>     Removing it because it appears in a wrong place of the directory tree.

2003-04-11 07:46 Igor Melichev

>     Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .

2003-04-11 07:40 Igor Melichev

>     Removing it because it appears in a wrong place of the directory tree.

2003-04-11 07:33 Igor Melichev

>     Initial commit for a minimal set of resources for CID font emulation, FAPI and pdfwrite .

2003-04-10 22:22 Ralph Giles

>     MSVC (at least) requires void* be cast. Also remove a spurious comment.

2003-04-10 22:11 Ralph Giles

>     Sort the list of devices in the output of 'gs -h' so they're easier to read.
>     Also list the default device separately as it's no longer first. Based on a
>     patch from Nelson Beebe. Closes bug 416746.

2003-04-10 19:03 Ray Johnston

>     Tolerate %%EOF that doesn't have any line-end characters before the end
>     of the file. No other applications (AR5, xpdf, pdf-tools) complain about
>     this, so now we also allow this variation on the %%EOF line.

>     Fixes bug: 686793

2003-04-10 18:45 Alex Cherepanov

>     Use fstat() function to determine whether the file is seekable.
>     This should work on all supported platforms and seems to be the only way
>     to get the file type using a MSVC CRTL function.
>     Bug #686773

>     DETAILS:
>     Windows API documentation seems to imply undefined results when seeking
>     of retrieving file position of a special file. MSDN documentation requires
>     programmers to check file type using GetFileType() function before seeking.
>     MSVC 6 CRTL doesn't check file type before calling the corresponding
>     Windows API functions. fstat() is the only function in MSVC 6 CRTL that
>     calls GetFileType(). S_ISREG() is a POSIX macro that check whether the
>     file is ordinary. It can be easily emulated if missing.

2003-04-10 16:39 Alex Cherepanov

>     Use standard sRGB CRD. Fix color cast in the light areas caused
>     by chromatic adaptation done in the wrong (RGB) color space.
>     Bug #650802

2003-04-10 13:49 Igor Melichev

>     Fix (pdfwrite) : Generate a page when input file has no pages.
>     Bug 686792 "Empty PS file generates produces invalid PDF".

2003-04-10 11:58 Igor Melichev

>     Fix : Ignore a missed CMapType, because Adobe does so.
>     Bug 686800 "Error converting PostScript file with vertical Japanese text".

2003-04-10 09:10 Igor Melichev

>     Fix (pdfwrite) : The monitoring of fill overprint parameter was not conforming to PDF 1.3, 1.4 spec.
>     Bug 686802 "Stroke Overprint lost making PDF".

2003-04-09 23:26 Ralph Giles

>     Update the release instructions to use cvs2cl and the new split_changelog.
>     Also include Changes and Details files for differences up to this point as
>     an example of the new format.

2003-04-09 22:58 Ralph Giles

>     Add news script to generate split abbreviated/detailed changelogs in the new
>     format. Accepts xml input from the cvs2cl perl script.

>     DETAILS:

>     After the 8.00 release we switched to a new format for Changes.htm and the
>     History files, based on the more traditional Changelog format instead of
>     grouping commits by section, which often resulted in duplicate posts. At
>     the same time we began a convention of including any notes too extensive
>     for such a listing below a 'DETAILS:' separator, with the idea that we'd
>     create two changelogs, with hyperlinks between so detailed information was
>     still available even in the new easier to browse format.

>     The method we've adopted uses the cvs2cl perl script, available from
>     http://www.red-bean.com/cvs2cl/ to parse the output of 'cvs log' and
>     generate an xml file containing the merged entries. This script is
>     more robust than our own cvs2hist. The split_changelog.py script is
>     then run to convert the xml changelog to the two sizes of linked html
>     changelogs.

>     split_changelog isn't very bright about constructing links, so it should
>     be run from inside the doc directory for now.

2003-04-09 18:57 Igor Melichev

>     Fix : Ignore a small noise skewing in the character caching criterion.

2003-04-09 18:47 Igor Melichev

>     Fix (type1 hinter) : The overshoot suppressing code was wrong.
>     Bug 686812 "Incorrect font rendering for Zapfino ampersand".

>     DETAILS :

>     It always restricted overshoots with 1 pixel due to a stupid error in code.

>     This patch causes differences in almost tests with 300 dpi,
>     and with 3 tests at 72 dpi.

2003-04-08 18:49 Dan Coby

>     The previous change removing the spotrgb device missed src/Makefile.in.
>     This change corrects that omission.

2003-04-08 17:01 Raph Levien

>     Fix: Restores logic to improve shading quality, which was clobbered in
>     DeviceN merge.

2003-04-08 16:42 Igor Melichev

>     pdfwrite : Don't convert Type 3 fonts to raster fonts.

>     DETAILS :

>     The main work is done with pdf_install_charproc_accum and
>     pdf_end_charproc_accum. They forward a BuildChar/BuildGlyph output
>     to a separate graphic stream. See the big comment at the end of pdf_text_process.

>     The new function gx_default_text_restore_state restores graphic
>     state of PS interpreter when we discontinue the default text enumeration
>     after executing a PS charproc. New state variable gx_device_pdf::accum_char_proc
>     sets a special mode for graphic handlers.

>     We ever clip BuildChar/BuildGlyph with a FontBBox or with character bbox
>     specified in setcachedevice*. Doing so with calling gx_clip_to_rectangle
>     from pdf_text_set_cache, because we need to avoid the
>     current PS clipping path to interfere the character proc.
>     Possibly a better way is to install an infinite (i.e. absenting) clipping box,
>     wnen setcharwidth is used instead setcachedevice*.
>     but we don't know how to. Due to that the distilled 238-01.ps
>     renders some differently than undistilled one, and in most cases
>     it appears closer to what CPSI does.

>     An additional optimization : In sync_text_state the condition for matrix
>     sinchronization is done weaker : with empty text buffer the
>     synchronization is not needed.

2003-04-08 16:31 Igor Melichev

>     pdfwrite : Don't convert Type 3 fonts to raster fonts.

>     DETAILS :

>     The main work is done with pdf_install_charproc_accum and
>     pdf_end_charproc_accum. They forward a BuildChar/BuildGlyph output
>     to a separate graphic stream. See the big comment at the end of pdf_text_process.

>     The new function gx_default_text_restore_state restores graphic
>     state of PS interpreter when we discontinue the default text enumeration
>     after executing a PS charproc. New state variable gx_device_pdf::accum_char_proc
>     sets a special mode for graphic handlers.

>     We ever clip BuildChar/BuildGlyph with a FontBBox or with character bbox
>     specified in setcachedevice*. Doing so with calling gx_clip_to_rectangle
>     from pdf_text_set_cache, because we need to avoid the
>     current PS clipping path to interfere the character proc.
>     Possibly a better way is to install an infinite (i.e. absenting) clipping box,
>     wnen setcharwidth is used instead setcachedevice*.
>     but we don't know how to. Due to that the distilled 238-01.ps
>     renders some differently than undistilled one, and in most cases
>     it appears closer to what CPSI does.

>     An additional optimization : In sync_text_state the condition for matrix
>     sinchronization is done weaker : with empty text buffer the
>     synchronization is not needed.

2003-04-08 13:59 Ralph Giles

>     Initial commit of native MacOS font loading. This implements a %macresource% iodevice for
>     retrieving data from the 'resource' structure associated with MacOS files, either directly from
>     the resource fork, or from a serialized data fork resource file. This is primarily used to access
>     font data on that platform. Resource fork access is only supported on MacOS, while data fork files
>     (e.g. .dfont format font files) can be read on any platform. This code is currently disabled.

>     DETAILS:

>     This change allows fonts stored in resources to be specified in the fontmap. A special indexing
>     scheme is added to the filename to address the particular resource desired by id and 4-character
>     type code, e.g. '%macresource%Arial#sfnt+4096' or
>     '%macresource%/Library/Fonts/Optima.dfont#sfnt+14151'.

2003-04-08 12:38 Ralph Giles

>     Initialize the legacy global pgsdll_callback to NULL to avoid problems
>     if it isn't properly set. Part of bug 686768.

2003-04-08 12:17 Ralph Giles

>     Avoid calling a null pgsdll_callback, as can happen with the new client api
>     and CHECK_INTERRUPTS. This fix affects only MacOS, similar protections are
>     already in place for other platforms. Also return EOFC in the mac stdio
>     stream process if no callback is defined. Closes bug 686768.

2003-04-08 05:04 Dan Coby

>     Implementation of the SeparationOrder parameter.  This implementation
>     is only applicable for the spotcmyk and devicen devices.  This change
>     also removes the uuused spotrgb device.

2003-04-04 17:10 Ralph Giles

>     Correct documenation change: -dAdjustWidth is on by default.

2003-04-03 16:42 Raph Levien

>     Fix: Make the pdf 'q' operator not affect the current path, in conformance
>     with the PDF spec. Fixes SF #596009.

2003-04-03 13:54 Ralph Giles

>     Document that setpagedevice keys can reset the effects of pdfmark commands.
>     Closes bug 645677.

2003-04-03 13:34 Jouk Jansen

>      Committing in .

>      for new file syntax on OpenVMS
>      added the  case for prefix=***] and filename=-*****

>      Modified Files:
>      	gs/src/gp_vms.c
>      ----------------------------------------------------------------------

2003-04-03 13:28 Ralph Giles

>     Fix documentation for -dAdjustWidth. This parameter takes a integer rather
>     that an boolean as was stated. Closes bug 538033.

2003-04-02 23:45 Alex Cherepanov

>     Fix a typo causing "/typecheck in restore" in documents with /Threads .
>     Bug #611701

2003-04-02 21:43 Ralph Giles

>     Remove the non-HAVE_STDINT_H non-win32 attempts to define stdint types
>     and related sys/types redefine hacks. Also warn in the configure script
>     if stdint.h is not found.

>     DETAILS:

>     Compiling libjbig2dec requires the size-specific types in stdint.h, as
>     does compiling in the headers. Therefore these types must be made
>     available in ghostscript if jbig2.dev is included in FEATURE_DEVS.

>     The best way to integrate this is to create a stdint_.h for ghostscript
>     that contains discovered and/or platform-specific typedefs for the
>     types. This is still the plan, but to speed integration we just through
>     some defines into stdpre.h. If -DHAVE_CONFIG_H is passed by the makefile
>     (as configure does) then the C99 header is used, and we make specific
>     defines for MSVC which doesn't yet ship the header. We also had some
>     fallbacks for other systems (vendor unix mostly) but these caused
>     collisions with partial definitions of what became the C99 types in
>     sys/types.h and the redirection hack we do with ulong et al. did not
>     work on all platforms (notably macosx).

>     It is the fallback defines that have been removed; users building
>     on older platforms will probably have to patch the types in to use JBIG2
>     support.

2003-04-01 20:18 Alex Cherepanov

>     On some devices the initial page size is rounded up but page size is
>     rounded to the nearest pixel when set by setpagedevice. Changing default
>     page size to match the setpagedevice. Bug #686795

2003-03-29 00:55 Alex Cherepanov

>     Multi-target rule that generates all of the targets at once was executed for
>     every target obsoleting some of the files generated earlier and causing
>     recompilation. Replace the multi-target rule with a single-target rule and
>     make the target a prerequisite of the remaining targets; use empty command to
>     disable default build rules. Bug #685341.

2003-03-28 20:15 Ray Johnston

>     Prevent UMRs and when an image3x type image only has one of the possible
>     two masks. Hangs or data garbling could result. Related to bug #686782.

>     DETAILS:

>     While several places in the image3x handling checked mask[i].depth to make
>     sure that it was non-zero, other places didn't have this check, but just
>     operated on the InterleaveType of the mask. While I could have added the
>     mask[i].depth check, setting mask[i].InterleaveType to zero when a mask
>     was not used was a single line change and served the purpose.

>     I found this when looking at performance on this PC_*.ai file and was
>     getting infinite loops. The plane_data was ending up pointing to the
>     wrong area when the uninitialized mask[i].InterleaveType just happened to
>     be 3 (interleave_separate_sources).

2003-03-27 21:10 Ray Johnston

>     Improve previous patch to work from within encapsulated job framework.

>     DETAILS:

>     If gs is started with:  gs -c false 0 startjob pop - < /dev/null

>     then the previous patch would result in:

>     	Unrecoverable error: invalidaccess in quit

>     since the systemdict /quit is defined to cause this error from within an
>     encapsulated job. This patch detects the .jobsavelevel > 0 and uses 'stop'
>     instead, which quits gs without a spurious error message.

2003-03-27 20:55 Ray Johnston

>     Use the systemdict version of "quit" from gs_main_finit so that we can still
>     quit if /quit has been redefined. Bug #686783. Analysis by Raph Levien.

2003-03-27 14:20 Igor Melichev

>     pdfwrite : The old code copied parameters of PS interpreter's graphic state
>     to the output PDF. However some of them are installation dependent and must not copy.
>     THIS IS AN INCOMPATIBLE CHANGE : the generated PDFs will render some differently
>     on printers.

>     DETAILS:

>     We provide a signal to pdfwrite at very end of gs_init.ps - see
>     the change to gs_pdfwr.ps, the priority=2000.
>     The signal is handled in gdev_pdf_fill_path,
>     and stores a copy of PS interpreter's graphic state parameter values.
>     Those valuess are used for comparizon with current parameters of PS interpreter
>     when an object is written. Therefore, if a value of a parameter was not
>     changed by a document, it is not written to PDF.

>     Note that if a PS document sets parameters equal to the
>     installation defaults, the setting in missed in PDF.
>     This is unfortunate.

>     The patch causes multiple differences in rendering distilled
>     comparefiles with pkmraw, because transfer functions changed from a
>     HP-specific (defined in gs_init.ps) to none. Those differences were
>     checked with the fuzzy compare utility and look fine. It should fix
>     the 2003-03-26 regressions, but new differences will appear.

2003-03-27 01:09 Ray Johnston

>     Improve .copyparam to handle arrays as well as strings, preserving the
>     'executable' status of arrays. Fixes bug #647685.

2003-03-26 13:27 Igor Melichev

>     Fix : A bug processing an error in .schedule_init .

2003-03-26 13:08 Igor Melichev

>     Ignore pdfmark if the output device isn't pdfwrite.
>     THIS IS INCOMPATIBLE CHANGE.
>     If an user changes the output device to pdfwrite dynamically,
>     he should specify PDFSETTINGS in command line to enforce
>     the pdfwrite initialization when GS starts up.
>     Perhaps it's a seldom case.

>     DETAILS :

>     The old code always executed a big part of pdfwrite code with useful reason.
>     Now we can skip it with help of .schedule_init .

2003-03-26 11:54 Igor Melichev

>     Fixing some compiler warnings (unused variables, etc.).

2003-03-25 21:18 Igor Melichev

>     Fix (pdfwrite) : Provide a complete monitoring of the viewer's graphic state
>     while generating a PDF output. The old code misses the synchronization
>     of the viewer's graphic state with its internal copy when generating
>     a 'grestore' command to undo a clipping.
>     Bug 686763 "pdfwrite is not correctly handling OPM distiller parameter".

>     DETAILS :

>     This change affects all vector devices, but it should be equivalent
>     for all them except pdfwrite, and except for the pointer lifetime bug
>     explained below.

>     Here is an example when the desynchronization appears :

>       f1 settransfer
>       0 setcolor
>       path1 fill
>       f2 settransfer
>       1 setcolor
>       path2 fill
>       gsave
>       path3 clip
>       path4 fill
>       grestore
>       path5 fill

>     After 'grestore' it uses f1 instead f2.

>     The old code does not remember the viewer's graphic state,
>     which was immediately before 'gsave', and resets the internal copy of
>     the graphic state to default values when it generates 'grestore'.
>     This logic is fully wrong : if after 'grestore' a parameter is equal
>     to the default value, pdfwrite does not generate a set command for this parameter,
>     but the viewer uses the value which was set before 'grestore',
>     which can differ from the default one.

>     Moreover, gdevvec copies the device color from local memory
>     to global memory, and doesn't ask garbager to process pointers in
>     the copy. When the device color contains pointers
>     to patterns or so, the live time of the copy appears bigger
>     than the live time of the pointed structure. The old code only
>     compares the pointed addresses without accessing the pointed data,
>     so that a crash can't happen. But if garbager moves another color
>     to same address, the comparison answers "equal" when actually colors
>     are not equal, and the generated PDF appears wrong.

>     To exclude the pointer lifetime problem, the patch uses the 'save_dc' method
>     instead the 'equal' method for colors. But the implementation
>     of save_dc was dummy for patterns. To complete it, gs_id is
>     inserted into gs_pattern_instance_s, and more variants added to
>     gx_device_color_saved_s. The clist device appears tolerant
>     to this change.

>     Note that macros color_unset, color_set_null, color_is_null,
>     gx_dc_is_null are now applied to gx_device_color_saved.

>     For complete monitoring the viewer's graphic state,
>     we implement a 2-elements stack 'vgstack' in gx_device_pdf_s,
>     save the viewer's graphic state in it when generating 'q' commands,
>     and restore from there when generating 'Q'. If a 'gs' parameter
>     needs to change, we move to 'PDF_IN_STREAM' context, because
>     we must not insert 'gs' into a text context. New functions
>     pdf_try_prepare_stroke and pdf_try_prepare_fill provide
>     the "try" logics for this.

>     If a 'gs' parameter changes with changing a clipping,
>     first we need to undo the old clipping with 'Q',
>     and then generate new 'gs' parameters relatively to the
>     restored graphic state. The new function pdf_unclip
>     works for this.

>     With this patch the length of generated PDF appears longer
>     for some tests. The most important ones are :

>     acrobat.pdf        Lengths differ in 6141.
>     adesso8.pdf        Lengths differ in -8316.
>     HeiseiMinStd.pdf   Lengths differ in 4000.
>     narrow_font.pdf    Lengths differ in 6141.
>     RealCities.pdf     Lengths differ in 12370.
>     RodinCIDEmbed.pdf  Lengths differ in 101698.

>     It happens because pdfwrite doesn't remember 'gs' dictionaries,
>     and therefore redundant copies can appear.
>     This problem to be fixed separately.

>     Expecting a progression : 093-01.ps (was a wrong stroke widths with a PaintType 2 font).

>     Expecting a regression : with this patch, re-distilled
>         Testform.v1.0.2.pdf paints good with Adobe, but wrongly with GS.
>                              Maybe a bug in GS PDF interpreter.

2003-03-25 21:13 Igor Melichev

>     Fix (pdfwrite) : 'write_range' was buggy (inconsistent) since zfont42.c rev.1.11 (17 Jan 2003).

2003-03-24 15:41 Ralph Giles

>     Add rasterdb.py to the documentation file index.

2003-03-24 10:00 Igor Melichev

>     Fix (pdfwrite) : The recent patch for the bug 653140 changed the font embedding condition
>     with too narrow one. Restoring it to the old one.

>     DETAILS :

>     The wrong patch is http://www.ghostscript.com/pipermail/gs-cvs/2003-March/003048.html .

>     This patch should fix the regressions
>     http://www.ghostscript.com/pipermail/gs-regression/2003-March/000538.html

2003-03-24 00:50 Jack Moffitt

>     Implements raster database to store and retrieve cached baseline rasters.

2003-03-24 00:31 Jack Moffitt

>     Fixes a bug where baselines weren't being reverted if they already existed.

2003-03-23 23:59 Jack Moffitt

>     Added emacs mode lines to python files without extensions.

2003-03-22 18:24 Ralph Giles

>     Define some of the C99 stdint types in the common stdpre.h. This is
>     required for libjbig2 integration.

>     DETAILS:
>     Another option would have been to define a local 'stdint_.h', but
>     stdpre.h already contains a number of typedefs and includes sys/types.h
>     to provide expected basic types. We use stdint.h itself if the toplevel
>     makefile defines HAVE_STDINT_H.

>     Note that unfortunately sys/types.h often tries to provide types now in
>     stdint.h. We do the same collision-avoidance we do with our shorthand
>     types, but this could clobber correct definitions for the explicitly-
>     sized types on systems without stdint.h. (The only mainstream platform
>     not shipping stdint.h is MSVC, and we provide specific typedefs for that
>     platform.)

>     Some systems also provide a sys/inttypes.h with the same definitions. We
>     ignore this.

2003-03-22 12:47 Igor Melichev

>     Fix (CFF parser) : Warn and ingore missed tables instead giving up.
>     Bug 686772 "PDf file breaks in ghostscript works on other PDF rips".

2003-03-21 19:14 Igor Melichev

>     pdfwrite : Fixing the bug 653140 "use NeverEmbed to restrict CIDFont embedding"

>     DETAILS :

>     The important change is setting pfont->font_name for CID fonts.
>     Before now it contained empty string. Other changes are minor
>     and only provide a data transfer.

2003-03-21 10:17 Igor Melichev

>     file_name_combine : Improve the choice of the default GenericResourceDir.

>     DETAILS:

>     This patch does not change any behavior with a regular build.

>     The default value for GenericResourceDir can be configured
>     with -sGenericResourceDir=path . If not specified, it
>     chooses the first directory in LIBPATH, except (.),
>     and combines it with ../Resource .

>     The default value for FontResourceDir can be configured
>     with -sFontResourceDir=path . If not specified, it
>     chooses the first directory in LIBPATH, except (.),
>     and combines it with ../Resource/Font .

>     findresource was buggy : it returned a path with GenericResourceDir
>     when the real resource file is in another directory.
>     Now it first searches in LIBPATH, and if not found calls ResourceFileName .

>     We can't ever call ResourceFileName from findresource,
>     because it ever retrieves a single path. See the bug above.
>     Therefore with multiple resource directories it is conforming to PLRM
>     but differs from CPSI.

2003-03-20 22:10 Alex Cherepanov

>     Remove -dNODISPLAY flag from ps2ps.bat because nothing is generated
>     when the flag is set. There's no -dNODISPLAY flag in UNIX or OS/2
>     versions. Fixes bug #686776

2003-03-20 20:27 Alex Cherepanov

>     Check i/o errors in PS and EPS generation drivers. Return ioerror soon
>     after the error is encountered in the output stream.
>     Fixes bug #686741

>     DETAILS:
>     To simplify the code errors are checked only at the critical places:
>     before seeking, inside loops, before returning from functions.
>     Stream error status is checked by direct access to the stream structure
>     because both macro and extern_inline based solutions were declined.

2003-03-20 20:11 Alex Cherepanov

>     Check i/o errors in PS and EPS generation drivers. Return ioerror soon
>     after the error is encountered in the output stream.
>     Fixes bug #686741

>     DETAILS:
>     To simplify the code errors are checked only at the critical places:
>     before seeking, inside loops, before returning from functions.
>     Stream error status is checked by direct access to the stream structure
>     because both macro and extern_inline based solutions were declined.

2003-03-20 16:10 Igor Melichev

>     Fix (file_name_combine) : The operator .file_name_combine returned a read-only string.

2003-03-20 15:22 Igor Melichev

>     Fix (pdfwrite) : When advance width has non-zero y component, the width was set to zero.
>     Bug 686764 "Overlapping characters".

>     DETAILS :

>     The test document embeds a font, in which some characters
>     have a small non-zero y component of the advance width.
>     It looks as a buggy font. The pdfwrite writes zero to Widths array
>     (that's correct, because it is only useful with zero y component),
>     and did not generate glyph positioning commands (the bug).
>     This patch makes pdfwrite to be tolerant to such buggy fonts
>     with generating glyph position for subsequent glyph.
>     It does not repair the font.

2003-03-20 09:29 Igor Melichev

>     Fix (pdfwrite) : While embedding a font, prefer font name to key name.
>     It conserves original font names and allows derived fonts to merge.

2003-03-18 01:29 Ralph Giles

>     Add the new pngalpha device to the default autoconf build.

2003-03-17 09:54 Igor Melichev

>     Fix (pdfwrite) : Unwinding another part of the previous patch
>     which wrote a wrong numLongMetrics.

2003-03-16 20:50 Igor Melichev

>     Fix : Increasing the threshould for the dropout prevention invocation.

2003-03-16 20:07 Igor Melichev

>     Fix (file_name_combine) : A bug in gs_fapi.ps .

2003-03-15 08:09 Igor Melichev

>     Fix (pdfwrite) : Unwinding a part of the previous patch
>     and improve the OS/2 table writing ann embedded CIDFontType2.
>     Bugzilla Bug 686759 "pdf to pdf doesnt work".

>     DETAILS :

>     The previous patch appears wrong and caused a regression
>     due to the change to "have_cmap = no_generate && !writing_cid,"
>     in gdevpsft.c . This patch unwinds it. Also the log message
>     of the previous patch is fully wrong. The CID font in the test document
>     for 686759 does not contain cmap and the cmap must not
>     be written. But with the previous patch a corrupt cmap
>     was written. Accessing the wrong font copy pdfwrite
>     failed to compute glyph widths and therefore converted the font
>     into a bitmap font. This patch restores the code
>     to "have_cmap = no_generate,". The bug 686759 is reopened.

>     Also we detected that the OS/2 table was written
>     wrongly in some circumstances : its position in font
>     file did not correspond to one specified in the font
>     header. This patch fixes it.

2003-03-14 11:55 Ralph Giles

>     Correct a typo in a help string.

2003-03-14 11:36 Ralph Giles

>     Correct a serious error in the bmp file padding method. Also convert all error
>     output to stdout from stderr since we no longer output the diff image to stdout.
>     Patch from Igor Melichev.

2003-03-14 01:55 Ralph Giles

>     The code for writing the BMP header made assumptions about struct
>     packing and was not portable. Replace the previous code with a method
>     that writes fields one at a time. Also, since fseek() is reported not to
>     work beyond the end of the written file, pad out the length of the image
>     data section so we can fill in the rows in proper bottom-to-top order.

>     Note that the bmp output code does not convert RGB to BGR; this is not
>     critical as the output is only used for hilighting differences.

>     Closes bug #686739.

2003-03-14 00:10 Ralph Giles

>     Replace the win32-specific code for seeking with a generic version.
>     Partial fix for bug #686739.

>     DETAILS:

>     The code was making an assumption about the internals of the opaque
>     fpos_t type. This is a 64 bit integer on win32, but a struct on
>     linux and macos, so the compile of course fails.

>     This commit temporarily breaks diff.bmp output on win32, which allegedly
>     cannot fseek() beyond the written end of the file so the row-reversal
>     logic will fail. This will be corrected in another revision.

2003-03-13 19:11 Dan Coby

>     Fix for 686740 PDF file causes gs8 to core dump.  The test file
>     uses PDF transparency.  This is a PDF 1.4 feature however the file
>     header says %PDF1.3.  The implementing code has tests for PDF
>     version 1.4 before it tests for transparency features.  The fix
>     simply lowers the test level to 1.3.

2003-03-13 12:54 Igor Melichev

>     Fix (pdfwrite) : Never write cmap embedding a CIDFontType2.
>     Bugzilla Bug 686759 "pdf to pdf doesnt work".

>     DETAILS :

>     PDF uses CIDToGIDMap for mapping CIDs to GIDs.
>     Therefore the cmap table of the True Type font is not used with CIDFontType2.
>     In PDF spec section 5.8 "Embedded Font Programs" reads :

>     	If used
>     	with a CIDFont dictionary,the "cmap " table is not needed,since the mapping
>     	from character codes to glyph descriptions is provided separately.

>     Note the words "is not needed".
>     Meanwhile reading a PDF 1.2 format, Acrobat Reader 4 and 5 claim an
>     error if a cmap presents.

2003-03-12 12:22 Igor Melichev

>     file_name_combine :
>     1. Always search command line argument files in (.) .
>     2. Throw invalidfileaccess from .libfile .
>     3. Always check permissions with reduced file names.
>     4. Ignore "./" prefixes in permission lists, except for (./*) .

>     This patch should not not change behavior with regular build.

>     DETAILS :

>     With NEW_COMBINE_PATH 1 contributes the improvement listed above.

>     Argument files are searched independently on SEARCH_HERE_FIRST.

>     If a file is in the search list, but the access isn't permitted,
>     .libfile throus invalidfileaccess, as with NEW_COMBINE_PATH 0.

>     Minor changes :
>     - some C-style cleanup in gpmisc.c ;
>     - don't compile i_ctx_p->filearg with NEW_COMBINE_PATH 1;
>     - don't compile i_ctx_p->starting_arg_file with NEW_COMBINE_PATH 0;
>     - a check for parents in check_file_permissions was buggy.

2003-03-12 11:16 Jouk Jansen

>      Committing in .

>      pngalpha device added also to the OpenVMS make file for MMK
>      (same change was already made for gmake in openvms.mak)

>      Modified Files:
>      	gs/src/openvms.mmk
>      ----------------------------------------------------------------------

2003-03-12 07:24 Jouk Jansen

>      Committing in .

>      update VMS file-format writing

>      Modified Files:
>      	gs/src/gp_vms.c
>      ----------------------------------------------------------------------

2003-03-11 11:36 Russell Lang

>     Add pngalpha device that uses RGBA, with the alpha channel
>     providing pixel coverage.  Used for generating PNG images with a
>     transparent background.

>     DETAILS
>     Add missing initialiser for get_clipping_box to
>     prn_color_params_procs macro.  (src/gdevprn.h)

>     Avoid cast warning for software_key (src/gdevpng.c).

>     Add pngalpha device that uses RGBA.  This requires custom
>     encode_color and decode_color procedures to put RGB in the
>     first three bytes while leaving the fourth A byte as opaque.
>     To avoid gx_no_color_value, the alpha is stored inverted so
>     opaque is 0x00 and transparent is 0xff.

>     If pngalpha is told to fill the entire page with white, it uses
>     the kludge of instead filling with almost white and transparent
>     (0xfefefeff). This works because it is triggered by "erasepage",
>     but not by "1 setgray clippath fill". A custom open_device and
>     put_params are needed to save the clist or memory device
>     fill_rectangle, and to restore the pngalpha_fill_rectangle.

>     A custom copy_alpha is required to correctly blend RGBA. The
>     blend is based on pixel coverage, not true transparency
>     Ghostscript doesn't pass transparency to the device. Alpha blend
>     maths from Porter and Duff 1984 paper for "A over B". RGB values
>     are stored without pre-multiplication. A custom
>     pngalpha_create_buf_device is used to replace the memory device
>     implementation gx_default_copy_alpha with pngalpha_copy_alpha,
>     but not to replace clist_copy_alpha.

>     The pngalpha device is successful at giving a transparent
>     background to many images such as colorcir.ps and golfer.eps,
>     but not tiger.eps which fills the clipping path with grey.
>     It does not implement a transparent background for PDF 1.4
>     transparent input files.

2003-03-11 11:13 Igor Melichev

>     Fix : setweightvector did not set the copy of WeightVector in gs_type1_data_s.
>     Bug #686753 "Wrong Display of Multiple Master Fonts".

>     DETAILS:

>     The test document creates a Type 3 font, in which BuildChar
>     procedure defines a copy of MM font and later replaces
>     WeightVector in it.

>     A new PS operator introduced to handle it.
>     Adobe implementations do so.

>     We are not happy with the change of VM with no regard to 'restore'.
>     It appears compatible with the test document,
>     because it calls setweightvector before rendering each glyph.
>     (Another interesting point is that the test document executes
>     "0 setcachelimit" before rendering a glyph).
>     But it is not compatible to CPSI (a special test done).
>     Providing a correct restore appears too complicated -
>     need to change the data representation to 'ref'.
>     Delaying it until it is really needed.

>     Alternatively we could obtain a fresh copy of WeightVector
>     in each call to *show, but it would be a significant performance flaw.

>     The patch fixes the problem explained in the bug report #686753,
>     but the supplied document has another problem :
>     with pdfwrite some characters are converted to raster.
>     To be fixed separately.

2003-03-10 13:08 Jouk Jansen

>      Committing in .

>      Oops... I made a typo in the version of 1 hour before this.

>      Modified Files:
>      	gs/src/gp_vms.c
>      ----------------------------------------------------------------------

2003-03-10 10:56 Jouk Jansen

>      Committing in .

>      corrected VMS file syntax.

>      Modified Files:
>      	gs/src/gp_vms.c
>      ----------------------------------------------------------------------

2003-03-10 07:36 Igor Melichev

>     file_name_combine : (1) Implement the extended search method in resourceforall,
>     resourcestatus, ResourceFileName. (2) Don't check permissions for command line argument files.

>     DETAILS:

>     This patch does not change any behavior with a regular build.

>     To skip the permission check with argument files we added a flag into
>     gs_context_state. This is only a secure way to pass the information
>     across PS interpreter, which executes .runfile with any argument file.

>     Per Adobe specification, a resource category can define the ResourceFileName procedure,
>     which generates a resource file name from resource instance name.
>     Since Ghostscript uses an extended search method for finding resource files,
>     the strong Adobe's semantics appears inapplicable.
>     Ghostscript implements an extended semantics.

>     Finding a resource file while executing findresource or resourcestatus,
>     Ghostscript does not call ResourceFileName. Instead that, it searches directories
>     with an extended method explained in How Ghostscript finds files.

>     ResourceFileName may be called from a Postscript program such as a resource installer.
>     The default implementation for ResourceFileName first checks whether
>     GenericResourceDir specifies an absolute path. If so, ResourceFileName uses its value
>     to generate the result. Otherwise, it tries to find an existing resource file with
>     the extended method. If it succeeds, ResourceFileName returns the path
>     to the resource file found. Otherwise it uses GenericResourceDir to combine a default path.

>     Note that with a single resource directory and an absolute ResourceFileName the behavior
>     appears equivalent to Adobe's one.

>     The new search method doesn't distinguish 'lib' and 'Resource' directories.

>     Minor changes :

>     The operator .file_name_parent is removed.
>     The operator .file_name_current is removed.
>     Improved some error messages.

2003-03-07 14:57 Igor Melichev

>     Fix (file_name_combine) : Improving the OpenVMS path syntax.

>     DETAILS :

>     This patch does not change any behavior with regular build.

>     With NEW_COMBINE_PATH 1 it allows to combine with filenames like (x]y) .

2003-03-07 14:21 Igor Melichev

>     Fix (file_name_combine) : Renaming no_neighbour with no_sibling.

>     DETAILS :

>     This patch does not change any behavior.

2003-03-07 11:12 Igor Melichev

>     Fix (file_name_combine) : Improving the file path syntax for OS/2, DOS and Windows.

2003-03-07 00:48 Dan Coby

>     Fix for #686755 sgirgb device.  The sgirgb device would produce compiler
>     errors if included in version 8.00 or later.

>     DETAILS:

>     The sgirgb device had not been modified to match the changes made in the
>     device API with version 8.00.  These were fixed.  In addition a couple of
>     compiler warnings were removed.  AN unsed variable (sptr) was also
>     removed.

>     Note:  I am unable to test this fix since I do not have an sgi system.
>     The inclusion of the sgirgb device also creates link errors in a WinXP
>     build due to undefined/missing bzero.  Since this was not changed, I
>     am assuming that this is not a problem on an sgi system.

2003-03-06 16:01 Igor Melichev

>     file_name_combine : Removing a rudiment of old code.

>     DETAILS:

>     This patch does not change any behavior with a regular build.

>     The operator .file_name_parents is now removed.

2003-03-06 13:53 Igor Melichev

>     file_name_combine : Implementing new command line arguments:
>     -sGenericResourceDir= and -sFontResourceDir= .

>     DETAILS:

>     This patch does not change any behavior with a regular build.

>     With NEW_COMBINE_PATH 1 the new arguments replace
>     default values for GenericResourceDir and FontResourceDir .

>     A consistency check is added to gs_res.ps .
>     It signals an error if the value of GenericResourceDir
>     is inconsistent with LIBPATH. An automatic insertion of it
>     into LIBPATH appears cumbersome because the access to LIBPATH in C code
>     goes through gs_main_instance_s.

>     The operator .file_name_combine changed the prototype.
>     A boolean result is added instead a failure on error.
>     This simplifies error processing in PS code, especially
>     because the 'stopped' changes the memory allocation mode.
>     Relevant changes done to calls of .file_name_combine in gs/lib .

>     A minor bug is fixed in gp_file_name_combine_generic.

2003-03-06 10:47 Russell Lang

>     Change OS/2 gp_file_name_combine to match Windows.

2003-03-06 10:28 Igor Melichev

>     file_name_combine : Adding the 'no_neighbour' argument.

>     DETAILS:

>     This patch does not change any behavior with a regular build.
>     It slightly change behavior when built with NEW_COMBINE_PATH 1.

>     The 'no_neighbour' is a boolean, which protects steps from
>     a directory to its neighbor directory in file_name_combine.
>     With true argument the combination

>        (x/y) + (../z/t) fails
>     but
>        (x/y) + (../y/t) succeeds.

>     With false argument both combinations succeed.

>     The argument is added to both C function and PS operator.

>     We apply false argument while executing .libfile
>     and while generating PermitFileReading.
>     True argument is used in FAPI support to locate
>     FAPI-handled font files (which generally are not PS files,
>     and they are not being read with PS operators).

>     With NEW_COMBINE_PATH 1, THIS IS INCOMPATIBLE CHANGE.
>     To access resources, run Ghostscript with specifying
>     a resource directory in the -I command line argument.

2003-03-04 16:10 Igor Melichev

>     Fix (file_name_combine) : Relative paths in GS command line did not work.
>     This patch cnanges a disabled code only.

2003-03-04 15:24 Igor Melichev

>     Fix (file_name_combine) : An improvement to .locksafe .

>     DETAILS :

>     This patch changes a disabled code only.
>     It skips redundant templates when GenericResourceDir
>     or FontResourceDir is an absolute path.

2003-03-04 14:49 Igor Melichev

>     Fix : A bug in CIDDecoding category definition.

>     DETAILS :

>     Should use .libfile opening a resource file to
>     resolve relative paths with LIBPATH.

2003-03-04 14:05 Igor Melichev

>     Fix (file_name_combine) : A bug in .locksafe .
>     This patch changes a disabled code only.

2003-03-04 11:20 Igor Melichev

>     Fix : removing an unused variable.

2003-03-04 11:00 Igor Melichev

>     Initial commit for the new SAFER logics.

>     DETAILS:

>     This patch should not change any behavior unless
>     NEW_COMBINE_PATH is changed to 1. With 0 a minor meanful
>     change is the replacing .pathstring_not_bare with .file_name_combine
>     in gs_fapi.ps (which fixes a bug in FAPI support,
>     and doesn't affect builds with no FAPI).

>     The change is compatible unless NEW_COMBINE_PATH is 1.
>     Incompatibility issues with 1 are explained below.

>     With NEW_COMBINE_PATH 1 the patch defines a new logic for
>     .libfile, SAFER, and related things :

>     1. Default values for GenericResourceDir and FontResourceDir
>        are platform dependent.
>        (The old code always use Unix notation - a bug).

>     2. Default value for GenericResourcePathSep is platform dependent.
>        The value is used before non-directory items only.
>        (The old code always use Unix notation - a bug).
>        (The old code used the value before directory items - a bug on OpenVMS).

>     3. PLRM specifies GenericResourceDir to be a single absolute path name.
>        But Ghostscript's tradition is to load library files
>        form a list of directories. Since we want to propagate
>        this tradition to resource files, we get a conflict.
>        To resolve the conflict, we allow GenericResourceDir
>        to be a relative path, which is being concatenated with
>        LIBPATH items. Thus we provide an extension of Postscript.

>     4. When a LIBPATH item is being concatenated with GenericResourceDir,
>        an abnormal behavior appears when GenericResourceDir references parent.
>        Exactly, concatenating the (.) item of LIBPATH with
>        the default GenericResourceDir, which is (../Resource/),
>        we get (../Resource/), i.e. it searches in a directory,
>        which users don't expect to. We work around the abnormal
>        behavior with skipping such paths while executing .libfile .

>        More precisely, the .libpath algorithm is :

>        For each LIBPATH item :
>           - combine it with the argument string;
>           - if the (reduced) combination refers the parent, skip it;
>           - otherwise try to open the path. If succeeded, exit with it.
>        If no success, fail with undefinedfilename or invalidfileaccess.

>        Here and below we used Unix notation just for simplifying
>        the log message. All statements to be generalized for any platform,
>        and they are true for any supported platform.

>     5. A consequence of our workaround for (4) is a new constraint to .libfile :

>        Let x is a cwd.
>        Let x/../y exists. Lets mark it as y1.
>        Let LIBPATH contains cwd and a directory z, which is not cwd.
>        Let z/../y exists. Lets mark it as y2.
>        Consequently y1 != y2.
>        Executing

>           (../y/f) .libpath

>        searches y2/f, but does not search y1/f .
>        The old code searched both in non-safer mode.
>        THIS IS INCOMPATIBLE CHANGE.

>     6. A better workaround for (4) would be an implementation
>        of RESPATH, which by default generates from LIBPATH
>        with replacing (../Resource/) with (./Resource/).
>        This requires to maintain a new directory lists.
>        .libfile should get an additional argument,
>        which specifies a search list - LIBPATH, RESPATH or FONTPATH.
>        We do not make this improvement now,
>        but will add it to Issues.htm .

>     7. If a path starts with a number of parent references,
>        a template with same number of parent references
>        must be added to permission list to allow the access.
>        The template (*) allows access to any file.
>        THIS IS INCOMPATIBLE CHANGE, because
>        the old code ever rejects parents.

>     8. GenericResourceDir and FontResourceDir are not being added
>        to permission list while .locksafe. Instead that,
>        we combine them with all LIBPATH items,
>        and add the combinations to the permission list
>        unless it references parent.
>        THIS IS INCOMPATIBLE CHANGE, but for non-exotic cases
>        (such as "(../Resource/CMap/H) .libfile" in a document)
>        it should be equivalent to the old behavior.

>     9. Scratch files with a non-absolute prefix always open
>        in a scratch directory. The old code can open them
>        in current and parent directories if an user modified
>        a default prefix in C code.
>        THIS IS INCOMPATIBLE CHANGE for users who had modified
>        a scratch file prefix in C code.
>        Permission for scratch directory is not checked
>        as well as in old code.

>     A. The operator .filenamedirseparator is removed,
>        because it cannot work properly on OpenVMS.
>        On OpenVMS it needs both prefix and trailer to
>        determine a correct separator.
>        We removed it because the new logics never needs it.

>     B. The operator .pathstring_not_bare is removed,
>        because .file_name_combine performs it's job better.

>     C. The functions gp_pathstring_not_bare, gp_file_name_references_parent,
>        char *gp_file_name_concat_string are not longer in use.

>     D. New operators added to maintain the new logics :

>        <string> <string> .file_name_combine <string>

>           Combine a file name with a prefix.
>           The first argument is a prefix, the second is a file name.
>           Internal syntax of arguments and result is platform dependent.
>           The combination is being reduced to a shortest equivalent,
>           but if it starts with cwd reference, the starting
>           cwd reference persists.

>        - .file_name_separator <string>

>           Returns a readonly string, which represents a separator
>           which is used in file names between directory item and file item.
>           Used for making the default value of GenericResourcePathSep.

>        - .file_name_directory_separator <string>

>           Returns a readonly string, which represents a separator
>           which is used in file names between two directory items.
>           Used for making the default value of GenericResourceDir.

>        - .file_name_parent <string>

>           Returns a readonly string, which represents a parent reference.
>           Used for making the default value of GenericResourceDir
>           and GenericResourceDir.

>        <string> .file_name_parents <integer>

>           Returns an integer equal to the length of maximal
>           anchor substring, which includes parent references and separators only.
>           Used in generating the permission list from LIBPATH and
>           [GenericResourceDir FontResourceDir] as a workaround
>           for (6).

>        We believe that all them are necessary, except the last one,
>        which is temporary used in (8) as a workaround for (6).

2003-03-03 11:50 Igor Melichev

>     gp_file_name_combine : Implementing new PS operators.

2003-03-03 11:00 Igor Melichev

>     gp_file_name_combine : Fixing the OpenVMS parent syntax.

2003-03-03 10:49 Igor Melichev

>     gp_file_name_combine : Fixing a comment about OpenVMS.

2003-03-03 10:32 Igor Melichev

>     gp_file_name_combine : Fixing the OpenVMS parent syntax and generalizing the ankor parent check.
>     Thanks to Jacob Jansen.

2003-03-02 22:52 Igor Melichev

>     gp_file_name_combine : Adding more helpers for OpenVMS support.

>     DETAILS:

>     The previous patch unintentionally set NEW_COMBINE_PATH=1.
>     This one repairs it.

>     OpenVMS uses different separators for directory and file
>     items - '.' and ']'. More helpers added to resolve this.
>     gp_file_name_conbine_generic now checks which one is needed
>     for concatenating paths.

2003-03-02 13:48 Igor Melichev

>     gp_file_name_combine : Implementing some useful functions.

>     DETAILS:

>     This patch doesn't change any behavior.
>     The new functions will be used with NEW_COMBINE_PATH=1.

>     Probably we don't need gp_file_name_reduce, but it's implementation
>     is pretty nice and isn't obvious.

>     gp_file_name_is_absolute will replace gp_pathstring_not_bare.
>     NEW_COMBINE_PATH=1 wan't need a special check for cwd.

>     gp_file_name_is_from_parent will replace gp_file_name_references_parent.
>     The new function only check partent at the beginning of the path,
>     and should be used with reduced paths only.

>     We could code an in-place reduction with :

>         gp_file_name_combine_result
>         gp_file_name_reduce_inplace(char *buffer, uint *blen)
>         {
>             return gp_file_name_reduce(buffer, *blen, buffer, blen);
>         }

>     but we believe that

>     1. Aliasing const with non-const isn't a valid C.
>        Rather GS contains multiple const hacks, we don't want to add another one.

>     2. The input buffer must have space for the trailing zero,
>        which is not accounted in *blen.

>     The patch also includes a minor cleanup of comments and gp_file_name_combine_generic.

2003-03-02 11:50 Igor Melichev

>     Fix : A compiler warning in platform dependent code for gp_file_name_combine.

2003-03-02 11:38 Igor Melichev

>     Fix : A syntax error in platform dependent code for gp_file_name_combine.

2003-03-01 13:59 Igor Melichev

>     Implementing gp_file_name_combine.

>     DETAILS :

>     This patch introduces a new code, which is currently
>     disabled with "#define NEW_COMBINE_PATH 0" in gp.h .

>     The new function gp_file_name_combine concatenates
>     two paths and then reduce the concatenation with excluding
>     parent references when possible. It is platform dependent,
>     but we could factor out a big common part - see gp_file_name_combine_generic.
>     Platforms define 8 small helpers for it.

>     The gp_file_name_combine and its helpers were debugged on Windows
>     with emulating other platforms. A help wanted to
>     test them on real platforms. For testing them
>     replace 0 with 1 in the definition of NEW_COMBINE_PATH
>     in gp.h and rebuild.

>     We do not protect definitions of new functions with
>     NEW_COMBINE_PATH switch, because we want them to be syntax-checked.

>     Some old functions, such as gp_pathstring_not_bare,
>     gp_file_name_concat_string will be reconsidered later,
>     because the helpers perform similar work in a generalized way.
>     Probably some of old ones to be removed. Our strong intention is
>     to remove gp_pathstring_not_bare, because it's behavior looks
>     strange from the user's end.

2003-03-01 12:54 Igor Melichev

>     Reorganizing lib_open, lib_file_open, lib_file_fopen, file_open_stream functions
>     to allow to check permissions with a combined file name.

>     DETAILS :

>     This should be an equivalent change.
>     It is a preparation for implementing static resources.

>     This patch moves the directory enumeration cycle from lib_file_fopen
>     to lib_file_open. After that we have a place in lib_file_open
>     in which both combined path and permissions are accessible
>     (more precisely, this place is in lib_fopen_with_libpath).
>     The checking permissions in there will be next improvement.

>     This patch defines a stub for gp_file_name_combine function.
>     Temporary it is placed into zfile.c .
>     Later it will be moved to platform dependent modules.

2003-02-28 18:58 Ray Johnston

>     Moving clear to before the restore removed the startjob parameters from
>     the opstack.

>     DETAILS:

>     This was an attempt to remove a potential problem with invalidrestore
>     caused by stuff on the opstack or dictstack if startjob was executed with
>     elements on these stacks. Since the problem has always been there and
>     since no one has tripped over it, we will investigate a correct fix
>     to preventing invalidrestore when the need arises. In the meantime,
>     at least startjob will work.

2003-02-28 18:53 Ralph Giles

>     Correct a comment typo.

2003-02-28 03:58 Ray Johnston

>     Correct typo somehow a /* comment crept in -- changed to %

2003-02-28 00:31 Ray Johnston

>     Add .endjob procedure for use by job servers. Remainder of job encapsulation
>     and documentation to follow later. Also fix potential "invalidrestore"
>     problem with "extiserver" and "true <passwd> startjob" caused by stuff left
>     on the opstack or dictstack.

2003-02-27 11:56 Ralph Giles

>     Support for JBIG2 streams with a JBIG2Globals shared data reference.

>     DETAILS:

>     The JBIG2Decode filter can take an optional /JBIG2Globals parameter,
>     always an indirect object reference to another stream. This commit adds
>     a new .jbig2makeglobalctx operator that takes a bytestring contanting
>     the global stream data, runs it through the decoder library and wraps
>     the resulting context pointer in an astruct which is returned as a
>     special -jbig2globalctx- object on the postscript stack.

>     A new procedure called from inside applyfilters in the pdf decoder takes
>     care of spooling the global data into the bytestring and installing the
>     astruct under the .jbig2globalctx key in the parameter dictionary. The
>     filter implementation looks for this and passes it to the page decoder
>     instance if it's available. The original JBIG2Globals key is ignored by
>     the actual decode filter implementation.

2003-02-26 22:33 Igor Melichev

>     Fix : Improving a comment in lib/FAPIconfig.

2003-02-25 20:53 Igor Melichev

>     Fix (pdfwrite) : -dSubsetFonts=false did not work with incremental fonts.

>     DETAILS :

>     pdfwrite created a "complete" copy of a font at the first appearance of the font.
>     With incremental fonts it missed incremental glyphs with -dSubsetFonts=false.
>     The patch checks whether a glyph is added incrementally and
>     replaces the "complete" font copy with a font subset.
>     Bug #686735 "-dSubsetFonts=false produces a bad PDF".

>     The core of the patch is the change to gdevpdte.c .
>     Other changes just pass a necessary data through internal interfaces.

>     This patch should not change behavior with -dSubsetFonts=false,
>     which is used by default for the regression testing.

2003-02-25 15:44 Igor Melichev

>     Fix (pdfwrite) : Removing pdf_font_resource_s::copied_font.

>     DETAILS :

>     The patch removes a duplicated pointer.
>     It is a preparation for fixing #686735 "-dSubsetFonts=false produces a bad PDF".
>     The patched code should be equivalent to the old one.

2003-02-25 13:25 Igor Melichev

>     Fix (FAPI) : improving a comment.

2003-02-25 13:09 Igor Melichev

>     Fixing a compiler warning.

2003-02-25 12:25 Igor Melichev

>     Fixing the device finalization problem.

>     DETAILS :

>     pdfwrite (and possibly other devices) perform a huge work within close_device.
>     Since close_device is called via finalization method from memory
>     manager, some device structures could be released before calling
>     device_close, so that the huge work could not safely complete.
>     Also it could return error codes, which were entirely lost.

>     This patch calls gs_closedevice implicitly when a device
>     is about to uninstall. We catch 2 such events : when the interpreter
>     is about to exit, and when the interpreter executes setdevice.
>     This should be enough for "external" devices, such as printer drivers.
>     Internal devices do not receive these calls.

>     Note that a call to gx_device_fill_in_procs is added after assign_dev_procs
>     from gx_default_create_buf_device. Not sure why it was not done before.
>     After assign_dev_procs, ppmraw had ununitialized procs.

>     Also note that is_open flag is now unconditionally resets in gs_closedevice.
>     The new code needs to reset it to prevent redundant call to close_device from
>     device finalization method. The redundant call causes
>     a crash if pdfwrite has insufficient disk space to store the
>     output file (debugged with dina3_watermark.pdf) .

>     Bug 601255 "segv while device finalization".

2003-02-24 13:50 Alex Cherepanov

>     Avoid dictfull error; allocate page dictionary as large as the image
>     cache size. Wrap the image data string in the executable array because
>     some interpreters require the procedure data source.
>     Fixes bug #643398

2003-02-22 18:05 Ralph Giles

>     Use the correct debug macro in the recently committed struct_array
>     allocation checks. Only relevent to the debug build.

2003-02-22 05:50 Alex Cherepanov

>     Return error immediately when glyph ID is not found in GlyphDirectory.
>     Avoid access to partly constructed GlyphData and obscure failures there.
>     Fixes SourceForge bug #672129

>     DETAILS:
>     This change has no effect on rendering. Old code was
>     failing during access to GlyphData, which caused default glyph
>     substitution. New code returns the error earlier and causes
>     the same default glyph substitution.

2003-02-21 18:52 Ray Johnston

>     Add runtime validity checking related to struct_array allocations. This is
>     only enabled for DEBUG builds so the checks will not slow down production
>     builds. Related to bug 669170.

2003-02-21 18:48 Ray Johnston

>     Fix SEGV when cmap allocation failed (check for pcmap==NULL was misplaced).

2003-02-21 11:22 Igor Melichev

>     Fix : Don't generate the warning "/Unicode /Decoding is not accessible"
>     when working with no pdfwrite device.

2003-02-20 21:34 Alex Cherepanov

>     The fact that pswrite and epswrite devices generate low level
>     PostScript has been documented as a known limitation.

2003-02-20 18:57 Jack Moffitt

>     Forces test scripts which take files as arguments to treat the files as
>     names rather than paths.

2003-02-20 18:34 Igor Melichev

>     Fix : A structure discriptor was wrong allocating an array of gs_cid_system_info.

>     DETAILS :

>     This also unwinds the patch
>     http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002895.html

2003-02-20 13:38 Alex Cherepanov

>     Fix: Use default procedures for non-forwarding component bbox device.
>     Forwarding procedures cannot be used if there's no target device.

>     DETAILS :

>     Bug #636210

>     This is a partial fix for bug #636210.
>     Another part, I/O error processing, will be posted separately.
>     This change was locally tested with full regression test.

2003-02-18 19:57 Igor Melichev

>     This is initial commit for implementing static resources.

>     DETAILS :

>     1. Adding a new iodevice %static% with the new file ziodevst.c .
>     It is used for opening files placed in static data segment.
>     They need to be accessed as PS files due to multiple reasons,
>     including the implementation of gs_ciddc.ps and for PS procedure
>     ResourceFileName defined in PLRM.

>     2. Implementing a queue for delayed invocation
>     of initialization functions at end of gs_init.
>     This feature is necessary due to customized
>     builds of Ghostscript : some 'dev' depend each
>     on other and some functions are needed to execute
>     after all devs are preset. Currently it is only used
>     for obtaining the Unicode Decoding resource,
>     but later it will be used for perfectly consistent
>     processing of font and CID font map files,
>     both with FAPI and without it.

>     3. gs_resmp.ps slightly changed for handling
>     resource maps which are not defined as files.

>     4. The new file gs_resst.ps implements a procset
>     for handling static resource files. Both gs_resst.ps and
>     gs_ciddc.ps use the %static% iodevice.

>     5. The new file gs_resst.ps creates a map of resource files
>     placed in static segment. Later it would be nice
>     to generate it during GS installation. With the defined
>     resource set gs_init.obj grows up to 1.5Meg,
>     but both MSVC and gcc/Cygwin could handle it.

>     Currently all resources in gs_stres.ps are COMMENTED OUT
>     to prevent problems building Ghostscript with COMILE_INITS=1
>     on Mac and VMS. To uncomment them, replace '%-' with empty string.

>     This patch was locally tested with entire comparefiles
>     with COMPILE_INITS=0. It should not cause regressions.
>     Also it was slightly tested with COMPILE_INITS=1 :
>     the static resources work fine.

>     The patch assumes that during a GS build resource files
>     are placed in gs/Resource/ . It uses 1 Decoding and
>     a dozen of CMaps, which are necessary for the CID font emulation
>     and for FAPI to work. You need to uncomment them
>     in gs_stres.ps .

>     When GS is invoked, resources are being loaded from both
>     the static segment and from the OLD(!!!!!) default path.
>     In other words, the resource machinery works fine,
>     but the default resource path is not fixed yet.
>     I intend to fix it in the next day or two.

>     The patch depends on
>     http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002950.html

>     The patch does not include CMaps and Decodings resources.
>     They to be added separately.

2003-02-17 08:31 Jouk Jansen

>      Committing in .

>      OpenVMS crash fix (temporarily)

>      Modified Files:
>      	gs/src/openvms.mmk
>      ----------------------------------------------------------------------

2003-02-17 00:08 Igor Melichev

>     Enhancing the functionality of geninit.c .

>     DETAILS :

>     1. Implemented "long" relative paths. See translate_path.
>        Not sure what to do with separators on Mac.
>        See the __MACOS__ section.
>        This change was not debugged on Mac.
>        In case of problems please patch it.

>     2. Moved some error messages to prefix_open,
>        to allow translated paths to be displayed.

>     3. Implemented an intact including of files.
>        This is useful for including Adobe resources.
>        Don't want legal problems with them.
>        The syntax of 'Replace' statement is enhanced.

2003-02-16 17:51 Igor Melichev

>     Fix : Improving the CIDFontType 2 font copying.

>     DETAILS :

>     I believe that the code about copying CIDFontType 2 glyphs
>     is overcomplicated with mixing CIDs and GIDs, and needs to be
>     cleaned up. The old code had an obvious inconsistency :
>     it allocated a smaller array for glyph indices than written,
>     causing a heap damage. This patch simply makes the code to be
>     self-consistent. I can't say that I completely
>     understand whether CIDs/GIDs passed correctly or not.
>     Now it is working, but the correctness was not proved,
>     and Acrobat Reader doesn't show the glyph with /CIDTTEMUL
>     (see below).

>     The problem was detected with COMPILE_INITS=1 with emulating
>     a CID wont with mshei.ttf . The following program had crashed
>     with pdfwrite :

>     /glyph 2300 def
>     /ShinGo-Bold /CIDFont findresource
>     100 scalefont setfont
>     100 200 moveto glyph glyphshow
>     /CIDTTEMUL /CIDFont findresource
>     100 scalefont setfont
>     100 100 moveto glyph glyphshow
>     showpage

>     with the cidfmap file like this :

>     /ShinGo-Bold << /FileType /TrueType /Path (f:/WIN2000/Fonts/batang.ttf) /SubfontID 0 /CSI [(Japan1) 2] >> ;
>     /CIDTTEMUL << /FileType /TrueType /Path (f:/WIN2000/Fonts/mshei.ttf) /SubfontID 0 /CSI [(Japan1) 2] >> ;

>     The effect is indeterministic.
>     When I build GS with regenerate gs_init.c,
>     it crashed if run in same session of Developer Studio.
>     But if I close-open the Developer Studio and run GS,
>     it doesn't crash.

>     The patch should enlarge the array, which was written outside
>     the index range. The problem looks gone.
>     Meanwhile the CID/GID logics in gxcopy.c to be revised someday.

2003-02-16 17:28 Igor Melichev

>     Fix : Improving the seekability of the init string file.

>     DETAILS :

>     See comment in code.

>     This problem was found while developing a dead branch.
>     Rather it will not go to the mainstream development,
>     I'd like to keep track on it.
>     If the patch causes a problem, it can be safely unwinded.

2003-02-15 22:37 Ray Johnston

>     Change the fixed point precision for device coordinates to 8 bits. The
>     previous 12 bits was too large to accomodate large format inkjet printers
>     at modern resolutions of 720 and 1200 dpi.

2003-02-14 01:34 Igor Melichev

>     Fix (pdfwrite) : hmtx was wrongly written with CIDFontType 2 subset.

>     DETAILS:

>     Source Forge bug #683690.

2003-02-13 22:26 Igor Melichev

>     Fix : Replacing UTC-16 with correct UTF-16 in documentation and comments.

2003-02-13 20:05 Ralph Giles

>     Improve wording and sentence structure for some recent documentation
>     additions.

2003-02-13 11:19 Igor Melichev

>     Adding a documentation about Decoding and CIDDecoding resource categories.

2003-02-13 09:24 Igor Melichev

>     Fix : The condition in .pdf_hook_DSC_Creator was too general.
>     Restricting the Type 32 font disabling with pdfwrite device only.

2003-02-13 07:53 Dan Coby

>     Partial fix for 684340.  Remove the macro gx_color_device_must_halftone
>     and its one (incorrect use).

>     DETAILS:
>     The macro gx_color_device_was meant for situations in which the device
>     was known to be a color device and it was needed to know if halftoning
>     was required.  With the 8.00 changes in the graphics library, the
>     one situation that it was being used is incorrect.  The macro was also
>     wrong since it was checking dev->color_info.max_gray.  It should have
>     been checking color_info.max_color.  The macro was removed.  Please
>     use gx_device_must_halftone in its place.

2003-02-13 01:54 Igor Melichev

>     Fix : Stack balance in .pdf_hook_DSC_Creator .

2003-02-12 23:06 Igor Melichev

>     Adding a documentation about GlyphNames2Unicode.

2003-02-12 22:31 Igor Melichev

>     Fix : Removing an unused procedure.

2003-02-12 14:57 Ralph Giles

>     Add the new jbig2 filter sources to the file listing.

2003-02-12 14:30 Igor Melichev

>     pdfwrite : Disable 32 /FontType resource while processing a document
>     created with PScript5.dll .

>     DETAILS:

>     This patch completes the previous one. See details in there.
>     Also see comment in .pdf_hook_DSC_Creator defined by this patch.

>     This patch may be insufficiently safe for the case when
>     several documents are being united while a distillation.
>     We would like to restore the redefinition of 'resourcestatus'
>     after a document completes, but we don't know how to do
>     (exactly, where to call the restoring action from ?).
>     In general, what happens with

>          gs -sDEVICE=pdfwrite -OutputFile=1.pdf document1.ps document2.ps -c quit

>     ?

2003-02-12 14:29 Igor Melichev

>     pdfwrite : Account GlyphNames2Unicode while creating ToUnicode CMaps for simple fonts.

>     DETAILS:

>     This patch improves the previous one.
>     It generalizes the GlyphNames2Unicode processing for any simple font.

>     GlyphNames2Unicode is an undocumented facility, which Adobe Postscript
>     printer driver PScript5.dll Version 5.2 uses to communicate with
>     Adobe Distiller. Adobe applies it to Type 3 and Type 42 fonts.

>     Adobe uses Type 3 with GlyphNames2Unicode only for compatibility
>     with interpreters, which cannot handle Type 32. With other
>     interpreters (including Ghostscript) the generated PS program
>     skips GlyphNames2Unicode data. Therefore the feature
>     is now implemented for Type 3 but it is not involved while
>     processing such documents. Need to patch "32 /FontType findresource"
>     to involve it. Probably with pdfwrite the DSC parser should recognize
>     the creator and exclude 32 from /FontType resource category.

>     This patch unwinds the enhanced functionality of gs_font_procs::glyph_info
>     with GLYPH_INFO_UTC16, which was done with the previous patch,
>     and introduces a new virtual function gs_font_procs::decode_glyph.
>     Doing so because GLYPH_INFO_UTC16 causes multiple redundant code
>     for various font types due to dependence on interpreter structures.

>     SF bug #684120 tracks additional issues.

2003-02-12 02:16 Ralph Giles

>     Initial implementation of the /JBIG2Decode filter. This adds a '$(PSD)jbig2.dev'
>     FEATURE_DEV which links in the libjbig2dec decoder library. This version does
>     not support the optional /JBIG2GLOBALS parameter for sharing information between
>     page images. However, it is still useful as this parameter has been empty in
>     the files we've seen. The feature in enabled for the autoconf build if the
>     decoder library is found on the system, and remains optional with the other builds.

2003-02-11 22:21 Igor Melichev

>     pdfwrite : Account GlyphNames2Unicode while creating ToUnicode CMaps
>     for Type 42 fonts.

>     DETAILS:

>     GlyphNames2Unicode is an undocumented facility, which Adobe Postscript
>     printer driver PScript5.dll Version 5.2 uses to communicate with
>     Adobe Distiller. Adobe applies it to Type 3 and Type 42 fonts.

>     Type 3 with GlyphNames2Unicode is used only for compatibility
>     with interpreters, which cannot handle Type 32.
>     Since Ghostscript is not such, there is no need to implement
>     Type 3 with GlyphNames2Unicode. We don't do that.

>     This patch enhances the functionality of gs_font_procs::glyph_info
>     with retrieving Unicode UTC-16 code for a glyph. This enhancement
>     is implemented for practically useful cases only, which are
>     restricted with Type 42.

>     The gs_font_dir::glyph_to_unicode
>     callback is now removed because it is not longer useful.

>     SF bug #684120 tracks additional issues.

>     Working on this patch, I tried put the Unicode Decoding table
>     as a default value to FontInfo.GlyphNames2Unicode and remove the unicode_decoder.
>     But it appears not working, because test.ps for SF bug #529103 needs to
>     collect substitutions from both FontInfo.GlyphNames2Unicode and Unicode Decoding.

>     I removed the "WARNING: /Unicode /Decoding resource in not accessible",
>     because the flag for preventing its repetitions is not accessible from
>     gs_font_procs::glyph_info. A similar warning in lib/gs_pdfwr.ps still works.

2003-02-10 22:43 Dan Coby

>     The display device (src/gdevdsp.c) was displaying pure magenta as
>     white when using the DISPLAY_UNUSED_LAST mode.

>     DETAILS:
>     The cause of the problem was a sign bit extention in a 32 to 64
>     bit conversion (long to gx_color_index).  The fix was to add casts
>     to force the conversion to gx_color_index (which is unsigned) earlier
>     in the assigment.

2003-02-10 18:47 Alex Cherepanov

>     Added link to a new file: pfbtopfa.bat

2003-02-10 17:39 Ray Johnston

>     Fix a stack problem when doing small-caps substitution on a substituted
>     font referenced from a PDF file. Problem seen with Adobe's PDF 1.2 spec.

>     SourceForge bug# 683997 for Artifex customer #150.

2003-02-10 17:01 Ralph Giles

>     Document that pdfwrite and pswrite do not support the '%d' file-per-page
>     convention for -sOutputFile. Partial fix for Sourceforge bug 645677.

>     DETAILS:

>     Ghostscript actually segfaults when an output file name containing %d
>     is passed to pdfwrite or pswrite. This remains to be resolved.

2003-02-10 16:53 Igor Melichev

>     Fix: Some compiler warnings.

2003-02-10 16:31 Igor Melichev

>     Improving gs_font_procs interface functions glyph_info and glyph_outline.

>     DETAILS:

>     The old interface definition provided insufficient data for pdfwrite.
>     Several hacks was used in pdfwrite to recover the luck of data.
>     This patch slightly enhances the interface and removes the hacks.
>     See new comments in gxfont.h about the enhancement.

>     The interface could be more complete - see comments in gxfont.h .
>     Now we do not apply efforts for refinishing it, because
>     there is no practical need and we have no tests for it.

>     This patch improves glyph positions with pdfwrite for fonts with
>     vertical CMaps. comparefiles do not test this case.

>     Minor change : fixed compiler warnings in gdevpdtd.c .

2003-02-07 15:43 Igor Melichev

>     The CID to TT mapping : Implementing a glyph data cache.

>     DETAILS:

>     The implementation of the CID font emulator is completed.

>     Minor changes :

>     - Fixed a compiler warning in gdevpdfu.c .

2003-02-07 00:31 Igor Melichev

>     Fix : Improving comments in map file samples.

2003-02-07 00:23 Igor Melichev

>     Improving a documentation about emulating CID fonts with True Type fonts.

2003-02-06 17:43 Alex Cherepanov

>     Default CRD name is /DefaultColorRendering , not /Default
>     Fixes SourceForge bug #667351 from customer #150

2003-02-06 13:02 Igor Melichev

>     Fix (FAPI) : A portability bug about arithmetic shift.

2003-02-06 09:40 Igor Melichev

>     pdfwrite : Generating ToUnicode CMaps for simple fonts.
>     For fonts with random encoding it allows to Copy-Paste text
>     from viewers and to search a text.

>     DETAILS:

>     This code requires /Unicode /Decoding resource.
>     If the resource is absent, PDF will be written without ToUnicode CMap,
>     a warning is written to stdout explaining that the resource may be useful,
>     and another warning may be written to stderr if the resource is actually
>     useful for the document.

>     To access the resource I introduced a special operator .setupUnicodeDecoder .
>     It is called from gs_pdfwr.ps and stores the resource to gs_font_dir,
>     together with a callback which performs the decoding.
>     This is only a way to pass the resource through the graphics library.
>     It is definitely not a device parameter, and converting it to
>     C structures would be hard.

>     I don't like the big stuff added into zfont.c, but I haven't got
>     a better idea where to put it.

>     Minor change : fixed Cygwin/gcc compiler warnings.

2003-02-06 06:09 Alex Cherepanov

>     Created for completeness and convenience to Windows users.

2003-02-05 13:45 Ralph Giles

>     Remove documentation about the Pn() macros for K&R compatibility. They
>     were entirely removed prior to the 8.00 release.

2003-02-05 07:40 Igor Melichev

>     Fix (FAPI) : Improving error messages.

2003-02-04 23:13 Igor Melichev

>     (pdfwrite) : Fixing glyph width with WMode=1.

>     DETAILS:

>     Expecting a progression with 093-01.ps .

2003-02-04 16:50 Igor Melichev

>     (pdfwrite) : Fixing a check for NULL pointer pdf_attached_font_resource,
>     and propagating return codes from there.

2003-02-04 15:46 Igor Melichev

>     (pdfwrite) : Improving the safety of pdf_font_cache_elem arrays.

>     DETAILS :

>     The patch should not change any behavior.
>     It only inserts some index range checks while accessing arrays.
>     It was not neccessary, but it helped to locate a different problem.

2003-02-04 15:24 Igor Melichev

>     Fix (new Type 1 hinter) : Exported an excessive moveto when hints are disabled.

>     DETAILS:

>     This only affects pdfwrite.
>     Debugged with 401-01.ps .

>     Minor change :
>     Added some visual trace commands for the case of disabled hinting.

2003-02-04 15:05 Igor Melichev

>     Fixing a garbager problem in pdfwrite.

>     DETAILS :

>     The patch
>     http://www.ghostscript.com/pipermail/gs-cvs/2003-February/002891.html
>     is incorrect and caused multiple regressions.
>     Replacing it with a better patch.

>     Releasing pdf_font_cache_elem while device finalization,
>     the structure lefts in heap due to memory manager is disabled,
>     but it's pointers become invalid if they point to a huge area,
>     which was allocated in a separate chunk with another allocator.
>     Reset the pointers to prevent the garbager's attempt to relocate them
>     after the huge chunk is released.

2003-02-03 19:35 Igor Melichev

>     Fixing a garbager problem with gs_cmap_adobe1.

2003-02-03 16:32 Igor Melichev

>     Fix (FAPI) : SubstNWP erroneusely used with non-CID fonts.

2003-02-03 16:06 Igor Melichev

>     Fix (FAPI) : Improving the default value for the subpixel grid.

2003-02-03 15:59 Igor Melichev

>     (pdfwrite) : Copying a composite True Type glyph, components were indexed wrongly.

>     DETAILS :

>     It applyed CIDMap to subglyph indices, rather it must not.

2003-02-03 14:00 Igor Melichev

>     Fixing a garbager problem in pdfwrite.

>     DETAILS :

>     Releasing pdf_font_cache_elem while device finalization,
>     the structure lefts in heap due to memory manager is disabled,
>     but it's pointers become invalid. Reset the pointers
>     to prevent the garbager's attempt to relocate them later.

2003-02-03 12:53 Igor Melichev

>     Fixing problems with AlignToPixels.

>     DETAILS :

>     1. Keys for character cache were incorrect, causing an excessive
>        memory consumption (see the change to gxchar.c).
>     2. Subpixel grid and AlignToPixels were not passed to FAPI.

>     ifapi.h changed the prototype of get_scaled_font.
>     Therefore most changes are just a data re-srtucturization.

2003-02-03 09:27 Igor Melichev

>     CID font emulation : Comply with FAPI.

>     DETAILS :

>     This patch allows to redirect emulated CID fonts to FAPI.
>     It is not neccessary, but I like this feature.

2003-02-03 08:32 Igor Melichev

>     CID font emulation : Resolving relative paths.

>     DETAILS :

>     The implementation of the CID font emulator is now complete.
>     Perhaps an optimization is wanted for gs_type42_get_outline_from_TT_file.
>     See comment in there.

2003-02-03 07:59 Jouk Jansen

>      Committing in .

>      OpenVMS patches

>      Modified Files:
>      	gs/src/gp_vms.c gs/src/gsfcid.c gs/src/openvms.mmk
>      ----------------------------------------------------------------------

2003-02-02 21:43 Igor Melichev

>     A documentation about emulating CID fonts with True Type fonts.

2003-02-01 18:56 Igor Melichev

>     The CID to TT mapping : Providing a single map file
>     for both the CID font to CID font substitution and
>     True Type font to CID font substitution.

>     DETAILS:

>     Minor changes :

>     - Allowed a mapped category redefinition with no map file.
>       The map file may be delayed until a later redefinition.
>     - Changed the order of CIDFont category redefinitions in int.mak .
>     - Removed the usage of gs/lib/cidttmap.
>     - Improved a comment in gs/lib/cidfmap about its format.
>     - Provided an automatic choice of SubstNWP.
>     - Added an idle entry into the SubstNWP collection.
>     - Added a comment in zfapi.c . It's a problem.

>     The implementation of the CID font emulator is almost complete except 2 features :

>     1. Relative paths are not allowed in the gs/lib/cidfmap file.
>     2. An optimization is wanted for gs_type42_get_outline_from_TT_file.
>        See comment in there.

2003-01-31 17:39 Igor Melichev

>     Fix : Removing some unused variables.

2003-01-31 16:28 Igor Melichev

>     The CID to TT mapping : Building CIDMap with SubstNWP.

>     DETAILS:

>     This patch should not change any behavior if a new file
>     gs/lib/cidttmap is not added. Normally it is not.

>     With this patch narrow, wide and proportional Romans
>     may substitute each another while emulating a CJK CID font
>     with True Type font. Usually True Types contain insufficient
>     glyph to render all them. The substitution prevents missed glyphs.

>     This patch introduces a new special operator .fillCIDMap .
>     It composes a CID map from a Decoding, a True Type cmap,
>     and SubstNWP. PS code would be too big and slow for this purpose.

>     The implementation of the CID font emulator is almost complete except 2 features :

>     1. The CID font to CID font mapper and
>        the True Type to CID font mapper use different map files -
>        cidfmap and cidttmap.

>     2. An optimization is wanted for gs_type42_get_outline_from_TT_file.
>        See comment in there.

>     Minor changes :

>     - Fixed a bug in gs_cidfn.ps which tried to store a local
>       FontMatrix to a global font dictionary.

>     - A portion of code is factored out from zfapi.c to share with  .fillCIDMap

2003-01-31 12:57 Ralph Giles

>     Remove a spurious include for MAXPATHLEN. Discovered fixing SF bug 675847.

2003-01-31 12:54 Igor Melichev

>     CID font emulation : Choosing a cmap with gs/lib/xlatmap.

>     DETAILS:

>     This patch only changes a code which work for
>     FAPI or for CID font emulation. Regular GS invocation
>     should not change a behavior.

>     This is a next step of the CID font emulation.
>     Now it can handle all Windows JCK charsets, including Unicode-16.
>     In other words, a CJK font with any Windows charset can be used for emulation.
>     To handle other CJK charsets one should create an appropriate
>     CIDDecoding resource and add it into gs/lib/xlatmap.

>     Minor changes :

>     - Speeded up the TT file parser using the 'setfileposition'.

>     - Improved some diagnostic messages.

>     The implementation of the CID font emulator is still incomplete :

>     1. The CID font to CID font mapper and
>        the True Type to CID font mapper use different map files -
>        cidfmap and cidttmap.

>     2. SubstNWP is being ignored.

>     3. An optimization is wanted for gs_type42_get_outline_from_TT_file.
>        See comment in there.

2003-01-31 12:51 Ralph Giles

>     Fixup makefile dependencies after changing header includes in gp_unifs.h.
>     Part of the fix for SF bug 675847.

2003-01-31 12:48 Ralph Giles

>     Use the ANSI-standard FILENAME_MAX from stdio.h instead of MAXPATHLEN from
>     sys/param.h for unix path buffers. Fixes SF bug 675847.

>     DETAILS:

>     We should actually be using gp_file_name_sizeof here, but it's currently
>     a static define to a lowest common denominator, and we prefer a more
>     unix-friendly default. This can of course be changed if the _sizeof is
>     properly configured per platform.

2003-01-31 09:36 Igor Melichev

>     The CID to TT mapping :
>     1. Providing an access to glyphs on demand.
>     2. Handle TTC font format.

>     DETAILS:

>     This patch should not change any behavior if a new file
>     gs/lib/cidttmap is not added. Normally it is not.

>     With this patch glyf and loca tables are being skipped while loading
>     a True Type into RAM. An access by demand is provided instead
>     (This works for CIDFontType 2; it is not used for Type 42).

>     Map file may contain records with SubfontID, which
>     specifies a font number in a TTC collection.
>     TTC format is implemented for disk files only,
>     because embedded fonts never use it.

>     To provide the on-demand access, the patch introduces a special
>     extension of the Postscript language.
>     A CIDFontType 2 dictionary may contain /File with a file value.
>     It should be a positionable file of the TTF or TTC format.
>     When it presents, the dictionary must contain /file_table_pos,
>     which's value is a dictionary of 2-element arrays, which specify
>     position and length of a TT table in the file. 2 arrays
>     must present with keys /loca and /glyph.

>     We would like to optimize this implementation.
>     See comment in gs_type42_get_outline_from_TT_file.

2003-01-31 09:05 Dan Coby

>     Fix for 673108.  The test file has a stream which contains an invalid
>     stream length.  However Acrobat handles the file.

>     Details:
>     The invalid stream length was bad enough that we were positioning beyond
>     the end of the file when we searched for the endstream.  A check was
>     added for this case and if so then we ignore repositioning the file
>     before searching for the endstream.  Note:  There is already logic in
>     the code which emits a warning message if the endstream is not found.
>     A second part of this fix was to clean up the stack if the endstream
>     is not found.

2003-01-30 10:44 Igor Melichev

>     CID font emulation : Adding a code for CIDMap generation,
>     and moving the xlatmap scanner to gs_fntem.ps .

>     DETAILS:

>     This patch only changes a code which work for
>     FAPI or for CID font emulation. Regular GS invocation
>     should not change a behavior.

>     This is a next step of the CID font emulation.
>     Now it correctly maps most CIDs to Unicode fonts.

>     Secondary changes :

>     - I made xlatmap accessible from gs_ttf.c .
>       It should be used choosing a cmap.

>     - improving some comments and function names.

>     - Removed a redundant definition of a CIDFont,
>       which was unintentionally introduced with the previous patch.

>     The implementation of the CID font emulator is still incomplete :

>     1. Entire True Type fonts are loaded into VM.

>     2. SubfontID is being ignored.

>     3. The CID font to CID font mapper and
>        the True Type to CID font mapper use different map files -
>        cidfmap and cidttmap.

>     4. Access to glyphs by demand is not done.

>     5. SubstNWP is being ignored.

>     6. The choice the Unicode cmap is hardcoded.
>        Should use xlatmap instead.

>     The previous log message recommends to use PMINGLIU.TTF.
>     Actually it requires a True Type bytecode interpreter,
>     which GS doesn't provide. The font mshei.ttf does not.

2003-01-29 20:24 Ray Johnston

>     Fix for incorrect colors with pswrite device when painting rectangles.
>     SF bug 677009.

>     DETAILS:

>     The call to gdev_vector_update_clip_path followed the update_fill call
>     which set the color, but the clip path performed a 'Q q' (grestore gsave)
>     which reverted to whatever color was part of the previous saved gstate.
>     Changing the order of the calls fixes the problem.

2003-01-29 11:00 Igor Melichev

>     Enhancing the resource machinery with mapping CID fonts to True Types.

>     DETAILS:

>     This patch should not change any behavior if a new file
>     gs/lib/cidttmap is not added. Normally it is not.

>     Adding 2 new files gs_fntem.ps and gs_cidtt.ps and reorganizing
>     old files gs_cidfn.ps, gs_fapi.ps, gs_resmp.ps with them.
>     This moves a part of FAPI support to a more general level.
>     The moved stuff is shared with the FAPI and the new CID font mapper.

>     After this change Ghostscript can load Unicode True Type fonts
>     as a substitution to a CIDFontType 2 and render it.
>     At least the Windows font PMINGLIU.TTF succeeds.
>     But the implementation is very incomplete :

>     1. The CID to GID mapping is fully wrong.

>     2. Entire True Type fonts are loaded into VM.

>     3. The CID font to CID font mapper and
>        the True Type to CID font mapper use different map files -
>        cidfmap and cidttmap.

>     All these 3 solutions are temporary and to be improved later.

>     To involve the new feature, create a new file gs/lib/cidttmap,
>     and put records to there of the following format :

>     /ShinGo-Bold  << /FileType /TrueType /Path (F:/WIN2000/Fonts/PMINGLIU.TTF) /CSI [(Japan1) 2] /SubstNWP /Japan1 >> ;

>     It is similar to gs/lib/FAPIcidfmap, see Use.htm about the latter.

>     This patch does not include a change to documentation,
>     because it is too early to announce it to users.

2003-01-29 09:23 Igor Melichev

>     FAPI : Removing unuseful includes.

2003-01-29 09:19 Igor Melichev

>     FAPI : A further improvement for the GS/FreeType bridge.
>     Patch from Graham Asher.

>     DETAILS :

>     Without FAPI plugins this patch doesn't change any behaviour.

>     Minor improvements by igorm :

>     - fixed a spelling;
>     - FAPI_METRICS_ADD was buggy - a fixed overflow (thanks to Graham).
>     - removed unuseful dependencies from makefile.

2003-01-29 08:53 Igor Melichev

>     Fix : Eliminate .forceput from gs_resmp.ps .

>     DETAILS:

>     This patch should not change any behavior.

>     A mapped category used an array to store a set of procedures.
>     Sometimes the set grows, and the old implementation
>     used .forceput to replace the array with a bigger one
>     in the category dictionary, which is read-only.

>     The new code represents the set as a dictionary,
>     so that .forceput is not longer needed.

2003-01-29 08:50 Igor Melichev

>     pdfwrite : Implementing DW2 and W2.

>     DETAILS :

>     This feature is not tested with comparefiles and should
>     not cause regressions. But the test file 093-01.ps may render
>     differently due to a bug the test file. See SF bug #674418.

2003-01-28 19:09 Ray Johnston

>     Fix regression of 119-01.ps caused by previous patch while retaining the
>     fix for #667658 when CR and/or LF comes between the '~' and the '>'.

>     DETAILS:

>     The logic was also fixed so that if the end of buffer is reached while
>     searching for the '>' character (past CR and/or LF) no error would be
>     issued unless we have the 'last' condition indicating that no more data
>     is available.

>     Thanks to Igor M. for spotting the above potential problem during code
>     review.

2003-01-27 17:29 Ralph Giles

>     Switching to the new type 1 hinter and the new filling algorithm.
>     THIS IS INCOMPATIBLE CHANGE.
>     Most documents render better.

>     DETAILS:

>     Rudiments of old code to be kept until beta-testing is completed.
>     Patch from Igor Melichev.

2003-01-27 16:21 Ralph Giles

>     Improve the wording of and clarify the documentation for AlignToPixels.
>     Also restores the documentation for -dPDFFitPage removed by the initial
>     commit of the AlignToPixels feature.

2003-01-26 11:45 jeong

>     If s_A85D_process encounters CR/LF between '~' and '>', it returns ioerror.
>     Now it is changed to ignore CR and/or LF before '>', and works fine.
>     Fixes SF#667658.

2003-01-26 08:58 Igor Melichev

>     Fix : Removing an unused variable from set_cache_device.

2003-01-26 08:24 Igor Melichev

>     Implementing a new user parameter AlignToPixels and
>     a new command line argument AlignToPixels.
>     They allow to choose the alignment of glyphs to
>     integral pixels or to subpixels while a text rendering.

>     DETAILS:

>     This patch should not change any behavior except
>     -dAlignToPixels=0 is specified.

>     A change to documentation about the new parameter is included.

>     With NEW_TYPE1_HINTER = 1 the value 0 of AlignToPixels implies :

>     1. Caching a glyph raster, fractional glyph origins
>     give different images, which are stored
>     in individual slots. The space consumption in the
>     character cache increases. This happens for all font types.

>     2. While hinting a Type 1 or 2 font, glyph origins and widths
>     are rounded to subpixels rather than to pixels, and the grid fitting
>     is done to the subpixel grid.

>     CIDFontType 0 descendents had NULL pointer to gs_font_dir.
>     The new code needs to access the font directory,
>     so the pointer is now set.

>     The new code needs glyph origin and log2_scale to lookup
>     a glyph in cache. Therefore show_proceed and
>     set_cache_device were reorganized with a new function
>     compute_glyph_raster_params. The new algorithm uses a
>     slightly different (and more complicated) logics
>     for computation and initialization of penum->origin.
>     It was well tested, but in case of problems please
>     consider it as a weak point.

2003-01-25 22:50 Ralph Giles

>     Universally prefer the __MACOS__ platform predefined symbol used by recent
>     releases of Metrowerks CodeWarrior to the older __MACINTOSH__.

2003-01-25 16:32 Igor Melichev

>     Fix (dropout prevention) : Insetred a check for VMerror.

>     DETAILS:

>     This patch cheanges a disabled code only.

2003-01-25 01:09 Ralph Giles

>     Supply local macros to replace non-portable min() and max() functions from MSVC.

2003-01-24 22:30 Dan Coby

>     This is a temporary backout of rev 1.12 while its changes are being
>     investigated.  This is being done to prevenet interference with some
>     other efforts.

2003-01-24 20:53 Ray Johnston

>     Add a new feature to scale PDF images to the current page size (rather
>     than selecting a PageSize corresponding to the document CropBox or
>     MediaBox). The command line option is -dPDFFitPage and will also position
>     the image to the printable area of the page (inside .HWMargins).

2003-01-24 19:39 Ray Johnston

>     Fix inconsistent type on QueryUser -- get_param was returning a 'bool' but
>     set_param required an 'int'. Error was /typecheck in setpagedevice or
>     could be /rangecheck in .installpagedevice after a page was processed.

2003-01-24 19:32 Ray Johnston

>     Correct typo (missing space) in previous change.

2003-01-24 19:28 Ray Johnston

>     Change to use ECHOGS_XE instead of system echo to avoid problems if an
>     echo is found on the PATH that expands wildcards '*' character. Problem
>     found by Torsten Erler when Cygwin echo caused a problem.

2003-01-24 13:34 Igor Melichev

>     New Type 1 hinter : Fixing a bug in alignment to (non-sub)pixels.

>     DETAILS:

>     This patch changes a disabled code only.

>     Also improving the debug drawing of grid.

2003-01-24 07:25 Igor Melichev

>     Fix (dropout prevention) : Did not work with -dNOCACHE.

>     DETAILS:

>     bbox_width was taken from a clipped bbox.

2003-01-24 05:03 Igor Melichev

>     New Type 1 hinter : Fixing glyph widths.

>     DETAILS:

>     This patch changes a disabled code only.

>     See comment in code.

>     Also improved a comment and C-style.

2003-01-24 00:39 Igor Melichev

>     New Type 1 hinter : (1) It did not work with pdfwrite because
>     gx_path_init_bbox_accumulator doesn't provide a memory.
>     (2) Coded an alignment to subpixels.
>     (3) Removed a hack about suppressing a microscopic segment.

>     DETAILS:

>     This patch changes a disabled code only.

>     It codes an alignment to subpixels, but for a while
>     it is permanently turned off.

>     gx_path_init_bbox_accumulator is used by gs_default_glyph_info for
>     computing a bounding box for a glyph. It does not
>     store segments to memory, therefore a reference to memory manager
>     is not provided. But the new hinter accesses it
>     if a stack-allocated array overflows.

>     Implementing an immediate transfer of outline poles to
>     the output path without storing them intermediately in arrays.
>     This mode works when a grid fitting is not required.
>     Only exception is flex poles : up to 9 of them
>     are stored in arrays while flex accumulates.
>     It must not overflow arrays.

>     The hack about microscopic segment was a rudiment of old code.
>     gs_op1_closepath was unintentionally called while
>     exporting an outline from the hinter. I believe that
>     the hack is incorrect and should not be applied.
>     Some outlines render differently.

>     I'm sorry for mixing 3 things in a single patch.
>     I've started the subpixel alignment, and
>     then occasionally discovered other problems.
>     It's hard to separate changes after they are done,
>     and I don't think that the separation is so important.

2003-01-23 20:11 Igor Melichev

>     Fix : A misprint in the recent patch to default_get_outline.

2003-01-23 05:14 Dan Coby

>     Fix for [ 662117 ] uniprint produces black pages, with bugfix.
>     This fixes several problems created in the uniprint device when the
>     device API was changed for 8.0.  This includes changes from Stefan Scherer,
>     the originator of the report, plus some changes for monochrome devices.

2003-01-22 17:36 Ray Johnston

>     Pulled unneeded #undef jcdp, there was no matching define. Original patch
>     by Henry Stiles for GhostPCL version.

2003-01-22 15:46 Igor Melichev

>     FAPI project : fixing a problem about preparation renderer's
>     font data for non-disk CIDFontType 0 fonts.

>     DETAILS:

>     Without FAPI renderers this patch doesn't change any behavior.

>     The old code crashed with Free Type because it misinterpreted
>     gs_font_cid0_data as gs_type1_data. Improving the protocol for
>     font data preparation : the new code now tells to a renderer about
>     a top-level CID font, then about it's descendents (which are Type 1),
>     then again about the top level font. A new type FAPI_descendent_code
>     represents a type of request. See comments, which this patch adds to code.

2003-01-22 08:54 Russell Lang

>     Improve gsapi examples for Windows to not require _Windows on MSVC.

2003-01-22 07:51 Russell Lang

>     Update DSC parser to current Ghostgum Software version.
>     Fixes SourceForge bug #657289, SEGV on Alpha in DSC parser.

>     DETAILS:
>     A %%Page line with mismatched parentheses around the page label
>     was ignored, but parser state was updated to scanning pages, not
>     setup section.  This resulted in access to dsc->page[-1] which
>     is invalid and caused a SEGV on Alpha.  The updated code now
>     checks that dsc->page_count is non-zero before accessing
>     dsc- >page[dsc->page_count-1].  It also makes a second attempt
>     at finding the page ordinal at the end of a line like:
>     %%Page: (label with closing parentheses 1
>     Other parser updates include support for DCS2 files (which is
>     not quite compliant with DSC), removing a few compiler warnings,
>     %%HiResBoundingBox, %%CropBox, %%PageCropBox, and being more
>     resilient to incorrect DSC.

2003-01-22 07:38 Russell Lang

>     Treat files starting with %Pxxx as PostScript, not PDF.  Process
>     empty files without error.  Fixes SourceForge bug #663150, Some
>     PS files half-recognized as PDF files

>     DETAILS:
>     Changes for the 8.00 release to allow reading of PDF files from
>     stdin caused files starting with %Pxxx to be half recognised as
>     PDF files.  This patch simplifies the PDF recognition code and
>     makes it treat only files starting with "%PDF-" as PDF.  Testing
>     of this code found that zero length input files caused a
>     PostScript error.  This was an existing error which is fixed by
>     the gs_epsf.ps patch and last line of the pdf_main.ps patch.

2003-01-22 07:34 Russell Lang

>     Add the ijs device to the MSVC Windows build.

2003-01-22 00:42 Igor Melichev

>     pdfwrite : Implementing widthshow and xshow for composite and CID fonts.
>     The old (default) implementation converted to raster fonts
>     and gave inaccurate glyph positions. The new implementation doesn't
>     convert fonts to raster except for Type 3.

>     DETAILS:

>     This also closes the Source Forge bug
>     "[ 663635 ] ps2pdf cannot tune spacing by xshow for CJK text".
>     and provides better glyph positions with ashow for WMode 1.

>     There are small changes to graphics library :

>     1. Added interface function gx_current_char, which retrieves
>        a code of current character from a gs_text_enum_t instance.
>        The function was factored out from an old code.

>     2. Provided a default metrics for CID fonts for WMode 1.
>        This is done pretty roughly, because the interface
>        function glyph_info cannot pass some necessary information (WMode).

>     Minor changes :

>     1. Removed the comment "We know that the Tw and Tc values are zero",
>        It was wrong a long time ago.

>     2. Inserted a comment about unimplemented DW2. An old code near the
>        comment depends on the fact that DW2 is not implemented.

>     This patch brings more access to gs_text_enum_t::fstack
>     around the defined interface functions.
>     The list of gs_text_enum_t interface functions to be revised.

>     Expecting progressions with pdfwrite :

>     327-01.ps
>     Altona.Page_3.2002-09-27.pdf
>     CIDembedded.pdf
>     Openhuis_pdf_zw.pdf
>     RodinCIDEmbed.pdf

2003-01-21 23:57 Igor Melichev

>     Fixing gcc compiter warnings in gxfill.c, gxdtfill.h .

2003-01-20 22:41 Dan Coby

>     Fix for [ 664473 ] 64bit color indexes break X driver.
>     This fix corrects some problems found with the X window
>     driver and 64 bit gx_color_indexes found by customer 1110.

>     DETAILS:

>     The problems were found on Sparc workstations running the
>     Solaris 8.0.  The problem has not been reported on other
>     systems.  However the fix is simple (and contributed by
>     customer 1110) and should work on all systems.  The fix
>     is simply to use "long" for values passed to X windows
>     system routines.  This is done via a combination of casts
>     or local variables depending upon the situation.  The use
>     of "long" for gx_color_index was the default prior to the
>     8.0 release.  The X windows device does not need the extra
>     size for color values.

2003-01-19 23:04 Igor Melichev

>     Fix (pdfwrite) : Improving a comment about ashow, awidthshow.

>     DETAILS:

>     This patch does not change any behavior.

2003-01-19 19:59 Igor Melichev

>     Fix (pdfwrite) : With CID fonts 'show' set up cache devive and
>     inconsistently skipped any rendering to it. It must not set up cache device.
>     Thanks to Toshia Suzuki for spotting the problem.

>     DETAILS:

>     This problem was not tested with comparefiles.
>     Requesting to add a new test showopsH.ps from Toshia Suzuki.

2003-01-19 18:17 Igor Melichev

>     Fix (Dropout prevention) : Returning the gx_adjust_if_empty hack
>     for cases when dropout prevention is not applied. It was removed erroneously.

>     DETAILS:

>     This patch changes a disabled code only.

>     Debugged with -r72 with smdf.90441.102.pdf, test2.pdf .

2003-01-19 10:17 Russell Lang

>     Within the display device, correctly allocate the memory device
>     with the correct structure descriptor.

>     DETAILS:
>     The display device was allocating a memory device by taking a
>     memory device prototype from gdev_mem_device_for_bits and then
>     using gs_copydevice on it.  This allocates the wrong size
>     because the prototype does not have a structure descriptor.  The
>     correct way is to allocate it with gs_alloc_struct with
>     st_device_memory as an argument.  This bug was found when using
>     the display device in GhostPCL, which was complaining on
>     shutdown about the unfreed structure descriptors left behind by
>     gs_copydevice.

2003-01-18 09:52 Igor Melichev

>     Fix (pdfwrite) : When pdfwrite text buffer overflows, it wrote an
>     extra text positioning command with wrong arguments.

>     DETAILS:

>     See comment in code.

>     Source Forge bug "[ 667271 ] text position scrambled".

>     This patch causes 2 progressions with pdfwrite :
>     comparefiles\Altona.Page_3.2002-09-27.pdf
>     comparefiles\Testform.v1.0.2.pdf

2003-01-17 17:32 Igor Melichev

>     Fix (Type 42 interpreter) : Providing a tolerance to bytecode segmentation with sfnts string.

>     DETAILS:

>     Source Forge bug "[ 667362 ] /rangecheck in --.type42execchar--", Customer #411.

>     According to Type 42 specifications, the segmentation is not allowed.
>     Perhaps the test file has it. IMO it is easier to fix than to prove to the customer.

>     This slightly changes the interface function gs_type42_data::string_proc .
>     See comments in code.

>     By the way, added a check for absenting vmtx/hmtx (gstype42.c ln 530).
>     The old code was not safe.

2003-01-16 21:36 Igor Melichev

>     Fix (Free Type bridge) : A new revision with MetricsCount handling.

>     DETAILS:

>     This patch has no effect for regular GS build (with no Free Type).

2003-01-16 18:49 Ray Johnston

>     Add a message for filters (such as JBIG2Decode) that we can't handle and
>     continue processing the file as much as we can without the problem data.
>     This is related to SourceForge bug #668580.

>     DETAILS:

>     The Repaired flag is preserved across the 'pdfformaterror' calls so that
>     we don't squawk about the Creator of the PDF (its our fault, not theirs).

>     Also a special utility filter was created to /.EOFDecode that gives an
>     immediate EOF without consuming any data from its input.

2003-01-16 18:29 Ray Johnston

>     Restructure the PDF top level processing (runpdf) to factor out a 'begin',
>     'do', and 'end' procedures. These can be used by clients to open a PDF
>     then access information from the PDF interpreter dictionaries about the
>     document or pages prior to actually processing pages with 'dopdfpages'.

>     DETAILS:

>     This will allow information to be accessed such as Dests, Names and Annots.
>     For example, to get the Names info, use:

>       (somefile.pdf) (r) file runpdfbegin
>       Trailer /Root oget /Names knownoget

>     Similarly, Annotations for a page (page 3 in the example below) can be
>     accessed using:

>       (somefile.pdf) (r) file runpdfbegin
>       3 pdffindpage /Resources oget /Annots knownoget {
>         % process Annots
>       } if

2003-01-16 16:25 Igor Melichev

>     Fix (New Type 1 hinter) : A bug computing a stem width.

>     DETAILS:

>     This patch changes a disabled code only.

>     Also fixing a bug in debug drawing the imported outline,
>     and disabling it by default.
>     Debugged with comparefiles/455690.pdf .

2003-01-16 15:20 Igor Melichev

>     Fix (Dropout prevention) : Sometimes active lines were not ordered,
>     causing a dropout.

>     DETAILS:

>     This patch changes a disabled code only.

>     The filling algorithm consider 2 cases :
>     when an Y-gap contains pixel centers and when it doesn't.
>     The old algorithm used a trick for better performance,
>     which skips the line ordering for the case of no pixel centers.
>     Perhaps the order is important for dropout prevention.
>     Disabling the trick when dropout prevention is on.

>     Here are some files which are sensitive to it with 72 dpi
>     and with the new hinter :

>     000040cf.000_60.pdf
>     017-01.ps
>     159.pdf
>     268-10.ps
>     281-01.ps
>     86554321.pdf
>     acrobat.pdf
>     (39 files total).

2003-01-16 12:59 Igor Melichev

>     Fix (New type 1 hinter) : Removing hint complexes and fixing bugs.

>     DETAILS:

>     This patch changes a disabled code only.
>     1. An optimization : hint complexes are replaced with hint_range.
>        The old code was overcomplicated.
>     2. A bug in t1_hinter__compute_type1_stem_ranges -
>        an extra pole was added at range end.
>     3. A bug in t1_hinter__align_stem_poles -
>        Some offcurve poles were erroneously grid fitted with a wrong hint.

>     This change causes multiple differences in hinted outlines,
>     almost all files render few differently.

2003-01-16 10:37 Igor Melichev

>     Fix (New type 1 hinter) : A bug in t1_hinter__interpolate_other_poles.

>     DETAILS:

>     This patch changes a disabled code only.

>     The old implementation missed some outline extremes,
>     and the interpolation was wrong. This change causes multiple
>     differences in hinted outlines, almost all files render differently.

2003-01-15 18:20 Raph Levien

>     Fix: Correctly initialize private cmyk_cs as returned from
>     gx_concrete_space_CIE(). Fixes SF bug #667322.

2003-01-15 16:32 Igor Melichev

>     Fix (New type 1 hinter) : A bug calling the hinter.

>     DETAILS:

>     This patch changes a disabled code only.

2003-01-15 08:12 Dan Coby

>     Modifies pick_cell_size to make a more accurate, and less round-off
>     error dependent, selection of screen cell size.

>     DETAILS

>     The prior code in pick_cell_size used an unusual metric for
>     measuring the "closeness of fit" of an actual screen cell to the
>     requested frequency and angle. If the angle variation was 0 (quite
>     likely for the common 0/45/90 degree angles), the frequency
>     variation was ignored. In addition, this metric was very sensitive
>     to floating-point arithmetic round-off errors. The new metric is
>     both more reasonable and less round-off error dependent.

2003-01-14 19:09 Jack Moffitt

>     Add src/gxdtfill.h to whitelist for double inclusion protection test.

2003-01-14 19:06 Jack Moffitt

>     Fix timezone information for CVS timestamps.

2003-01-14 12:10 Igor Melichev

>     Fix (New type 1 hinter) : Removing unused variables.

>     DETAILS:

>     This patch changes a disabled code only.

2003-01-14 11:51 Igor Melichev

>     New type 1 hinter : Round glyph origin to integral pixels.

>     DETAILS:

>     This patch changes a disabled code only.

>     See comment in code.

2003-01-14 08:00 Igor Melichev

>     New type 1 hinter : Implementing the type 1 flex feature.

>     DETAILS:

>     This patch changes a disabled code only.

>     Debugged with comparefiles/chess.ps with -r72  and -r30 (sic!).

2003-01-14 00:01 Jack Moffitt

>     Added documentation about new configuration mechanisms in the testing
>     framework.

2003-01-13 23:43 Jack Moffitt

>     Convert configuration options to use a configuration file, and move
>     config options from run_nightly into the normal config framework.

>     Also, add regression checkpoint time to the daily report.  Fixes
>     SF #657178.

2003-01-13 11:03 Igor Melichev

>     Fix (New type 1 hinter) : A bug in complex_link.

>     DETAILS:

>     This patch changes a disabled code only.

2003-01-12 19:58 Igor Melichev

>     New type 1 hinter : Implementing alpha bits, and fixing bugs.

>     DETAILS:

>     This patch changes a disabled code only.

>     Changes :

>     1. A bug in t1_hinter__drop_hints;
>     2. A bug in t1_hinter__can_add_pole;
>     3. Rename initialization routines;
>     4. Align to pixels rather than to subpixels;
>     5. Dynamic allocation of stem_snap.

2003-01-12 19:55 Igor Melichev

>     Fix (dropout prevention) : wrong number of alphs bits was
>     passed to dev_proc(dev, copy_alpha).

>     DETAILS:

>     This patch changes a disabled code only.

>     See also "Correctly compute depth for cached character images",
>     Fri, 3 Jan 2003 08:39:33 -0800,
>     http://www.ghostscript.com/pipermail/gs-cvs/2003-January/002751.html

2003-01-12 12:03 Igor Melichev

>     Fix (New type 1 hinter) : A bug in t1_hinter__hint_mask .

>     DETAILS:

>     This patch changes a disabled code only.

2003-01-11 19:21 Igor Melichev

>     New type 1 hinter : Fixing gcc compiler errors.

>     DETAILS:

>     This patch changes a disabled code only.

2003-01-11 18:47 Igor Melichev

>     zchar1.c revision 1.23 appears wrong (an inaccurate type cast, compiler warnings).
>     Unwinding the patch.

2003-01-11 18:26 Igor Melichev

>     New type 1 hinter : Fixing types for import function prototypes.

>     DETAILS:

>     This patch doesn't change any behavior.

>     In import functions prototypes 't1_glyph_space_coord'
>     was erroneously used instead 'fixed'.

2003-01-11 18:20 Igor Melichev

>     New type 1 hinter : Enable the grid fitting separately for X and Y.

>     DETAILS:

>     With NEW_TYPE1_HINTER = 0 the new code must be equivalent to old one.

>     We disable grid fitting if an axis is too sloped
>     (if tan(angle) > 1/10 ).

2003-01-11 17:46 Igor Melichev

>     Removing redundant code from zchar1.c .

>     DETAILS:

>     This is completion for the patch
>     "Reducing the C stack consumption in ztype1execchar".

>     The new code must be equivalent to the old one.

2003-01-11 15:55 Igor Melichev

>     New type 1 hinter : Attaching it to type 2 interpreter.
>     With NEW_TYPE1_HINTER = 0 the new code must be equivalent to old one.

>     DETAILS:

>     1. Attaching the new hinter to gstype2.c .
>     2. Reorganizing the nationalization of the new hinter for better performance.
>     3. Adding vdtrace instructions for drawing the hinter import on-fly.
>     4. Implementing alignment priorities. It improves quality for comparefiles/dave.pdf,
>        and makes the alignment logics some simpler.
>     3. Fixing a bug about the trailing moveto. Fonts with no Metrics
>        got a wrong advance width.

2003-01-11 14:20 Igor Melichev

>     Fix: A bag in the visual trace implementation.

2003-01-11 04:39 Ralph Giles

>     Revert changes accidentally included in the last commit.

2003-01-11 04:38 Ralph Giles

>     Revert to the default gcc (3.1) on MacOS X. We had switched to 2.95 to
>     work around a bug in Apple's first shipped gcc3. The issue has been resolved
>     in the December 2002 Apple Developer Tools release.

2003-01-11 04:27 Ralph Giles

>     Revert to the default gcc (3.1) on MacOS X. We had switched to 2.95 to
>     work around a bug in Apple's first shipped gcc3. The issue has been resolved
>     in the December 2002 Apple Developer Tools release.

2003-01-10 08:17 Igor Melichev

>     Reducing the C stack consumption in ztype1execchar.
>     The new code must be equivalent to the old one.

>     DETAILS:

>     The new type 1 hinter (with NEW_TYPE1_HINTER = 1 in gx.h)
>     puts more 11K of data to C stack. Perhaps due to a recursion
>     in bbox_draw 2 instances of the hinter were placed in C stack
>     simultaneously, causing C stack overflow with gswin32c.exe on
>     Windows NT 4.0 (but not on Windows 2000).

>     Perhaps the recursion is not necessary.
>     Reorganizing the sequence of calls to avoid the recursion.
>     New argument 'exec_cont' was added to several
>     functions for transferring the call request to clients.
>     Corresponding comments are added in code.

>     Also z1_glyph_info prototype was added in ichar1.h .
>     It was missed a long time ago, Cygwin/gcc warned.

>     A further improvement may be done with factoring out
>     a common code from bbox_finish_fill, bbox_finish_stroke,
>     bbox_fill, bbox_stroke. Delaying it until a regression testing.

2003-01-10 00:56 Jack Moffitt

>     Allow tests to run without modifying the daily tracking database.
>     run_regression now takes the --track option to create and update daily
>     tracking databases, and runs normally otherwise.

2003-01-09 23:58 Jack Moffitt

>     Small formatting improvement.

2003-01-09 22:49 Jack Moffitt

>     Factor out gscheck_raster.py from run_regression.

2003-01-09 22:39 Jack Moffitt

>     Fixes another Python 2.2 compatibility error.

2003-01-09 21:35 Jack Moffitt

>     Fixes check for exception instances by using isinstance() instead of
>     issubclass().  This is required for Python 2.2 compatibility.

2003-01-09 21:33 Jack Moffitt

>     Increase maximum memory restrictions on Ghostscript for regression tests.

2003-01-09 21:12 Ralph Giles

>     Include libz in the autoconf test for libpng.

>     DETAILS:

>     This is a fix for systems without interlibrary dependencies. We don't use
>     the LIBS variable constructed by default by the AC_CHECK_LIB macro and
>     did not maintain it in our previous zlib test, thus -lz was not included
>     on the link line in the libpng test.

>     Our primary test systems for the autoconf build (Debian GNU/Linux and MacOS X + fink)
>     include an interlibrary dependency, so this did not cause a problem. On
>     systems where this is not the case, it results in a confusing error.

>     Patch from Peter Breitenlohner.

2003-01-09 04:33 Ralph Giles

>     Correct warnings in the display device. Removes two unused declarations
>     and marks a local function private. After a patch by Peter Breitenlohner.

2003-01-09 04:31 Ralph Giles

>     Add a missing header file.

>     DETAILS:

>     This corrects a missing prototype warning for gs_get_colorname_string,
>     declared in zht2.h. iname.h was also added to the dependencies for zht2.c.
>     After a patch by Peter Breitenlohner.

2003-01-08 21:39 Ralph Giles

>     Correct a nesting error in the libpng detection code.

>     DETAILS:

>     This does not change actually behavior, because of the way M4 works,
>     the literal loop end was just interchanged with the implicit one from
>     the AC_CHECK_LIB() macro with no code inbetween, which is why the mistake
>     went undetected.

>     Thanks to Peter Breitenlohner for catching this.

2003-01-08 16:57 Igor Melichev

>     New type 1 hinter : Implementing dynamic array allocation;
>     Skipping degenerate path segments; Renaming configuration flags.
>     This patch changes a disabled code only.

2003-01-08 16:44 Igor Melichev

>     Dropout prevention : Self-intersections must not contribute peaks.
>     Also removed the LOOP_FILL_TRAPEZOID_FIXED macro.
>     This patch must not change any behavior.

2003-01-08 05:39 Dan Coby

>     1.  Added documentation for the PSD, XCF, and spotcmyk devices.
>     2.  Corrected various minor spelling problems.

2003-01-08 02:51 Ralph Giles

>     Add source files for the new type 1 hinter to the index in the developer documentation.

2003-01-07 17:54 Igor Melichev

>     Dropout prevention : (1) Replace the horizontal line processing.
>     (2) Returning the hack about horizontal lines for non-character fills.
>     This patch changes a disabled code only.

>     DETAILS:

>     With the old type 1 hinter, hinted outlines get
>     self-intersections at small resolution. It's a problem
>     of the old hinter. Perhaps it discovered a defect
>     in horizontal line handling.

>     With self-intersections, the side of spot interior
>     may be different for different parts of same line.
>     This patch completely replaces the handling of
>     horizontal lines. It maintains 2 lists of
>     horizontal lines, which correspond to y and y1
>     in fill_loop_by_trapezoids. Then we intersect those
>     lines with margins and add corresponding segments
>     of boundaries separately for each part delimited
>     with an intersection.

>     The
>          "* This is a hack to make sure that isolated horizontal
>           * lines get stroked."
>     was erroneously disabled for non-character fills,
>     causing a regression with QA_Inv.pdf .
>     Restoring it now, except for characters.

>     This patch removes the contour area computation,
>     which was introduced in revision 1.19 .

2003-01-07 16:32 Igor Melichev

>     fuzzy.c : Add writing the fuzzy difference to PPM or BMP file.

>     DETAILS:

>     Additional (optional) argument added to specify the result file path.
>     We did not take care about compression.

>     BMP files usually store image upside down.
>     Rather negative BITMAPINFOHEADER::biHeight specify "upside up"
>     representation, Windows Paint cannot handle it.
>     Therefore we write BMP file in reverse order.

2003-01-06 23:37 Ralph Giles

>     Add standard license banners to some macos-specific header files.

2003-01-06 23:31 Ralph Giles

>     Add standard copyright banner and RCS id line.

>     DETAILS:

>     This change is made with the contributor's permission. His verification is recorded here:

>         http://www.ghostscript.com/pipermail/gs-devel/2003-January/002326.html

>     Thanks to Brett Smith at the FSF for pointing out the non-standard header.

2003-01-06 19:57 Igor Melichev

>     Dropout prevention : A better marking of margin interior.
>     This patch changes a disabled code only.

2003-01-06 17:43 Igor Melichev

>     Initial commit for a new type 1 hinter.
>     This patch must not change any behavior.

>     DETAILS:

>     This is a porting from HINTER branch.

>     The old hinter cannot handle overlapping hints,
>     but real fonts do use them.

>     The handling of overlapped hints cannot be done within
>     a single-pass algorithm. Therefore we intend to replace entire thing.
>     Besides, it should fix a set of known problems :

>     - stem degradation at small resolutions;
>     - stem missing or misrecognition;
>     - proper adjustment of dependent stems;
>     - suppress overshoots closer to Adobe;

>     This patch introduces a couple of new macros,
>     which will be removed later.

>     For switching to the new hinter, change the definition of
>     NEW_TYPE1_HINTER in gx.h . It is not well debugged yet.

>     New files added : gxhintn.c, gxhintn.h .

2003-01-06 17:00 Igor Melichev

>     Dropout prevention : Removing unused variables.
>     This patch changes a disabled code only.

2003-01-05 21:13 Igor Melichev

>     Dropout prevention : A bug in continue_margin_common.
>     This patch changes a disabled code only.

2003-01-05 20:48 Igor Melichev

>     Dropout prevention : Better compute the spot contiguity,
>     and improve the peak cut-off.
>     This patch changes a disabled code only.

2003-01-05 17:29 Igor Melichev

>     Dropout prevention : Computing a contour area with fixed point arithmetics.
>     This patch changes a disabled code only.

>     DETAILS:

>     For debugging enable both CONTOUR_AREA_WITH_FIXED_POINT and
>     CONTOUR_AREA_WITH_FLOATING_POINT.

2003-01-04 16:37 Igor Melichev

>     Dropout prevention : Improving the predicate about adding horizontal lines to Y list.
>     This patch changes a disabled code only.

>     DETAILS:

>     The predicate was inaccurately duplicated.

2003-01-04 15:04 Igor Melichev

>     Dropout prevention : (1) Fixing a problem with improper contour direction
>     in some (wrong) fonts. (2) Improving the CHECK_SPOT_CONTIGUITY feature.
>     This patch changes a disabled code only.

>     DETAILS:

>     See comment in code about (1).

2003-01-03 17:34 Igor Melichev

>     Dropout prevention : Adding a serif adjustment.
>     This patch changes disabled code only.

>     DETAILS:

>     See big comment in code.

2003-01-03 17:29 Igor Melichev

>     Dropout prevention : Correctly compute depth for cached character images.

2003-01-02 18:11 Igor Melichev

>     Fix (gswin32) : Improving the image window title for debug technology.

2003-01-01 06:55 Ray Johnston

>     Revert previous commit. This version is now back to the same as 1.22.

2002-12-31 23:08 Ray Johnston

>     Handle copying arrays (and their composite elements that are in VM) to
>     global VM when processing the ***params functions such as currentuserparams
>     Fixes SourceForge #647685 that impacted .setsafe usage.

2002-12-31 19:52 Ralph Giles

>     Add new dropout prevention source files to the documentation.

2002-12-30 22:31 Igor Melichev

>     Fix (dropout prevention) : A bug in store_margin.
>     This patch changes disabled code only.

2002-12-30 19:21 Igor Melichev

>     Fix (dropout prevention) : Direction of horizontal lines was computed wrongly.

>     DETAILS:

>     This patch changes disabled code only.
>     Debugged with character 's' in the 1st page of 033-52-5873.pdf .

2002-12-30 18:24 Igor Melichev

>     Fix (FAPI) : Don't try to get a glyph name for CID fonts.
>     Thanks for Graham Asher for spotting it.
>     DETAILS:

>     It was an inaccurate coding. I'm sorry.

2002-12-30 05:51 Ray Johnston

>     Reduce state.width delta radius calculation for shadings that was made too
>     large by the previous commit.

>     DETAILS:
>     Previous commit mistakenly included the state.dr value as both the X and
>     Y component in the distance transform that produced the dev_dr vector.
>     The hypot is actually all that is required to handle getting the correct
>     scaled radius distance independent of the CTM rotation.

>     The use of state.dr for both X and Y preceded the use of hypot on dev_dr
>     and wasn't taken out when the hypot function use was added.

>     This should eliminate most, if not all regressions caused by the 12/24
>     1.18 patch to this module.

2002-12-29 19:42 Igor Melichev

>     Fix (Type 1 interpreter) : setcurrentpoint missed the vstem3 shift.

>     DETAILS:

>     Detected with character 'm' in -r150 comparefiles/NIL_0003.pdf .

>     The missed vs_offset erroneously shifted a part of path coordinates
>     relatively to stem hint coordinates so that stems could not recognize.
>     The character rendered unhinted.

>     This patch causes differences in character rendering.
>     Regression test on Windows detects a difference with
>     -r300 comparefiles/NIL_0003.pdf only, which looks unimportant.

2002-12-28 12:35 Igor Melichev

>     Improving the dropout prevention algorithm
>     This patch changes disabled code only.

>     DETAILS:

>     In zchar42.c I set path adjustment to zero.
>     It is the correct value with dropout prevention.

>     The last revision of dropout prevention algorithm
>     appears buggy : the order of margins in margin_list
>     can be wrong and causes dropouts. This is essentially
>     important with CJK True Types, which have thing horizontal
>     stems and no hinting with GS.

>     This revision replaces the representation of margins
>     with a simpler one. It is not optimized for bold
>     characters, perhaps the optimization is not hard.
>     See comment in code about "bold".

>     A good advantage is the removal of insert_pseudo_margin.
>     It appears done due to insufficient knowledge of the old algorithm.

2002-12-26 11:26 Igor Melichev

>     Fix : fuzzy.c wrongly compared images.

>     DETAILS:

>     It didn't compare w/2 rows near the upper edge of the image.
>     MSVC release build compared an uninitialized data instead them.

2002-12-24 19:00 Ray Johnston

>     Radial shading did not work if the CTM was rotated (mat.xx == mat.yy ==0).

>     DETAILS:

>     The state.width calculation would end up 0 if the circles were concentric
>     and the CTM was rotated. Revised calculation should work even for other
>     non-orthogonal CTMs. File added to the regression suite.
>     Fixes SF bug #658286 for Artifex customer #190.

2002-12-24 14:20 Igor Melichev

>     Improving and optimizing the dropout prevention algorithm
>     with splitting gx_default_fill_parallelogram into 2 variants.

>     DETAILS:

>     This patch almost changes a disabled code.
>     A simple reorganization of some enabled code should not
>     cause a behavior difference.

>     Filling a "small" character, we always subdivide trapezoids into
>     rectangles instead passing them to device virtual function.
>     It allows :

>     1. Not passing narrow trapezoids to applications
>     which implement fill_trapezoid with own means;
>     Narrow trapezoids could cause dropouts in there.

>     2. Optimize variants of fill_trapezoid algorithm which
>     are used for different purposes (preventing about 10% slowdown
>     with shadings).

>     We believe this change isn't harmful because
>     regularly we render small characters to cache device,
>     which simply forwards trapezoids to default implementation.
>     Alternatively we could insert a check for narrow trapezoids
>     into loop_fill_trap, but such check appears complex and
>     it would sensibly reduce performance.

>     New files added : gdevddrw.h, gxdtfill.h .
>     Change to lib.mak accounts them.

>     Besides that, with dropout prevention we now skip empty paths
>     in characters, because Adobe doesn't paint them.

2002-12-23 18:17 Igor Melichev

>     Fix : Fixing a typo in comment.

2002-12-23 12:27 Igor Melichev

>     Initial commit for the dropout prevention code in rasterizer.
>     It doesn't not change any behavior.

>     DETAILS:

>     Switching to new code is being controlled with DROPOUT_PREVENTION
>     macro defined in gx.h . Now it is set to "use old code".

>     This patch :
>     1. Ports the "margin" algorithm from HINTER branch.
>        Now the algorithm renamed to "pseudo-rasterization".

>     2. Ports the dropout prevention to gx_default_fill_trapezoid from HINTER branch,
>        providing a contiguous fill for slightly slanted trapezoids.

>     3. Adds CONNECT_RECTANGLES into gx_default_fill_trapezoid
>        providing a contiguous fill for highly slanted trapezoids.

>     4. Fixes some problems in the "pseudo-rasterization".

>     5. Disables all hacks about path adjustment and oversampling
>        when DROPOUT_PREVENTION is on. Those hacks were attempts
>        to fix dropouts for small characters, but they do not solve
>        the problem completely.

>     6. Provide visual trace instructions for debugging purpose.

>     Changes to gxpcopy.c and gxpflat.c only insert visual trace instructions for
>     debugging purpose. Currently all them compile to empty code.

>     Changes to gdevddrw.c, gxchar.c, gxtype1.c, gx.h
>     are protected with DROPOUT_PREVENTION. With current settings they
>     compile to old code.

>     Changes to gxfill.c are not so obvious. I was unhappy with duplicating
>     a thousand of lines in #if...#else...#endif. Therefore
>     I've inserted some dynamic checks. They are controlled with
>     'pseudo_rasterization' flag. Currently it always false,
>     so that inserted sections are either bypassed or immediately
>     return from subroutines.

>     Changes to lib.mak only add some dependences on vdtrace.h .

>     In local testing the patch caused no difference with
>     Comparefiles (if DROPOUT_PREVENTION is 0).

>     If someone wants to try new code, DROPOUT_PREVENTION to be modified in gx.h .
>     In this case all old hacks about path adjustment are disabled,
>     and therefore characters render some lighter.
>     Visual trace may be activated with -Tf option in gs command line.
>     Note that it paints a big draft for any character rendered,
>     so you should run only simple PS files with a single character.
>     Also the draft scale is hardcoded in VD_SCALE constants,
>     so it may give an unuseful result with big character rasters.
>     At last please remember that visual trace window is implemented
>     only for Windows - other platforms will not paint anything.
>     The visual trace window does not implement a regeneration of painting,
>     therefore windows must not overlap. Run gswin32.exe with no file,
>     move windows and then perform 'quit' to store window layout to system Registry.

>     here is a simple test, which visualize improvements when
>     DROPOUT_PREVENTION is on :

>     	%!
>     	100 350 moveto
>     	/Courier findfont 2 scalefont [5 0 0 1 0 0] makefont setfont
>     	(/) show
>     	showpage

>     With 72dpi the old code paints nothing.
>     The (DROPOUT_PREVENTION=1) paints a spot.

>     Testing the new code with -r300 001.01.ps, the box 001-12 renders better :
>     no dropouts in "4", characters look better.

>     In gx.h I've added FILL_TRAP_WITH_SWAPPED_AXES flag. The goal is to archive
>     and document a dead branch of the development. I'd like to store it into
>     archive and then remove it in the next revision.

>     Two temporary configuration switches added for benchmarking purpose :

>     - PSEUDO_RASTERIZATION in gxfill.c disables the pseudo-rasterization
>       separately from other changes.

>     - CONTIGUOUS_FILL disables additional checks in gdevddrw.c
>       separately from other changes.

>     With text documents performance change is almost invisible.
>     With Coons01.ps each of these flags give a 10% slowdown.
>     I guess the reason is that the code becomes too complex for
>     global optimization with MSVC 6.0 for Intel Pentium 3.
>     Other compilers/processors may give different results.

>     Thanks to Ray Johnston and Raph Levien for useful remarks.
>     This patch accounts them.

2002-12-23 10:59 Igor Melichev

>     Fix (pdfwrite) : Removing a rudiment about writing /Name to font resources.
>     It is not longer useful since revision 1.50 of lib/pdf_font.ps .

2002-12-20 17:17 Ray Johnston

>     Accumulate CVS log instead of only having one night's worth of change info.
>     It used to work that way but that "feature" got dropped inadvertently.

2002-12-20 11:39 Igor Melichev

>     Initial commit for the dropout prevention code in rasterizer.
>     It doesn't not change any behavior.

>     DETAILS:

>     Switching to new code is being controlled with DROPOUT_PREVENTION
>     macro defined in gx.h . Now it is set to "use old code".

>     This patch :
>     1. Ports the "margin" algorithm from HINTER branch.
>        Now the algorithm renamed to "pseudo-rasterization".

>     2. Ports the dropout prevention to gx_default_fill_trapezoid from HINTER branch,
>        providing a contiguous fill for slightly slanted trapezoids.

>     3. Adds CONNECT_RECTANGLES into gx_default_fill_trapezoid
>        providing a contiguous fill for highly slanted trapezoids.

>     4. Fixes some problems in the "pseudo-rasterization".

>     5. Disables all hacks about path adjustment and oversampling
>        when DROPOUT_PREVENTION is on. Those hacks were attempts
>        to fix dropouts for small characters, but they do not solve
>        the problem completely.

>     6. Provide visual trace instructions for debugging purpose.

>     Changes to gxpcopy.c and gxpflat.c only insert visual trace instructions for
>     debugging purpose. Currently all them compile to empty code.

>     Changes to gdevddrw.c, gxchar.c, gxtype1.c, gx.h
>     are protected with DROPOUT_PREVENTION. With current settings they
>     compile to old code.

>     Changes to gxfill.c are not so obvious. I was unhappy with duplicating
>     a thousand of lines in #if...#else...#endif. Therefore
>     I've inserted some dynamic checks. They are controlled with
>     'pseudo_rasterization' flag. Currently it always false,
>     so that inserted sections are either bypassed or immediately
>     return from subroutines.

>     Changes to lib.mak only add some dependences on vdtrace.h .

>     In local testing the patch caused no difference with
>     Comparefiles (if DROPOUT_PREVENTION is 0).

>     If someone wants to try new code, DROPOUT_PREVENTION to be modified in gx.h .
>     In this case all old hacks about path adjustment are disabled,
>     and therefore characters render some lighter.
>     Visual trace may be activated with -Tf option in gs command line.
>     Note that it paints a big draft for any character rendered,
>     so you should run only simple PS files with a single character.
>     Also the draft scale is hardcoded in VD_SCALE constants,
>     so it may give an unuseful result with big character rasters.
>     At last please remember that visual trace window is implemented
>     only for Windows - other platforms will not paint anything.
>     The visual trace window does not implement a regeneration of painting,
>     therefore windows must not overlap. Run gswin32.exe with no file,
>     move windows and then perform 'quit' to store window layout to system Registry.

>     here is a simple test, which visualize improvements when
>     DROPOUT_PREVENTION is on :

>     	%!
>     	100 350 moveto
>     	/Courier findfont 2 scalefont [5 0 0 1 0 0] makefont setfont
>     	(/) show
>     	showpage

>     With 72dpi the old code paints nothing.
>     The (DROPOUT_PREVENTION=1) paints a spot.

>     Testing the new code with -r300 001.01.ps, the box 001-12 renders better :
>     no dropouts in "4", characters look better.

>     In gx.h I've added FILL_TRAP_WITH_SWAPPED_AXES flag. The goal is to archive
>     and document a dead branch of the development. I'd like to store it into
>     archive and then remove it in the next revision.

>     Two temporary configuration switches added for benchmarking purpose :

>     - PSEUDO_RASTERIZATION in gxfill.c disables the pseudo-rasterization
>       separately from other changes.

>     - CONTIGUOUS_FILL disables additional checks in gdevddrw.c
>       separately from other changes.

>     With text documents performance change is almost invisible.
>     With Coons01.ps each of these flags give a 10% slowdown.
>     I guess the reason is that the code becomes too complex for
>     global optimization with MSVC 6.0 for Intel Pentium 3.
>     Other compilers/processors may give different results.

>     Thanks to Ray Johnston and Raph Levien for useful remarks.
>     This patch accounts them.

2002-12-19 20:44 Igor Melichev

>     More optimizations are enabled with MSVC_VERSION != 5.
>     Using them MSVC 6.0 creates 1.5 times faster code.
>     Thanks to Russell Lang and to Pierre Arnaud.

2002-12-19 09:27 Russell Lang

>     Prevent the bbox put_params from using the color mapping
>     functions before the device is opened.
>     Fixes Sourceforge bug #645531 "seg fault: bbox device + PAPERSIZE".

>     DETAILS:
>     Using "-sPAPERSIZE=a4 -sDEVICE=bbox" crashes in GS 8 when the
>     device parameters are being set prior to opening the bbox device.
>     bbox_put_params calls bbox_copy_params, gx_device_black
>     then the bbox encode_color which is NULL.
>     This is wrong because encode_color must not be called before
>     the device is open.  See doc/Drivers.htm#Life_cycle for details.
>     Prior to the DeviceN changes this did not matter because
>     the map_rgb_color function was valid.  Post DeviceN the
>     encode_color procedure is called and this is NULL until
>     just before the bbox device is opened.

>     The fix prevents bbox_copy_params from calling the
>     encode_color procedure while the device is closed.

2002-12-18 17:30 Alex Cherepanov

>     Following MS Windows practice "Ok" is changed to "OK" in dialog controls.
>     Fixes SourceForge bug #655623 '"Ok" should be "OK"'

2002-12-18 13:59 Igor Melichev

>     Fix : Improving the portability of the vd_trace interface.

2002-12-17 18:24 Jack Moffitt

>     Update test scripts to omit -rXXX parameter for pdfwrite, instead of using
>     -r720 explicitly, so that it uses the default behavior.

2002-12-17 17:54 Jack Moffitt

>     Always run pdfwrite with the default resolution of 720, since that is the
>     common use case.

2002-12-16 12:31 Igor Melichev

>     Fix : Improving the vd_trace interface.

>     DETAILS:

>     It is some simplification and optimization.
>     It doesn't affect the current GS build because vtrace.h is currently never included.

2002-12-15 19:04 Igor Melichev

>     Fix (pdfwrite) : Text matrix was wrongly computed.
>     Source Forge bug "[ 651643 ] PS->PDF changes font slant".

>     DETAILS:

>     The bug is visible if FontMatrix for a base PS font is slanted
>     with findfont...copydict...ReplaceFontMatrix...definefont.

>     I don't know whether we need to canonize FontMatrix embedding a font.
>     Delaying this until we get more tests which help to choose a right decision.

>     EXPECTED PROGRESSIONS :

>     CompareFiles\455690.pdf
>     CompareFiles\Altona.Page_3.2002-09-27.pdf

2002-12-15 13:20 Igor Melichev

>     Fix (FAPI) : Don't request decodingID for embedded fonts,
>     because it is only useful for disk fonts.

2002-12-14 19:06 Igor Melichev

>     Fix (pdfwrite) : 'cmap' was written wrongly with subsetted True Type fonts.
>     Source Forge bug "[ 651148 ] pdfwrite embeds bad font".

2002-12-14 00:39 Ralph Giles

>     Add the display device (for the gsapi client interface) to the default
>     MacOS build.

2002-12-12 01:44 Dan Coby

>     Fix for [ 652147 ] overprintmode not boolean.  Adobe TN5145 defines
>     the paramters to/from setoverprintmode/currentoverprintmode as being
>     boolean.  This change modifies the implementation to match the TN.

>     DETAILS:

>     Previously the operators setoverprintmode and currentoverprintmode had
>     been defined to match the requirements of PDF which uses an integer for
>     the parameter.  However Adobe TN5145 defines the postscript implementation
>     as using a boolean value.  This change modifies the definition of these
>     operators in lib/gs_ll3.ps to convert the parameter type.  The internal
>     operators .setoverprintmode/.curentoverprintmode still use the PDF integer
>     parameter.  The postscript code in lib/gs_ll3.ps converts the parameter
>     type.

2002-12-11 20:31 Ray Johnston

>     Handle TrueType fonts that contain poorly formatted 'post' tables.
>     These were seen as font subsets embedded in PDF files.
>     Fixes SourceForge bug #651164 for customer #150.

>     DETAILS:

>     The file contains an embedded TT font subset that has a badly formatted
>     'post' table. This table is used to replace names in the standard encoding
>     for specific glyphs. The 'post' table in question maps a bunch of glyphs
>     that are not part of the subset to the first name in glyphnames section,
>     but the glyphnames section is empty. It should have at least a single byte
>     of 0x00 to form a zero length Pascal string.

>     I also added a warning that prints if the DEBUG is enabled. Since the
>     'postglyphs' string is automatically extended with a 0x00 byte when the
>     problem is detected, the warning only prints once for the font.

>     This file was created by:
>     	/Producer (OneVision PDF Writer \(Build 05.950\))
>     	/Creator (Solvero Version 4.5 \(SR 4\))

2002-12-10 17:49 Igor Melichev

>     Fix (pdfwrite) : Removing erroneous declarations from gdevpdfx.h .

2002-12-10 15:18 Ralph Giles

>     Fix (FAPI) : Rename round() to fapi_round() to avoid shadowing the C99 call of the same name.

>     DETAILS:

>     In particular, the redeclaration of round() causes a compiler error under
>     Apple's gcc (October 2002 Developer Tools, MacOS X 10.2.2). MSVC doesn't
>     implement the C99 round() and in any case we don't need the full behaviour,
>     so a private implementation seems the best portable option.

2002-12-10 13:52 Igor Melichev

>     (pdfwrite) : Implementing /PAGELABEL pdfmark.
>     Code from Joerg Baumann with minor improvements.

2002-12-10 11:33 Igor Melichev

>     Fix (FAPI) : Correcting the implementation of fapi_round.

2002-12-10 08:21 Igor Melichev

>     Fix (FAPI) : Work around MSVC bug which doesn't define 'round' in math.h .

2002-12-09 11:42 Igor Melichev

>     Fix (FAPI) : Remove dependency on interpreter structures from fapi_ft.c .
>     Code from Graham Asher.

2002-12-09 11:05 Igor Melichev

>     Fix (pdfwrite) : Allow to convert CIEBasedA with non-identity MatrixA to ICCBased.
>     Source Forge bug "[ 647124 ] gs 8.00 makes a large and slow PDF file".

2002-12-08 10:54 Igor Melichev

>     Changing copyright banner in Free Type bridge modules.

2002-12-08 10:50 Igor Melichev

>     Fix (FAPI) : Passing the replaced metrics to renderer.

>     DETAILS

>     FAPI client provides replaced metrics data in all cases.

>     UFST bridge now provides a minimal handling for replaced metrics -
>     for fonts with MetricsCount only. Other cases require
>     to implement a new feature to UFST.

>     Free Type is not fixed with this patch.
>     Need to implement a new feature in Free Type.

2002-12-08 10:40 Igor Melichev

>     Fix (pdfwrite) : Fixing a spelling in a comment.

2002-12-06 19:28 Ralph Giles

>     Increment version number and date after 8.00 release.

2002-12-06 16:02 Igor Melichev

>     Free Type integration. Code from Graham Asher.

2002-12-06 08:45 Igor Melichev

>     Fix (pdfwrite) : Improving documentation about compression choice.

2002-12-06 01:11 Alex Cherepanov

>     Avoid the stack overflow. Don't put all CID values on the
>     operand stack at once during identity CMap generation.
>     Fixes SourceForge bug #646809 "/stackoverflow"
>     DETAILS:
>     The sample file pushed about 50K numbers to the operand stack
>     causing /stackoverflow. Since the numbers are always sequential
>     the new procedure takes a range of numbers. The range is defined
>     by the initial value and string length.

2002-12-05 23:48 Alex Cherepanov

>     Work around a common error in PDF files when the length of the xref entry
>     is nor equal to 20 bytes. Use readline to advance to the next entry instead
>     of seeking 20 bytes forward.
>     Fixes SourceForge bug #646809, customer #1060 "/typecheck in --add--"
>     Fixes SourceForge bug #641280, customer  #780 "/typecheck in --add--"

2002-12-05 00:29 Ray Johnston

>     Adjust comments to reflect the current status (which FDSelect format can
>     possibly overflow the operand stack) and add comments to identify which
>     format corresponds to each procedure.

>     DETAILS:

>     A test case that used Format 0 was not available, so no change was made to
>     avoid large operand stack usage for Format 0, but the previous comment
>     placement may have left the impression that Format 3 still had the problem.

2002-12-04 19:50 Ray Johnston

>     Handling of OpenType (OTTO) fonts with CFF fonts inside would fail if the
>     CFF table was not the first table in the table directory. Also stack
>     overflow could occur when building the FDSelect array. Now Asian fonts
>     sold by Adobe (as OpenType .otf fonts) can be used with Ghostscript.

>     DETAILS:

>     The initial table scanning checked the 32-bit table type against the
>     (CFF ) string, but then failed to skip the following 12 bytes if the table
>     was not CFF. Since the initial table is usually BASE, most OTTO fonts were
>     not usable.

>     Also the FDSelect array construction used the stack, so could easily
>     overflow if there was a largest glyph index in the font was too large. The
>     method used creates a 65535 element array, then fills it using the info
>     from the font's FDSelect info. The extra elements of the array are 'trimmed'
>     using getinterval.

2002-12-04 14:45 Jack Moffitt

>     Fixed another typo in pdf tests.

2002-12-04 14:35 Jack Moffitt

>     Fixed a bug in previous patch.

2002-12-04 09:05 Igor Melichev

>     Fix (pdfwrite) : Phase was missed writing a pattern.
>     Source Forge bug "[ 646062 ] (pdfwrite) Wrong pattern phase(270-01.ps".

2002-12-04 07:45 Igor Melichev

>     Changing copyright banner in Free Type bridge modules.

2002-12-03 16:43 Jack Moffitt

>     Fix: Turn logging on where it was overlooked.

2002-12-03 14:55 Igor Melichev

>     Fix (FAPI) : Implementing MetricsCount.

>     DETAILS:

>     This fixes FAPI client, but still there are
>     problems with renderers. Both FreeType and UFST cannot
>     properly handle a replaced metrics. This problem
>     is not in Ghostscript.

>     The FAPI client also has problems with replaced metrics.
>     See the big comment added into zfapi.c .
>     Need to fix UFST and Free Type first.

2002-12-03 13:54 Ralph Giles

>     Remove references to deprecated bug-gs-dev, bug-gs-beta, and mac-gs-* lists.

2002-12-03 13:36 Ralph Giles

>     Document that UseFlateCompression is treated as always on. Thanks to mpsuzuki
>     for noticing this change.

2002-12-03 07:40 Russell Lang

>     When adding a missing showpage to an EPS file,
>     don't bind showpage to allow user to override it.

>     DETAILS:
>     The EPS encapsulation code in ghostscript adds a showpage
>     if one is not present, so that displaying, printing and
>     converting all behave the same.  Some users are feeding
>     multiple EPS files to ghostscript, intending to print them
>     on a single page.  The current code will print each EPS file
>     on a single page.  For example following code would print
>     three pages:
>       save
>        /showpage {} def
>        save (file1.eps) run restore
>        save (file2.eps) run restore
>       restore
>       showpage
>     With this fix, it will print a single page.

>     Other ways to avoid this problem are to use -dNOEPS,
>     or (file.eps) (r) file cvx exec

2002-12-03 06:17 Igor Melichev

>     Free Type integration. Code from Graham Asher.

>     DETAILS:

>     New files added :

>     fapi_ft.c
>     wrfont.c
>     write_t1.c
>     write_t2.c
>     wrfont.h
>     write_t1.h
>     write_t2.h

>     The Free Type bridge (fapi_ft.c and dependents) needs to be rewritten with
>     replacing all access to interpreter's data with FAPI_font callbacks.
>     Committing it now to allow other developers to work on it.

>     File names to be improved.

2002-12-03 06:00 Igor Melichev

>     Free Type integration. Code from Graham Asher.

>     DETAILS:

>     New files added :

>     fapi_ft.c
>     wrfont.c
>     write_t1.c
>     write_t2.c
>     wrfont.h
>     write_t1.h
>     write_t2.h

>     The Free Type bridge (fapi_ft.c and dependents) needs to be rewritten with
>     replacing all access to interpreter's data with FAPI_font callbacks.
>     Committing it now to allow other developers to work on it.

>     File names to be improved.

2002-12-03 02:41 Dan Coby

>     Fix:  Partial fix for [ 600288 ] /undefined in --setcolorspace--.
>     This fix consists of two parts.  1.  Resolve and substitute the alternate
>     color space for an ICCBased color space.  2.  Correct a reference counting
>     problem with the same alternate color space.

2002-12-02 19:59 Jack Moffitt

>     Fix: Report useful error information when updating, building, or installing
>     fails.  Fixes SF bug #484752.

2002-12-02 19:21 Jack Moffitt

>     Fix: Make sure all test code checks and reacts appropriate to the exit status
>     of Ghostscript.

2002-12-02 15:02 Igor Melichev

>     Fix : Use GetTempFileName for creating temporary files on Windows.
>     SourceForge bug "[ 592925 ] Unable to open initial device (winXP)".
>     Code from Russell Lang with minor improvements.

>     DETAILS:

>     See comment in code. Further improvements with FILE_FLAG_DELETE_ON_CLOSE
>     require experimenting with multiple platforms to find a consistent
>     logics for clist and other temporary files with automatic removal.
>     In this connection see
>     http://www.ghostscript.com/pipermail/gs-code-review/2002-November/003437.html
>     and other messages in the thread.

2002-12-02 13:30 Igor Melichev

>     Fix (pdfwrite) : Names preceded with two null characters were not handled properly.
>     SourceForge bug "[ 641697 ] gs 7.33 regression".

>     DETAILS:

>     pdf_write_value did not recognize names being preceded with two null characters.
>     Such names were introduced to pdfmark implementation with the patch
>     http://www.ghostscript.com/pipermail/gs-code-review/2002-January/001737.html
>     for SF bug #505877. The patch appears incomplete : pdf_write_value
>     did not recognize such names as names, and as a consequence special characters
>     in them were not encodes with #-escape.

2002-11-29 16:24 Igor Melichev

>     Fix (pdfwrite) : Skip the obsolete Type 1 charstring command code 15,
>     because Acrobat Reader 5 on Linux chokes with it.
>     SourceForge bug "[ 641296 ] acrobat generates bad ps from gs pdf".

>     DETAILS:

>     GS ignores the command 15. Now skipping it while converting to CFF.
>     Printing a file with such font, AR5 on Linux generates an incomplete eexec section.

2002-11-27 20:36 Alex Cherepanov

>     Fix: Use "\n" line endings instead of "\r\n".
>     MS-DOS line endings were introduced in some lines with my earier fix.

2002-11-27 15:57 Igor Melichev

>     Fix (pdfwrite) : Skip redundant clipping paths.
>     SourceForge bug "[ 624168 ] poor performance on patterns".

>     DETAILS:

>     Besides others, the document "a)page Afrique(VECTO).eps"
>     creates multiple redundant clip paths with any AI "pattern"
>     (actually it doesn't use PS patterns). The old code was
>     too conservative, using only a comparison of path identifiers.

>     The patch creates a stable copy of clipping path written to PDF,
>     and compares it when PS clip path changes.  The old comparison
>     is left unchanged for better performance.

>     Also fixes return codes from pdf_put_clip_path and
>     improved the initializer of gx_device_pdf.

2002-11-27 15:37 Igor Melichev

>     Fix : gx_clip_path::outer_box was wrongly computed with empty path.

>     DETAILS:

>     It's a prtial fix for SourceForge bug "[ 624168 ] poor performance on patterns".

2002-11-27 15:25 Igor Melichev

>     Fix : A partial fix for Source Forge bug "[ 592925 ] Unable to open initial device (winXP)".
>     Providing a diagnostics when failed to open temporary file or the device output file.

>     DETAILS:

>     This change provides an explanation to user about the problem, rather than fixes it.
>     An improvement about the failure will be a separate patch.

>     gp_macio.c and gp_unifs.c contained C-style.htm problems.
>     This patch doesn't fix them for simplifying the History.
>     To be done separately.

2002-11-27 14:47 Ralph Giles

>     Correct a non-portable symbol after #endif.

2002-11-26 15:15 Ralph Giles

>     Remove some unused variables.

2002-11-26 14:38 Ralph Giles

>     Adapt MacOS port to build under Metrowerks CodeWarrior 8.3. These changes
>     maintain compatibility with CW7. CW6 has not been tested. Also clean up
>     some of the mac-specific sources, removing dead and unnecessary code
>     and improving header includes.

2002-11-26 12:55 Ralph Giles

>     Correct changelog typos. Thanks to William Bader for spotting this.

2002-11-26 02:37 Ralph Giles

>     Remove echogs as part of the mostlyclean makefile target. After a patch by William Bader.

2002-11-22 00:49 Ray Johnston

>     Fix: Descriptions of the regression testing script did not correspond to
>     the script header. Thanks to Russell Lang of GSView fame for spotting this
>     (someone finally read at least part of this document!).

2002-11-21 10:29 Raph Levien

>     Change GS_DOT_VERSION to use two-digit minor version number, which is
>     our new policy.

2002-11-21 09:40 Russell Lang

>     When processing EPS files, empty the path after checking the
>     page size.

2002-11-21 08:51 Russell Lang

>     Update copyright date in Windows installer.

2002-11-21 08:26 Raph Levien

>     Second commit of 8.00 release: autogen change logs and history file
>     (note new History8.htm file).

# Version 8.00 (2002-11-21)

This is the 8.00 release of AFPL Ghostscript. The most significant new feature since 7.0x is support for DeviceN colorspaces, up to 8 colorants total at 8 bits per component. Also, pdfwrite has seen considerable improvement in font handling, and many other bug fixes.

The following SourceForge bug numbers were open at the time of this release: 405342, 407342, 414947, 414985, 446344, 458261, 458775, 458780, 459647, 465936, 484752, 484753, 487953, 493348, 505429, 510808, 526099, 526491, 530011, 535366, 535752, 535836, 538033, 539239, 546823, 554076, 558151, 558435, 563287, 569573, 570772, 573744, 578838, 578865, 584990, 592160, 592837, 592841, 592925, 592930, 595760, 596009, 600288, 601255, 601336, 601694, 603934, 605830, 607425, 607850, 610356, 610478, 610727, 611694, 611701, 611727, 611898, 612801, 614298, 615165, 616970, 616976, 617077, 617523, 621246, 623292, 624515, 625085, 626059, 626295, 626358, 626419, 626464, 627545, 628110, 629335, 633299, 634036, 634358, 634514, 636210, 640159, 641278, 641280, 641283, 641296, 641490.

### Incompatible changes

No incompatible changes in this release.

## Documentation

    First commit of 8.0 process: update versions and dates, update to News.htm.
    (doc/API.htm [1.29], doc/Bug-form.htm [1.33], doc/Bug-info.htm [1.32],
    doc/C-style.htm [1.39], doc/Commprod.htm [1.26], doc/Copying.htm [1.25],
    doc/DLL.htm [1.27], doc/Deprecated.htm [1.6], doc/Develop.htm [1.101],
    doc/Devices.htm [1.58], doc/Drivers.htm [1.37], doc/Fonts.htm [1.35],
    doc/Helpers.htm [1.29], doc/History1.htm [1.25], doc/History2.htm [1.25],
    doc/History3.htm [1.25], doc/History4.htm [1.25], doc/History5.htm [1.27],
    doc/History6.htm [1.42], doc/History7.htm [1.29], doc/Htmstyle.htm [1.30],
    doc/Install.htm [1.39], doc/Issues.htm [1.33], doc/Language.htm [1.58],
    doc/Lib.htm [1.27], doc/Maintain.htm [1.36], doc/Make.htm [1.62],
    doc/New-user.htm [1.44], doc/News.htm [1.121], doc/Projects.htm [1.49],
    doc/Ps-style.htm [1.23], doc/Ps2epsi.htm [1.27], doc/Ps2pdf.htm [1.49],
    doc/Psfiles.htm [1.40], doc/Readme.htm [1.47], doc/Release.htm [1.74],
    doc/Source.htm [1.25], doc/Tester.htm [1.24], doc/Testing.htm [1.14],
    doc/Unix-lpr.htm [1.25], doc/Use.htm [1.71], doc/Xfonts.htm [1.25],
    doc/gs-vms.hlp [1.24], man/dvipdf.1 [1.22], man/font2c.1 [1.22],
    man/gs.1 [1.23], man/gslp.1 [1.22], man/gsnd.1 [1.22], man/pdf2dsc.1 [1.21],
    man/pdf2ps.1 [1.23], man/pdfopt.1 [1.21], man/pf2afm.1 [1.22],
    man/pfbtopfa.1 [1.23], man/printafm.1 [1.22], man/ps2ascii.1 [1.21],
    man/ps2epsi.1 [1.20], man/ps2pdf.1 [1.27], man/ps2pdfwr.1 [1.26],
    man/ps2ps.1 [1.29], man/wftopfa.1 [1.22]: 2002/11/21 07:12:16 raph)

## Procedures

    First commit of 8.0 process: update versions and dates, update to News.htm.
    (version.mak [1.58]: 2002/11/21 07:12:17 raph)

## Utilities

    Fixes problems:
    	- Don't overwrite source file when ps2pdf.bat is used with 1
    argument and the argument has no ".ps" extension. (Fixed by Moritz Barsnick)
    Bug #631974 (lib/ps2pdfxx.bat [1.13]: 2002/11/20 03:01:23 alexcher)

## Drivers

    Documents the old macos output device as deprecated. This is superceeded by
    the gdevdsp. (gdevmac.c [1.7]: 2002/11/20 18:24:44 giles)

## PDF writer

    Fixes problems:
    	- Fix (pdfwrite) : pdf_put_colored_pattern wrongly accessed pattern
    mask. SourceForge bugs "[ 623989 ] (pdfwrite) wrong colors with 269-01.ps",
    "[ 602995 ] (pdfwrite) 269-01.ps limitcheck". (gdevpdfv.c [1.20]: 2002/11/18
    22:23:40 igor)
    	- Fix (pdfwrite) : Providing additional documentation about embedded
    fonts. (gdevpdtb.c [1.12]: 2002/11/20 10:21:15 igor)
    	- Fix (pdfwrite) : Encoding Differences were not written for
    embedded Type 1,2 fonts that have a very instandard Encoding. Discovered
    with SF bug "[ 641296 ] acrobat generates bad ps from gs pdf".
    (gdevpdtt.c [1.24]: 2002/11/21 00:05:06 igor)
    	- Fix (pdfwrite) : The previous patch about Encoding Differences was
    inaccurate about True Types and CID fonts. Improving it with a better
    condition. (gdevpdtt.c [1.25]: 2002/11/21 03:44:11 igor)

## PDF Interpreter

    Fixes problems:
    	- Pattern stream was copied to the string failing with rangecheck
    for long streams. The patch uses strings when possible and switches to
    reusable streams for longer streams. Bug #634080, customer #561
    (lib/pdf_draw.ps [1.63]: 2002/11/21 01:29:07 alexcher)

## Interpreter

    Fixes problems:
    	- Correction for 637954 dina3_watermark.pdf fails on GS 7.33. This
    forces the color space to /DeviceGray whenever the initgraphics operator is
    called. Previously if color space substitution was active and the last
    colorspace was /DeviceGray then its substituted colorspace would remain
    active. (lib/gs_cspace.ps [1.5]: 2002/11/18 23:42:18 dan)
    	- Packed array is accepted now as an encoded user path in insideness
    testing operators. Bug #640855 (zupath.c [1.7]: 2002/11/20 18:17:28
    alexcher)
    	- Fix : (1) gc_status.requested was not initialized for stable
    memories, but used by alloc_acquire_chunk. (2) setting
    gc_status.vm_threshold and gc_status.enabled for stable memories
    synchronously with non-stable ones. This allows to control stable memories
    with setvmthreshold and vmreclaim. With default settings pdfwrite now works
    faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf"
    (zvmem2.c [1.7]: 2002/11/20 18:56:56 igor)
    	- Bring /SubstituteFont procedure prototype up to the standard:
    <name> SubstituteFont <name> . Do traditional GS font
    substitution after the standard font substitution. Use no-op standard font
    substitution for backward compatibility. Bug #637424 Customer #71
    (lib/gs_fonts.ps [1.24]: 2002/11/21 04:43:58 alexcher)

    When processing multiple EPS files, call showpage if necessary for
    subsequent files. (lib/gs_epsf.ps [1.10]: 2002/11/19 20:14:01 ghostgum)

    Corrects a small typo in the api documentation. (gdevdsp.h [1.7]: 2002/11/20
    17:46:26 giles)

    First commit of 8.0 process: update versions and dates, update to News.htm.
    (lib/gs_init.ps [1.74]: 2002/11/21 07:12:17 raph)

## Library

    Fixes problems:
    	- Fix : lsb must not apply to True Type subglyphs. The offset to be
    taken from composite only. SourceForge bugs "[ 623122 ] component shift in
    TrueType composites", "[ 536863 ] Type11 layout bugs". (gstype42.c [1.25]:
    2002/11/20 09:55:26 igor)
    	- Fix : (1) gc_status.requested was not initialized for stable
    memories, but used by alloc_acquire_chunk. (2) setting
    gc_status.vm_threshold and gc_status.enabled for stable memories
    synchronously with non-stable ones. This allows to control stable memories
    with setvmthreshold and vmreclaim. With default settings pdfwrite now works
    faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf"
    (gsalloc.c [1.18]: 2002/11/20 18:56:43 igor)
    	- Fix : (1) gc_status.requested was not initialized for stable
    memories, but used by alloc_acquire_chunk. (2) setting
    gc_status.vm_threshold and gc_status.enabled for stable memories
    synchronously with non-stable ones. This allows to control stable memories
    with setvmthreshold and vmreclaim. With default settings pdfwrite now works
    faster. SourceForge bug "[ 621243 ] (pdfwrite) slow mahle.pdf"
    (gsalloc.h [1.6]: 2002/11/20 18:57:10 igor)

    First commit of 8.0 process: update versions and dates, update to News.htm.
    (gscdef.c [1.32]: 2002/11/21 07:12:17 raph)

Copyright © 2003 artofcode LLC. All rights reserved.

This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of the license contained in the file LICENSE in this distribution. For more information about licensing, please refer to http://www.ghostscript.com/licensing/. For information on commercial licensing, go to http://www.artifex.com/licensing/ or contact Artifex Software, Inc., 101 Lucas Valley Road #110, San Rafael, CA 94903, U.S.A., +1(415)492-9861.

Ghostscript version 8.11, 16 August 2003