Detailed History of Ghostscript versions 8.xx

Table of contents

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 8.n
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.15 (2004-09-22)

This is the first release of GPL Ghostscript in the new version 8.1x series, and the fifth release in that series over all. This release offers a very large number of bug fixes over AFPL Ghostscript 8.14, and many significant new features over the previous GPL Ghostscript 8.01. We recommend upgrading to all our free users.

New features in this version :

Incompatible changes

There are no known incompatible changes from the previous release.

Changelog

2004-09-15 19:55 Ray Johnston

Remove trailing ^M (<cr>) characters from commits by alexcher.

[lib/dumphint.ps 1.1.4.2, src/dwdll.c 1.5.2.2, src/dwimg.c 1.8.2.3, src/dwnodll.c 1.4.2.2, src/errors.h 1.7.2.2, src/gp_dosfs.c 1.14.2.2, src/gp_vms.c 1.29.2.2, src/gscolor.c 1.10.2.2, src/gscolor1.c 1.8.2.2, src/windows_.h 1.4.2.2]

2004-09-15 06:27 Ralph Giles

Update the change logs for release.

[doc/Changes.htm 1.43.2.7, doc/Details.htm 1.1.2.7, doc/Details8.htm 1.5.2.14, doc/History8.htm 1.1.2.14]

2004-09-15 05:06 Ralph Giles

Correct an ordering issue and a typo in the header dependencies.

[src/lib.mak 1.126.2.10]

2004-09-15 04:59 Ralph Giles

Require the lastest zlib-1.2.1 release when compiling in that 3rd party
library. Dynamic linking against a separately built zlib 1.1.x still
works. Porting change from HEAD.

[doc/Make.htm 1.63.2.8, src/zlib.mak 1.7.2.1]

2004-09-15 04:25 Ralph Giles

Update the release date and News.

[doc/API.htm 1.31.2.7, doc/Bug-form.htm 1.34.2.7, doc/Bug-info.htm 1.32.2.7, doc/C-style.htm 1.40.2.7, doc/Commprod.htm 1.26.2.7, doc/DLL.htm 1.27.2.7, doc/Deprecated.htm 1.6.2.7, doc/Details8.htm 1.5.2.13, doc/Develop.htm 1.110.2.10, doc/Devices.htm 1.63.2.8, doc/Drivers.htm 1.37.2.7, doc/Fonts.htm 1.35.2.7, doc/Helpers.htm 1.29.2.7, doc/History1.htm 1.25.2.7, doc/History2.htm 1.25.2.7, doc/History3.htm 1.25.2.7, doc/History4.htm 1.25.2.7, doc/History5.htm 1.27.2.7, doc/History6.htm 1.42.2.7, doc/History7.htm 1.30.2.7, doc/History8.htm 1.1.2.13, doc/Htmstyle.htm 1.30.2.7, doc/Install.htm 1.39.2.7, doc/Issues.htm 1.34.2.7, doc/Language.htm 1.68.2.8, doc/Lib.htm 1.28.2.7, doc/Maintain.htm 1.36.2.7, doc/Make.htm 1.63.2.7, doc/New-user.htm 1.44.2.7, doc/News.htm 1.123.2.12, doc/Projects.htm 1.49.2.7, doc/Ps-style.htm 1.23.2.7, doc/Ps2epsi.htm 1.27.2.7, doc/Ps2pdf.htm 1.51.2.12, doc/Psfiles.htm 1.43.2.7, doc/Readme.htm 1.48.2.10, doc/Release.htm 1.76.2.7, doc/Source.htm 1.25.2.7, doc/Tester.htm 1.25.2.7, doc/Testing.htm 1.17.2.7, doc/Unix-lpr.htm 1.25.2.7, doc/Use.htm 1.81.2.9, doc/Xfonts.htm 1.25.2.7, doc/gs-vms.hlp 1.24.2.5, man/dvipdf.1 1.22.2.7, man/font2c.1 1.22.2.7, man/gs.1 1.23.2.7, man/gslp.1 1.22.2.7, man/gsnd.1 1.22.2.7, man/pdf2dsc.1 1.21.2.7, man/pdf2ps.1 1.23.2.7, man/pdfopt.1 1.21.2.7, man/pf2afm.1 1.22.2.7, man/pfbtopfa.1 1.23.2.7, man/printafm.1 1.22.2.7, man/ps2ascii.1 1.21.2.7, man/ps2epsi.1 1.20.2.7, man/ps2pdf.1 1.27.2.7, man/ps2pdfwr.1 1.26.2.7, man/ps2ps.1 1.29.2.7, man/wftopfa.1 1.22.2.7, src/version.mak 1.60.2.9]

2004-09-14 21:38 Russell Lang

Add custom page size to PostScript Printer Description file.

[lib/ghostpdf.ppd 1.1.2.2]

2004-09-13 22:32 Ray Johnston

Ignore MediaPosition when selecting a media type. Adobe CPSI does it this
way, and the PLRM suggests that this is advisory only. Bug 687547 for
customer 780.

DETAILS:

Adobe CPSI also ignores this parameter without generating any error or
warning. The PLRM says:

  This parameter does not override the normal media selection process
  described in the text, but if specified it will be honored--provided it can
  satisfy the input media request in a manner consistent with normal media
  selection--even if the media source it specifies is not the best available
  match for the requested attributes.

Since an input PS file is unlikely to have a PPD that accurately reflects
the 'slot' numbers of our InputAttributes dictionary, we also ignore this
option and instead give the 'best fit' based on size and orientation (and
other parameters that may exist).

[lib/gs_setpd.ps 1.18.2.3]

2004-09-13 22:16 Ray Johnston

Handle arrays as well as name operands to CS/cs in PDF files. Adobe PDF
Library + Adobe InDesign create PDFs that violate the spec. Bug 687610
for customer 770 (fix ported from HEAD).

[lib/pdf_draw.ps 1.66.2.5]

2004-09-13 07:22 Igor Melichev

Porting a recent patch from HEAD (September 13) :
http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004802.html  (1075)
Fix : Improve the error reporting about a dangling resource map record.

DETAILS :

When a resource map record pointed to an undefined resource,
it printed "undefinedresource in GetSize". With this inprovement
it prints the substituted resource name instead GetSize.

EXPECTED DIFFERENCES :

None.

[lib/gs_cidfm.ps 1.5.2.1]

2004-09-09 20:56 Ray Johnston

Fixes for security problems not fixed in previous commit and fixes for
other problems identified by SaGS in bug report -- detecting recursion,
allowing r/w strings in procedures (but not in PermitFile arrays).
Bug 687559. Changes ported from HEAD rev,

[lib/gs_lev2.ps 1.29.2.5]

2004-09-09 11:45 Igor Melichev

Porting a recent patch from HEAD :

9 Sent 2004 :
http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004794.html  (1070)
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 7).

DETAILS :

A flag to be reset when going to the next character.
Bug 687660 "incorrect font rendering/missing glyphs from ps2pdf"

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c 1.33.2.12]

2004-09-08 06:30 Ralph Giles

Propagate autotools build system changes from HEAD.

Corrects some formatting errors in the 'clean' targets.
More specific tests for local library source code.
Properly pass HAVE_HYPOT to the makefile if it is detected.

[src/Makefile.in 1.24.2.5, src/configure.ac 1.28.2.8]

2004-09-06 22:11 Ralph Giles

Change regression test flags to use new JOBSERVER flag. Older flags are
retained to allow older regression testing to still use this module.
Change propagated from HEAD.

[toolbin/tests/gstestgs.py 1.19.2.4]

2004-09-06 15:40 Ray Johnston

Add some job server related support. The -dJOBSERVER option defines the
^D to start a new encapsulated job, and the ^D is changed to be a self-
delimitting token in the scanner. Fixes 687079.

DETAILS:

For backward compatibility, -dNOOUTERSAVE is retained, but this does
*NOT* define the ^D to start a new encapsulated job. As specified in the
updates to doc/Use.htm, in order to avoid an /invalidrestore error,
the input should be from stdin otherwise the restore done as part of the
new job encapsulation (restore returns to the server state) will encounter
a file object that was created after the encapsulation save.

This allows 289-01.ps to complete IFF the -dJOBSERVER option is used
during regression testing. Thus the only (eventual) regression change
will be:

289-01.ps

[doc/Use.htm 1.81.2.8, lib/gs_init.ps 1.87.2.9, lib/gs_lev2.ps 1.29.2.4, src/scantab.c 1.4.2.1]

2004-09-03 11:07 Ralph Giles

Add missing Id lines to files that need them.

[doc/gs.css 1.2.2.1, lib/pdf_ops.ps 1.27.2.3, src/gxclrast.c 1.26.2.4]

2004-09-02 22:38 Dan Coby

Fix for 687651 SEGV on GS_8_1X branch with banding Altona_Visual_sb_1v1_x3.pdf.

DETAILS:

The last update dropped several calls to gs_cspace_init_DeviceXXX.  As a
result, there were uninitialized color spaces.

[src/gxclrast.c 1.26.2.3]

2004-09-02 21:52 Ralph Giles

Use the MTIME define from the stat module rather than a numerical index
to specify the modification time in python. Propagates a similar change
from gscheck_raster.py.

[toolbin/tests/gscheck_pdfwrite.py 1.13.2.4]

2004-08-31 22:11 Dan Coby

Fix for 687640 Unable to set default halftones for PDF.

DETAILS:

To support both PS level 1 and PS level 2 interpreting modes,
Ghostscript defines two routines for setting a default halftone.
PS level 1 does not support resources.  Thus for PS 1 we have
.setdefaultscreen which sets a default halftone which is defined
inside of gs_init.ps.  For PS 2, we have .setdefaulthalftone
which is similar to .setdefaultscreen except that it also checks
for a default halftone resource.

The PDF interpreter's handler for the /HT gstate parameter
called .setdefaultscreen if the parameter value was /Default.
This fix changes the handler to use .setdefaulthalftone instead.
This results in the PDF interpreter using the default halftone
resource if it is present.

[lib/pdf_draw.ps 1.66.2.4]

2004-08-31 20:23 Ralph Giles

Refer to the modification time using the built-in enum, rather than
an absolute number. Both more clear and less accident prone. Backported
fix from HEAD.

[toolbin/tests/gscheck_raster.py 1.3.2.5]

2004-08-31 20:22 Ray Johnston

Fix ResourceForAll Category procedure to make sure that the path given
by GenericResourceDir systemparam is included in the enumeration.
Bug 687641.

[lib/gs_res.ps 1.33.2.2]

2004-08-31 20:07 Ray Johnston

Add (most of) the new CMap files and updated CMaps from HEAD rev.
Problematic CMaps were omitted for now.

DETAILS:

The CMaps that fail to load with HEAD and this rev are detected by
409-01.ps. These files can be added after a patch is applied for them.

[Resource/CMap/83pv-RKSJ-H 1.1.2.1, Resource/CMap/90ms-RKSJ-H 1.1.2.1, Resource/CMap/90ms-RKSJ-UCS2 1.1.2.1, Resource/CMap/90ms-RKSJ-V 1.1.2.1, Resource/CMap/90msp-RKSJ-H 1.1.2.1, Resource/CMap/90msp-RKSJ-V 1.1.2.1, Resource/CMap/90pv-RKSJ-H 1.1.2.1, Resource/CMap/90pv-RKSJ-UCS2 1.1.2.1, Resource/CMap/90pv-RKSJ-UCS2C 1.1.2.1, Resource/CMap/90pv-RKSJ-V 1.1.2.1, Resource/CMap/Add-RKSJ-H 1.1.2.1, Resource/CMap/Add-RKSJ-V 1.1.2.1, Resource/CMap/Adobe-CNS1-B5pc 1.1.2.1, Resource/CMap/Adobe-CNS1-H-CID 1.1.2.1, Resource/CMap/Adobe-CNS1-H-Host 1.1.2.1, Resource/CMap/Adobe-CNS1-H-Mac 1.1.2.1, Resource/CMap/Adobe-GB1-GBK-EUC 1.1.2.1, Resource/CMap/Adobe-GB1-GBpc-EUC 1.1.2.1, Resource/CMap/Adobe-GB1-H-CID 1.1.2.1, Resource/CMap/Adobe-GB1-H-Host 1.1.2.1, Resource/CMap/Adobe-GB1-H-Mac 1.1.2.1, Resource/CMap/Adobe-Japan1-90ms-RKSJ 1.1.2.1, Resource/CMap/Adobe-Japan1-90pv-RKSJ 1.1.2.1, Resource/CMap/Adobe-Japan1-H-CID 1.1.2.1, Resource/CMap/Adobe-Japan1-H-Host 1.1.2.1, Resource/CMap/Adobe-Japan1-H-Mac 1.1.2.1, Resource/CMap/Adobe-Japan1-PS-H 1.1.2.1, Resource/CMap/Adobe-Japan1-PS-V 1.1.2.1, Resource/CMap/Adobe-Japan1-UCS2 1.1.2.1, Resource/CMap/Adobe-Korea1-H-CID 1.1.2.1, Resource/CMap/Adobe-Korea1-H-Host 1.1.2.1, Resource/CMap/Adobe-Korea1-KSCms-UHC 1.1.2.1, Resource/CMap/Adobe-Korea1-KSCpc-EUC 1.1.2.1, Resource/CMap/Adobe-Korea1-UCS2 1.1.2.1, Resource/CMap/B5pc-H 1.1.2.1, Resource/CMap/B5pc-UCS2 1.1.2.1, Resource/CMap/B5pc-UCS2C 1.1.2.1, Resource/CMap/B5pc-V 1.1.2.1, Resource/CMap/CNS-EUC-H 1.1.2.1, Resource/CMap/CNS-EUC-V 1.1.2.1, Resource/CMap/EUC-H 1.1.2.1, Resource/CMap/EUC-V 1.1.2.1, Resource/CMap/Ext-RKSJ-H 1.1.2.1, Resource/CMap/Ext-RKSJ-V 1.1.2.1, Resource/CMap/GB-EUC-H 1.1.2.1, Resource/CMap/GB-EUC-V 1.1.2.1, Resource/CMap/GBK-EUC-H 1.1.2.1, Resource/CMap/GBK-EUC-UCS2 1.1.2.1, Resource/CMap/GBK-EUC-V 1.1.2.1, Resource/CMap/GBK2K-H 1.1.2.1, Resource/CMap/GBK2K-V 1.1.2.1, Resource/CMap/GBKp-EUC-H 1.1.2.1, Resource/CMap/GBKp-EUC-V 1.1.2.1, Resource/CMap/GBT-EUC-H 1.1.2.1, Resource/CMap/GBT-EUC-V 1.1.2.1, Resource/CMap/GBpc-EUC-H 1.1.2.1, Resource/CMap/GBpc-EUC-UCS2 1.1.2.1, Resource/CMap/GBpc-EUC-UCS2C 1.1.2.1, Resource/CMap/GBpc-EUC-V 1.1.2.1, Resource/CMap/H 1.1.2.1, Resource/CMap/HKdla-B5-H 1.1.2.1, Resource/CMap/HKdla-B5-V 1.1.2.1, Resource/CMap/HKdlb-B5-H 1.1.2.1, Resource/CMap/HKdlb-B5-V 1.1.2.1, Resource/CMap/HKgccs-B5-H 1.1.2.1, Resource/CMap/HKgccs-B5-V 1.1.2.1, Resource/CMap/HKm314-B5-H 1.1.2.1, Resource/CMap/HKm314-B5-V 1.1.2.1, Resource/CMap/HKm471-B5-H 1.1.2.1, Resource/CMap/HKm471-B5-V 1.1.2.1, Resource/CMap/HKscs-B5-H 1.1.2.1, Resource/CMap/HKscs-B5-V 1.1.2.1, Resource/CMap/Identity-H 1.1.4.2, Resource/CMap/Identity-V 1.1.4.2, Resource/CMap/KSC-EUC-H 1.1.2.1, Resource/CMap/KSC-EUC-V 1.1.2.1, Resource/CMap/KSCms-UHC-H 1.1.2.1, Resource/CMap/KSCms-UHC-HW-H 1.1.2.1, Resource/CMap/KSCms-UHC-HW-V 1.1.2.1, Resource/CMap/KSCms-UHC-UCS2 1.1.2.1, Resource/CMap/KSCms-UHC-V 1.1.2.1, Resource/CMap/KSCpc-EUC-H 1.1.2.1, Resource/CMap/KSCpc-EUC-UCS2 1.1.2.1, Resource/CMap/KSCpc-EUC-UCS2C 1.1.2.1, Resource/CMap/UCS2-90ms-RKSJ 1.1.2.1, Resource/CMap/UCS2-90pv-RKSJ 1.1.2.1, Resource/CMap/UCS2-B5pc 1.1.2.1, Resource/CMap/UCS2-GBK-EUC 1.1.2.1, Resource/CMap/UCS2-GBpc-EUC 1.1.2.1, Resource/CMap/UCS2-KSCms-UHC 1.1.2.1, Resource/CMap/UCS2-KSCpc-EUC 1.1.2.1, Resource/CMap/UniCNS-UCS2-H 1.1.2.1, Resource/CMap/UniCNS-UCS2-V 1.1.2.1, Resource/CMap/UniGB-UCS2-H 1.1.2.1, Resource/CMap/UniGB-UCS2-V 1.1.2.1, Resource/CMap/UniJIS-UCS2-H 1.1.2.1, Resource/CMap/UniJIS-UCS2-HW-H 1.1.2.1, Resource/CMap/UniJIS-UCS2-HW-V 1.1.2.1, Resource/CMap/UniJIS-UCS2-V 1.1.2.1, Resource/CMap/UniKS-UCS2-H 1.1.2.1, Resource/CMap/UniKS-UCS2-V 1.1.2.1, Resource/CMap/V 1.1.2.1]

2004-08-31 18:18 Ray Johnston

Previous commit inadvertently included some changes related to PDF 1.5
extensions. Remove those sections (ObjectStream and xrefstream).

[lib/pdf_base.ps 1.34.2.3, lib/pdf_main.ps 1.71.2.5]

2004-08-31 04:03 Ray Johnston

Port fixes from the HEAD rev to GS_8_1X branch in preparation for the
8.15 GPL release. Fixes from Ray Johnston and Alex Cherepanov.

DETAILS:

Fixes are:

Resource/ColorSpace/DefaultCMYK,
  Resource/ColorSpace/DefaultGray,
  Resource/ColorSpace/DefaultRGB:	bug 687608

lib/gs_init.ps:				bug 687521

lib/gs_type1.ps:			bug 687066.

lib/pdf_base.ps,
  src/iscan.c:				bug 687277 for customer 440.

lib/pdf_draw.ps:			bug 687494 from customer 580. bug 687288 for customer 32.

lib/pdf_font.ps:			bug 687315. bug 687422 for Artifex customer 670.

lib/pdf_main.ps:			bug 687293, bug 687277 for customer 440.

lib/pdf_ops.ps:				bug 687606 for customer number 780.

lib/ps2ascii.ps:			bug 687466.

src/gdevpdf.c:				bug 687515

src/gdevpdfg.c:				for customer 32

src/gsdevmem.c:				bug 687227

src/gsmisc.c:				bug 687420.

src/gxclrast.c:				bug 687425 for customer 1110.

src/gxhintn.c:				bug 687417.

src/gximag3x.c:				bug 687411, bug 686843.

src/gximage3.c:				bug 686843.

src/iccfont.c:				bug 687444 for customer 531.

src/iscan.h,
  src/iscannum.c,
  src/ztoken.c:				bug 687277 for customer 440.

src/stream.c:				bug 687505.

src/zdevice.c:				bug 687223.

src/zfileio.c:				bug 687374 for customer 310.

src/zfont42.c:				bug 687340

toolbin/pdfinflt.ps:			bug 687363.

[Resource/ColorSpace/DefaultCMYK 1.2.2.2, Resource/ColorSpace/DefaultGray 1.2.2.2, Resource/ColorSpace/DefaultRGB 1.2.2.2, lib/gs_init.ps 1.87.2.8, lib/gs_type1.ps 1.14.2.1, lib/pdf_base.ps 1.34.2.2, lib/pdf_draw.ps 1.66.2.3, lib/pdf_font.ps 1.53.2.5, lib/pdf_main.ps 1.71.2.4, lib/pdf_ops.ps 1.27.2.2, lib/ps2ascii.ps 1.7.2.2, src/gdevpdf.c 1.67.2.11, src/gdevpdfg.c 1.31.2.5, src/gsdevmem.c 1.4.2.2, src/gsmisc.c 1.15.2.1, src/gxclrast.c 1.26.2.2, src/gxhintn.c 1.21.2.9, src/gximage3.c 1.11.2.2, src/iccfont.c 1.7.2.2, src/iscan.c 1.13.2.2, src/iscan.h 1.8.2.1, src/iscannum.c 1.6.2.2, src/stream.c 1.21.2.2, src/zdevice.c 1.7.2.1, src/zfileio.c 1.15.2.1, src/zfont42.c 1.14.2.2, src/ztoken.c 1.10.2.2, toolbin/pdfinflt.ps 1.4.2.1]

2004-08-30 20:59 Igor Melichev

Porting recent changes from HEAD to GS_8_1X.

August 18-24 :
http://www.ghostscript.com/pipermail/gs-cvs/2004-August/004709.html    (1053)
Fix (pdfwrite) : Wrong glyph positions with CIDFontType2 with no vmtx.

http://www.ghostscript.com/pipermail/gs-cvs/2004-August/004714.html    (1054)
Fix (pdfwrite) : Check for glyph name conflicts while font merging.

http://www.ghostscript.com/pipermail/gs-cvs/2004-August/004726.html    (1057)
Fix (TT interpreter) : A minor portability problem.

http://www.ghostscript.com/pipermail/gs-cvs/2004-August/004727.html    (1056)
Fix (TT interpreter) : Provide a tolerance to an inconsistent cvt length.'

http://www.ghostscript.com/pipermail/gs-cvs/2004-August/004730.html    (1060)
Fix (pdfwrite) : A page compression type change could cause a crash.

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c 1.67.2.10, src/gdevpdfu.c 1.40.2.8, src/gdevpdfx.h 1.68.2.8, src/gdevpdtt.c 1.43.2.11, src/gxfcopy.c 1.25.2.6, src/ttinterp.c 1.11.2.5, src/ttload.c 1.4.4.2]

2004-08-30 16:54 Ray Johnston

Fix for security problems with user parameters, in particular the
/PermitFileReading array. Also corrects handling of parameter arrays
that contain a 'mark'. Fixes bug 687559. Thanks to mat. Gh. Savulescu
(SaGS) for the bug report and for a suggested patch.

[lib/gs_lev2.ps 1.29.2.3]

2004-08-29 16:39 Ray Johnston

Incoprorate some fixes and changes from the HEAD to the GS_8_1X branch.
Bugs 687409, 686949, 629335 and minor spelling and format corrections.

[doc/Use.htm 1.81.2.7]

2004-08-27 21:36 Dan Coby

Include the following patches from the head branch;

Fix for 687274 White areas appear shaded.

Fix for 687337 Zerodivide in cie_cache_mult.

Fix for 687364 rangecheck in buildshading2 from Quark XPress PS file.
This fix involves the creation of the findcmykcustomcolor and
setcustomcolor functions.

Fix for 687390 GhostScript 8.11 inserts rendering artifacts
with GIFs as source.  The actual problem is an error which
resulted in a pale yellow being shown as a pale pink.  This
occurs when dithering on devices which use a 256 color palette.

Fix for 687402 Missing color on annots.pdf.  This is actually
not an error.  Instead it is due to some confusion about the
displaying of link annotations.

Fix 687189 for bbox_forward_add_rect infinite recursion.
This problem caused segment faults or apparent hangs with
the x11alpha device.  This fix also works for 656414
segfault when using x11alpha.

Fix for 687441 New: MSVC warnings.  Correct some warning messages from
MSVC.

Fix for 687453 Problem with overprinting and shading.

Change the default handling of the MaxSeparations device parameter.  This
parameter is only used by some of the DeviceN mode devices (which have
their own handling of this parameter).  The default handler now simply
ignores this parameter.  However it does read the parameter.  Not reading
the parameter was causing problems with PDF files and page devices.

Fix for 687553 rangecheck in .sethalftone5 and SeparationOrder.

Fix for 687572 AFPL Ghostscript 8.14 fails with some PDF files.

More work upon 687551 Implement the remaining TN 5044 procedures.
This commit implements the setcmykoverprint procedure.

[examples/annots.pdf 1.1.10.1, lib/gs_init.ps 1.87.2.7, lib/gs_lev2.ps 1.29.2.2, lib/pdf_draw.ps 1.66.2.2, lib/pdf_main.ps 1.71.2.3, lib/pdf_rbld.ps 1.4.4.2, src/devs.mak 1.91.2.9, src/dwimg.c 1.8.2.2, src/dwmain.c 1.12.2.2, src/dwmainc.c 1.14.2.2, src/gdevbbox.c 1.11.2.3, src/gdevbmp.c 1.8.2.1, src/gdevcgm.c 1.6.2.2, src/gdevdevn.c 1.5.2.4, src/gdevdevn.h 1.2.4.2, src/gdevm64.c 1.1.2.1, src/gdevp2up.c 1.4.2.1, src/gdevpccm.c 1.5.2.1, src/gdevpccm.h 1.6.2.1, src/gdevpcx.c 1.5.2.1, src/gdevpng.c 1.7.2.3, src/gdevpsd.c 1.4.2.3, src/gdevsvga.c 1.5.2.1, src/gdevwdib.c 1.7.2.1, src/gdevwpr2.c 1.15.2.1, src/gscie.c 1.13.2.2, src/gsdparam.c 1.12.2.1, src/gsht.c 1.16.2.3, src/unistd_.h 1.8.2.2]

2004-08-19 10:56 Russell Lang

Add a PPD for PostScript to be used by ghostscript ps2pdf.

[doc/Develop.htm 1.110.2.9, doc/Ps2pdf.htm 1.51.2.11, lib/ghostpdf.inf 1.1.2.1, lib/ghostpdf.ppd 1.1.2.1]

2004-08-18 03:06 Russell Lang

Change product name to GPL Ghostscript.

[src/dwreg.c 1.3.2.1, src/dwsetup.cpp 1.8.2.1, src/dwsetup.def 1.2.8.2, src/dwsetup.rc 1.10.2.2, src/dwuninst.cpp 1.4.2.1, src/dwuninst.def 1.2.8.2, src/gp_wgetv.c 1.6.2.1, src/winint.mak 1.18.2.3]

2004-08-17 19:52 Ralph Giles

Change product name to GPL Ghostscript and update version number for the
release.

[doc/News.htm 1.123.2.11, lib/gs_init.ps 1.87.2.6, src/gscdef.c 1.33.2.4, src/version.mak 1.60.2.8]

2004-08-17 19:49 Ralph Giles

Relicence the 8.1x stable branch under the GNU GPL.

[LICENSE 1.2.2.3, doc/COPYING 1.1.8.1, doc/Copying.htm 1.25.2.7, doc/Readme.htm 1.48.2.9]

2004-08-17 19:41 Ralph Giles

Remove references to the FreeType license. Artifex Software, Inc. has
obtained rights to the FreeType 1 code and the work included here is
relicensed under the same terms as the rest of the Ghostscript code.

[LICENSE 1.2.2.2, doc/FTL.txt 1.1.2.2]

2004-08-11 13:12 Ray Johnston

Import fixes from HEAD branch to 81X branch. Fixes for bugs 687038, 687325,
687436 and 687458. Also added the -dNORANGEPAGESIZE feature since it is
zero risk.

[lib/gs_pdfwr.ps 1.31.2.3, lib/gs_setpd.ps 1.18.2.2]

2004-08-04 15:20 Ray Johnston

Fix missing / in last commit by Igor that caused PS /undefined error.
Also apply Alex's 1.38 patch to this branch to handle zero length
tables (bug 687457).

[lib/gs_ttf.ps 1.28.2.5]

2004-08-02 03:33 Igor Melichev

Fix : .OrigFont was not provided when an embeded font is defined.

DETAILS :

Bug 687598 "Courier CE font problems".
The test case embeds a font with an instandard FontMatrix [ 0.00039 0 0 0.00039 0 0 ].
For passing it to pdfwrite, the procedure .completefont adds the
/.OrigFont key to the font dictionary. However the key was added after
.buildfont1 is called, and the device did not recieve the information at the time.
This patch moves the .OrigFont setting ahead to the .buildfont* call.

EXPECTED DIFFERENCES :

None.

[lib/gs_fonts.ps 1.28.2.3]

2004-07-29 19:26 Igor Melichev

Fix : True Type font loader : numLoca run out the PS string size limit.

DETAILS :

Bug 687599 "/rangecheck in --string--".
This patch increases the maximal 'loca' size to 64528 bytes,
which is enough for the customer's file.
A further improvement would be to allow more 'loca' segments
(currently arbitrary restricted with 2 for a minor code simplification).

EXPECTED DIFFERENCES :

None.

[lib/gs_ttf.ps 1.28.2.4]

2004-07-29 17:53 Igor Melichev

1. Fix (PS interpreter) : The FontBBox validation check was too strong.
2. Fix (pdfwrite) : Explicitely set line parameters in a charproc.

DETAILS :

Bug 687594 "Barcode Width".
See comments in the new code.

This solution is a partial one.
With the current architecture of the Postscript interpreter,
a device can't recognize whether a PS charproc sets line parameters or not.
Therefore we copy to PDF the values, which appear at a first use
within a charproc. The old code copied only values, which differ from defaults.
The new behavior appears closer to Adobe Distiller.

A complete solution should copy the PS behavior to PDF,
i.e. the PDF charproc should set those and only those parameters,
which are set by the PS charproc. For doing that we need flags in the graphic state structure
per each graphic state parameter, reset all them before running a charproc,
and set whenever a parameter is changed. Without the flag, when the charproc sets
a value equal to the old one (which was inherited from the context of
the glyph usage), the event of setting is lost and causes a line width and other problems.
We don't want such a deep change now, and go with the partial solution,
because the partial solution appears enough for customer's needs.
Likely Adobe Distiller have same architectural problem, and resolves it in same manner.

EXPECTED DIFFERENCES :

pdfwrite, 72dpi :
012-09.ps
013-09.ps
014-09.ps
015-09.ps
083-09.ps
123-09.ps
205-09.ps
250-01.ps
296-01.ps
298-09.ps
321-09.ps

pdfwrite 300dpi :

012-09.ps
013-09.ps
014-09.ps
015-09.ps
027-05.ps
032-07.ps
034-10.ps
083-09.ps
093-01.ps
123-09.ps
169-09.ps
205-09.ps
212-01.ps
213-01.ps
214-01.ps
222-09.ps
238-01.ps
250-01.ps
296-01.ps
298-09.ps
307-07.ps
321-09.ps

[src/gdevpdtt.c 1.43.2.10, src/gslparam.h 1.4.2.1, src/zchar.c 1.10.2.2]

2004-07-15 12:47 Igor Melichev

Fix (pdfwrite) : text.operation was inconsistent after replacing TEXT_FROM_GLYPHS.

DETAILS :

Bug 687563 "segfault during pdfwrite".
text.operation became inconsistent after replacing
TEXT_FROM_*_GLYPH* with TEXT_FROM_STRING.
Declared a stronger constraint for process_text_modify_width,
and documented the trick with text indices in process_plain_text.

EXPECTED DIFFERENCES :

pdfwtite -r300 tpc2.ps

[src/gdevpdtc.c 1.17.2.5, src/gdevpdte.c 1.33.2.11]

2004-07-07 09:20 Russell Lang

In the Windows %printer% IODevice, the existing thread handle
is closed automatically when the thread finishes.  Duplicate
the thread handle so we always have a valid handle for waiting
and closing.

DETAILS:
When the thread finishes, the CRTL _endthread is closing
the existing handle.  During debugging, it was found that
waiting on the thread handle was Ok because the thread
was still running, but by the time CloseHandle ran the
thread handle was invalid.

IODevices are effectively static, so iodev->state is initialized
once at the start of the interpreter.  There is no need to
test if iodev->state is valid.

[src/gp_msprn.c 1.3.2.1]

2004-07-07 09:19 Russell Lang

Fixes bug 687562 "vector devices close output file incorrectly".
Vector devices open the output file with gx_device_open_output_file,
so should close it with gx_device_close_output_file, not fclose.
This was preventing pswrite from correctly closing special
files such as "%printer%Printer Name" on Windows and OS/2.

[src/gdevvec.c 1.18.2.3]

2004-07-01 19:28 Igor Melichev

(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 6).

DETAILS :

Bug 687546 pdfwrite : Type 3 glyph variations (was: ps2pdf segfaults)
Relates to 687044, 687472, 687489, 687546.
charproc_just_accumulated was not properly initialized on some circumstances.

EXPECTED DIFFERENCES :

Bug687546.ps (new)

[src/gdevpdtt.c 1.43.2.9]

2004-07-01 15:24 Igor Melichev

Fix : A dangling pointer from TExecution_Context could cause a memory corruption (continued).

DETAILS :

The patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004583.html
was incorrect due to a noize porting a patch from HEAD to GS_8_1X.
This patch fixes that.

EXPECTED DIFFERENCES :

None.

[src/ttinterp.c 1.11.2.4]

2004-07-01 15:11 Igor Melichev

Fix (TT interpreter) : The implementation of INSTCTRL did not follow the TT specification by Apple.

DETAILS :

Porting the patch http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004576.html from HEAD.
Bug 687526 /invalidfont in --show--
See http://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html#INSTCTRL
The old implementation comes from FreeType.

EXPECTED DIFFERENCES :

None.

[src/ttinterp.c 1.11.2.3]

2004-06-28 17:21 Igor Melichev

Fix : True Type grid fitting must not apply to FAPI fonts.

DETAILS :

Bug 687543 "FAPI: Type 42 is broken".

EXPECTED DIFFERENCES :

None.

[src/gxccman.c 1.7.2.4, src/lib.mak 1.126.2.9]

2004-06-24 10:28 Igor Melichev

Fix : A dangling pointer from TExecution_Context could cause a memory corruption.

DETAILS :

The pointed area was never used and the pointer was not listed in the garbager descriptor.
Due to the latter it was not relocated and a wrong object was released through it.
Bug 687533  "segmentation fault on this PS file"

We still keep the pointer defined, because we don't want to change FreeType structures.
But now we don't allocate the area for its referent.

Minor change (ttinterp.c) : skip allocating a debug data of zero size.

EXPECTED DIFFERENCES :

None.

[src/ttfmemd.c 1.6.2.2, src/ttinterp.c 1.11.2.2, src/ttobjs.c 1.6.4.2]

2004-06-24 02:04 Ralph Giles

Add /WhiteIsOpaque page device parameter to provide user interface
to the corresponding bbox device flag. Fix a bug introduced in
gdevbbox.c v.1.9 (for bug 645531) that left bdev->white and
bdev->black uninitialized, resulting in black objects skipped
as white. Fixes bugs 687410, 687478.

[doc/Devices.htm 1.63.2.7, src/gdevbbox.c 1.11.2.2]

2004-06-23 08:39 Igor Melichev

Porting recent changes from HEAD to GS_8_1X.

June 9 :
http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004544.html  (977)
http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004545.html  (977)

Fix (type 1 hinter) :
1. Ever align the Y-coordinate of a glyph origin to pixels.
2. Improve the unaligned pole interpolation;
3. Set a waeaker angle threshold in t1_hinter__is_stem_hint_applicable.
4. Allow an offset fuzz in t1_hinter__is_stem_hint_applicable.
5. Align upper/lower horizontal stems by the upper/lower edge.
6. A dependency was missed in lib.mak .

DETAILS :

Bug 687419 "poor font rendering on X11 with gs 8.14".

The intention of this change is to improve the rendering quality
with TextAlphaBits > 1, but actually it modifies glyph rendering in all cases.

1.
The test file of the bug 687419 shows that we had 3
inconsistent requirements :
- the analigned glyph origin;
- uniform glyph size;
- and contrast stems.
Since an uniform glyph height looks critical,
we drop the analygned Y-coordinate of the glyph origin.
In other words, now we ever align
the Y-coordinate of the glyph origin to pixels.
This also reduces the number of glyph raster variants in the cache.

2.
The old interpolation algorithm could cause
significant distortions with flex-like serifs, which are not marked with flex.
The character 'L' in the test document of the bug 687419 demonstrates that.
If the path goes outside the interpolation interval
and have no turns, now we shift the "outer" parts rather than
breaking the path at extremal poles. (We wanted this change
a long ago but haven't got a strong reason for it.)

3.
The threshold in t1_hinter__is_stem_hint_applicable changed from
1/3 to 9/10. This makes more stems to recognize. The reason for that
is the same character "L".

4.
Allowed a blue_fuzz offset t1_hinter__is_stem_hint_applicable.
Debugged with comparefiles/tpc2.ps .

5. In the test file of the bug 687419 the small font has no
upper alignment zone for lowercase. This caused an uniform glyph height
due to wide and norrow horizontal stems aligned ocasionally
by top or bottom. Implemented a choice of the aligned edge
depending on the Y-coordinate of stem middle relative to
the glyph middle.

EXPECTED DIFFERENCES :

Almost all comparefiles render differently.

[src/gxchar.c 1.27.2.4, src/gxhintn.c 1.21.2.8, src/gxhintn.h 1.12.2.2]

2004-06-18 18:02 Igor Melichev

Porting recent changes from HEAD to GS_8_1X.

May 26-27 :
http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004502.html  (964)
Fix (pdfwrite) : Wrong /Matrix from /BP pdfmark.

http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004506.html  (965)
(pdfwrite) : Delaying the charproc insertion until it is accumulated.

http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004507.html  (966)
(pdfwrite) : 1. Implementing a dynamic recongnition for Type 3 charproc variations;
2. Bug : Viewer state could desynchronize when entering a charproc accumulation.

June 1-16 :
http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004533.html  (968)
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued).

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004534.html  (969)
High level devices may need a device color while executing stringwidth.

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004535.html  (970)
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 2).

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004536.html  (971)
Fix : A Cygwin/gcc warning

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004540.html  (973)
Fix (pdfwrite) : ConvertCMYKImagesToRGB crashed.

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004541.html  (974)
Fix (pdfwrite) : 1. After used a process color, continue using it for same client color space.
2. A bug in pdf_set_initial_color could miss some color commands.

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004542.html  (975)
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 3).

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004543.html  (976)
Bug 687487 "(pdfwrite) redundant ExtGState objects".

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004549.html  (980)
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 4).

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004553.html  (982)
Fix (pdfwrite) : Allow named object reference in the Action key of /ANN pdfmark.

http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004560.html  (986)
(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 5).

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

136-01.ps   (966)
260-01.ps     (966)
Bug687207.ps
Bug687242.ps
mspro.pdf
Popafinalrep.pdf
prob1.pdf   (966)
tpc2.ps     (966)
Type3stringwidth.ps
xes2ps-problem.pdf  (966)

[src/gdevpdf.c 1.67.2.9, src/gdevpdfb.c 1.18.2.3, src/gdevpdfd.c 1.27.2.4, src/gdevpdfg.c 1.31.2.4, src/devs.mak 1.91.2.8, src/gdevpdfg.h 1.21.2.3, src/gdevpdfi.c 1.45.2.5, src/gdevpdfj.c 1.24.2.5, src/gdevpdfm.c 1.28.2.5, src/gdevpdfo.c 1.19.2.7, src/gdevpdfo.h 1.16.2.3, src/gdevpdfp.c 1.30.2.5, src/gdevpdfu.c 1.40.2.7, src/gdevpdfx.h 1.68.2.7, src/gdevpdte.c 1.33.2.10, src/gdevpdtf.c 1.25.2.5, src/gdevpdtf.h 1.16.2.2, src/gdevpdti.c 1.14.2.4, src/gdevpdtt.c 1.43.2.8, src/gdevpdtt.h 1.14.2.3, src/gdevpsdi.c 1.25.2.2, src/gdevvec.h 1.11.2.2, src/gstext.c 1.11.2.4, src/gxpflat.c 1.5.2.2, src/lib.mak 1.126.2.8]

2004-06-18 15:42 Igor Melichev

Porting recent changes from HEAD to GS_8_1X.

May 28 :
http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004508.html  (967)
Fix (PDF interpreter) : Wrong processing of a big CIDToGIDMap.

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps 1.53.2.4]

2004-06-15 20:31 Igor Melichev

Fix (pdfwrite) : A wrong CFF string index randiomization.

DETAILS :

Propagates the recent patch from HEAD.

Bug 687507 "pdfwrite device closes with -15".

1. Randomization parameters for cff_string_index were computed wrongly,
causing the search to skip some items. As a consequence,
some strings were added to the table many times, causing
a groth of the table while CFF size estimation iterations,
and psf_write_type2_font returned error due to "offset > End_offset".

2. If an error happened writing a font after pdf_begin_fontfile is done,
unconditionally call pdf_end_fontfile to provide a consistent stream state.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtb.c 1.18.2.4, src/gdevpsf2.c 1.26.2.5, src/lib.mak 1.126.2.7]

2004-06-09 20:47 Igor Melichev

Fix (type 1 hinter) : an indeterministic bug in t1_hinter__simplify_representation.

DETAILS :

Bug 687508 "segfault with cvs head".

1. An old defect in the code :
when contour_count is greater than hint_count,
and the hinting is disabled by one axis,
random hints could appear,
causing indeterministic effects.

2. this->grid_fit_x ans this->grid_fit_y were erroneusely exchanged.

EXPECTED DIFFERENCES :

72dpi :

036-01.ps
Bug687044.ps
Faktura.pdf
kazmir.pdf
RealCities.pdf
test.pdf
xgfddg.pdf

[src/gxhintn.c 1.21.2.7]

2004-05-27 03:18 Ralph Giles

Handle some errors that could halt the regression run.

DETAILS:

When running a raster comparison, the test case generates a ShortDescription
that includes the modification date of the baseline raster date. If no such
file exists, the baseline gs is run to create an entry. However, if that
insertion attempt fails, there is no baseline raster for reference. While
the test case itself handled this properly, the ShortDescription logic did
not, throwing an error that terminated the whole run.

Also, makesum was returning '0' instead of None on failure, which was
incompatible with the use of its return value as a dbm key. It now
returns None in that case, and when it cannot stat the file argument
at all.

[toolbin/tests/gscheck_raster.py 1.3.2.4, toolbin/tests/gssum.py 1.5.2.3]

2004-05-25 10:44 Igor Melichev

Fix (pdfwrite) : Form XObject`s /BBox could contain reals in exponential format.

DETAILS :

Bug 687429 Form XObject`s /BBox may contain reals in exponential format.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c 1.28.2.4]

2004-05-25 09:24 Igor Melichev

Fix an MSVC compiler warning.

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c 1.33.2.9]

2004-05-24 23:31 Ralph Giles

Add a missing header include for gsutil.h which provides the prototype
for bytes_compare(). Corrects a gcc warning.

[src/devs.mak 1.91.2.7, src/gdevpdte.c 1.33.2.8]

2004-05-20 17:29 Igor Melichev

Fix (pdfwrite) : Add Encoding element even if the font has no glyph.

DETAILS :

Propagates the gdevpdte.c rev 1.56 change from HEAD.

Debugged with the test file of the bug 687464
"Problem converting from PS to PDF. 2 latin characters did not convert properly." :
different PDFs generated with URW fonts and with Soft Horizon fonts
rather none of them were embeded.

The old code did not add a glyph to Encoding if the PS font has no glyph defined.
Due to that, if the source encoding uses an instand glyph,
the instandard glyph was not written to Differences,
causing a standard glyph erroneusely appeared instead the instandard glyph.
With this patch an Encoding element and a ToUnicode element are created in any case :
either the glyph is defined in the PS font, or not.

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c 1.33.2.7]

2004-05-12 04:06 Ralph Giles

Propagate changes to the regression suite from HEAD.

[toolbin/tests/check_all.py 1.3.2.3, toolbin/tests/check_comments.py 1.2.4.3, toolbin/tests/check_dirs.py 1.6.2.3, toolbin/tests/check_docrefs.py 1.7.2.3, toolbin/tests/check_source.py 1.5.2.3, toolbin/tests/dump_testdb 1.4.2.2, toolbin/tests/fuzzy.c 1.9.2.2, toolbin/tests/get_baselines 1.2.4.2, toolbin/tests/gscheck_all.py 1.3.2.3, toolbin/tests/gscheck_fuzzypdf.py 1.5.2.3, toolbin/tests/gscheck_pdfwrite.py 1.13.2.3, toolbin/tests/gscheck_raster.py 1.3.2.3, toolbin/tests/gsconf.py 1.9.2.2, toolbin/tests/gssum.py 1.5.2.2, toolbin/tests/gstestgs.py 1.19.2.3, toolbin/tests/gstestutils.py 1.9.2.2, toolbin/tests/make_testdb 1.10.2.2, toolbin/tests/make_two_pdfversions 1.6.2.2, toolbin/tests/make_two_versions 1.10.2.2, toolbin/tests/revert_baseline 1.10.2.2, toolbin/tests/revert_pdfbaseline 1.8.2.2, toolbin/tests/run_nightly 1.17.2.2, toolbin/tests/run_regression 1.11.2.2, toolbin/tests/testdiff 1.2.2.2, toolbin/tests/testing.cfg.example 1.2.2.2, toolbin/tests/update_baseline 1.11.2.2, toolbin/tests/update_pdfbaseline 1.7.2.2]

2004-05-06 07:47 Ralph Giles

Limit the number of timing runs we're willing to do to detect the cache
size, preventing an infinite loop if the os timing calls never measure
appreciable elapsed time. After a patch from Patrick TJ McPhee.
Closes bug 687095.

DETAILS:

It looks like there's a bug in some versions of FreeBSD which cause
time_clear() to always return 0, even though the loop is being run.
This is clearly incorrect behaviour of clock() on these systems,
or the user is mistaken in debugging the problem, since we've been
unable to reproduce. But in either case our code is arguably wrong.

The later measurements will obviously not detect a nonlinearity if
the timing loop continues to return 0. However, they will terminate
at MAX_BLOCK (4MB) and so the misdetection isn't egregious. It was
only the estimation of the measurement error that could loop forever.

[src/genarch.c 1.5.2.2]

2004-05-01 14:34 Ralph Giles

Also provide a dummy 'make check' target for the 8.1x autoconf build

[src/Makefile.in 1.24.2.4]

2004-04-03 18:52 Igor Melichev

Porting recent patches from HEAD to GS_8_1X (step B5) :

April 1-2 :

Fix : setcachedevice must not depend on a BuildChar color and on gx_show_text_retry.
http://www.ghostscript.com/pipermail/gs-cvs/2004-April/004378.html  (907)

Fix : MSVC6 compiler warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-April/004380.html  (908)

Fix : Cygwin/gcc compiler warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-April/004381.html  (909)

Fix (Type 1 hinter) : Skip empty hint ranges.
http://www.ghostscript.com/pipermail/gs-cvs/2004-April/004382.html  (910)

Fix (Type 1 hinter) : Skip empty hint ranges, improved.
http://www.ghostscript.com/pipermail/gs-cvs/2004-April/004383.html  (911)

Fix : Restoring the non-cache-device constraint in setcolor.
http://www.ghostscript.com/pipermail/gs-cvs/2004-April/004385.html  (912)

Fix (pdfwrite) : /XObject <<-1 0 R>> was written to a pattern dictionary.
http://www.ghostscript.com/pipermail/gs-cvs/2004-April/004386.html  (913)

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfj.c 1.24.2.4, src/gdevpdfo.c 1.19.2.6, src/gscolor2.c 1.14.2.2, src/gstext.c 1.11.2.3, src/gxccache.c 1.15.2.2, src/gxccman.c 1.7.2.3, src/gxchar.c 1.27.2.3, src/gxhintn.c 1.21.2.6, src/gxtext.h 1.10.2.2, src/isave.c 1.7.2.2]

2004-04-03 17:51 Igor Melichev

Porting recent patches from HEAD to GS_8_1X (step B4) :

March 25 (ported separately due to a rendering difference) :

Fix (Type 1 hinter) : Use a weaker condition for horizontal stem recognition.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004372.html  (904)

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

72 dpi :

251-01.ps
289-01.ps
455690.pdf
86554321.pdf
alphabet.ps
dave.pdf
NIL_0003.pdf
Openhuis_pdf_zw.pdf
prob.pdf"
RealCities.pdf
S2_Digitalproof-Forum_x3k.pdf
Svd.pdf
test.pdf
test2.pdf
test2a.pdf

300 dpi :

033-52-5873.pdf
289-01.ps
455690.pdf
86554321.pdf
alphabet.ps
bulletin.pdf
NIL_0003.pdf
Openhuis_pdf_zw.pdf
pdfopt_bug.pdf
prob.pdf
S2_Digitalproof-Forum_x3k.pdf
Svd.pdf
test.pdf
test2.pdf
test2a.pdf

[src/gxhintn.c 1.21.2.5]

2004-04-03 17:37 Igor Melichev

Porting recent patches from HEAD to GS_8_1X (step B3) :

March 12-31 :

Fix (pdfwrite) : XObject's resources were placed wrongly.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004335.html  (891)

Fix (pdfwrite) : Crash after adding a glyph over a preallocated limit of a CIDFontType 2.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004336.html  (892)

Fix (PDF interpreter) : CIDMap was wrongly created from CIDToGIDMap.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004337.html  (893)

Fix : A Cygwin/gcc warning.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004338.html  (894)

Fix (pdfwrite) : A floating point interrupt.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004345.html  (896)

Implementing is_monotonic for cubic interpolation functions.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004354.html  (899)

Fix (TT interpreter) : Subglyphs could be placed to wrong coordinates.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004355.html  (900)

Fix : GenericResourceDir was not listed in PermitFileReading.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004361.html  (902)

Fix (PDF interpreter) : Stack balance was broken when a CID font is not embedded.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004373.html  (905)

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

Bug687350.ps  (progression)
Bug687361.pdf  (progression)
Testform.v1.0.2.pdf (progression)

[lib/gs_init.ps 1.87.2.5, lib/gs_ttf.ps 1.28.2.3, lib/pdf_font.ps 1.53.2.3, src/gdevpdfm.c 1.28.2.3, src/gdevpdtc.c 1.17.2.4, src/gdevpdte.c 1.33.2.6, src/gdevpdtf.c 1.25.2.4, src/gdevpdtt.c 1.43.2.7, src/gdevvec.c 1.18.2.2, src/gstype42.c 1.30.2.3, src/gxfcopy.c 1.25.2.5, src/ttfmain.c 1.19.2.5, src/zpcolor.c 1.7.2.3]

2004-04-03 16:54 Igor Melichev

Porting recent patches from HEAD to GS_8_1X (step B2) :

March 1-11 :

Fix (type 1 hinter) : small resolutions caused a rangecheck.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004285.html  (863)

Fix (pdfwrite) : Floating point aritmetic applied to uninitialized data.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004290.html  (868)

Fix (pdfwrite) : Reject encryption options if no password is specified.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004291.html  (869)

Fix : "KeyLength" option name was misspelled in the documentation.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004292.html  (870)

Fix (pdfwrite) : Reject encryption options if no password is specified, improved.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004293.html  (871)

Fix : Cygwin/gcc warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004305.html  (877) (partial)

Fix (Type 2 charstrings) : More tolerance and conformity.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004313.html  (882)

Fix (pdfwrite) : Annotations encrypted with a wrong object id.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004314.html  (883)

Fix (PDF interpreter) : Wrong metrics when 2 font resources for same embeded font.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004315.html  (884)

Fix : Some Cygwin/gcc warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004328.html  (887)

Fix (pdfwrite) : Fall back to the default implementation when the output document can't handle current color.
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004331.html  (888)

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

Bug687311.pdf (progression)
Bug687361.pdf
EmbeddedFontCopies.pdf (progression)

[src/devs.mak 1.91.2.6, src/gdevpdf.c 1.67.2.8, src/gdevpdfd.c 1.27.2.3, src/gdevpdfi.c 1.45.2.4, src/gdevpdfm.c 1.28.2.2, src/gdevpdte.c 1.33.2.5, src/gdevpdtt.c 1.43.2.6, src/gstype2.c 1.25.2.2, src/gxhintn.c 1.21.2.4, doc/Ps2pdf.htm 1.51.2.10, lib/pdf_font.ps 1.53.2.2]

2004-04-03 10:55 Igor Melichev

Porting recent patches from HEAD to GS_8_1X (step B1) :

February 2004 :

Fix (pdfwrite) : provide a compatibility of TEXT_FROM_CHARS to GhostPCL.
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004127.html  (775)

Fix : Some Intel C compiler warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004149.html  (791)

Fix : Intel C and Cygwin/gcc compiler warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004158.html  (794)

Fix (pdfwrite) : Converting an image type 4 into imagemask, a wrong color was written.
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004210.html  (816)

Fix: Documented rounding formulas in the character processing.
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004211.html  (818)

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

Bug687361.pdf

[src/fapiufst.c 1.22.2.2, src/gdevpdfi.c 1.45.2.3, src/gdevpdtc.c 1.17.2.3, src/gdevpdtt.c 1.43.2.5, src/gxcht.c 1.11.2.1, src/gxdhtserial.c 1.3.2.1, src/gxfcopy.c 1.25.2.4, src/gxhintn.c 1.21.2.3, src/gxht.c 1.14.2.1, src/gxttfb.c 1.19.2.3, src/ttfmain.c 1.19.2.4]

2004-03-24 23:49 Ralph Giles

Make proper use of the SYS_TYPES_HAS_STDINT_TYPES define. Allows proper compilation on SunOS 5.9,
after a patch by Alex Cherepanov. Bug 687377.

[src/stdint_.h 1.1.2.3]

2004-03-24 08:38 Ralph Giles

Fix some Sun ONE Studio 7 compiler warnings (Solaris 8). Bug 687355.

DETAILS :

This propagates a patch by Igor Melichev from HEAD.
Bug 687355 "warnings on Solaris (ghostscript-8.14)".

This fixes all warnings which I understande, except
"implicit function declaration", which probably require
a Solaris-dependent fix to "memory_.h".

[src/gdevdevn.c 1.5.2.3, src/gdevijs.c 1.6.2.2, src/gdevnfwd.c 1.8.2.2, src/gdevpdfx.h 1.68.2.6, src/gdevpng.c 1.7.2.2, src/gdevpsd.c 1.4.2.2, src/gdevpsdu.c 1.17.2.2, src/gdevpsu.c 1.15.2.2, src/gdevxcf.c 1.5.2.1, src/gsdfilt.c 1.7.2.2, src/gximag3x.c 1.14.2.1, src/szlibd.c 1.5.2.2, src/ttfmain.c 1.19.2.3]

2004-03-24 07:30 Igor Melichev

Fix (pdfwrite) : TK was written into a charproc.

DETAILS :

Bug 687382 "fonts not printed with pdf 1.4".

EXPECTED DIFFERENCES :

None.
Ghostscript PDF interpreter appears insensible to it. Adobe does.

[src/gdevpdfg.c 1.31.2.3]

2004-03-22 01:39 Ralph Giles

SunOS 5.9 does not properly replace files with ln -sf. Unlink the
existing files instead. Bug 687378.

[autogen.sh 1.3.6.1]

2004-03-10 05:15 Raph Levien

Fix problem with dci.max_components introduced with DeviceN changes. Closes bug #677383.
Fix problem with dci.max_components introduced with DeviceN changes.
Closes bug #677383.

[src/gdevijs.c 1.6.2.1]

2004-02-25 20:38 Russell Lang

Fixes bug 687317.
Fix pdfwrite allowable Permissions for EncryptionR=2.
Fix default Permissions.

DETAILS:
The code was assuming that the extra permissions should be 0's,
when in fact they should be 1's.  The fixed code is a bit more
conservative and requires that all reserved bits match the PDF
specification. Set the default permissions to -4 which allows
everything.

[src/gdevpdf.c 1.67.2.7]


Version 8.14 (2004-02-20)

This is the fourth release of the stable 8.1x series of AFPL Ghostscript. It fixes a common problem view some files with antialiased output; we recommend that all users upgrade to this version. There are also a number of other minor fixes.

New features in this version :

Incompatible changes

There are no known incompatible changes from the previous release.

Changelog

2004-02-20 13:39 Ralph Giles

Update release date for final 8.14.

[doc/API.htm 1.31.2.6, doc/Bug-form.htm 1.34.2.6, doc/Bug-info.htm 1.32.2.6, doc/C-style.htm 1.40.2.6, doc/Commprod.htm 1.26.2.6, doc/Copying.htm 1.25.2.6, doc/DLL.htm 1.27.2.6, doc/Deprecated.htm 1.6.2.6, doc/Details8.htm 1.5.2.9, doc/Develop.htm 1.110.2.8, doc/Devices.htm 1.63.2.6, doc/Drivers.htm 1.37.2.6, doc/Fonts.htm 1.35.2.6, doc/Helpers.htm 1.29.2.6, doc/History1.htm 1.25.2.6, doc/History2.htm 1.25.2.6, doc/History3.htm 1.25.2.6, doc/History4.htm 1.25.2.6, doc/History5.htm 1.27.2.6, doc/History6.htm 1.42.2.6, doc/History7.htm 1.30.2.6, doc/History8.htm 1.1.2.9, doc/Htmstyle.htm 1.30.2.6, doc/Install.htm 1.39.2.6, doc/Issues.htm 1.34.2.6, doc/Language.htm 1.68.2.7, doc/Lib.htm 1.28.2.6, doc/Maintain.htm 1.36.2.6, doc/Make.htm 1.63.2.6, doc/New-user.htm 1.44.2.6, doc/News.htm 1.123.2.10, doc/Projects.htm 1.49.2.6, doc/Ps-style.htm 1.23.2.6, doc/Ps2epsi.htm 1.27.2.6, doc/Ps2pdf.htm 1.51.2.9, doc/Psfiles.htm 1.43.2.6, doc/Readme.htm 1.48.2.8, doc/Release.htm 1.76.2.6, doc/Source.htm 1.25.2.6, doc/Tester.htm 1.25.2.6, doc/Testing.htm 1.17.2.6, doc/Unix-lpr.htm 1.25.2.6, doc/Use.htm 1.81.2.6, doc/Xfonts.htm 1.25.2.6, doc/gs-vms.hlp 1.24.2.4, man/dvipdf.1 1.22.2.6, man/font2c.1 1.22.2.6, man/gs.1 1.23.2.6, man/gslp.1 1.22.2.6, man/gsnd.1 1.22.2.6, man/pdf2dsc.1 1.21.2.6, man/pdf2ps.1 1.23.2.6, man/pdfopt.1 1.21.2.6, man/pf2afm.1 1.22.2.6, man/pfbtopfa.1 1.23.2.6, man/printafm.1 1.22.2.6, man/ps2ascii.1 1.21.2.6, man/ps2epsi.1 1.20.2.6, man/ps2pdf.1 1.27.2.6, man/ps2pdfwr.1 1.26.2.6, man/ps2ps.1 1.29.2.6, man/wftopfa.1 1.22.2.6, src/version.mak 1.60.2.7]

2004-02-17 15:00 Igor Melichev

Fix : MSVC7 wrongly optimizes zpcolor.c .

DETAILS :

It's an aliasing problem in the optimizer.
See comment in code.

EXPECTED DIFFERENCES :

None.

[src/int.mak 1.108.2.3, src/zpcolor.c 1.7.2.2]

2004-02-14 00:38 Ralph Giles

Update changelogs.

[doc/Changes.htm 1.43.2.5, doc/Details.htm 1.1.2.5, doc/Details8.htm 1.5.2.8, doc/History8.htm 1.1.2.8 ]

2004-02-14 00:24 Ralph Giles

add some more new autotools products to .cvsignore

[ijs/.cvsignore 1.2.2.2]

2004-02-14 00:23 Ralph Giles

add new autotools products to .cvsignore

[ijs/.cvsignore 1.2.2.1]

2004-02-14 00:09 Ralph Giles

Bump the release date in the source

[doc/API.htm 1.31.2.5, doc/Bug-form.htm 1.34.2.5, doc/Bug-info.htm 1.32.2.5, doc/C-style.htm 1.40.2.5, doc/Commprod.htm 1.26.2.5, doc/Copying.htm 1.25.2.5, doc/DLL.htm 1.27.2.5, doc/Deprecated.htm 1.6.2.5, doc/Details8.htm 1.5.2.7, doc/Develop.htm 1.110.2.7, doc/Devices.htm 1.63.2.5, doc/Drivers.htm 1.37.2.5, doc/Fonts.htm 1.35.2.5, doc/Helpers.htm 1.29.2.5, doc/History1.htm 1.25.2.5, doc/History2.htm 1.25.2.5, doc/History3.htm 1.25.2.5, doc/History4.htm 1.25.2.5, doc/History5.htm 1.27.2.5, doc/History6.htm 1.42.2.5, doc/History7.htm 1.30.2.5, doc/History8.htm 1.1.2.7, doc/Htmstyle.htm 1.30.2.5, doc/Install.htm 1.39.2.5, doc/Issues.htm 1.34.2.5, doc/Language.htm 1.68.2.6, doc/Lib.htm 1.28.2.5, doc/Maintain.htm 1.36.2.5, doc/Make.htm 1.63.2.5, doc/New-user.htm 1.44.2.5, doc/Projects.htm 1.49.2.5, doc/Ps-style.htm 1.23.2.5, doc/Ps2epsi.htm 1.27.2.5, doc/Ps2pdf.htm 1.51.2.8, doc/Psfiles.htm 1.43.2.5, doc/Readme.htm 1.48.2.7, doc/Release.htm 1.76.2.5, doc/Source.htm 1.25.2.5, doc/Tester.htm 1.25.2.5, doc/Testing.htm 1.17.2.5, doc/Unix-lpr.htm 1.25.2.5, doc/Use.htm 1.81.2.5, doc/Xfonts.htm 1.25.2.5, doc/gs-vms.hlp 1.24.2.3, man/dvipdf.1 1.22.2.5, man/font2c.1 1.22.2.5, man/gs.1 1.23.2.5, man/gslp.1 1.22.2.5, man/gsnd.1 1.22.2.5, man/pdf2dsc.1 1.21.2.5, man/pdf2ps.1 1.23.2.5, man/pdfopt.1 1.21.2.5, man/pf2afm.1 1.22.2.5, man/pfbtopfa.1 1.23.2.5, man/printafm.1 1.22.2.5, man/ps2ascii.1 1.21.2.5, man/ps2epsi.1 1.20.2.5, man/ps2pdf.1 1.27.2.5, man/ps2pdfwr.1 1.26.2.5, man/ps2ps.1 1.29.2.5, man/wftopfa.1 1.22.2.5, src/version.mak 1.60.2.6]

2004-02-14 00:06 Ralph Giles

Update release notes now that we've committed two scoops of bug fixes.
Remove the 'open bugs' list since it's not particularly accurate anyway.
Bump the release date for the second release candidate.

[doc/News.htm 1.123.2.9]

2004-02-13 19:57 Ray Johnston

Fix .gethalftone to prevent /undefinedresource or other error from being
left in the $error dict. Seen with UnusualFontMatrix.ps when running under
startjob encapsulation. Same as main branch rev 1.103

[lib/gs_init.ps 1.87.2.4]

2004-02-13 19:54 Ray Johnston

Fix large stack consumption with pdfwrite when a CFF had many glyphs and
also fix CFF mangling when an Encoding uses 256 glyphs. Brings the rev
of gdevpsf2.c up to 1.30 on main branch.

[src/gdevpsf.h 1.22.2.3, src/gdevpsf2.c 1.26.2.4]

2004-02-13 19:45 Ray Johnston

Fix (PDF interpreter) : CropBox computed wrongly.  Bug 687244

[lib/pdf_main.ps 1.71.2.2]

2004-02-13 19:43 Ray Johnston

Fix for fonts being displayed using .notdef character (empty boxes or other
appearance). While the test file doesn't follow the PDF 1.3 or later manual
recommendations for providing a [1,0] cmap for an embedded symbolic TT font,
Adobe Acrobat Reader can display these characters. When the 'post' table
doesn't provide the glyphs required by the /Differences list, try another
cmap [3,0] to get the correct glyph (names and glyph #'s). Bug #686959 for
customer #1060.

Also add in sign extension for 64-bit platforms.

These bring this up to rev 1.36 of the main branch.

[lib/gs_ttf.ps 1.28.2.2]

2004-02-13 19:19 Ray Johnston

Add "pa4" page size requested by a user. This is the intersection of
a4 and letter page size, i.e., a4 width and letter length. Bug #553187.
Same as main branch rev 1.14

[lib/gs_statd.ps 1.11.2.2]

2004-02-13 19:18 Ray Johnston

Fix for bug 617077 and other PageSize matching issues. Corresponds to main
branch rev 1.15

[src/zmedia2.c 1.9.2.1]

2004-02-13 19:13 Ray Johnston

Fix InputAttributes initialization to have the default page size in slot
0, and all page sizes known in statusdict/.pagetypenames included with
the 'fit any' pagesize range last. Fixes bug #617077 and other files
that expect slot 0 to be a valid 2 element PageSize corresponding to the
default.

Also Fix setpagedevice so that the Default Halftone is used. Fixes bug
#687199.

[lib/gs_setpd.ps 1.18.2.1]

2004-02-13 19:08 Ray Johnston

Fix to prevent setdistillerparams from erasing the page device or reset
the page device parameters. Fixes bugs 563287 and 607425.
Same as rev 1.37 on main branch.

[lib/gs_pdfwr.ps 1.31.2.2]

2004-02-13 19:06 Ray Johnston

Fix: The (more or less undocumented) superexec operator is supposed to
allow "readonly" directories to be amended. Bug #674421.
Same as rev 1.7 on main branch.

[src/zgeneric.c 1.6.2.1]

2004-02-13 19:05 Ray Johnston

Fix for "687252 subfiledecode errors on includes greater than the
size of a uint". The actual problem is a missing required parameter:
EODCount. However Adobe once again ignores the missing parameter and
what is specified in the PRLM-3rd. Same as rev 1.10 on main branch.

[src/zfilter.c 1.9.2.1]

2004-02-13 19:03 Ray Johnston

Fix : GS_LIB_DEFAULT was wrong on OpenVMS. Fixes bug 687258.

[src/openvms.mak 1.30.2.2]

2004-02-13 19:00 Ray Johnston

Allow auto-inline optimization with MSVC. Same as rev 1.14 on main branch.

[src/msvccmd.mak 1.12.2.1]

2004-02-13 18:51 Ray Johnston

Fix for 687247 x11 device fails with CMYK on 8bit display.

Corresponds to rev 1.18 on main branch.

[src/gxcmap.c 1.14.2.3]

2004-02-13 18:49 Ray Johnston

Fix incorrect handling of the '\' escape character in the filenameforall
implementation on Windwows. Fixes bug #687151. Also fix logic in the
.scanfontdir that relied on the incorrect filenameforall implementation.

Also incorporate fix to gs_fonts.ps for 687220: Remove spurious stack
adjustment that caused /unmatchedmark when the font was loaded from
Resource/Fonts/

Corresponds to main branch rev 1.46 gs_fonts.ps and rev 1.22 gp_ntfs.c

[lib/gs_fonts.ps 1.28.2.2, src/gp_ntfs.c 1.18.2.2]

2004-02-13 18:45 Ray Johnston

Fix problems with the "image" device when the palette is an 8-bit gray
palette (uses the image8 device with num_components == 1). Since the
DeviceN changes, changing num_components requires also setting the
gray_index value appropriately. Also the rgb to color mapping function
did not allow for num_components == 1 and used uninitialized values for
the green and blue comonents. Fixes bugs 458261, 686909 and 687204.
Corresponds to rev 1.7 gdevmem.c and rev 1.5 gsdevmem.c on main branch.

[src/gdevmem.c 1.6.2.1, src/gsdevmem.c 1.4.2.1]

2004-02-13 18:41 Ray Johnston

Fix for Bug 687255  pcl output shifted to bottom of page.  Correct
the order of the PCL commands at the start of page for the ljet devices.
Corresponds to rev 1.10 changes on main branch.

[src/gdevdljm.c 1.8.2.3]

2004-02-13 18:39 Ray Johnston

Check for hypot() availability on the configure step, fix the hypot()
replacement macro, and deal with MSVC specially.  Fixes bug 687238.

[src/configure.ac 1.28.2.7, src/math_.h 1.5.2.1]

2004-02-13 08:32 Igor Melichev

pdfwrite : NoEncrypt option by a special customer request.

DETAILS :

This is a port of
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004159.html
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004160.html
from HEAD.

The implementation isn't fool proof : an inaccurate specification
may generate an inconforming document.

The specified key is not encrypted in any dictionary.
The specification must use an external representation :
a name to be prepended with slash, a string to be bracketed, and so on.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c 1.67.2.6, src/gdevpdfo.c 1.19.2.5, src/gdevpdfp.c 1.30.2.4, src/gdevpdfu.c 1.40.2.6, src/gdevpdfx.h 1.68.2.5]

2004-02-12 17:11 Ralph Giles

Update the Changelogs.

[doc/Changes.htm 1.43.2.4, doc/Details.htm 1.1.2.4, doc/Details8.htm 1.5.2.6, doc/History8.htm 1.1.2.6]

2004-02-12 16:29 Ralph Giles

Use the official macro definition for 'rm' in the autoconf makefile.

[src/Makefile.in 1.24.2.3]

2004-02-12 16:21 Ralph Giles

Correct an additional version number and date.

[doc/gs-vms.hlp 1.24.2.2]

2004-02-12 16:04 Ralph Giles

Bump release date.

[doc/API.htm 1.31.2.4, doc/Bug-form.htm 1.34.2.4, doc/Bug-info.htm 1.32.2.4, doc/C-style.htm 1.40.2.4, doc/Commprod.htm 1.26.2.4, doc/Copying.htm 1.25.2.4, doc/DLL.htm 1.27.2.4, doc/Deprecated.htm 1.6.2.4, doc/Details8.htm 1.5.2.5, doc/Develop.htm 1.110.2.6, doc/Devices.htm 1.63.2.4, doc/Drivers.htm 1.37.2.4, doc/Fonts.htm 1.35.2.4, doc/Helpers.htm 1.29.2.4, doc/History1.htm 1.25.2.4, doc/History2.htm 1.25.2.4, doc/History3.htm 1.25.2.4, doc/History4.htm 1.25.2.4, doc/History5.htm 1.27.2.4, doc/History6.htm 1.42.2.4, doc/History7.htm 1.30.2.4, doc/History8.htm 1.1.2.5, doc/Htmstyle.htm 1.30.2.4, doc/Install.htm 1.39.2.4, doc/Issues.htm 1.34.2.4, doc/Language.htm 1.68.2.5, doc/Lib.htm 1.28.2.4, doc/Maintain.htm 1.36.2.4, doc/Make.htm 1.63.2.4, doc/New-user.htm 1.44.2.4, doc/News.htm 1.123.2.8, doc/Projects.htm 1.49.2.4, doc/Ps-style.htm 1.23.2.4, doc/Ps2epsi.htm 1.27.2.4, doc/Ps2pdf.htm 1.51.2.7, doc/Psfiles.htm 1.43.2.4, doc/Readme.htm 1.48.2.6, doc/Release.htm 1.76.2.4, doc/Source.htm 1.25.2.4, doc/Tester.htm 1.25.2.4, doc/Testing.htm 1.17.2.4, doc/Unix-lpr.htm 1.25.2.4, doc/Use.htm 1.81.2.4, doc/Xfonts.htm 1.25.2.4, man/dvipdf.1 1.22.2.4, man/font2c.1 1.22.2.4, man/gs.1 1.23.2.4, man/gslp.1 1.22.2.4, man/gsnd.1 1.22.2.4, man/pdf2dsc.1 1.21.2.4, man/pdf2ps.1 1.23.2.4, man/pdfopt.1 1.21.2.4, man/pf2afm.1 1.22.2.4, man/pfbtopfa.1 1.23.2.4, man/printafm.1 1.22.2.4, man/ps2ascii.1 1.21.2.4, man/ps2epsi.1 1.20.2.4, man/ps2pdf.1 1.27.2.4, man/ps2pdfwr.1 1.26.2.4, man/ps2ps.1 1.29.2.4, man/wftopfa.1 1.22.2.4, src/gscdef.c 1.33.2.3, src/version.mak 1.60.2.5]

2004-02-12 15:24 Igor Melichev

Updating News.ntm .

[doc/News.htm 1.123.2.7]

2004-02-12 12:11 Igor Melichev

Fix (pdfwrite) : Charproc can change scale before calling setcachedevice.

DETAILS :

Bug 687290 "pdfwrite generate too large glyphs".

To know that CTM changed by a charproc before setcachedevice or setcharwidth,
we set identity CTM before entering the charproc.
If setcachedevice or setcharwidth decides to fall back to
the default implementation, we restore the CTM in there.

The condition in gdevpdtt.c 1931 is changed,
causing minor differences with Bug687044.ps and muur.eps .

We found that a further improvement would be useful for
a better handling of a composite font with a Type 3 descendent.
Opened the new bug 687298 about this issue.
Differences with Bug687044.ps and muur.eps may be related to it.

EXPECTED DIFFERENCES :

A minor shift of glyphs with pdfwrite :

Bug687044.ps
Bug687290.ps
muur.eps

[src/gdevpdf.c 1.67.2.5, src/gdevpdfx.h 1.68.2.4, src/gdevpdtt.c 1.43.2.4]

2004-02-11 12:43 Ralph Giles

Add the corresponding autogen.sh script from ijs cvs HEAD.

[ijs/autogen.sh 1.1.2.1]

2004-02-11 12:42 Ralph Giles

Update our version of ijs to the 0.35 release, which includes libtool
support for building a separate shared library version. Bug 687278.

[ijs/Makefile.am 1.1.2.1, ijs/Makefile.in 1.1.6.2, ijs/README 1.1.6.1, ijs/configure.ac 1.1.2.1, ijs/configure.in 1.1.6.1, ijs/ijs-config.1 1.1.2.1, ijs/ijs.c 1.1.6.1, ijs/ijs.h 1.1.6.1, ijs/ijs.pc.in 1.1.2.1, ijs/ijs_client.c 1.1.6.1, ijs/ijs_client.h 1.1.6.1, ijs/ijs_client_example.c 1.1.6.1, ijs/ijs_exec_unix.c 1.1.6.1, ijs/ijs_exec_win.c 1.1.6.1, ijs/ijs_server.c 1.1.6.1, ijs/ijs_server.h 1.1.6.1, ijs/ijs_server_example.c 1.1.6.1, ijs/ijs_spec.pdf 1.1.6.1, ijs/ijs_spec.sgml 1.1.6.1, ijs/install-sh 1.1.6.1, ijs/unistd_.h 1.1.6.1]

2004-02-02 09:02 Igor Melichev

pdfwrite : Implementing the PDF 1.4 encryption, step 14.

DETAILS :

Elements of pdfmark elements were not encryptrd.

Since gs/lib/gs_pdfwr.ps serializes pdfmark elements,
we would like to encrypt them before the serialization.
However it would require to implement a new PS operator to pass the
encription keys from the device to the PDF interpreter.
Since this way appears cumbersome, we decided to
unserialize data in the device. For doing that we implement
a simple parser in pdf_put_composite.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c 1.40.2.5]

2004-01-30 23:15 Ralph Giles

Update test scripts with changes from HEAD. This includes copyright header corrections for files
that weren't updated to the new generic header and some bugfixes.

[toolbin/tests/check_all.py 1.3.2.2, toolbin/tests/check_comments.py 1.2.4.2, toolbin/tests/check_dirs.py 1.6.2.2, toolbin/tests/check_docrefs.py 1.7.2.2, toolbin/tests/check_source.py 1.5.2.2, toolbin/tests/gscheck_all.py 1.3.2.2, toolbin/tests/gscheck_fuzzypdf.py 1.5.2.2, toolbin/tests/gscheck_pdfwrite.py 1.13.2.2, toolbin/tests/gscheck_raster.py 1.3.2.2, toolbin/tests/gsconf.py 1.9.2.1, toolbin/tests/gssum.py 1.5.2.1, toolbin/tests/gstestgs.py 1.19.2.2, toolbin/tests/gstestutils.py 1.9.2.1]

2004-01-30 08:44 Russell Lang

Update copyright date for Windows release to 2004.

[src/dwsetup.rc 1.10.2.1, src/winint.mak 1.18.2.2]

2004-01-30 07:31 Ralph Giles

Correct the link to History8.htm.

[doc/Readme.htm 1.48.2.5]

2004-01-30 00:24 Ralph Giles

Change some copyright headers that had been missed during original update
to the unified notice.

[src/gdevatx.c 1.8.2.1, src/gdevdjet.c 1.10.2.1, src/gdevdljm.c 1.8.2.2, src/gdevdljm.h 1.7.2.1, src/gsovrc.c 1.3.2.1, src/gsovrc.h 1.2.2.1, src/gxoprect.c 1.4.2.1, src/gxoprect.h 1.1.2.1]

2004-01-29 23:43 Ralph Giles

Link to History8.htm in the list of history files. Patch from Alexei Podtelez.

[doc/Readme.htm 1.48.2.4]

2004-01-29 14:48 Igor Melichev

Updating News.ntm .

[doc/News.htm 1.123.2.6, doc/Ps2pdf.htm 1.51.2.6]

2004-01-29 14:15 Igor Melichev

Porting recent pdfwrite patches from HEAD to GS_8_1X (step 6, final) :
pdfwrite : Implementing the PDF 1.4 encryption, step 13.

DETAILS :

1. Disable Encryption version 2 revision 2 with KeyLength > 40
   due to an incompatibility to many viewers.
2. Improves the error message format.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c 1.67.2.4]

2004-01-29 14:09 Igor Melichev

Porting recent pdfwrite patches from HEAD to GS_8_1X (step 5) :
Fix (the new TT interpreter) : A bad pointer enumerated relocating gx_ttfReader.

DETAILS :

gx_ttfReader::pfont from a global to a local memory.
Now we set it to a non-NULL value only during a TT data
access, when the garbager is not invoked.

EXPECTED DIFFERENCES :

None.

[src/gstype42.c 1.30.2.2, src/gxccman.c 1.7.2.2, src/gxttfb.c 1.19.2.2, src/gxttfb.h 1.9.2.2]

2004-01-29 13:17 Igor Melichev

Porting recent pdfwrite patches from HEAD to GS_8_1X (step 4) :

Fix (type 1 hinter) : Wrong outline with a huge scale.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004022.html

pdfwrite : Merge redundant images (continued).
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004027.html

pdfwrite : Implementing the PDF 1.4 encryption, step 12.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004029.html

Fix (pdfwrite) : Type 3 characters were missed in the Widths array.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004043.html

Fix : A bug in ttfmain.c caused a heap damage.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004048.html

Fix (the new TT interpreter) : A bad pointer enumerated relocating gs_text_enum_s.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004053.html

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c 1.19.2.4, src/gdevpdfu.c 1.40.2.4, src/gdevpdte.c 1.33.2.4, src/gstext.c 1.11.2.2, src/gxfcache.h 1.10.2.3, src/gxhintn.c 1.21.2.2, src/lib.mak 1.126.2.6, src/ttfmain.c 1.19.2.2]

2004-01-29 12:08 Igor Melichev

Porting recent pdfwrite patches from HEAD to GS_8_1X (step 3) :

pdfwrite : Implementing the PDF 1.4 encryption, step 1.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004001.html

pdfwrite : Implementing the PDF 1.4 encryption, step 2.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004002.html

pdfwrite : Implementing the PDF 1.4 encryption, step 3.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004004.html

pdfwrite : Implementing the PDF 1.4 encryption, step 4.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004005.html

pdfwrite : Implementing the PDF 1.4 encryption, step 5.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004007.html

pdfwrite : Implementing the PDF 1.4 encryption, step 6.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004008.html

pdfwrite : Implementing the PDF 1.4 encryption, step 7.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004009.html

pdfwrite : Implementing the PDF 1.4 encryption, step 8.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004015.html

Fix (PDF interpreter) Bug in encryption revision 3.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004016.html

pdfwrite : Implementing the PDF 1.4 encryption, step 9.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004017.html

pdfwrite : Implementing the PDF 1.4 encryption, step 10 - beta release.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004018.html

pdfwrite : Implementing the PDF 1.4 encryption, step 11.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/004021.html

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm 1.51.2.5, lib/pdf_sec.ps 1.11.2.2, src/devs.mak 1.91.2.5, src/gdevpdf.c 1.67.2.3, src/gdevpdfc.c 1.31.2.4, src/gdevpdfj.c 1.24.2.3, src/gdevpdfo.c 1.19.2.3, src/gdevpdfo.h 1.16.2.2, src/gdevpdfp.c 1.30.2.3, src/gdevpdfu.c 1.40.2.3, src/gdevpdfx.h 1.68.2.3, src/gdevpdtb.c 1.18.2.3, src/gdevpdtf.c 1.25.2.3, src/gdevpdti.c 1.14.2.3, src/gdevpdtw.c 1.16.2.2, src/gdevpdtw.h 1.2.2.2, src/sarc4.c 1.8.2.1, src/sarc4.h 1.4.2.1]

2004-01-29 11:20 Igor Melichev

Porting recent pdfwrite patches from HEAD to GS_8_1X (step 2) :

[ A correction : The log message of the previous patch missed some patches :

  Fix (pdfwrite) : Color space resource was not added to Resources of a pattern object.
  http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003924.html

  Fix : A GCC compiler error.
  http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003937.html

  Fix (pdfwrite) : A big stack consumption writing a CFF with many glyphs.
  http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003980.html
]

Fix (pdfwrite) : Improving heuristics in the compression chooser.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003981.html

Fix (pdfwrite) : Mark copied font's glyph names when reclaiming memory.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003982.html

Fix (pdfwrite) : A mangled CFF was written when an Encoding uses 256 glyphs.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003987.html

pdfwrite : Merge redundant images.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003988.html
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003989.html

Fix (pdfwrite) : A misprint in the previous patch.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003990.html

Fix (pdfwrite) : Adobe glitches with a small FontMatrix.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003995.html

Fix (pdfwrite) : Cygwin/gcc compiler warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003996.html

pdfwrite : Implementing the file ID.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003999.html

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

pdfwrite differences from the patch 003981.html :

adesso2.pdf
adesso5.pdf
Altona-Testsuite_p2_S_x3.pdf
Altona.Page_3.2002-09-27.pdf
BEST8-99-Path.fh7.pdf
besttest.pdf
dina3_watermark.pdf
DisplayedGood.pdf
DisplayedWrong.pdf
Faktura.pdf
Fixed_Original.pdf
foo.pdf
H00216q.pdf
kazmir.pdf
loremIpsum.pdf
MagicEye.pdf
Original.pdf
S2_Digitalproof-Forum_x3k.pdf
si_tg_brochure.pdf
test.pdf

pdfwrite differences from the patch 003995.html :

Bug687207.ps

[doc/Ps2pdf.htm 1.51.2.4]

2004-01-29 10:54 Igor Melichev

Porting recent pdfwrite patches from HEAD to GS_8_1X (step 2) :

[ A correction : The log message of the previous patch missed some patches :

  Fix (pdfwrite) : Color space resource was not added to Resources of a pattern object.
  http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003924.html

  Fix : A GCC compiler error.
  http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003937.html

  Fix (pdfwrite) : A big stack consumption writing a CFF with many glyphs.
  http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003980.html
]

Fix (pdfwrite) : Improving heuristics in the compression chooser.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003981.html

Fix (pdfwrite) : Mark copied font's glyph names when reclaiming memory.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003982.html

Fix (pdfwrite) : A mangled CFF was written when an Encoding uses 256 glyphs.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003987.html

pdfwrite : Merge redundant images.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003988.html
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003989.html

Fix (pdfwrite) : A misprint in the previous patch.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003990.html

Fix (pdfwrite) : Adobe glitches with a small FontMatrix.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003995.html

Fix (pdfwrite) : Cygwin/gcc compiler warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003996.html

pdfwrite : Implementing the file ID.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003999.html

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

pdfwrite differences from the patch 003981.html :

adesso2.pdf
adesso5.pdf
Altona-Testsuite_p2_S_x3.pdf
Altona.Page_3.2002-09-27.pdf
BEST8-99-Path.fh7.pdf
besttest.pdf
dina3_watermark.pdf
DisplayedGood.pdf
DisplayedWrong.pdf
Faktura.pdf
Fixed_Original.pdf
foo.pdf
H00216q.pdf
kazmir.pdf
loremIpsum.pdf
MagicEye.pdf
Original.pdf
S2_Digitalproof-Forum_x3k.pdf
si_tg_brochure.pdf
test.pdf

pdfwrite differences from the patch 003995.html :

Bug687207.ps

[src/gdevpdf.c 1.67.2.2, src/gdevpdfb.c 1.18.2.2, src/gdevpdfd.c 1.27.2.2, src/gdevpdfi.c 1.45.2.2, src/gdevpdfj.c 1.24.2.2, src/gdevpdfo.c 1.19.2.2, src/gdevpdfp.c 1.30.2.2, src/gdevpdfu.c 1.40.2.2, src/gdevpdte.c 1.33.2.3, src/gdevpdtt.c 1.43.2.3, src/gdevpsds.c 1.9.2.1, src/devs.mak 1.91.2.4, src/gdevpdfg.h 1.21.2.2, src/gdevpdfo.h 1.16.2.1, src/gdevpdfx.h 1.68.2.2, src/gdevpdtt.h 1.14.2.2, src/gdevpsf2.c 1.26.2.3, src/gxfcopy.c 1.25.2.3, src/lib.mak 1.126.2.5, src/smd5.c 1.5.2.1, src/smd5.h 1.4.2.1]

2004-01-29 09:47 Igor Melichev

Porting recent pdfwrite patches from HEAD to GX_8_1X (step 1) :

Fix (pdfwrite) : Type 1,2 composite glyphs could point to wrong subglyphs.
http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003824.html

Fix (pdfwrite) : A temporary workaround for limitcheck writing a CFF with many glyphs.
http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003887.html

Fix (pdfwrite) : Wrote an invalid text matrix.
http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003923.html

Fix (pdfwrite) : Pattern resource was not added to Resources of a pattern object.
http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003925.html

Fix (pdfwrite) : Write a smaller Widths array.
http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003926.html

Fix : The character oversampling condition was wrong.
http://www.ghostscript.com/pipermail/gs-cvs/2003-December/003927.html

Fix (pdfwrite) : Empty clip was written into a charproc.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003977.html

Fix : Some of Sun ONE Studio 7 and Cygwin/gcc compiler warnings.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003978.html

Fix (pdfwrite) : A big stack consumption writing a CFF with many glyphs.
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003980.html

DETAILS :

Click a hyperlink above to get details of a particular patch.

EXPECTED DIFFERENCES :

pdfwrite progressions :
muur.eps
tpc2.ps

[src/gdevpdfc.c 1.31.2.3, src/gdevpdfg.c 1.31.2.2, src/gdevpdtc.c 1.17.2.2, src/gdevpdte.c 1.33.2.2, src/gdevpdtf.c 1.25.2.2, src/gdevpdti.c 1.14.2.2, src/gdevpdtt.c 1.43.2.2, src/gdevpsf2.c 1.26.2.2, src/gsfont.c 1.20.2.2, src/gxchar.c 1.27.2.2, src/gxfcopy.c 1.25.2.2, src/zfapi.c 1.48.2.3, src/zfont.c 1.8.2.2, src/devs.mak 1.91.2.3, src/gdevpsf.h 1.22.2.2, src/gxfcache.h 1.10.2.2, src/gxfont42.h 1.14.2.2, src/lib.mak 1.126.2.4]

2004-01-27 05:10 Ralph Giles

Pass on the CPPFLAGS settings from the configure script into GCFLAGS. Some users expect to be able
to add include paths through the environment this way. Suggestion from Len Makin.

[src/Makefile.in 1.24.2.2]

2004-01-20 19:14 Ralph Giles

Replace a fixed-filename tempfile fopen with gp_open_scratch_file() for improved robustness in the
pnga device. Part of the fix for bug 687243.

DETAILS:

This is an experimental device to preserve pdf transparency into a png rasterization and is
distinct from the pngalpha device. I doesn't actually work for me and so may be suffering
from bit rot; however the change compiles and should be correct.

[src/gdevpnga.c 1.6.2.2]

2004-01-20 01:29 Ralph Giles

Save the original filename template for use in the error message when mkstemp() fails. According
to the man page mkstemp() can clobber the contents of fname if it does not succeed. Part of the
fix for bug 687243.

[src/gp_unifs.c 1.13.2.3]

2004-01-19 23:20 Ralph Giles

Remove some very old scripts which contain /tmp races, a security risk should someone actually try to use them. Part of the fix for bug 687243.

[lib/pj-gs.sh 1.3.2.1, lib/sysvlp.sh 1.3.2.1]

2004-01-07 19:52 Ralph Giles

Unequivocally include stdlib.h in echogs.c to avoid a warning on the Sun ONE Studio 7 compiler as
reported in bug 687234.

DETAILS:

The code in echogs.c calls exit() which is defined in stdlib.h. However it was not including that
header (except) on VMS because of portability concerns, resulting in the reported 'implicit
function definition' warning. The echogs program must be available before genarch runs and the
std.h-based portability headers are available, so wide build support for this code is important.

However, such platforms are now very old and comments elsewhere in the code suggest that any
compiler supporting ANSI prototypes as we now require will also have a stdlib.h that defines
exit(). If this change causes a problem, #ifdef code similar to what was used in gp_unix.c can be
used instead.

[src/echogs.c 1.6.2.1]

2004-01-06 20:48 Ralph Giles

Add a copyright header to the configure script source.

[src/configure.ac 1.28.2.6]

2004-01-06 20:37 Ralph Giles

Correct a typo in the 64-bit type selection logic. Bug 687237.

[src/configure.ac 1.28.2.5]

2004-01-05 23:32 Ralph Giles

Fix some warnings reported by the Sun One Studio 7 compiler (and others). Bug 687228.

[src/devs.mak 1.91.2.2, src/gdevdevn.c 1.5.2.2, src/gdevpdfc.c 1.31.2.2, src/gdevpdtb.c 1.18.2.2, src/gdevpsu.c 1.15.2.1, src/gp_unifn.c 1.13.2.2, src/gsht.c 1.16.2.2, src/gxcmap.c 1.14.2.2, src/int.mak 1.108.2.2, src/lib.mak 1.126.2.3, src/zfapi.c 1.48.2.2, src/zfile.c 1.32.2.2]

2004-01-05 23:06 Ralph Giles

Correct a typo in the checks for stdint fixed-size types. This did not materially affect the
behavior of the configure script. Bug 687235.

[src/configure.ac 1.28.2.4]

2004-01-05 22:36 Ralph Giles

Bump the version number and date post-release.

[doc/News.htm 1.123.2.5, lib/gs_init.ps 1.87.2.3, src/gscdef.c 1.33.2.2, src/version.mak 1.60.2.4]

2004-01-03 18:21 Ralph Giles

Correct a line ending problem.

[src/gp_macio.c 1.20.2.2]


Version 8.13 (2003-12-31)

This is the third stable release in the 8.1x series. It fixes some build issues and a crashing bug with the ps2epsi but is otherwise identical to 8.12. Over the 8.11 release, it offers numerous bug fixes; other improvements include improved font rendering and colorspace handling, and unicode text support for high-level devices.

The following bug numbers were open at the time of the last release:

405501, 414947, 430175, 446344, 456692, 458261, 458780, 463688, 465936, 487460, 487953, 493348, 509829, 526099, 526491, 530011, 535366, 535932, 542629, 553187, 555072, 558151, 563287, 572865, 578865, 592160, 592837, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 626295, 628110, 629335, 634036, 634358, 645316, 651644, 656414, 667301, 669654, 674241, 674417, 674418, 677324, 677383, 677430, 680301, 681469, 685335, 686747, 686750, 686752, 686778, 686816, 686819, 686824, 686833, 686834, 686841, 686842, 686843, 686850, 686852, 686853, 686860, 686863, 686865, 686867, 686873, 686877, 686889, 686892, 686896, 686897, 686902, 686904, 686909, 686919, 686930, 686933, 686936, 686937, 686938, 686944, 686946, 686949, 686951, 686954, 686956, 686957, 686958, 686959, 686963, 686975, 686980, 686996, 686999, 687007, 687011, 687012, 687013, 687014, 687020, 687021, 687029, 687038, 687039, 687050, 687059, 687063, 687066, 687072, 687079, 687084, 687085, 687086, 687088, 687090, 687093, 687095, 687102, 687105, 687108, 687110, 687114, 687120, 687123, 687125, 687137, 687142, 687145, 687146, 687151, 687154, 687157, 687163, 687168, 687169, 687171, 687172, 687173, 687174, 687177, 687181, 687182, 687184, 687185, 687186, 687187, 687189, 687190, 687191.

Incompatible changes

There are no incompatible changes from the 8.12 release.

Changelog

2003-12-31 18:05 Ralph Giles

Add a clause to the license description for the Freetype License requirements.

[LICENSE 1.2.2.1]

2003-12-31 17:51 Ralph Giles

Add the text of the Freetype license and references to the freetype project to clarify our
compilance. The new truetype bytecode interpreter is based in part of code made available
as part of Freetype 1.

[doc/Develop.htm 1.110.2.4, doc/FTL.txt 1.1.2.1, doc/Language.htm 1.68.2.3]

2003-12-24 03:31 Ralph Giles

Correct a typo in the maintainer-clean target in the legacy unix makefiles. Thanks to William
Bader for catching this.

[src/unix-gcc.mak 1.42.2.1, src/unixansi.mak 1.30.2.2]

2003-12-23 00:06 Ralph Giles

Update changelog and release notes for the 8.13 release candidate.

[doc/Changes.htm 1.43.2.2, doc/Details.htm 1.1.2.2, doc/Details8.htm 1.5.2.3, doc/History8.htm 1.1.2.3, doc/News.htm 1.123.2.3]

2003-12-22 23:05 Ralph Giles

Update version and release date on the stable branch.

[doc/API.htm 1.31.2.2, doc/Bug-form.htm 1.34.2.2, doc/Bug-info.htm 1.32.2.2, doc/C-style.htm 1.40.2.2, doc/Commprod.htm 1.26.2.2, doc/Copying.htm 1.25.2.2, doc/DLL.htm 1.27.2.2, doc/Deprecated.htm 1.6.2.2, doc/Details8.htm 1.5.2.2, doc/Develop.htm 1.110.2.3, doc/Devices.htm 1.63.2.2, doc/Drivers.htm 1.37.2.2, doc/Fonts.htm 1.35.2.2, doc/Helpers.htm 1.29.2.2, doc/History1.htm 1.25.2.2, doc/History2.htm 1.25.2.2, doc/History3.htm 1.25.2.2, doc/History4.htm 1.25.2.2, doc/History5.htm 1.27.2.2, doc/History6.htm 1.42.2.2, doc/History7.htm 1.30.2.2, doc/History8.htm 1.1.2.2, doc/Htmstyle.htm 1.30.2.2, doc/Install.htm 1.39.2.2, doc/Issues.htm 1.34.2.2, doc/Language.htm 1.68.2.2, doc/Lib.htm 1.28.2.2, doc/Maintain.htm 1.36.2.2, doc/Make.htm 1.63.2.2, doc/New-user.htm 1.44.2.2, doc/Projects.htm 1.49.2.2, doc/Ps-style.htm 1.23.2.2, doc/Ps2epsi.htm 1.27.2.2, doc/Ps2pdf.htm 1.51.2.2, doc/Psfiles.htm 1.43.2.2, doc/Readme.htm 1.48.2.2, doc/Release.htm 1.76.2.2, doc/Source.htm 1.25.2.2, doc/Tester.htm 1.25.2.2, doc/Testing.htm 1.17.2.2, doc/Unix-lpr.htm 1.25.2.2, doc/Use.htm 1.81.2.2, doc/Xfonts.htm 1.25.2.2, man/dvipdf.1 1.22.2.2, man/font2c.1 1.22.2.2, man/gs.1 1.23.2.2, man/gslp.1 1.22.2.2, man/gsnd.1 1.22.2.2, man/pdf2dsc.1 1.21.2.2, man/pdf2ps.1 1.23.2.2, man/pdfopt.1 1.21.2.2, man/pf2afm.1 1.22.2.2, man/pfbtopfa.1 1.23.2.2, man/printafm.1 1.22.2.2, man/ps2ascii.1 1.21.2.2, man/ps2epsi.1 1.20.2.2, man/ps2pdf.1 1.27.2.2, man/ps2pdfwr.1 1.26.2.2, man/ps2ps.1 1.29.2.2, man/wftopfa.1 1.22.2.2]

2003-12-22 22:05 Ralph Giles

Bump the version number of the stable branch.

[doc/News.htm 1.123.2.2, lib/gs_init.ps 1.87.2.2, src/version.mak 1.60.2.2]

2003-12-22 21:19 Ralph Giles

Attempt to work around systems that do not have stdint.h but do have some stdint types in
sys/types.h which is universally included by our std.h. This code is untested.

[src/configure.ac 1.28.2.3, src/stdint_.h 1.1.2.2]

2003-12-20 17:15 Ralph Giles

Remove a duplicate semicolon at the end of statement.

[src/gxistate.h 1.15.2.2]

2003-12-20 17:00 Ralph Giles

Add a missing newline at the end of the file.

[src/zchar1.c 1.28.2.2]

2003-12-20 16:31 Ralph Giles

Correct some line endings. Thanks to Nelson Beebe for reporting this.

[src/gp_unifs.c 1.13.2.2]

2003-12-20 04:11 Ray Johnston

Fix a premature closedevice leading to a SEGV when a setpagedevice follows
a setdevice with the only reference to the device in the graphics state.
Bug #686909 and #687204 detected with ps2epsi.ps.

DETAILS:

the ps2epsi.ps sets an image device, then does a .setsafe which uses
setpagedevice to set .LockSafetyParams. Eventually setpagedevice results
in a call to gs_setdevice_no_init, but the reference count to the current
device is 1 so even though the device is not being changed, the device
was being closed (which freed the buffer and line pointers). Usually
the currentdevice reference count is > 1 since there is more than one
gstate containing a pointer to the device.

This has been broken since 8.10 when version 1.19 was released with
some changes to device finalization.

Note that ps2epsi.ps is extremely fragile and still doesn't work with
examples/alphabet.ps after the patch (due to the "clear cleardictstack
alphabetsave restore" logic at the end. This patch is ONLY for the SEGV.
IMO, ps2epsi really is a mess and needs to be scrapped and designed
properly.

[src/gsdevice.c 1.19.2.1]

2003-12-14 01:30 Alex Cherepanov

Fix MSVC debug targets: add explicit makefile specification.
Fix bug 687205.

DETAILS:
Debug targets have always been broken on Windows because nmake by 
default looks for "MAKEFILE" and fails. Until recently, the default
target was built without the -O2 flag and could be used for debugging.
This patch adds the correct filename explicitly to the debug target 
so it can be used instead.

[src/msvc32.mak 1.44.2.2]

2003-12-13 05:09 Ralph Giles

Remove another file no longer relevent.

[src/gxop1.h 1.5.2.1]

2003-12-13 04:42 Ralph Giles

Remove some files that are no longer current.

[src/gxhint1.c 1.5.2.1, src/gxhint2.c 1.6.2.1, src/gxhint3.c 1.7.2.1]

2003-12-12 22:35 Ralph Giles

Propagate recent portability fixes from the HEAD branch.

[doc/Develop.htm 1.110.2.2, src/configure.ac 1.28.2.2, src/idict.c 1.7.2.2, src/lib.mak 1.126.2.2, src/sjbig2.c 1.4.2.1, src/sjbig2.h 1.3.2.1, src/std.h 1.8.2.2, src/stdint_.h 1.1.2.1, src/stdpre.h 1.15.2.2, src/ttfsfnt.h 1.6.2.2]

2003-12-12 22:07 Ralph Giles

Update the GS_8_1X branch to the 8.12 release.

[Resource/CMap/ETHK-B5-H 1.1.4.1, Resource/CMap/ETHK-B5-V 1.1.4.1, Resource/CMap/ETen-B5-H 1.1.2.1, Resource/CMap/ETen-B5-UCS2 1.1.4.1, Resource/CMap/ETen-B5-V 1.1.2.1, Resource/CMap/ETenms-B5-H 1.1.4.1, Resource/CMap/ETenms-B5-V 1.1.4.1, Resource/CMap/Identity-H 1.1.4.1, Resource/CMap/Identity-V 1.1.4.1, Resource/ColorSpace/DefaultCMYK 1.2.2.1, Resource/ColorSpace/DefaultGray 1.2.2.1, Resource/ColorSpace/DefaultRGB 1.2.2.1, Resource/Decoding/Latin1 1.1.2.1, Resource/Decoding/StandardEncoding 1.1.4.1, Resource/Decoding/Unicode 1.1.2.1, doc/API.htm 1.31.2.1, doc/Bug-form.htm 1.34.2.1, doc/Bug-info.htm 1.32.2.1, doc/C-style.htm 1.40.2.1, doc/Changes.htm 1.43.2.1, doc/Commprod.htm 1.26.2.1, doc/Copying.htm 1.25.2.1, doc/DLL.htm 1.27.2.1, doc/Deprecated.htm 1.6.2.1, doc/Details.htm 1.1.2.1, doc/Details8.htm 1.5.2.1, doc/Develop.htm 1.110.2.1, doc/Devices.htm 1.63.2.1, doc/Drivers.htm 1.37.2.1, doc/Fonts.htm 1.35.2.1, doc/Helpers.htm 1.29.2.1, doc/History1.htm 1.25.2.1, doc/History2.htm 1.25.2.1, doc/History3.htm 1.25.2.1, doc/History4.htm 1.25.2.1, doc/History5.htm 1.27.2.1, doc/History6.htm 1.42.2.1, doc/History7.htm 1.30.2.1, doc/History8.htm 1.1.2.1, doc/Htmstyle.htm 1.30.2.1, doc/Install.htm 1.39.2.1, doc/Issues.htm 1.34.2.1, doc/Language.htm 1.68.2.1, doc/Lib.htm 1.28.2.1, doc/Maintain.htm 1.36.2.1, doc/Make.htm 1.63.2.1, doc/New-user.htm 1.44.2.1, doc/News.htm 1.123.2.1, doc/Projects.htm 1.49.2.1, doc/Ps-style.htm 1.23.2.1, doc/Ps2epsi.htm 1.27.2.1, doc/Ps2pdf.htm 1.51.2.1, doc/Psfiles.htm 1.43.2.1, doc/Readme.htm 1.48.2.1, doc/Release.htm 1.76.2.1, doc/Source.htm 1.25.2.1, doc/Tester.htm 1.25.2.1, doc/Testing.htm 1.17.2.1, doc/Unix-lpr.htm 1.25.2.1, doc/Use.htm 1.81.2.1, doc/Xfonts.htm 1.25.2.1, doc/gs-vms.hlp 1.24.2.1, icclib/icc.c 1.8.2.1, ijs/Makefile.in 1.1.6.1, lib/Fontmap 1.1.10.1, lib/bdftops.ps 1.6.2.1, lib/dumphint 1.1.4.1, lib/dumphint.bat 1.1.4.1, lib/dumphint.ps 1.1.4.1, lib/font2c.ps 1.5.2.1, lib/gs_cidcm.ps 1.10.2.1, lib/gs_ciddc.ps 1.11.2.1, lib/gs_cidfn.ps 1.26.2.1, lib/gs_cspace.ps 1.5.2.1, lib/gs_devcs.ps 1.1.2.1, lib/gs_diskn.ps 1.4.2.1, lib/gs_fntem.ps 1.4.2.1, lib/gs_fonts.ps 1.28.2.1, lib/gs_frsd.ps 1.6.2.1, lib/gs_icc.ps 1.7.2.1, lib/gs_init.ps 1.87.2.1, lib/gs_lev2.ps 1.29.2.1, lib/gs_ll3.ps 1.18.2.1, lib/gs_pdfwr.ps 1.31.2.1, lib/gs_pfile.ps 1.4.2.1, lib/gs_res.ps 1.33.2.1, lib/gs_resst.ps 1.2.2.1, lib/gs_sepr.ps 1.2.2.1, lib/gs_statd.ps 1.11.2.1, lib/gs_stres.ps 1.2.2.1, lib/gs_ttf.ps 1.28.2.1, lib/gslp.ps 1.5.2.1, lib/pdf_base.ps 1.34.2.1, lib/pdf_draw.ps 1.66.2.1, lib/pdf_font.ps 1.53.2.1, lib/pdf_main.ps 1.71.2.1, lib/pdf_ops.ps 1.27.2.1, lib/pdf_rbld.ps 1.4.4.1, lib/pdf_sec.ps 1.11.2.1, lib/pdfopt.ps 1.16.2.1, lib/pdfwrite.ps 1.10.2.1, lib/pphs.ps 1.5.2.1, lib/ps2ascii.ps 1.7.2.1, lib/ps2epsi.ps 1.9.2.1, lib/wftopfa.ps 1.4.2.1, man/dvipdf.1 1.22.2.1, man/font2c.1 1.22.2.1, man/gs.1 1.23.2.1, man/gslp.1 1.22.2.1, man/gsnd.1 1.22.2.1, man/pdf2dsc.1 1.21.2.1, man/pdf2ps.1 1.23.2.1, man/pdfopt.1 1.21.2.1, man/pf2afm.1 1.22.2.1, man/pfbtopfa.1 1.23.2.1, man/printafm.1 1.22.2.1, man/ps2ascii.1 1.21.2.1, man/ps2epsi.1 1.20.2.1, man/ps2pdf.1 1.27.2.1, man/ps2pdfwr.1 1.26.2.1, man/ps2ps.1 1.29.2.1, man/wftopfa.1 1.22.2.1, src/Makefile.in 1.24.2.1, src/bcwin32.mak 1.27.2.1, src/configure.ac 1.28.2.1, src/devs.mak 1.91.2.1, src/dmmain.c 1.3.4.1, src/dmmain.r 1.1.4.1, src/dpmain.c 1.8.2.1, src/dscparse.c 1.12.2.1, src/dscparse.h 1.11.2.1, src/dvx-gcc.mak 1.23.2.1, src/dw32c.def 1.2.10.1, src/dwdll.c 1.5.2.1, src/dwimg.c 1.8.2.1, src/dwmain.c 1.12.2.1, src/dwmain32.def 1.2.10.1, src/dwmainc.c 1.14.2.1, src/dwnodll.c 1.4.2.1, src/dwsetup.def 1.2.8.1, src/dwtrace.h 1.4.2.1, src/dwuninst.def 1.2.8.1, src/dxmain.c 1.10.2.1, src/dxmainc.c 1.7.2.1, src/errors.h 1.7.2.1, src/fapi_ft.c 1.8.2.1, src/fapiufst.c 1.22.2.1, src/gdevbbox.c 1.11.2.1, src/gdevbit.c 1.6.2.1, src/gdevcgm.c 1.6.2.1, src/gdevdbit.c 1.8.2.1, src/gdevddrw.c 1.7.2.1, src/gdevddrw.h 1.2.2.1, src/gdevdevn.c 1.5.2.1, src/gdevdevn.h 1.2.4.1, src/gdevdflt.c 1.10.2.1, src/gdevdgbr.c 1.9.2.1, src/gdevdljm.c 1.8.2.1, src/gdevdsp.c 1.19.2.1, src/gdevepsc.c 1.9.2.1, src/gdevm32.c 1.4.2.1, src/gdevmrun.c 1.4.2.1, src/gdevnfwd.c 1.8.2.1, src/gdevp14.c 1.14.2.1, src/gdevpdf.c 1.67.2.1, src/gdevpdfb.c 1.18.2.1, src/gdevpdfc.c 1.31.2.1, src/gdevpdfd.c 1.27.2.1, src/gdevpdfg.c 1.31.2.1, src/gdevpdfg.h 1.21.2.1, src/gdevpdfi.c 1.45.2.1, src/gdevpdfj.c 1.24.2.1, src/gdevpdfm.c 1.28.2.1, src/gdevpdfo.c 1.19.2.1, src/gdevpdfp.c 1.30.2.1, src/gdevpdfu.c 1.40.2.1, src/gdevpdfv.c 1.21.2.1, src/gdevpdfx.h 1.68.2.1, src/gdevpdtb.c 1.18.2.1, src/gdevpdtb.h 1.8.2.1, src/gdevpdtc.c 1.17.2.1, src/gdevpdtd.c 1.11.2.1, src/gdevpdte.c 1.33.2.1, src/gdevpdtf.c 1.25.2.1, src/gdevpdtf.h 1.16.2.1, src/gdevpdti.c 1.14.2.1, src/gdevpdts.c 1.24.2.1, src/gdevpdtt.c 1.43.2.1, src/gdevpdtt.h 1.14.2.1, src/gdevpdtv.c 1.1.4.1, src/gdevpdtv.h 1.1.4.1, src/gdevpdtw.c 1.16.2.1, src/gdevpdtw.h 1.2.2.1, src/gdevpdtx.h 1.1.2.1, src/gdevplnx.c 1.5.2.1, src/gdevpng.c 1.7.2.1, src/gdevpnga.c 1.6.2.1, src/gdevprn.c 1.13.2.1, src/gdevps.c 1.34.2.1, src/gdevpsd.c 1.4.2.1, src/gdevpsdf.h 1.18.2.1, src/gdevpsdi.c 1.25.2.1, src/gdevpsdu.c 1.17.2.1, src/gdevpsf.h 1.22.2.1, src/gdevpsf2.c 1.26.2.1, src/gdevpsfm.c 1.13.2.1, src/gdevpsft.c 1.28.2.1, src/gdevpsfu.c 1.10.2.1, src/gdevpsfx.c 1.17.2.1, src/gdevpx.c 1.12.2.1, src/gdevrops.c 1.6.2.1, src/gdevtrac.c 1.4.2.1, src/gdevupd.c 1.12.2.1, src/gdevvec.c 1.18.2.1, src/gdevvec.h 1.11.2.1, src/genarch.c 1.5.2.1, src/geninit.c 1.7.2.1, src/gp.h 1.22.2.1, src/gp_dosfs.c 1.14.2.1, src/gp_dvx.c 1.8.2.1, src/gp_iwatc.c 1.13.2.1, src/gp_mac.h 1.4.2.1, src/gp_macio.c 1.20.2.1, src/gp_mswin.c 1.16.2.1, src/gp_ntfs.c 1.18.2.1, src/gp_os2.c 1.26.2.1, src/gp_os9.c 1.9.2.1, src/gp_unifn.c 1.13.2.1, src/gp_unifs.c 1.13.2.1, src/gp_unix.c 1.10.2.1, src/gp_vms.c 1.29.2.1, src/gpmisc.c 1.21.2.1, src/gpmisc.h 1.11.2.1, src/gs.c 1.10.2.1, src/gsalloc.c 1.19.2.1, src/gsccode.h 1.9.2.1, src/gscdef.c 1.33.2.1, src/gscdevn.c 1.14.2.1, src/gscdevn.h 1.7.2.1, src/gscencs.c 1.6.2.1, src/gscencs.h 1.4.2.1, src/gscie.c 1.13.2.1, src/gscie.h 1.12.2.1, src/gsciemap.c 1.12.2.1, src/gscolor.c 1.10.2.1, src/gscolor1.c 1.8.2.1, src/gscolor2.c 1.14.2.1, src/gscolor2.h 1.7.2.1, src/gscpixel.c 1.8.2.1, src/gscscie.c 1.8.2.1, src/gscsepr.c 1.20.2.1, src/gscspace.c 1.9.2.1, src/gsdcolor.h 1.10.2.1, src/gsdfilt.c 1.7.2.1, src/gsdfilt.h 1.8.2.1, src/gsdll.c 1.9.2.1, src/gsdll32.def 1.3.2.1, src/gsdps1.c 1.7.2.1, src/gsexit.h 1.8.2.1, src/gsfcmap.c 1.21.2.1, src/gsfcmap1.c 1.5.2.1, src/gsfont.c 1.20.2.1, src/gsfont.h 1.8.2.1, src/gsfunc.c 1.7.2.1, src/gsfunc.h 1.8.2.1, src/gsfunc0.c 1.10.2.1, src/gsfunc3.c 1.13.2.1, src/gsfunc4.c 1.13.2.1, src/gsht.c 1.16.2.1, src/gshtscr.c 1.13.2.1, src/gsicc.c 1.10.2.1, src/gsiomacres.c 1.1.2.1, src/gsistate.c 1.7.2.1, src/gslib.c 1.11.2.1, src/gspaint.c 1.6.2.1, src/gspath.c 1.7.2.1, src/gspcolor.c 1.9.2.1, src/gsptype1.c 1.15.2.1, src/gsptype2.c 1.12.2.1, src/gsptype2.h 1.7.2.1, src/gsshade.c 1.8.2.1, src/gsshade.h 1.6.2.1, src/gsstate.c 1.19.2.1, src/gsstate.h 1.8.2.1, src/gsstruct.h 1.15.2.1, src/gstext.c 1.11.2.1, src/gstext.h 1.8.2.1, src/gstrans.c 1.16.2.1, src/gstype1.c 1.22.2.1, src/gstype1.h 1.6.2.1, src/gstype2.c 1.25.2.1, src/gstype42.c 1.30.2.1, src/gswin.icx 1.1.4.1, src/gswts.c 1.4.2.1, src/gx.h 1.7.2.1, src/gxacpath.c 1.8.2.1, src/gxblend.c 1.4.2.1, src/gxccache.c 1.15.2.1, src/gxccman.c 1.7.2.1, src/gxchar.c 1.27.2.1, src/gxchar.h 1.13.2.1, src/gxcldev.h 1.12.2.1, src/gxclip.c 1.9.2.1, src/gxclip2.c 1.6.2.1, src/gxclipm.c 1.7.2.1, src/gxclist.c 1.9.2.1, src/gxclpath.c 1.17.2.1, src/gxclrast.c 1.26.2.1, src/gxclrect.c 1.5.2.1, src/gxcmap.c 1.14.2.1, src/gxcolor2.h 1.7.2.1, src/gxcpath.c 1.6.2.1, src/gxcspace.h 1.9.2.1, src/gxdcolor.c 1.10.2.1, src/gxdda.h 1.4.2.1, src/gxdevcli.h 1.15.2.1, src/gxdevice.h 1.11.2.1, src/gxdevndi.c 1.2.2.1, src/gxdtfill.h 1.4.2.1, src/gxfcache.h 1.10.2.1, src/gxfcmap.h 1.14.2.1, src/gxfcopy.c 1.25.2.1, src/gxfcopy.h 1.8.2.1, src/gxfdrop.c 1.8.2.1, src/gxfdrop.h 1.4.2.1, src/gxfill.c 1.34.2.1, src/gxfill.h 1.8.2.1, src/gxfont.h 1.19.2.1, src/gxfont1.h 1.11.2.1, src/gxfont42.h 1.14.2.1, src/gxfunc.h 1.7.2.1, src/gxhintn.c 1.21.2.1, src/gxhintn.h 1.12.2.1, src/gxhldevc.c 1.3.4.1, src/gxhldevc.h 1.4.4.1, src/gxi12bit.c 1.5.2.1, src/gxicolor.c 1.8.2.1, src/gxifast.c 1.8.2.1, src/gximage3.c 1.11.2.1, src/gximono.c 1.10.2.1, src/gxipixel.c 1.8.2.1, src/gxiscale.c 1.7.2.1, src/gxistate.h 1.15.2.1, src/gxpath.c 1.8.2.1, src/gxpath.h 1.7.2.1, src/gxpcmap.c 1.7.2.1, src/gxpcolor.h 1.7.2.1, src/gxpcopy.c 1.8.2.1, src/gxpflat.c 1.5.2.1, src/gxshade.c 1.16.2.1, src/gxstate.h 1.7.2.1, src/gxstroke.c 1.7.2.1, src/gxtext.h 1.10.2.1, src/gxttfb.c 1.19.2.1, src/gxttfb.h 1.9.2.1, src/gxtype1.c 1.23.2.1, src/gxtype1.h 1.12.2.1, src/gzacpath.h 1.5.2.1, src/gzcpath.h 1.4.2.1, src/gzpath.h 1.8.2.1, src/gzspotan.c 1.4.2.1, src/gzspotan.h 1.2.2.1, src/gzstate.h 1.8.2.1, src/ialloc.c 1.5.2.1, src/iapi.c 1.8.2.1, src/iapi.h 1.8.2.1, src/ibnum.c 1.6.2.1, src/iccfont.c 1.7.2.1, src/ichar1.h 1.9.2.1, src/icid.h 1.6.2.1, src/icontext.c 1.14.2.1, src/icstate.h 1.11.2.1, src/idict.c 1.7.2.1, src/idisp.c 1.5.2.1, src/idparam.c 1.7.2.1, src/ierrors.h 1.2.2.1, src/ifont2.h 1.5.2.1, src/igc.c 1.9.2.1, src/igc.h 1.5.2.1, src/igstate.h 1.7.2.1, src/iinit.c 1.8.2.1, src/ilocate.c 1.8.2.1, src/imain.c 1.31.2.1, src/imain.h 1.7.2.1, src/imainarg.c 1.29.2.1, src/iname.c 1.6.2.1, src/inobtokn.c 1.4.2.1, src/int.mak 1.108.2.1, src/interp.c 1.14.2.1, src/interp.h 1.5.2.1, src/iparam.c 1.8.2.1, src/iplugin.c 1.3.2.1, src/ireclaim.c 1.6.2.1, src/isave.c 1.7.2.1, src/isave.h 1.5.2.1, src/iscan.c 1.13.2.1, src/iscanbin.c 1.12.2.1, src/iscannum.c 1.6.2.1, src/istack.c 1.5.2.1, src/iutil.c 1.8.2.1, src/iutil2.c 1.5.2.1, src/jbig2.mak 1.3.2.1, src/lib.mak 1.126.2.1, src/libpng.mak 1.13.2.1, src/macgenmcpxml.sh 1.8.2.1, src/macos-fw.mak 1.6.2.1, src/macos-mcp.mak 1.16.2.1, src/macos_carbon_d_pre.h 1.1.2.1, src/macos_carbon_pre.h 1.2.4.1, src/macos_classic_d_pre.h 1.1.2.1, src/macosx.mak 1.19.2.1, src/msvc32.mak 1.44.2.1, src/msvclib.mak 1.23.2.1, src/msvctail.mak 1.9.2.1, src/opcheck.h 1.5.2.1, src/openvms.mak 1.30.2.1, src/openvms.mmk 1.24.2.1, src/oper.h 1.5.2.1, src/os2.mak 1.32.2.1, src/sa85d.c 1.8.2.1, src/sdcparam.c 1.5.2.1, src/std.h 1.8.2.1, src/stdio_.h 1.8.2.1, src/stdpre.h 1.15.2.1, src/stream.c 1.21.2.1, src/szlibd.c 1.5.2.1, src/time_.h 1.6.2.1, src/ttcalc.c 1.1.4.1, src/ttcalc.h 1.1.4.1, src/ttcommon.h 1.1.4.1, src/ttconf.h 1.2.2.1, src/ttconfig.h 1.1.4.1, src/ttfinp.c 1.1.4.1, src/ttfinp.h 1.1.4.1, src/ttfmain.c 1.19.2.1, src/ttfmemd.c 1.6.2.1, src/ttfmemd.h 1.3.4.1, src/ttfoutl.h 1.12.2.1, src/ttfsfnt.h 1.6.2.1, src/ttinterp.c 1.11.2.1, src/ttinterp.h 1.1.4.1, src/ttload.c 1.4.4.1, src/ttload.h 1.1.4.1, src/ttmisc.h 1.2.2.1, src/ttobjs.c 1.6.4.1, src/ttobjs.h 1.5.2.1, src/tttables.h 1.2.2.1, src/tttype.h 1.2.2.1, src/tttypes.h 1.1.4.1, src/ugcclib.mak 1.24.2.1, src/unistd_.h 1.8.2.1, src/unix-aux.mak 1.9.2.1, src/unix-dll.mak 1.9.2.1, src/unixansi.mak 1.30.2.1, src/unixinst.mak 1.30.2.1, src/vdtrace.c 1.7.2.1, src/vdtrace.h 1.7.2.1, src/version.mak 1.60.2.1, src/vms_x_fix.h 1.6.2.1, src/watclib.mak 1.21.2.1, src/watcw32.mak 1.25.2.1, src/windows_.h 1.4.2.1, src/winint.mak 1.18.2.1, src/winplat.mak 1.4.2.1, src/wrfont.c 1.2.2.1, src/write_t2.c 1.4.2.1, src/zbfont.c 1.18.2.1, src/zchar.c 1.10.2.1, src/zchar1.c 1.28.2.1, src/zchar42.c 1.10.2.1, src/zchar42.h 1.1.4.1, src/zcid.c 1.7.2.1, src/zcidtest.c 1.2.2.1, src/zcolor.c 1.14.2.1, src/zdscpars.c 1.15.2.1, src/zfapi.c 1.48.2.1, src/zfcid.c 1.13.2.1, src/zfcid0.c 1.19.2.1, src/zfcid1.c 1.16.2.1, src/zfile.c 1.32.2.1, src/zfile1.c 1.9.2.1, src/zfjbig2.c 1.2.2.1, src/zfont.c 1.8.2.1, src/zfont42.c 1.14.2.1, src/zfontenum.c 1.3.4.1, src/zfsample.c 1.8.2.1, src/zgstate.c 1.7.2.1, src/zht2.c 1.10.2.1, src/zimage.c 1.10.2.1, src/ziodev.c 1.12.2.1, src/zpcolor.c 1.7.2.1, src/ztoken.c 1.10.2.1, src/ztrans.c 1.19.2.1, src/zusparam.c 1.9.2.1, toolbin/encs2c.ps 1.3.2.1, toolbin/genfontmap.ps 1.2.4.1, toolbin/split_changelog.py 1.1.2.1, toolbin/tests/check_all.py 1.3.2.1, toolbin/tests/check_comments.py 1.2.4.1, toolbin/tests/check_dirs.py 1.6.2.1, toolbin/tests/check_docrefs.py 1.7.2.1, toolbin/tests/check_source.py 1.5.2.1, toolbin/tests/dump_testdb 1.4.2.1, toolbin/tests/fuzzy.c 1.9.2.1, toolbin/tests/get_baselines 1.2.4.1, toolbin/tests/gscheck_all.py 1.3.2.1, toolbin/tests/gscheck_fuzzypdf.py 1.5.2.1, toolbin/tests/gscheck_pdfwrite.py 1.13.2.1, toolbin/tests/gscheck_raster.py 1.3.2.1, toolbin/tests/gstestgs.py 1.19.2.1, toolbin/tests/make_testdb 1.10.2.1, toolbin/tests/make_two_pdfversions 1.6.2.1, toolbin/tests/make_two_versions 1.10.2.1, toolbin/tests/revert_baseline 1.10.2.1, toolbin/tests/revert_pdfbaseline 1.8.2.1, toolbin/tests/run_nightly 1.17.2.1, toolbin/tests/run_regression 1.11.2.1, toolbin/tests/testdiff 1.2.2.1, toolbin/tests/testing.cfg.example 1.2.2.1, toolbin/tests/update_baseline 1.11.2.1, toolbin/tests/update_pdfbaseline 1.7.2.1]

Version 8.12 (2003-12-08)

This is the second stable release in the 8.1x series. It contains numerous bug fixes; other highlights include improved font rendering and colorspace handling, and unicode text support for high-level devices.

The following bug numbers were open at the time of this release:

405501, 414947, 430175, 446344, 456692, 458261, 458780, 463688, 465936, 487460, 487953, 493348, 509829, 526099, 526491, 530011, 535366, 535932, 542629, 553187, 555072, 558151, 563287, 572865, 578865, 592160, 592837, 601336, 602263, 603934, 604722, 605830, 607425, 607850, 610478, 611898, 614298, 617077, 617523, 626295, 628110, 629335, 634036, 634358, 645316, 651644, 656414, 667301, 669654, 674241, 674417, 674418, 677324, 677383, 677430, 680301, 681469, 685335, 686747, 686750, 686752, 686778, 686816, 686819, 686824, 686833, 686834, 686841, 686842, 686843, 686850, 686852, 686853, 686860, 686863, 686865, 686867, 686873, 686877, 686889, 686892, 686896, 686897, 686902, 686904, 686909, 686919, 686930, 686933, 686936, 686937, 686938, 686944, 686946, 686949, 686951, 686954, 686956, 686957, 686958, 686959, 686963, 686975, 686980, 686996, 686999, 687007, 687011, 687012, 687013, 687014, 687020, 687021, 687029, 687038, 687039, 687050, 687059, 687063, 687066, 687072, 687079, 687084, 687085, 687086, 687088, 687090, 687093, 687095, 687102, 687105, 687108, 687110, 687114, 687120, 687123, 687125, 687137, 687142, 687145, 687146, 687151, 687154, 687157, 687163, 687168, 687169, 687171, 687172, 687173, 687174, 687177, 687181, 687182, 687184, 687185, 687186, 687187, 687189, 687190, 687191.

Incompatible changes

Type 1 font hints are no longer applied to charpaths. This is generally an improvement, but will generate a different outline from previously.

A new virtual functions can_handle_hl_color() is required for high-level devices derived from gx_device_vector.

The library client api now propagates device_close errors to the return value of gsapi_exit().

Changelog

2003-12-09 06:37 Ray Johnston

Correct a long standing problem that caused non-optimized builds with
MSVC on Windows. The default TDEBUG was 1, which circumvented a change
made to msvccmd.mak to enable /O2 for MSVC_VERSION != 5. Note that
with MSVC 6 Service Pack 3 is required to avoid an INTERNAL COMPILER
ERROR when compiling src/idict.c.

[src/msvc32.mak 1.51]

2003-12-09 04:04 Ralph Giles

Correct some inconsistent line endings.

[src/stdio_.h 1.10, src/ttfsfnt.h 1.5]

2003-12-09 03:05 Ralph Giles

Updated release notes and change history for the 8.12 release.

[doc/Changes.htm 1.49, doc/Details.htm 1.8, doc/Details8.htm 1.4, doc/History8.htm 1.8, doc/News.htm 1.138]

2003-12-08 23:17 Ralph Giles

Update documentation with release version and date.

[doc/API.htm 1.41, doc/Bug-form.htm 1.39, doc/Bug-info.htm 1.38, doc/C-style.htm 1.45, doc/Commprod.htm 1.30, doc/Copying.htm 1.29, doc/DLL.htm 1.33, doc/Deprecated.htm 1.10, doc/Details8.htm 1.3, doc/Develop.htm 1.127, doc/Devices.htm 1.72, doc/Drivers.htm 1.43, doc/Fonts.htm 1.39, doc/Helpers.htm 1.33, doc/History1.htm 1.29, doc/History2.htm 1.29, doc/History3.htm 1.29, doc/History4.htm 1.29, doc/History5.htm 1.31, doc/History6.htm 1.46, doc/History7.htm 1.34, doc/History8.htm 1.7, doc/Htmstyle.htm 1.34, doc/Install.htm 1.44, doc/Issues.htm 1.39, doc/Language.htm 1.78, doc/Lib.htm 1.32, doc/Maintain.htm 1.40, doc/Make.htm 1.70, doc/New-user.htm 1.49, doc/Projects.htm 1.56, doc/Ps-style.htm 1.27, doc/Ps2epsi.htm 1.31, doc/Ps2pdf.htm 1.56, doc/Psfiles.htm 1.50, doc/Readme.htm 1.52, doc/Release.htm 1.82, doc/Source.htm 1.29, doc/Tester.htm 1.29, doc/Testing.htm 1.23, doc/Unix-lpr.htm 1.29, doc/Use.htm 1.95, doc/Xfonts.htm 1.29, doc/gs-vms.hlp 1.28, man/dvipdf.1 1.27, man/font2c.1 1.27, man/gs.1 1.28, man/gslp.1 1.27, man/gsnd.1 1.27, man/pdf2dsc.1 1.26, man/pdf2ps.1 1.28, man/pdfopt.1 1.26, man/pf2afm.1 1.27, man/pfbtopfa.1 1.28, man/printafm.1 1.27, man/ps2ascii.1 1.26, man/ps2epsi.1 1.25, man/ps2pdf.1 1.32, man/ps2pdfwr.1 1.31, man/ps2ps.1 1.34, man/wftopfa.1 1.27]

2003-12-08 23:04 Ralph Giles

Update date, product name and open bug list for release.

[doc/News.htm 1.137, src/gscdef.c 1.39, src/version.mak 1.67]

2003-12-07 17:56 Ralph Giles

Add the experimental spot analysis source files to the developer file roadmap.

[doc/Develop.htm 1.126]

2003-12-07 16:17 Igor Melichev

Generalize the trapezoid fillling algorithm for curves, step 4.

DETAILS :

This change modifies a disabled code only.
The comment /* Likely a bug in the !CURVED_TRAPEZOID_FILL code. */
is now removed because it is wrong. The function process_h_list
performs that check perfectly.

EXPECTED DIFFERENCES :

None.

[src/gxfdrop.c 1.5]

2003-12-06 03:38 Ralph Giles

Respect the new regression differences section header when writing out the
split changelogs. The previous change only added the header to the detection
section.

[toolbin/split_changelog.py 1.7]

2003-12-06 03:28 Ralph Giles

Also split changelog entries on the new "EXPECTED DIFFERENCES:" header.

[toolbin/split_changelog.py 1.6]

2003-12-06 01:48 Ralph Giles

In the autoconf build, add the general cflags generated by the configure script to the definition
the the definition of CCAUX. This works around a problem building on cygwin.

DETAILS:

Older versions of cygwin do not provide stdint.h but do define some of the types in sys/types.h.
More recent versions do provide the header but also define them by inclusion in sys/types.h. This
caused a problem with the 'fixup' code we added in response to bug 687162 which defined the
missing half of the types if stdint.h was not detected by the configure script. In versions of
cygwin that do provide stdint.h, most files compile as expected, but genconf.c is compiled with
the alternate CCAUX compiler definition and was not receiving the -DHAVE_STDINT_H argument from
configure, causing a type conflict between the complete set of stdint types pulled in by
sys/types.h and the platform-specific fixup set included when stdint.h is supposedly not
available. Adding the GCFLAGS line to the definition of CCAUX works around the problem and has
little potential to confuse the build in the future.

A similar change made to unix-gcc.mak would need to document the -DHAVE_STDINT_H option for
cygwin. I felt this was unecessarily excessive; we already recommend the autoconf build on systems
that can support it.

[src/Makefile.in 1.28]

2003-12-04 16:57 Igor Melichev

Fix : (type 1 hinter) Invalid contours with <=2 segments caused an infinite loop.

DETAILS :

Provided a workaround.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c 1.37]

2003-12-04 16:19 Igor Melichev

Generalize the trapezoid fillling algorithm for curves, step 3.

DETAILS :

Improved the CURVED_TRAPEZOID_FILL & FLATTENED_CURVE_ITERATOR0_COMPATIBLE build.
This change modifies a disabled code only.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.57, src/gxpflat.c 1.10, src/gzpath.h 1.12]

2003-12-04 14:53 Ralph Giles

Minor spelling and grammar corrections.

[doc/Devices.htm 1.71]

2003-12-04 13:52 Igor Melichev

Document the new feature "Unicode support for high level devices".

[doc/Devices.htm 1.70]

2003-12-04 12:35 Igor Melichev

Fix : Cygwin/gcc compiler claimed possibly uninitialized variables.

EXPECTED DIFFERENCES :

None.

[src/gdevdevn.c 1.12, src/gdevp14.c 1.20, src/gdevpdfm.c 1.34, src/gdevpdtc.c 1.30, src/gdevpdtf.c 1.32, src/gdevpdtt.c 1.68, src/gdevplnx.c 1.7, src/gdevprn.c 1.14, src/gdevps.c 1.38, src/gpmisc.c 1.22, src/gsalloc.c 1.20, src/gscie.c 1.14, src/gsfont.c 1.27, src/gxclpath.c 1.19, src/gxclrast.c 1.27, src/gxfcopy.c 1.38, src/gxfill.c 1.56, src/gximono.c 1.11, src/gxstroke.c 1.10, src/iscan.c 1.16, src/ttfmain.c 1.19, src/ttinterp.c 1.11, src/zdscpars.c 1.16, src/zht2.c 1.11]

2003-12-04 11:09 Igor Melichev

Generalize the trapezoid fillling algorithm for curves, step 2.

DETAILS :

1. Factored out the function gx_check_nearly_collinear_inline.
   This change is algorithmically equivalent.

2. Improved the FLATTENED_CURVE_ITERATOR0_COMPATIBLE build.
   This change modifies a disabled code only.

EXPECTED DIFFERENCES :

None.

[src/gx.h 1.18, src/gxfdrop.c 1.4, src/gxfill.c 1.55, src/gxfill.h 1.4, src/gxpflat.c 1.9, src/gzpath.h 1.11]

2003-12-04 10:10 Igor Melichev

Fix : misprints in lib.mak .

DETAILS :

Some dependencies were missed.

EXPECTED DIFFERENCES :

None.

[src/lib.mak 1.151]

2003-12-04 10:07 Igor Melichev

Fix : an access to uninitialized data in zbfont.c .

DETAILS :

Type 11 fonts got an occasional indeterministic data to pdata->Encoding,
which were inaccurately checked for r_size() <= 256.

We're keeping the check "r_size(pfe) <= 256" for backward compatibility,
rather we're unclear about it's purpose. It shouldn't be harmful.

EXPECTED DIFFERENCES :

I did not detected any on Windows, but I believe that the old code was indeterministic.

[src/zbfont.c 1.26]

2003-12-04 10:01 Igor Melichev

Fix : an access to uninitialized data in gxcpath.c .

DETAILS :

pcpath->path_list was not reset when it is replaced with a rectangle and freed.
Bug 687178 "Infinite loop in ialloc_validate_memory".

EXPECTED DIFFERENCES :

I did not detected any on Windows, but I believe that the old code was indeterministic.

[src/gxcpath.c 1.11]

2003-12-04 09:46 Igor Melichev

Fix (pdfwrite) : Type 1 subglyphs don't need Encoding entries.

DETAILS :

A new comment added to gxfcopy.c explains the change :

/* No need to add subglyphs to the Encoding because they always are
   taken from StandardEncoding (See the Type 1 spec about 'seac').
   Attempt to add them to the encoding can cause a conflict,
   if the encoding specifies different glyphs for these char codes
   (See the bug #687172). */

EXPECTED DIFFERENCES :

pdfwrite progression with comparefiles\Bug687044.ps

[src/gxfcopy.c 1.37]

2003-12-04 09:37 Igor Melichev

Fix (type 1 hinter) : sbw was wrongly accounted with FontBBox over 4095 units.

DETAILS :

Side bearing and width was accounted before import_shift is adjusted to FontBBox.
Bug 687156 "some characters shifted higher in acrobat4 generated eps".

Besides that, it prevents a fixed overflow when FontBBox is zero and glyph coordinates are big.
Bug 687175 "(type 1 hinter) A fixed overflow can happen".

This patch removes import_shift and the dependence on FontBBox.
Instead that it dynamically reduces the number of fraction bits
in transformation matrices during the glyph import.

Minor change : removed some obsolete comments.

EXPECTED DIFFERENCES :

None.

[src/gstype1.c 1.30, src/gstype2.c 1.33, src/gxhintn.c 1.36, src/gxhintn.h 1.16]

2003-12-04 03:51 Alex Cherepanov

Add new files; make all lists separated with comma and terminated with a period.

[doc/Develop.htm 1.125]

2003-12-03 22:31 Alex Cherepanov

Add double-inclusion protection to errors.h to pacify the regression
test and rename double-inclusion protection variable in ierrors.h
for the naming consistency.

[src/errors.h 1.9, src/ierrors.h 1.2]

2003-12-01 18:19 Ralph Giles

Cygwin defines unsigned size-specific types with a u_ prefix in sys/types.h in analogy with MSVC.
Use these instead of the generic int types when defining the stdint.h size-specific types. Patch
from Alex Cherpanov. Fixes bug 687162.

[src/stdpre.h 1.21]

2003-12-01 16:49 Ralph Giles

Add stdint fixed-length integer typedefs for cygwin. Apparently this platform defines the signed
versions in sys/types.h so we need only define the unsigned versions. After a patch by Alex
Cherpanov, bug 687162.

[src/stdpre.h 1.20]

2003-11-30 19:03 Ralph Giles

Typedef uint64_t from 'unsigned __int64' on win32. From Alex Cherpanov's patch for bug 687162.

[src/stdpre.h 1.19]

2003-11-27 22:32 Alex Cherepanov

Add support to pnm images with max_pixel_value < (1<

[toolbin/tests/fuzzy.c 1.13]

2003-11-27 02:26 Ralph Giles

Remove the search for long long / int64_t from genarch entirely. Neither of these
types is portable C as genarch must be, and nothing in Ghostscript actually requires
as 64-bit type, so the feature is inessential. (We do use a 64 bit type for gx_color_index
but that's passed through a separate define.) Bug 687161.

[src/genarch.c 1.8, src/std.h 1.10]

2003-11-25 15:32 Igor Melichev

Fix (pdfwrite) : A fixed overflow in setup_image_compression.

DETAILS :

Bug 687164 "(pdfwrite) dina3_watermark.pdf generates a 293Meg PDF".
The bug persists since Sun Apr 30 01:26:41 2000 UTC.

EXPECTED DIFFERENCES :

The re-distilled dina3_watermark.pdf renders differently due to DCT compression applied.

[src/gdevpsdi.c 1.26]

2003-11-25 08:34 Igor Melichev

Fix : A misspelled TRAPEZIOD.

DETAILS :

The change is syntatctically equivalent.
Note that log messages of recent patches still keep the misspelled word.

EXPECTED DIFFERENCES :

None.

[src/gx.h 1.17, src/gxfdrop.c 1.3, src/gxfdrop.h 1.4, src/gxfill.c 1.54, src/gxfill.h 1.3, src/gxpath.h 1.10, src/gxpcopy.c 1.11, src/gzspotan.c 1.4]

2003-11-25 00:21 Igor Melichev

Generailze the trapezoid fillling algorithm for curves, step 1.
The new code is disabled with CURVED_TRAPEZIOD_FILL 0 in gx.h .

DETAILS :

This patch slightly changes the enabled code
with adding more arguments to process_h_lists and end_x_line,
and with renaming gx_flatten_sample and gx_path_is_monotonic.
The new arguments are not used with CURVED_TRAPEZIOD_FILL 0.

With CURVED_TRAPEZIOD_FILL 1 the trapezoid filling algorithm
doesn't need to faltten the path in advance, and should work faster
due to smaller number of segment allocations.
Instead the generating of flattened segments and storing them to RAM
it breaks curves into pieces on-fly with help of
the gx_flattened_curve_iterator. Meanwhile it needs "small" curves.
To provide that we generalized gx_path_is_monotonic to gx_path__check_curves,
and gx_path_add_monotonized to gx_path_copy_reducing(..., pco_small_curves).

Minor changes :
- Fixed the vd_curve macro;
- improved vdtrace calls in gxpflat.c;
- Moved the FLATTENED_CURVE_ITERATOR definition to gx.h .

EXPECTED DIFFERENCES :

None.

[src/gx.h 1.16, src/gxfdrop.c 1.2, src/gxfdrop.h 1.3, src/gxfill.c 1.53, src/gxfill.h 1.2, src/gxpath.h 1.9, src/gxpcopy.c 1.10, src/gxpflat.c 1.8, src/gzpath.h 1.10, src/vdtrace.h 1.9]

2003-11-24 14:50 Igor Melichev

Fix : Simplify the filling algorithm (step 12).

DETAILS :

The previous patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-November/date.html
is buggy. This patch fixes that.

EXPECTED DIFFERENCES :

Should fix regressions which could appear on 2003-11-24.

[src/gxfill.c 1.52]

2003-11-23 18:44 Igor Melichev

Fix : Simplify the filling algorithm (step 11).

DETAILS :

Factored out a line intersection function.
This change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.51]

2003-11-23 10:16 Igor Melichev

[Log message beg]
Fix : Adding gs/Resource/Decoding/Latin1, which is used by FAPI/UFST with Intellifont fonts.

EXPECTED DIFFERENCES :

None.

[Resource/Decoding/Latin1 1.1, lib/gs_stres.ps 1.7]

2003-11-22 18:54 Ray Johnston

Previous change assumed that all platforms have 'long long' type, but MSVC
doesn't have this. Use int64_t as set by stdpre.h instead.

DETAILS:

Tested on Windows MSVC and linux/gcc, but we need to test portability on
other platforms like HP-UX, AIX, and VMS.

[src/genarch.c 1.7]

2003-11-21 20:01 Ralph Giles

Update indented preprocessor lines in code imported from Freetype to
put the '#' in the initial column, in accordance with the (slightly
more portable) Ghostscript convention.

[src/ttinterp.c 1.10, src/ttobjs.h 1.5, src/tttables.h 1.2, src/tttype.h 1.2]

2003-11-21 18:42 Ralph Giles

Add a fallback definition of the common fixed-sized stdint types based on
the type sizes in the generated arch.h header. This should improve the portability
of uses of these types within the Ghostscript source.

DETAILS:

This new code in std.h does not superceed the in stdint.h and similar platform-
dependent includes in stdpre, it merely provides a fallback. stdpre.h now defines
STDINT_TYPES_DEFINED if it has done so; the std.h code is only activated if this
preprocessor symbol is not set.

This change does not help with the portability of compiling jbig2dec directly as
part of the Ghostscript build system since that code as a separate library includes
no headers from the Ghostscript tree.

[src/genarch.c 1.6, src/std.h 1.9, src/stdpre.h 1.18]

2003-11-21 04:16 Dan Coby

Fix for 687020 and 687146.  The pdfwrite device is incorrectly converting
CalRGB color spaces into ICC color spaces.  Fix #1.

Details:

As Raph pointed out in the Wednesday's support call, there are actually
two problems.

1.  We were not correctly recognizing that we can use a CalRGB color space
for the output.  This patch corrects this problem.  One of the tests in
that process was assuming an incorrect ordering to the transforms.  This
fix corrects this problem.

2.  The ICC color space which is being created is not equivalent to the
original CalRGB color space.  This results in differing colors between
the original file and the output PDF file.  This problem is still open.

Note:  I am leaving these bug reports still open since problem 2 is still
open.

[src/gdevpdfc.c 1.42]

2003-11-20 23:01 Igor Melichev

Factoring out the iterator for flattened curve segments.

DETAILS :

The new code is marked with FLATTENED_CURVE_ITERATOR defined in gzpath.h.
It defines gx_flattened_curve_iterator for using in the True Type grid fitting.

The old code has bugs in the MERGE_COLLINEAR_SEGMENTS section.
An uneven behavior happened near the 'points' buffer boundary
and with the last but one point : some points were not skipped
when they should. For a while we keep a compatibility of the
new code to the old one.

This patch :

1. Defines of the gx_flattened_curve_iterator.
2. Emulates of the old code with gx_flattened_curve_iterator.
3. Provides a compatibility to the old code bugs with FLATTENED_CURVE_ITERATOR0_COMPATIBLE.
4. Improves a debug printing in the old code, to allow a trace comparizon with the new one.
5. Improves an old comment "Fast check for n == 3" ('n' was not explained).
6. Saves stack space when gx_flatten_sample recurses.
7. Inserts a 'const' into vdtrace.* .

EXPECTED DIFFERENCES :

None.

[src/gxpflat.c 1.7, src/gzpath.h 1.9, src/lib.mak 1.150, src/vdtrace.c 1.8, src/vdtrace.h 1.8]

2003-11-20 20:52 Alex Cherepanov

Restore v.1.2 rolled back by mistake.
Partial fix for bug 687029

[src/ttfsfnt.h 1.4]

2003-11-20 18:47 Ralph Giles

Add prefix headers for the MacOS build to define DEBUG for the appropriate targets. Bug
686844.

[src/macgenmcpxml.sh 1.11, src/macos_carbon_d_pre.h 1.1, src/macos_classic_d_pre.h 1.1]

2003-11-20 18:43 Ralph Giles

Replace non-standard #if DEBUG lines with #ifdef DEBUG. Discovered in fixing bug 686844.

[src/igc.h 1.7]

2003-11-20 16:16 Ralph Giles

Replace non-standard #if DEBUG lines with #ifdef DEBUG. Discovered in fixing bug 686844.

[src/igc.c 1.12]

2003-11-20 07:53 Igor Melichev

Implementing a True Type grid fitting, step 3.

DETAILS :

The new code is disabled with TT_GRID_FITTING 0 in gx.h .
This patch improves the stem recognizer and fixes the "#if DEBUG" error.

EXPECTED DIFFERENCES :

None.

[src/gzspotan.c 1.3]

2003-11-19 22:33 Ralph Giles

Add some basic instructions for creating an IDE project file for the example API client
code. Bug 669654.

[doc/API.htm 1.40]

2003-11-19 22:04 Ralph Giles

Link to the MacOS example client from the API documentation, along with the others.

[doc/API.htm 1.39]

2003-11-19 20:59 Ralph Giles

Replace the code that removes the additional CFLAGS added by the AC_PROG_CC autoconf
macro. Closes bug 687150.

DETAILS:

On linux with gcc, AC_PROG_CC adds '-g -O2' to the general CFLAGS. This was overriding
the -O we add in Makefile.in, and the bug complains that this confuses gdb because of
code re-organization.

This change also means we no longer include full debug symbols in the normal build. I
don't consider this an improvement personally, but will bow to the traditionalists. Note
that 'strip' still reduces the size of the executable by 20%, so it's still worth
running if you're concerned about install-size.

[src/configure.ac 1.34]

2003-11-19 13:09 Igor Melichev

Fix : The last change to ttfsfnt.h doesn't compile on Linux and has been undone.

DETAILS :

The wrong patch is
http://www.ghostscript.com/pipermail/gs-cvs/2003-November/003765.html

[src/ttfsfnt.h 1.3]

2003-11-19 02:51 Dan Coby

Fix for 687131  Incorrect rendering for type 1 images when Interpolate ==
true.

DETAILS:

The user has a custom device which uses more than 32 bits per pixel and
also uses gx_default_copy_colort.  This fix extends that routine to
handle pixels sizes beyond 32 bits.

[src/gdevdbit.c 1.10]

2003-11-19 01:46 Dan Coby

Enhancement for bug 687148.  Add 12 and 16 bits to the possible number
of bits per component for the bit devices.

[src/gdevbit.c 1.9]

2003-11-18 16:35 Alex Cherepanov

Replace non-portable types with ISO/IEC 988:1999 exact-size types.
Partial fix for bug 687029

[src/ttfsfnt.h 1.2]

2003-11-18 13:24 Igor Melichev

Implementing a True Type grid fitting, step 2.

DETAILS :

The new code is disabled with TT_GRID_FITTING 0 in gx.h .
This patch fixes memory management problems and implements
a trial stem recognizer.

EXPECTED DIFFERENCES :

None.

[src/gxttfb.c 1.19, src/gzspotan.c 1.2, src/gzspotan.h 1.2, src/lib.mak 1.149]

2003-11-18 01:29 Dan Coby

Correct the documentation for the possible values of color_info.depth to
include values greater than 32 bits.  The documentation problem was found
by the user while investigating 687131.

[doc/Drivers.htm 1.42]

2003-11-17 20:17 Ray Johnston

Fix the logic that conditionally disables interpolation. The previous only
worked if the max_gray was set to the same as max_color, but the macro
dci_std_color_max_gray set max_gray to 0 if the number of components was
> 1. Detected with bug #687147 for customer #750.

[src/gxiscale.c 1.8]

2003-11-17 16:42 Igor Melichev

Implementing a True Type grid fitting, step 1.

DETAILS :

It's an initial commitment.
It is not completed, but we need to store changes to lib.mak .
The new code is disabled with TT_GRID_FITTING 0 in gx.h .

EXPECTED DIFFERENCES :

None.

[src/gsfont.c 1.26, src/gx.h 1.15, src/gxfcache.h 1.21, src/gxfdrop.h 1.2, src/gxfill.c 1.50, src/gxttfb.c 1.18, src/gzspotan.c 1.1, src/gzspotan.h 1.1, src/lib.mak 1.148]

2003-11-17 15:46 Igor Melichev

Fix (pdfwrite) : Numeric errors appeared writing an UCR.

DETAILS :

The old code wrote UCR (undercolor removal) functions with mapping 0 to 0.00392,
causing a solid black to convert to a non-solid color with pkmraw device.
The fix reduces the sample range to [0:254] and generates an appropriate Decode array.

Bug 687109 "PDF-->pkmraw: 0 0 0 RG isn't solid:.
Bug 687138 "pdfwrite is adding poor UCR functions to output files".

EXPECTED DIFFERENCES :

This patch causes multiple differences with pdfwrite->pkmraw.
The change to pdfwrite definitely is a progression,
but it discovers a new bug 687146 "(pdfwrite) CalRGB wrongly converts to ICCBased".

We did not check which differences are coused by the new bug.
Will see after the bug is fixed.
Updating the baseline should be fine for entire list.

0.pdf
01_001.pdf
033-52-5873.pdf
159.pdf
246-01.ps
477-03.ps
477-04.ps
477-05.ps
86554321.pdf
a.pdf
acrobat.pdf
adesso1.pdf
adesso2.pdf
adesso3.pdf
adesso5.pdf
adesso6.pdf
adesso7.pdf
ADOBE1-4.pdf
ai2.pdf
Altona-Testsuite_p2_S_x3.pdf
Altona.Page_3.2002-09-27.pdf
annots.pdf
bc_02a01_cal.pdf
brochurep1.pdf
bulletin.pdf
CAT_LOGO.ps
ccc.pdf
chstudy.pdf
dave.pdf
Dave_Barry.pdf
dina3_watermark.pdf
DisplayedGood.pdf
DisplayedWrong.pdf
Es001-01.pdf
Faktura.pdf
file.pdf
Fixed_Original.pdf
foo.pdf
frosch.pdf
gs.anotherfailure.pdf
gs5.98-dragon.pdf
gs6.0-dragon.pdf
gslandscape.pdf
H00216q.pdf
ICPconcept.pdf
InstandardBuildChar.ps
Jahr2000.pdf
japan-.ps
japan.ps
js.pdf
kazmir.pdf
korea.ps
LD.pdf
little.guy.pdf
loremIpsum.pdf
MagicEye.pdf
map.pdf
messenger.pdf
messenger16.pdf
motor.pdf
mspro.pdf
NECPNTD.pdf
new_rect.pdf
new_rect_nr.pdf
ngnews.pdf
ngnews1.pdf
non-sepqxd2distiller.pdf
Page01.pdf
pdftops.pdf
PixelisAd.pdf
prob.pdf
QA_Inv.pdf
rf1025.pdf
rotate0.pdf
rotate180.pdf
rotate270.pdf
rotate90.pdf
S2_Digitalproof-Forum_x3k.pdf
si_tg_brochure.pdf
smdf.90441.102.pdf
sports.pdf
Svd.pdf
test.pdf
test3.pdf
Testform.v1.0.2.pdf
TextRize.pdf
Type11CDevProc.ps
type42_glyph_index.ps
unihaken-color.pdf
vsem0093.pdf
Vu989qfj.pdf
xgfddg.pdf
xngnews.pdf

pdfwrite->pkmraw 300dpi :

0.pdf
01_001.pdf
033-52-5873.pdf
159.pdf
1_pct_50_bang.pdf
246-01.ps
477-03.ps
477-04.ps
477-05.ps
86554321.pdf
a.pdf
acrobat.pdf
adesso1.pdf
adesso2.pdf
adesso3.pdf
adesso5.pdf
adesso6.pdf
adesso7.pdf
ADOBE1-4.pdf
ai2.pdf
Altona-Testsuite_p2_S_x3.pdf
Altona.Page_3.2002-09-27.pdf
annots.pdf
bc_02a01_cal.pdf
brochurep1.pdf
bulletin.pdf
CAT_LOGO.ps
ccc.pdf
chstudy.pdf
dave.pdf
Dave_Barry.pdf
dina3_watermark.pdf
DisplayedGood.pdf
DisplayedWrong.pdf
Es001-01.pdf
Faktura.pdf
file.pdf
Fixed_Original.pdf
foo.pdf
frosch.pdf
gs.anotherfailure.pdf
gs5.98-dragon.pdf
gs6.0-dragon.pdf
H00216q.pdf
ICPconcept.pdf
InstandardBuildChar.ps
Jahr2000.pdf
japan-.ps
japan.ps
js.pdf
kazmir.pdf
korea.ps
LD.pdf
little.guy.pdf
loremIpsum.pdf
MagicEye.pdf
map.pdf
messenger.pdf
messenger16.pdf
motor.pdf
mspro.pdf
NECPNTD.pdf
new_rect.pdf
new_rect_nr.pdf
ngnews.pdf
ngnews1.pdf
non-sepqxd2distiller.pdf
Page01.pdf
pdftops.pdf
PixelisAd.pdf
prob.pdf
QA_Inv.pdf
rf1025.pdf
S2_Digitalproof-Forum_x3k.pdf
si_tg_brochure.pdf
smdf.90441.102.pdf
sports.pdf
Svd.pdf
test.pdf
test3.pdf
Testform.v1.0.2.pdf
TextRize.pdf
tpc2.ps
type1-ce1_setcurrentpoint.ps
Type11CDevProc.ps
type42_glyph_index.ps
unihaken-color.pdf
vsem0093.pdf
Vu989qfj.pdf
xgfddg.pdf
xngnews.pdf

[src/gdevpdfg.c 1.44]

2003-11-14 18:59 Alex Cherepanov

JAWS PDF generator encodes empty stream as jaws_empty[]. The stream declares
that the data block length is zero but zlib routines regard a zero length data
block to be an error. Check for this case and return EOF without calling zlib.
Fix bug 686779 from the customer 131

[src/lib.mak 1.147, src/szlibd.c 1.6]

2003-11-14 18:21 Ray Johnston

First attempt to add information requested by Igor to identify when the
basline was set for a particular 'DIFFER' case. Bug #687142.

[toolbin/tests/gscheck_pdfwrite.py 1.15, toolbin/tests/gscheck_raster.py 1.6]

2003-11-13 22:41 Igor Melichev

Fix : Add double inclusion protection to the True Type interpreter bridge modules.

DETAILS :

They follow FreeType's C-style as other modules branched from FreeType.

EXPECTED DIFFERENCES :

None.

[src/ttconf.h 1.2, src/ttmisc.h 1.2]

2003-11-13 22:27 Igor Melichev

Fix : The first clip path list element sometimes got an empty path.

DETAILS :

This continues fixing the bug 686885 "bad paths in pdf".

If !pcpath->path_valid, we convert the pcpath->rect_list to a path,
storing it into the clip path list element.

EXPECTED DIFFERENCES :

pdfwrite progressions :

1_2001.pdf
Altona-Testsuite_p2_S_x3.pdf

(I'm sorry, in
http://www.ghostscript.com/pipermail/gs-cvs/2003-November/003751.html
a difference with Altona-Testsuite_p2_S_x3.pdf was misidentified as a progression.
Rather that raster looks better, it differs more from Adobe.
With this patch the raster is closer to Adobe)

[src/gxcpath.c 1.10]

2003-11-13 19:20 Ray Johnston

Fix: Adobe Acrobat Reader ignores an empty path when setting the clip
path. Bug #687136.

DETAILS:

We never encountered this problem in a 'real' file, but one of Raph's
test files showed the difference in the way our PDF interpreter handled
an zero area path to setting clipping versus the way Adobe does.

Igor tested CPSI and determined that PostScript results in a zero area
clipping box, but Acrobat Reader works differently, so the patch detects
a zero area path and does not change the clipping path in that case.

The details of the determination of 0 area is commented here:

pathbbox	% get the path bounding box
3 -1 roll	% roll to get upper and lower Y coordinates together
sub abs		% form absolute delta Y of path bbox
3 1 roll	% roll upper and lower X coordinates to TOS
sub abs		% form absolute delta X of path bbox
add		% sum abs delta X and abs delta Y
0 ne		% if it is non-zero, then perform the clip/eoclip

[lib/pdf_ops.ps 1.33]

2003-11-13 15:19 Igor Melichev

Fix (pdfwrite) : Transfer function was not checked for identity.

DETAILS :

Bug 687124 "Large PDF file created from Quark with EPS's within",
A document defines a transfer function { {} exec {} exec },
which was not recognized as identity, causing an image downsampling to be rejected.
Improved pdf_update_transfer with checking for identity transfer.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfg.c 1.43]

2003-11-12 19:58 Alex Cherepanov

Default to empty string when there's no /ID in the trailer and issue
a warning because the key is required for encrypted files.
Fix bug 687135

[lib/pdf_sec.ps 1.12]

2003-11-12 14:29 Igor Melichev

Fix (pdfwrite) : Write high level clipping paths.

DETAILS :

This includes the "Preliminary patch for preserving clip path lists-bug686885" by Raph
(gxcpath.c, gzcpath.h), and a simple algorithm for writing it to PDF (gdevpdfd.c).

Now it writes entire list whenever clipping path is changed.
A diserable optimization is to avoid writing redundant elements.
For doing that we would like to have an id and a 'changed' flag in gx_path_s.

Bug 686885 "bad paths in pdf".

EXPECTED DIFFERENCES :

This patch discovers a problem in PDF interpreter with re-distilled 1_2001.pdf .
The problem is tracked as a new bug 687136 .

Other expected differences are pdfwrite progressions :

pdfwrite 72 dpi :

027-01.ps
031-01.ps
031-05.ps
032-01.ps
032-07.ps
083-01.ps
102-01.ps
109-01.ps
169-01.ps
1_2001.pdf
205-01.ps
222-01.ps
298-01.ps
321-01.ps
Altona-Testsuite_p2_S_x3.pdf
BEST8-99-Path.fh7.pdf
H00216q.pdf
Openhuis_pdf_zw.pdf
PixelisAd.pdf
test.pdf

pdfwrite 300 dpi :

027-01.ps
027-09.ps
031-01.ps
031-05.ps
032-01.ps
032-07.ps
083-01.ps
102-01.ps
109-01.ps
169-01.ps
169-09.ps
1_2001.pdf
205-01.ps
222-01.ps
222-09.ps
298-01.ps
298-09.ps
307-07.ps
316-07.ps
321-01.ps
321-09.ps
Altona-Testsuite_p2_S_x3.pdf
BEST8-99-Path.fh7.pdf
H00216q.pdf
Openhuis_pdf_zw.pdf
PixelisAd.pdf
shading_prob_800.ps
test.pdf

[src/gdevpdfd.c 1.35, src/gxcpath.c 1.9, src/gzcpath.h 1.5]

2003-11-11 12:16 Alex Cherepanov

Use [/XYZ null null null] as a default destination following the Distiller
example. The old destination was clearly wrong because it positioned the
bottom of the page on the top of the screen, effectively displaying the
next page.
Fix bug 687129

[src/gdevpdfm.c 1.33]

2003-11-11 11:23 Igor Melichev

Fix : ..includecolorspace caused an abnormal recursion.

DETAILS :

1. With -dNOSUBSTDEVICECOLORS the procedure ..includecolorspace called
setcolorspace, which recursively called ..includecolorspace .
This recursion would be infinit unless an ocasional error
in a stopped context terminates it. We replace setcolorspace
with _setcolorspace_nosub to avoid the recursion.
This fixes the bug 687134 "-dNOSUBSTDEVICECOLORS causes text to disappear".

2. An optimization done with a new dictionary ..page_default_spaces,
which now keeps up to 3 global flags for Default* color spaces,
to reflect whether they were included into a current page.
It prevents redundant calls to _setcolorspace_nosub, .includecolorspace
from ..includecolorspace .

3. Moved .PurgeDict to gs_init.ps because now it is called from showpage, copypage .

4. Added a name argument to .includecolorspace and passed it through
a set of functions in the graphics library and pdfwrite.
Before that Default* color spaces were included into the PDF output
with wrong resource names.

5. Minor change : fixed a procedure header comment in gs_devcs.ps .

EXPECTED DIFFERENCES :

None, because the nightly regression doesn't test -dNOSUBSTDEVICECOLORS .

[src/gdevdflt.c 1.15, src/gdevnfwd.c 1.14, src/gdevpdfc.c 1.41, src/gdevpdfg.h 1.27, src/gdevpdfv.c 1.32, src/gscolor2.c 1.17, src/gscolor2.h 1.9, src/gxdevcli.h 1.20, src/zcolor.c 1.17, lib/gs_ciddc.ps 1.13, lib/gs_devcs.ps 1.6, lib/gs_init.ps 1.101]

2003-11-10 19:47 Dan Coby

Continuation on the fix for 687101, Crash in GC on some PDF files.
This change adds comments to GS procedures for the imager state
structure.  These comments Were added to prevent confusion about the
handling of the effective transfer pointers.

[src/gsistate.c 1.8]

2003-11-10 16:55 Igor Melichev

Fix (type 1 hinter) : Hints were not applied to the last segment of a Type 2 glyph.

DETAILS :

Due to Type 2 glyphs have no explicit closepath,
the last contour was not added to the contours list.
It caused its last segment got type=closepath instead type=oncurve,
and was skipped from grid fitting.

Bug 687119  "(pdfwrite) different raster if Helvetica is embedded".

EXPECTED DIFFERENCES :

Normal, 72dpi :

455690.pdf
acrobat.pdf
Altona-Testsuite_p2_S_x3.pdf
Altona.Page_3.2002-09-27.pdf
besttest.pdf
bugsample.pdf
bulletin.pdf
ca.pdf
CIDembedded.pdf
dave.pdf
Fixed_Original.pdf
font_issue.pdf
HeiseiMinStd.pdf
KozukaB-ILEmbed.pdf
Openhuis_pdf_zw.pdf
Original.pdf
PixelisAd.pdf
RodinCIDEmbed.pdf
S2_Digitalproof-Forum_x3k.pdf
Svd.pdf
test.pdf
time1.pdf
vsem0093.pdf

pdfwrite, 72dpi :

033-52-5873.pdf
093-01.ps
455690.pdf
86554321.pdf
aaon97_p7.pdf
acrobat.pdf
alphabet.ps
Altona-Testsuite_p2_S_x3.pdf
Altona.Page_3.2002-09-27.pdf
besttest.pdf
Bug687044.ps
bugsample.pdf
bulletin.pdf
ca.pdf
chess.ps
chstudy.pdf
CIDembedded.pdf
dave.pdf
Fixed_Original.pdf
font_issue.pdf
gslandscape.pdf
H00216q.pdf
HeiseiMinStd.pdf
kazmir.pdf
knight.pdf
KozukaB-ILEmbed.pdf
laballade.pdf
NIL_0003.pdf
Openhuis_pdf_zw.pdf
Original.pdf
PixelisAd.pdf
prob.pdf
RealCities.pdf
rf1025.pdf
RodinCIDEmbed.pdf
S2_Digitalproof-Forum_x3k.pdf
Svd.pdf
test-setweightvector.ps
test.pdf
test2.pdf
test2a.pdf
time1.pdf
tpc2.ps
vsem0093.pdf

Normal, 300dpi :

455690.pdf
86554321.pdf
ai2.pdf
Altona-Testsuite_p2_S_x3.pdf
Altona.Page_3.2002-09-27.pdf
besttest.pdf
bugsample.pdf
bulletin.pdf
ca.pdf
CIDembedded.pdf
dave.pdf
Fixed_Original.pdf
font_issue.pdf
HeiseiMinStd.pdf
KozukaB-ILEmbed.pdf
non-sepqxd2distiller.pdf
Openhuis_pdf_zw.pdf
Original.pdf
PixelisAd.pdf
QuickNews_Nov22.pdf
RodinCIDEmbed.pdf
S2_Digitalproof-Forum_x3k.pdf
Svd.pdf
test.pdf
time1.pdf
type2accent.pdf
vsem0093.pdf

pdfwrite, 300dpi :

033-52-5873.pdf
093-01.ps
455690.pdf
86554321.pdf
aaon97_p7.pdf
acrobat.pdf
ai2.pdf
alphabet.ps
Altona-Testsuite_p2_S_x3.pdf
Altona.Page_3.2002-09-27.pdf
besttest.pdf
bla.ps
Bug687044.ps
bugsample.pdf
bulletin.pdf
ca.pdf
chess.ps
chstudy.pdf
CIDembedded.pdf
dave.pdf
Fixed_Original.pdf
fonttest.pdf
font_issue.pdf
gslandscape.pdf
H00216q.pdf
HeiseiMinStd.pdf
kazmir.pdf
knight.pdf
KozukaB-ILEmbed.pdf
laballade.pdf
NIL_0003.pdf
non-sepqxd2distiller.pdf
Openhuis_pdf_zw.pdf
Original.pdf
pdfopt_bug.pdf
PixelisAd.pdf
prob.pdf
QuickNews_Nov22.pdf
RealCities.pdf
rf1025.pdf
RodinCIDEmbed.pdf
S2_Digitalproof-Forum_x3k.pdf
Svd.pdf
test-setweightvector.ps
test.pdf
test2.pdf
test2a.pdf
time1.pdf
tpc2.ps
type2accent.pdf
vsem0093.pdf

[src/gxhintn.c 1.35]

2003-11-10 13:34 Igor Melichev

Fix : Refer new source modules from Develop.htm .

[doc/Develop.htm 1.124]

2003-11-08 07:44 Dan Coby

Add and option for specifying banded/noband.  The current version actually
uses 1 to specify banding and 0 to specify no banding. This is the optional
fourth parameter.

[toolbin/tests/make_two_versions 1.12]

2003-11-07 04:40 Alex Cherepanov

Restore the invariant: effective_transfer always points to the transfer
functions in the graphic state or halftone. Old code briefly left
effective_transfer pointing to garbage, which caused relocation of garbage
pointers and crash if GC happened at the right time.
Fix bug 687101

[src/gscolor.c 1.12, src/gscolor1.c 1.9]

2003-11-04 01:25 Dan Coby

Fix for 686796 tiffg4 device and incorrect halftone frequency.
This eliminates a problem with not choosing the best halftone cell size
when more than one possible cell size has the exact angle requested.

DETAILS:

Previously the logic for determing the size of the halftone cells used
the product of the error in frequency times the error in the angle as
the metric for determing the best cell size.  For many common angles,
0, 45, 90, etc., this results in an angle error of zero.  This then
gave a value of zero for the metric no matter what the frequency error.
The result was that in many cases we ignored cell sizes that gave a
better frequency match.  The fix revies the metric to choose a cell
size which is closest (geometrically) to the ideal cell size.

[src/gshtscr.c 1.14]

2003-11-03 10:36 Ralph Giles

Correct spelling and wording.

[doc/Use.htm 1.94]

2003-11-03 02:39 Alex Cherepanov

Initialize cc->pair field for the external fonts, forgotten
during the switch to new TrueType interpreter (NEW_TT_INTERPRETER).
Fix bug 687116

[src/gxccache.c 1.28]

2003-11-01 13:18 Igor Melichev

Fix (font resource machinery) : Dont try reloading fonts if the platform has no native fonts.

DETAILS :

This change suppresses redundant messages
"Cant find (or cant open) font file xxx.".

EXPECTED DIFFERENCES :

None.

[lib/gs_fonts.ps 1.44]

2003-11-01 04:43 Alex Cherepanov

Following the PDF spec ignore "/Encrypt null" entry in the trailer.
Fix bug 687117

DETAILS:
This patch is not an equivalent transformation because knownoget returns
false when the key value is null.

[lib/pdf_main.ps 1.81]

2003-10-31 22:12 Igor Melichev

Fix (font resource machinery) : Provide correct font names for graphics library.

DETAILS :

The old code passed names of substitutes rather than font names referred by a document.
This patch fixes that with adding a special ney entry /.Alias to the font dictionary.

Besides that, multiple problems are fixed in gs_fonts.ps,
some of them appeared before the repository was created.
Lising them here :

1. Several comments about stack layout in procedure headers were wrong
   since the repository was created.
   We repaired some of them, but possibly not all.

2. The old code assumed that SubstituteFont adds
   a name to the stack rather than replaces it.
   See comment inserted into .dofindfont .
   The patch for the bug 637424 (Revision 1.24, Nov 21, 2002) broken the
   old behavior and left multiple rudiments in code.
   Now we restore the old functionality, and make SubstututeFont
   to be compartible with CPSI, which replaces a name.

3. Now we define fonts for all aliases in the aliasing/substituting chain.
   Not sure it is better than defining only the final one,
   but the pre-repository code did so, and was
   unintentionaly broken by multiple patches.

4. .stdsubstfont dropped some aliases with no strong reason.
   Restoring the old behavior.

5. .tryloadfont damaged the stack balance. It was not visible due to (4).

6. We use a hack to provide the main functionality.
   See comment in .aliasfont . A complete solution is too hard.

7. Inserted auxiliary comments about the stack layout.

This change fixes the bugs
687047 "fonts renamed in resulting pdf file"
687111 "Quality of output wth gs8.11 for pdfwrite device is faded as compared to gs6.12"

EXPECTED DIFFERENCES :

MANY OF pdfwrite TESTS RENDER DIFFERENTLY due to the font substitution had changed.
Now pdfwrite does not embed /NimbusMonL-Regu, but recognize its alias Courier
as a standard font name.

0.pdf
000040cf.000_60.pdf
001-01.ps
001-13.ps
001-25.ps
002-09.ps
002-21.ps
002-33.ps
003-01.ps
012-01.ps
012-05.ps
012-09.ps
012-13.ps
013-01.ps
013-05.ps
013-09.ps
013-13.ps
014-01.ps
014-05.ps
014-09.ps
014-13.ps
015-01.ps
015-05.ps
015-09.ps
016-01.ps
017-01.ps
018-01.ps
020-01.ps
021-01.ps
023-01.ps
027-01.ps
027-05.ps
027-09.ps
027-13.ps
028-01.ps
031-01.ps
031-05.ps
032-01.ps
032-07.ps
033-01.ps
034-01.ps
034-10.ps
035-01.ps
035-07.ps
036-01.ps
038-01.ps
039-01.ps
040-01.ps
045-01.ps
046-01.ps
050-01.ps
055-01.ps
061-01.ps
070-01.ps
076-01.ps
083-01.ps
083-05.ps
083-09.ps
083-13.ps
084-01.ps
091-01.ps
093-01.ps
094-01.ps
096-01.ps
102-01.ps
103-01.ps
104-01.ps
109-01.ps
110-01.ps
113-01.ps
118-01.ps
119-01.ps
119-10.ps
119-16.ps
119-23.ps
119-35.ps
119-41.ps
119-47.ps
120-01.ps
123-01.ps
123-05.ps
123-09.ps
124-01.ps
129-01.ps
136-01.ps
141-01.ps
148-01.ps
148-05.ps
148-11.ps
148-16.ps
149-01.ps
149-05.ps
150-01.ps
154-01.ps
158-01.ps
159.pdf
162-01.ps
165-01.ps
166-01.ps
169-01.ps
169-05.ps
169-09.ps
169-13.ps
170-01.ps
175-01.ps
176-01.ps
177-01.ps
181-01.ps
184-01.ps
192-01.ps
194-01.ps
1_pct_50_bang.pdf
200-01.ps
205-01.ps
205-05.ps
205-09.ps
205-13.ps
206-01.ps
212-01.ps
213-01.ps
214-01.ps
215-01.ps
219-01.ps
220-01.ps
220-07.ps
222-01.ps
222-05.ps
222-09.ps
222-13.ps
223-01.ps
226-01.ps
227-01.ps
231-01.ps
233-01.ps
237-01.ps
238-01.ps
244-01.ps
245-01.ps
245-07.ps
245-13.ps
245-17.ps
246-01.ps
250-01.ps
251-01.ps
255-01.ps
257-01.ps
258-01.ps
260-01.ps
263-01.ps
264-01.ps
265-01.ps
268-02.ps
268-03.ps
268-04.ps
268-05.ps
268-06.ps
268-10.ps
269-01.ps
270-01.ps
272-01.ps
276-01.ps
281-01.ps
282-01.ps
289-01.ps
296-01.ps
297-01.ps
298-01.ps
298-05.ps
298-09.ps
299-01.ps
303-01.ps
304-01.ps
307-01.ps
307-07.ps
307-13.ps
308-04.ps
310-04.ps
311-03.ps
313-01.ps
316-07.ps
320-01.ps
321-01.ps
321-05.ps
321-09.ps
321-13.ps
322-01.ps
325-01.ps
327-01.ps
328-01.ps
330-01.ps
334-01.ps
335-01.ps
336-01.ps
401-01.ps
405-01.ps
409-01.ps
415-01.ps
421-01.ps
430-01.ps
438-01.ps
442-01.ps
446-01.ps
450-01.ps
460-01.ps
463-01.ps
464-01.ps
468-01.ps
473-01.ps
476-01.ps
477-01.ps
477-03.ps
477-04.ps
477-05.ps
477-06.ps
478-01.ps
483-01.ps
483-05.ps
541.pdf
541_623.pdf
86554321.pdf
aaon97_p7.pdf
acrobat.pdf
adesso1.pdf
adesso2.pdf
adesso3.pdf
adesso5.pdf
adesso6.pdf
adesso7.pdf
adesso8.pdf
ADOBE1-4.pdf
AdobeLic.pdf
ats-3-5-99.pdf
bc_02a01_cal.pdf
brochurep1.pdf
bug-gstest.pdf
ca.pdf
ccc.pdf
chess.ps
colorcir.ps
Dave_Barry.pdf
DisplayedGood.pdf
DisplayedWrong.pdf
Encoding.ps
foo.pdf
frosch.pdf
GS_Stroke_error.pdf
H00216q.pdf
Jahr2000.pdf
js.pdf
kazmir.pdf
LD.pdf
messenger.pdf
messenger16.pdf
mspro.pdf
NECPNTD.pdf
new_rect.pdf
new_rect_nr.pdf
ngnews.pdf
ngnews1.pdf
p2b-100.pdf
pdftops.pdf
prfmm.pdf
pstopdf.pdf
pstopdfO3.pdf
QA_Inv.pdf
RealCities.pdf
rf1025.pdf
smdf.90441.102.pdf
Svd.pdf
test3.pdf
TextRize.pdf
textsavematrix.pdf
two_encodings.ps
Vu989qfj.pdf
waterfal.ps
xgfddg.pdf
xngnews.pdf

[src/zbfont.c 1.25, lib/gs_fonts.ps 1.43, doc/Use.htm 1.93]

2003-10-30 14:56 Igor Melichev

Fix (dropout prevention) : The expression for choosing a pixel to paint with narrow trapesoids
was wrong (An improved revision).

DETAILS :

The patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003721.html
appears wrong. Now fixing it.

EXPECTED DIFFERENCES :

The massive difference in text rendering, which appeared after the patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003721.html
now should disappear. Only expected difference from the patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003719.html
(see its log message) should persist.

[src/gxdtfill.h 1.6]

2003-10-30 12:56 Igor Melichev

Fix : Simplify the filling algorithm (step 10).

DETAILS :

Factored out fill_trap_or_rect.
This change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.49]

2003-10-30 11:39 Igor Melichev

Fix : Simplify the filling algorithm (step 8).

DETAILS :

Don't create active line copies, because now the X list doesn't change.
This change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.48]

2003-10-30 11:02 Igor Melichev

Fix : Simplify the filling algorithm (step 7).

DETAILS :

Removed some unused functions.
This change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.47]

2003-10-30 10:45 Igor Melichev

Fix : Simplify the filling algorithm (step 6).

DETAILS :

This patch includes 2 changes :

1. Removed the "out of order lines patch".
We believe that now it never happens.

2. A code restructurization.
Moved the line intersection routine outside the main loop.

This change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.46]

2003-10-30 09:33 Igor Melichev

Fix : Simplify the filling algorithm (step 5).

DETAILS :

Divided gxfill.c into 2 modules.
Moved the dropout prevention code to the new module gxfdrop.c .
This change should be algorithmically equivalent.

Minor change :

1. Removed the ll_ptr type definition. IMO it is not fully conforming to C-style.htm .
2. Removed free variables from INSIDE_PATH_P and made it be of the module scope.

EXPECTED DIFFERENCES :

None.

[src/gxfdrop.c 1.1, src/gxfdrop.h 1.1, src/gxfill.c 1.45, src/gxfill.h 1.1, src/lib.mak 1.146]

2003-10-30 07:55 Igor Melichev

Fix : Simplify the filling algorithm (step 4).

DETAILS :

1. Restructirases some if statements to remove redundant code fragments.
2. Eliminated a low useful macros AL_DX, AL_DY.
This change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.44]

2003-10-30 06:34 Alex Cherepanov

Correct a typo in source leading to failure of form selection for PCL
printers. (contributed by Jim Bandy)
Fix bug 686815

[src/gdevdljm.c 1.9]

2003-10-29 17:43 Igor Melichev

Fix : Simplify the filling algorithm (step 2).

DETAILS :

1. The new function fill_trap_slanted fgactored out from the trapezoid algorithm
   to simplify the code of the latter.
2. Simplified argument lists of dropout prevention functions.
3. Moved helper function definitions before calls to allow
   inline optimizations.
This change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.43]

2003-10-29 15:58 Igor Melichev

Fix : Simplify the filling algorithm (step 2).

DETAILS :

This change removes the obsolete code PSEUDO_RASTERIZATION 0.
It should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.42]

2003-10-29 14:57 Igor Melichev

Fix : Simplify the filling algorithm (step 1).

DETAILS :

This change divides the X-cycle of the trapezoid algorithm into 2 passes.
The new function move_al_by_y is the second pass.
It should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c 1.41]

2003-10-28 14:44 Igor Melichev

Fix (dropout prevention) : The expression for choosing a pixel to paint with narrow trapesoids
was wrong. The old code sometimes unreasonably shifted stems in 1 pixel.

EXPECTED DIFFERENCES :

A massive difference in text rendering.
ALMOST ALL comparefiles RENDER DIFFERENTLY.

[src/gxdtfill.h 1.5, src/gxfill.c 1.40]

2003-10-28 14:42 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 21, final).

DETAILS :

This patch switches on the new TT interpreter
and updates the documentation.

EXPECTED DIFFERENCES :

Massive difference in rendering TT fonts :

01_001.pdf
159.pdf
adesso2.pdf
adesso7.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
annots.pdf
budget2.pdf
budget2_ai87.pdf
bugsample.pdf
Faktura.pdf
fonts.pdf
ICPconcept.pdf
japan-.ps
japan.ps
keyboard.pdf
korea.ps
MagicEye.pdf
MyTest5.ps
MyTest6.ps
S2_Digitalproof-Forum_x3k.pdf
Testform.v1.0.2.pdf
test_multipage_prob.pdf
Type11CDevProc.ps
type42_glyph_index.ps

[src/gx.h 1.14, doc/Develop.htm 1.123, doc/Language.htm 1.77, doc/Projects.htm 1.55, doc/Use.htm 1.92]

2003-10-27 10:45 Igor Melichev

Reclaim global memory in the beginning of the interpreter finalization (continued).

DETAILS :

Fixes the bug 687100 gswin32 -h crashes.

EXPECTED DIFFERENCES :

None.

[src/imain.c 1.37]

2003-10-27 09:04 Igor Melichev

Fix : Removing the PDF Widths project from Project.htm .

DETAILS :

The issue was closed with pdf_font.ps Revision 1.57.
Thanks to Alex Cherepanov.

EXPECTED DIFFERENCES :

None.

[doc/Projects.htm 1.54]

2003-10-27 08:02 Igor Melichev

Fix (garbager) : The back pointer validity constraint was wrong.

DETAILS :

Bug 687021 "A crash in memory manager"

Here is what happens :

A big chunk is allocated by i_alloc_struct_array.
Later a part of the array is released.
Then another object is allocated in the released area.
Then the object is being relocated.
The old validity constraint in igc_reloc_struct_ptr assumed that the object
is in a chunk of the standard size.
However it is not.
The check fails, and gs_exit() is called.
The latter calls vm_reclaim and falls into an infinite recursion and crashes.

This patch enhances the constraint for instandard (big) chunks.
Unfortunately their sizes can't easy obtain from igc_reloc_struct_ptr,
therefore the new check only works for pointers to same chunk.
A new field (DEBUG=1 only) is inserted into gc_state_s to access the chunk from
igc_reloc_struct_ptr. We're not happy of this solution,
but there is no idea how to improve it.

EXPECTED DIFFERENCES :

With -Z? the old code failed with pdfwrite->ppmraw with the following tests :

040-01.ps
091-01.ps
110-01.ps
282-01.ps
Altona.Page_3.2002-09-27.pdf    (crash)

The new code doesn't fail with -Z? .

Nightly regression doesn't test -Z? .

[src/igc.c 1.11, src/igc.h 1.6]

2003-10-26 00:52 Alex Cherepanov

Apply oforce to every element of MediaBox and CropBox arrays.
Fix bug 687035 from customer 831

[lib/pdf_base.ps 1.39, lib/pdf_main.ps 1.80]

2003-10-24 06:14 Dan Coby

Some minor clean up for the makefiles:
1.  Correct lines that should start with tabs.
2.  Clear some lines which only contain spaces.

[src/bcwin32.mak 1.30, src/dvx-gcc.mak 1.24, src/macos-mcp.mak 1.23, src/macosx.mak 1.21, src/msvc32.mak 1.50, src/msvclib.mak 1.25, src/msvctail.mak 1.10, src/openvms.mak 1.33, src/os2.mak 1.35, src/ugcclib.mak 1.26, src/unixansi.mak 1.33]

2003-10-23 17:45 Igor Melichev

Fix (PDF interpreter) : Shared CID font descriptors did not work properly.

DETAILS :

When a CID font descriptor is shared with several CID font resources,
must create several font objects with different CIDToGIDMap, DW, DW2
taken from CID font resource dictionaries.
The old code created a single font object with one randomly chosen CIDToGIDMap,
making some glyphs inaccessible, and glyphs could misplace.

New procedures adjustCIDType0, adjustCIDType2 are added into the adjustfont
dictionary, so that now CID fonts are processed in same way as fonts.
Bug 687048 "fonts not rendered correctly".

Besides that, the old code on pdf_font.ps created a CDevProc
for processing DW[2], but it was not properly added to the font dictionary and
was not executed. The new code fixes that.
This issue causes rendering differences.

[end quote]

EXPECTED DIFFERENCES :

This patch causes progressions in PDF interpreter :

raster, 72dpi :
ICPconcept.pdf
Testform.v1.0.2.pdf

raster, 300dpi :
Altona.Page_3.2002-09-27.pdf
ICPconcept.pdf
Testform.v1.0.2.pdf

pdfwrite->raster, 72dpi :
Altona.Page_3.2002-09-27.pdf
ICPconcept.pdf
japan-.ps
japan.ps
Testform.v1.0.2.pdf
Type11CDevProc.ps

pdfwrite->raster, 300dpi :
Altona.Page_3.2002-09-27.pdf
ICPconcept.pdf
japan-.ps
japan.ps
korea.ps
shading_prob_800.ps
Testform.v1.0.2.pdf
Type11CDevProc.ps

[lib/pdf_font.ps 1.59]

2003-10-23 10:46 Igor Melichev

Fix (pdfwrite) : Restrict Tj offsets.

DETAILS :

Acrobat reader 4.0c, 5.0 can't handle big offsets.
Bug 687089 "Displaced characters in PDF".

EXPECTED DIFFERENCES :

None.

[src/gdevpdts.c 1.27]

2003-10-23 09:56 Igor Melichev

Fix (pdfwrite) : MSVC compiler warning.

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c 1.49]

2003-10-23 09:49 Igor Melichev

Fix (pdfwrite) : Optimize pdf_make_text_glyphs_table_unencoded.

DETAILS :

This change is algorithmically equivalent.
The new code isn't faster, because the new function gs_c_decode
still needs an optimization, but the latter is simple.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c 1.67, src/gdevpdtt.h 1.20, src/gscencs.c 1.7, src/gscencs.h 1.5]

2003-10-23 09:04 Igor Melichev

Fix : ColorSpace resource files define global resources.

DETAILS :

This is an optimisation issue.

EXPECTED DIFFERENCES :

None.

[Resource/ColorSpace/DefaultCMYK 1.2, Resource/ColorSpace/DefaultGray 1.2, Resource/ColorSpace/DefaultRGB 1.2]

2003-10-22 19:55 Ralph Giles

Always install all the available resource categories (directories) on
unix, in place of the earlier hard-wired list. Closes bug 687092.

[src/unixinst.mak 1.34]

2003-10-22 19:48 Ralph Giles

Add the new ColorSpace directory to the list of installed resource
categories. This is the quick fix version of the resolution for Bug
687092.

[src/unixinst.mak 1.33]

2003-10-22 19:35 Dan Coby

Fix for 687099 Rebulding XREF leaves 1 object on the stack.  The  bug
title is erroneous.  All PDF files were leaving one item, a zero, on
the stack.  The problem was caused by an incorrect definition of
pdfemptycount.

[lib/pdf_main.ps 1.79]

2003-10-22 16:45 stefan

file gslibctx.c was initially added on branch gslibctx.

[src/gslibctx.c 1.1]

2003-10-22 16:45 stefan

file gslibctx.h was initially added on branch gslibctx.

[src/gslibctx.h 1.1]

2003-10-22 16:39 Dan Coby

Change the name of the switch NOSUBDEVICECOLORS to NOSUBSTDEVICECOLORS.
This was done to prevent confusion about being read as 'No subdevice
colors'.

[doc/Use.htm 1.91, lib/gs_devcs.ps 1.5, lib/gs_init.ps 1.100]

2003-10-22 13:11 Igor Melichev

Fix (pdfwrite) : Provide an extended encoding for glyphshow.

DETAILS :

It fixes the problem 1 described in
the bug 687087 "pdfwrite : A mangled /trademark glyph" :
the glyph was converted to outline.

In the test document a glyphshow uses a glyph outside the font's Encoding.
Now we find a known Postscript encoding containing the glyph,
and encode the glyph with it.
Glyphs with unknown names still convert to outlines.

EXPECTED DIFFERENCES :

pdfwrite progressions :
136-01.ps
244-01.ps
The document tpc2.ps of the bug 687087.

[src/devs.mak 1.100, src/gdevpdtc.c 1.29, src/gdevpdte.c 1.48, src/gdevpdtt.c 1.66, src/gdevpdtt.h 1.19]

2003-10-22 12:14 Ralph Giles

Update a call to map_rgb_color() to use the new encode_color() with a
component array argument. Partial resolution of Bug 686981.

DETAILS:

This resolves the compiliation problem that was the substance of the
original report. However, there is further code rot to be corrected as
the driver fails in use with '/undefined in --get--'.

[src/gdevcgm.c 1.9]

2003-10-22 11:22 Alex Cherepanov

Restore standard functionality of bind operator in DELAYBIND mode after
.bindnow . Simplify the implementation logic and document the changes.
Fix bug 686746

DETAILS:
The fix is based on the patch from Piotr Strzelczyk but selects
the bind definition at run time following the old implementation
to avoids errors when the differed bind operator is bound in.

[lib/gs_ll3.ps 1.20, doc/Language.htm 1.76, lib/gs_init.ps 1.99, lib/ps2ascii.ps 1.8]

2003-10-22 09:58 Ralph Giles

Make a sentence fragment a clause.

[doc/Drivers.htm 1.41]

2003-10-22 08:55 Alex Cherepanov

Dereference indirect objects during conversion from PDF form XObject to
PostScript form. Minimize dictionary copying.
Fix bug 686953.

[lib/pdf_draw.ps 1.79]

2003-10-22 07:07 Igor Melichev

Fix (PDF interpreter) : Annotations, outlines and links pointing to
non-existing pages caused a failure with -dDOPDFMARKS.
Patch from Leon Bottou.

DETAILS :

Bug 686839 "Patch to ignore pdf errors in outlines and links"

A followup form Leon Bottou :

[beg quote]
I found several pdf files with damaged or incorrect annotations (outlines, links)
pointing to non existing pages or even pointing to nodes of incorrect type

When using the pdf interpreter with -dDOPDFMARKS, such
errors cause an execution error in the pdf interpreter
The attached patch ignores such errors.  The assumption is that
it is better to produce botched pdfmarks than producing an error
message and be unable to process the file.
[end quote]

EXPECTED DIFFERENCES :

None.

[lib/pdf_main.ps 1.78]

2003-10-21 15:02 Igor Melichev

Fix (pdfwrite) : Refactor pdf_obtain_font_resource.

DETAILS :

This change is algorithmically equivalent.
It's a preparation for fixing the problem 1 described in
the bug 687087 "pdfwrite : A mangled /trademark glyph"

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c 1.65]

2003-10-21 13:37 Ralph Giles

Complete the replacement for fname_size described in the previous
commit. Part of fixing bug 686981.

[src/gdevcgm.c 1.8]

2003-10-21 13:28 Ralph Giles

Replace a non-standard local filename length define with gp_file_name_sizeof.

[src/devs.mak 1.99, src/gdevcgm.c 1.7]

2003-10-21 11:54 Alex Cherepanov

Fix compiler warnings. Include gpmisc.h when needed.
Fix bug 687006.

[src/gp_dosfs.c 1.16, src/gp_macio.c 1.32, src/gp_ntfs.c 1.21, src/gp_unifn.c 1.15, src/gp_vms.c 1.36, src/int.mak 1.118, src/lib.mak 1.145, src/macos-mcp.mak 1.22, src/openvms.mak 1.32, src/openvms.mmk 1.27, src/stdio_.h 1.9, src/winplat.mak 1.5, src/zfile.c 1.39]

2003-10-21 11:20 Alex Cherepanov

Issue a path construction command after accumulation of 500 values to prevent
operand stack overflow.
Fix bug 687016

[src/gdevps.c 1.37]

2003-10-21 10:06 Igor Melichev

Fix : Disable the grid fitting while charproc accumulation (continued).

DETAILS :

1. If a charproc of a Type 3 font uses another Type 3 font, and the latter
converts to raster, the grid fitting was erroneusly disabled while
its charproc accumulation. Not sure that this case can happen,
but we like to clean up.

2. An optimization to process_plain_text is algorithmically equivalent.
   It is not related to charprocs though.

EXPECTED DIFFERENCES :

None with comparefiles.

[src/gdevpdte.c 1.47, src/gdevpdti.c 1.22]

2003-10-21 08:05 Igor Melichev

Fix : Add newly defined resource files to static resources.

EXPECTED DIFFERENCES :

None.

[lib/gs_stres.ps 1.6]

2003-10-21 07:50 Igor Melichev

Fix : Some Cygwin/gcc compiler warnings.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfg.c 1.42, src/gdevpdtt.c 1.64, src/gxhintn.c 1.34, src/gxtype1.c 1.35, src/interp.c 1.17, src/isave.c 1.9, src/iscan.c 1.15, src/zfapi.c 1.49, src/zfont.c 1.9, src/devs.mak 1.98, src/icid.h 1.7, src/isave.h 1.6]

2003-10-21 01:43 Igor Melichev

Fix : Disable the grid fitting while charproc accumulation.

DETAILS :

This is a partial (minor) fix for the bug 687087 "pdfwrite : A mangled /trademark glyph".
The glyph looks fine but still converts to outline.

This change works for pdfwrite only.
It changes several files in the graphics library, but other devices
should percept this change as algorithmically equivalent.

The core of the change is explained in the comment inserted into gdevpdtt.c :

    if (pdev->font3 != 0) {
	/* A text operation happens while accumulating a charproc.
	   This is a case when source document uses a Type 3 font,
	   which's charproc uses another font.
	   Since the text operation is handled by the device,
	   the font isn't converting to a raster (i.e. to a bitmap font).
	   Disable the grid fitting for the convertion to get a proper outlines,
	   because the viewer resolution is not known during the accumulation.
	   Note we set identity CTM in pdf_text_set_cache for the accumilation,
	   and therefore the font may look too small while the source charproc
	   interpretation. The document tpc2.ps of the bug 687087 is an example.
	*/
	penum->device_disabled_grid_fitting = true;
    }

It is implemented with defining the new field device_disabled_grid_fitting
into gs_text_enum_common.

Minor changes :

1. In gs_type1_state_s renamed charpath_flag to no_grid_fitting.
   We believe the new name reflects the semantics better.
   Several function prototypes changed the argument name.

2. decompose_matrix in gxttfb.c changed the prototype,
   and disables the TT grid fitting for very small fonts.
   (We consider it as a minor change, because currently this portion
   is disabled with NEW_TT_INTERPRETER 0 in gx.h).

3. A problem discovered in t1_hinter__set_mapping that
   impedes implementing a grid-fitting disabling for small Type 1,2,11 fonts.
   A comment is inserted into gxhintn.c about that.
   Very samll glyphs can be mangled diring a rasterization, but the mangling
   isn't visible in raster with such small sizes.
   Therefore the problem isn't important.

EXPECTED DIFFERENCES :

None with comparefiles.

The test file tpc2.ps of the bug 687073 doesn't cause a mangled glyph,
rather the glyph still converts to outline.

[src/gdevpdte.c 1.46, src/gdevpdtt.c 1.63, src/gstext.c 1.14, src/gstype1.c 1.29, src/gstype1.h 1.9, src/gstype2.c 1.32, src/gxfcopy.c 1.36, src/gxhintn.c 1.33, src/gxhintn.h 1.15, src/gxtext.h 1.12, src/gxttfb.c 1.17, src/gxtype1.c 1.34, src/gxtype1.h 1.18, src/zchar1.c 1.34]

2003-10-20 12:06 Alex Cherepanov

Don't cache glyphs with a suspect bounding box. The patch tests for
(urx!=0 && llx==urx) || (ury!=0 && lly==ury) but suggestions of a
better test are allways welcome.
Fix bug 687015 from customer 440

[lib/pdf_font.ps 1.58]

2003-10-19 17:48 Alex Cherepanov

Return correct /DeviceGray color space from currentcolorspace operator
inside PaintProc of the uncolored pattern and cache device (bug 627169).
Use igs->color_space to track the current color space.
Fix bug 687080 from customer 710.

DETAILS:

The problem in bug 687080 is definitely a conflict about the current
color space while the PaintProc is being executed.  There are two
color space indicators: pgs->color_space and igs->colorspace.  Most
of the time these two agree and there is no problem.  However during
pattern accumulation pgs->color_space has been temporarily changed
from a pattern color space to DeviceGray.  This causes a problem
when the currentcmyk operator is called.  Currently, before this fix,
it calls currentcolor which returns a DeviceGray color.  Then a
color to CMYK routine is called based upon the color space being
a pattern color space.  This then fails since it has the wrong input
color values.

The fix looks at the current color space, in pgs->color_space,
and is special casing DeviceGray.  The fix should work better than
the current logic.  The only problem area would likely be if we have
other 'temporary' color spaces besides DeviceGray.  I do not know of
any and the current logic would also fail.

[src/int.mak 1.117, src/zcolor.c 1.16]

2003-10-19 06:15 Ray Johnston

Fix: Pattern color spaces that used save/restore within the PaintProc
would result in infinite looping with high level devices such as the
pdfwrite device since the restore cleared the pattern cache so that
after the restore, the pattern PaintProc would need to be executed
again. Bug #687052 for customer #411.

DETAILS:

The 'is_dummy' flag in the pattern cache indicates that the cache
entry does not contain bitmap or tile bits, but rather is just
a placeholder for the pattern 'id'.

The patch does not delete entries for pattern color spaces that
have is_dummy != 0. The pdfwrite device creates all pattern cache
entries as dummies.

This change does not result in any regression and, of course, prevents
the infinite looping.

[src/gxpcmap.c 1.11]

2003-10-16 20:42 Igor Melichev

Fix (pdfwrite) : Fonts used in a charproc were not added to Resources of some pages.

DETAILS :

Bug 687073 "cannot convert a ps file to pdf"

Changes :

1. Added gx_device_pdf::font3 to access the Type 3 font while a charproc stream accumulation.
2. Provided saving it to the substream context stack.
3. Provided resource id for Type 3 font resources (were zeros).
4. The new function pdf_used_charproc_fonts sets where_used to charproc fonts,
   allowing to write them to page Resources.
5. A minor cleanup of comments.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c 1.75, src/gdevpdfx.h 1.77, src/gdevpdte.c 1.45, src/gdevpdtf.h 1.21, src/gdevpdti.c 1.21, src/gdevpdts.c 1.26, src/gdevpdtt.c 1.62, src/gdevpdtx.h 1.2]

2003-10-16 13:37 Igor Melichev

Fix (pdfwrite) : The font copying routine was inprecise.

DETAILS :

1. Obtaining a glyph metrics, the font copying rutine scaled it
with UnitsPerEm and back, loosing a precision.
It caused an inprecise values for glyph width and side bearing in the font copy,
and implied slightly shifted glyphs when PDF is rasterised.
Inserted a compensation in the rounding expressions.

2. compare_glyphs sometimes compared a TT glyph with 0th glyph,
and made a wrong decision that fonts can't merge.
With some documents the PDF output becomes shorter.

EXPECTED DIFFERENCES :

pdfwrite, 72dpi:

keyboard.pdf
korea.ps
MagicEye.pdf
type42_glyph_index.ps

pdfwrite, 300dpi :

01_001.pdf
159.pdf
adesso2.pdf
adesso7.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Faktura.pdf
ICPconcept.pdf
keyboard.pdf
korea.ps
MagicEye.pdf
type42_glyph_index.ps

In adesso7.pdf, adesso8.pdf a TT font renders some worse, but it's unfortunate.
With the new TT interpreter and -dGridFitTT=1 it renders fine.

[src/gdevpsft.c 1.31, src/gstype42.c 1.40, src/gxfcopy.c 1.35]

2003-10-16 12:33 Igor Melichev

Reclaim global memory in the beginning of the interpreter finalization.

DETAILS :

The patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003664.html
was incomplete.

EXPECTED DIFFERENCES :

Revisions after the patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-October/003664.html
can crash or write an incomplete PDF. Now fixed.

[src/imain.c 1.36]

2003-10-16 11:23 jeong

When Glyph names data is not available for a TrueType Format 2.0 font,
rangecheck error occured. It was due to an attempt to get the data
even when it is not available. Now when no name data is available,
/postnames is defined
as an empty array and the glyph won't get a name attached. Fixes
Bug#686961.

[lib/gs_ttf.ps 1.34]

2003-10-16 11:15 Alex Cherepanov

Fix error recovery code for PDF image; pop the operand of image operator
restored by the standard PS error recovery.
Fix bug 687081 from customer 770.

[lib/pdf_draw.ps 1.78]

2003-10-15 15:36 Igor Melichev

Fix (pdfwrite) : Resources were prematurely freed, causing pending pointers.

DETAILS :

Debugged with 473-01.ps (was a crash in ialloc_validate_object).

EXPECTED DIFFERENCES :

473-01.ps shouldn't crash pdfwrite.

[src/gdevpdf.c 1.74]

2003-10-15 15:35 Igor Melichev

Fix (pdfwrite) : Don't recompute FontBBox for CID font subsets.

DETAILS :

It's an optimization, which is important with the new TT interpreter.
The new TT interpreter copies TT structures into internal structures.
With CID fonts it'a a big memory consumtion.
Also now it runs faster.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtd.c 1.15]

2003-10-15 11:34 Igor Melichev

Fix : A minor code cleanup in zfont42.c .

DETAILS :

The condition for missing a glyph was too weak, rather it never went out.

EXPECTED DIFFERENCES :

None.

[src/zfont42.c 1.17]

2003-10-15 11:29 Igor Melichev

Fix (pdfwrite) : A bug in memory descriptor.

DETAILS :

The bug caused a crash re-distilling the keyboard.pdf .

EXPECTED DIFFERENCES :

Should fix the pdfwrite crash with keyboard.pdf.

[src/gsstruct.h 1.17, src/gxfcopy.c 1.34]

2003-10-15 08:53 Igor Melichev

Reclaim global memory in the beginning of the interpreter finalization.

DETAILS :

This is a partial fix for the bug 687071 "Default vmthreshold isn't sufficient for pdfwrite".
The pdfwrite device may need significant space in global memory to allocate compression filters
while the device finalization.

EXPECTED DIFFERENCES :

With this patch the following test crashes :

gswin32c.exe -dNOPAUSE  -dBATCH -sDEVICE=pdfwrite -sOutputFile=z:\cur.pdf comparefiles/keyboard.pdf -c quit

It looks as a wrong memory allocation or a descriptor.
I don't delay commit, because it's another problem to be worked out separately,
and the problem isn't massive.

[src/imain.c 1.35, src/interp.c 1.16, src/interp.h 1.6]

2003-10-15 07:50 Dan Coby

Change the name of NOSUBCOLORSPACES to NOSUBDEVICECOLORS.

DETAILS:

In a code review for the NOSUBCOLORSPACES switch, Igor suggested changing
the name to KEEPDEVICECOLORS.  I still prefer NOSUB instead of KEEP.
Basically I prefer that switches which stop an action begin with NO.
However changing COLORSPACES to DEVICECOLORS is a definite improvement
since COLORSPACES is overly general and thus inaccurate.  The only
color spaces which are substituted are the device colors.

[doc/Use.htm 1.90, lib/gs_devcs.ps 1.4, lib/gs_init.ps 1.98]

2003-10-15 07:34 Dan Coby

Add new header file src/gdevdevn.h to doc/Develop.htm.

[doc/Develop.htm 1.122]

2003-10-15 00:03 Igor Melichev

Fix (True Type font loader) : 'glyf' and 'loca' were loaded emulating a CID font with True Type,
causing an unuseful huge memory consumtion.

DETAILS :

My old patch about the font emulation was incomplete.
This patch fixes that.

EXPECTED DIFFERENCES :

None.

[lib/gs_ttf.ps 1.33]

2003-10-14 20:37 Igor Melichev

Fix (pdfwrite) : Resources were prematurely freed, causing duplicated objects in the output.

DETAILS :

Bug 687078 "pdfwrite duplicates page resources".
pdf_store_page_resources releases page resources, but they may be used in next
pages. Due to that such resources may be duplicated in the output file.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfc.c 1.40, src/gdevpdfu.c 1.43]

2003-10-14 15:00 Igor Melichev

Fix (pdfwrite) : Applying .includecolorspace to insert "default" color spaces.

DETAILS :

This completes the fix for the
bug 687054 "pdfwrite should include DefaultGray, DefaultRGB, DefaultCMYK".

The "default" color space resources are being included only if all 3 conditions are satisfied :

1. -dUseCIEColor is set;
2. -dNOSUBCOLORSPACES is set;
3. The source document defines the resource.

If the document doesn't define the resource, but the user wants to include it,
the document to be prepended with

  currentglobal true setglobal
  /DefaultGray /ColorSpace 2 copy findresource exch defineresource pop
  /DefaultRGB  /ColorSpace 2 copy findresource exch defineresource pop
  /DefaultCMYK /ColorSpace 2 copy findresource exch defineresource pop
  setglobal

and the resources must be available in gs/Resource/ColorSpace.

This patch removes the "default" color space resources from gs_ll3.ps,
assuming they are added to gs/Resource/ColorSpace.
This is done to obtain the proper result of resourcestatus.

EXPECTED DIFFERENCES :

None.

[lib/gs_devcs.ps 1.3, lib/gs_ll3.ps 1.19]

2003-10-14 14:58 Igor Melichev

Initial commit for ColorSpace resources.

[Resource/ColorSpace/DefaultCMYK 1.1, Resource/ColorSpace/DefaultGray 1.1, Resource/ColorSpace/DefaultRGB 1.1]

2003-10-14 12:53 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 20).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch is a minor code cleanup.

EXPECTED DIFFERENCES :

None.

[src/gxccache.c 1.27, src/gxttfb.c 1.16, src/ttfmain.c 1.18]

2003-10-14 12:43 Igor Melichev

Define a new special operator .includecolorspace and new device virtual function
include_color_space. Implement the latter for pdfwrite.

DETAILS :

This is a partial fix for
Bug 687054 "pdfwrite should include DefaultGray, DefaultRGB, DefaultCMYK".
This stuff provides a writing, but currently it is never called by gs/lib/* .
A documentation is placed into a comment in gscolor2.c .

EXPECTED DIFFERENCES :

None.

[src/gdevbbox.c 1.15, src/gdevdflt.c 1.14, src/gdevnfwd.c 1.13, src/gdevpdf.c 1.73, src/gdevpdfd.c 1.34, src/gdevpdfv.c 1.31, src/gdevpdfx.h 1.76, src/gdevrops.c 1.9, src/gscolor2.c 1.16, src/gscolor2.h 1.8, src/gxclip.c 1.12, src/gxclip2.c 1.9, src/gxclipm.c 1.11, src/gxclist.c 1.12, src/gxdevcli.h 1.19, src/gxdevice.h 1.14, src/zcolor.c 1.15]

2003-10-14 10:15 Igor Melichev

Fix (PDF interpreter) : Adjust the currentpoint saved back into TextMatrix so that it
does not include the effect of TextRise.

DETAILS :

Bug 686837 "PDF with subscript rendered wrong"
Patch from Raph Levien.

Here is analyzis from Raph Levien :
[beg quote]

the test file is using PDF's Ts operator to adjust the
"text rise", exactly as shown in section 5.2.6 "Text Rise" of the
PDF manual (3rd ed). Ghostscript's rendering is incorrect because
the "settextposition" function (in pdf_ops.ps) updates the TextMatrix
using the current point after showing the text. However, this point
already contains the effect of TextRise. Then, the next time
settextmatrix is invoked, it applies TextMatrix, followed by a
second TextRise.

The patch below simply reverses the effect of TextRise before setting
TextMatrix. I believe that the correct invariant is that
"settextposition" followed by "settextstate" should result in (0, 0)
being the current point in the resulting CTM. I argue that the patch
fulfills the invariant, as follows. Let the current point be (x, y),
relative to TextSaveMatrix. Then, settextposition sets the translate
portion of TextMatrix to (x, y - TextRise). Then, settextmatrix (as
invoked from settextstate) applies TextMatrix followed by TextRise,
for a net translation of (x, y).

Query: is this reasoning still valid for arbitary rotations and scales
in TextMatrix (as set by Tm)? It seems so to me, but I believe testing
is required to establish this definitively.

[end quote]

I've tested it with comparefiles and found no differences.

EXPECTED DIFFERENCES :

None.

[lib/pdf_ops.ps 1.32]

2003-10-14 09:16 Igor Melichev

Fix (resource machinery) : A bug in resourceforall.

DETAILS :

Bug 687004 "bug in gs_res.ps (6.52, 7.07 and 8.11)".
Patch from Ferdinand Oeinck.

EXPECTED DIFFERENCES :

None.

[lib/gs_res.ps 1.36]

2003-10-14 09:14 Igor Melichev

Fix (Type 1 interpreter) : Provide a tolerance to a missed subglyph.

DETAILS :

Bug 595760 "Fix for buggy font subsets".

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c 1.33, src/gxfont1.h 1.12, src/gxtype1.c 1.33, src/zchar1.c 1.33, src/zfcid0.c 1.21]

2003-10-13 19:10 Igor Melichev

Fix (FAPI/FreeType) : Upgrading to Free Type 2.1.5 .

DETAILS :

A minor change in a type name.
Patch from Robert Seretny.

EXPECTED DIFFERENCES :

None.

[src/fapi_ft.c 1.12]

2003-10-13 15:06 Igor Melichev

Fix (color space serialization) : Removing a constraint to the Sd function dimension.

DETAILS :

The implementation used an unreasonable constraint, which restricted
a number of color components. Now the constraint is removed.

EXPECTED DIFFERENCES :

Fixes the recent regression with Altona.Page_3.2002-09-27.pdf .

[src/gsfunc0.c 1.13]

2003-10-13 12:16 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 19).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch applies the design grid to emulate an infinite resolution with GridFitTT=0.
Removed changes to ttinterp.c that were inserted to that purpose.

The old code literally implemented the Raph's idea to disable the pixel rounding in the
TT interpreter. Such implementation appears not good due to a rounding may apper implicitly
while coordinate computations with low level TT operations.
The new code requires lesser changes to the TT inprepreter and needs lesser
number of cases to represent the infinite resolution :
same code works for GridFitTT=0 and for charpath.

Also optimized MoveGlyphOutline because now it is called more frequent.

EXPECTED DIFFERENCES :

None.

[src/gxccache.c 1.26, src/gxttfb.c 1.15, src/ttfmain.c 1.17, src/ttfoutl.h 1.12, src/ttinterp.c 1.9]

2003-10-12 19:09 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 18).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch is an optimization : it avoids an extra glyph data copying,
and simplifies a memory descriptor.

EXPECTED DIFFERENCES :

None.

[src/gxttfb.c 1.14, src/ttfmain.c 1.16, src/ttfmemd.c 1.6, src/ttfoutl.h 1.11]

2003-10-10 07:08 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 17).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch fixes a problem with zero size fonts.

EXPECTED DIFFERENCES :

None.

[src/gxccache.c 1.25, src/gxccman.c 1.22, src/gxfcache.h 1.20]

2003-10-09 22:26 Dan Coby

Fix for 687055 pdfwrite should not fail with <>
setpagedevice.  This change adds support for the DeviceN process color
model to the pdfwrite device.  The DeviceN process color model is treated
like the DeviceCMYK process color model except for the name.

[src/gdevpdf.c 1.72, src/gdevpdfp.c 1.33]

2003-10-09 20:29 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 16).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch fixes a bug in character transformation matrix,
and sets the default value for GridFitTT to false.

EXPECTED DIFFERENCES :

None.

[src/gsfont.c 1.25, src/gxccman.c 1.21]

2003-10-09 19:19 Igor Melichev

fuzzy.c : Implementing a ne option -c to switch on/off the reporting of coordinates of differences.

[toolbin/tests/fuzzy.c 1.12]

2003-10-09 14:56 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 15).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch provides non-grid-fitted outlines with charpath.
For a better readability renamed various variables ralated to that.

EXPECTED DIFFERENCES :

None.

[src/gstype42.c 1.39, src/gxccache.c 1.24, src/gxccman.c 1.20, src/gxchar.c 1.37, src/gxfcache.h 1.19, src/gxttfb.c 1.13, src/gxttfb.h 1.9, src/ttfmain.c 1.15, src/ttfoutl.h 1.10, src/ttinterp.c 1.8]

2003-10-09 12:51 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 14).

DETAILS :

This patch removes obsolete comments.
It is algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxccman.c 1.19, src/gxttfb.c 1.12, src/ttfmain.c 1.14]

2003-10-09 00:13 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 13).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch implements a new user parameter GridFitTT.
A change to documentation isn't supplied because
this code is disabled by NEW_TT_INTERPRETER 0.
Here is definition :

GridFitTT=1 forces the TT interpreter to perform a grid fitting.

If a font initialization program uses patented instrictions,
the font renders without a grid fitting, and a warning is printed to stderr.

If a font initialization program doesn't use patented instrictions,
and some glyphs of the font uses patented instructions,
the glyphs renders without a grid fitting, and a warning is printed to stderr.

If a font initialization program doesn't use patented instrictions,
and a glyph of the font doesn't use patented instructions,
the glyph renders with grid fitting, and no warning is printed.

Note that some font may mix both grid-fitted and non-grid-fitted glyphs.

GridFitTT=0 forces the TT interpreter to skip the grid fitting.
The warning about "patented" font is not printed.

The user parameter can be set by the new command line option -dGridFitTT=x,
where x is 0 or 1.

EXPECTED DIFFERENCES :

None.

[lib/gs_init.ps 1.97, src/gsfont.c 1.24, src/gsfont.h 1.9, src/gxccman.c 1.18, src/gxfcache.h 1.18, src/gxttfb.c 1.11, src/gxttfb.h 1.8, src/icontext.c 1.17, src/ttfmain.c 1.13, src/ttfoutl.h 1.9, src/ttinterp.c 1.7, src/zusparam.c 1.10]

2003-10-08 22:07 Igor Melichev

fuzzy.c : Implement a reporting of coordinates of different pixels.

[toolbin/tests/fuzzy.c 1.11]

2003-10-08 18:53 Igor Melichev

Fix : Propagating return code from gs_main_finit to GSDLL API (continued).

DETAILS :

The previous patch is incomplete. This one fixes that.

[src/dmmain.c 1.3, src/dpmain.c 1.11, src/dwmain.c 1.15, src/dwmainc.c 1.17, src/dxmain.c 1.12, src/dxmainc.c 1.9, src/gsdll.c 1.11]

2003-10-08 17:18 Igor Melichev

Propagating return code from gs_main_finit to GSDLL API.
THIS IS INCOMPATIBLE CHANGE : the API had changed a prototype.

A close_device method can terminate with an error,
which was not delivered to clients.
It is especially important with pdfwrite,
which performs a big work in close_device.

Now clients can know about the error checking the return code
of the gsapi_exit function. See examples in doc/API.htm .

[doc/API.htm 1.38, src/dpmain.c 1.10, src/dwmain.c 1.14, src/dwmainc.c 1.16, src/gsexit.h 1.9, src/iapi.c 1.10, src/imain.c 1.34, src/imain.h 1.8]

2003-10-08 14:19 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 12).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch dalays the "patented" exception until a patented
method is called.

EXPECTED DIFFERENCES :

None.

[src/ttfmain.c 1.12, src/ttinterp.c 1.6]

2003-10-08 13:54 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 11).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch fixes a bug in phantom points' coordinates (debugged with test_multipage_prob.pdf).
Reset_CodeRange is removed because it duplicates Clear_CodeRange.

EXPECTED DIFFERENCES :

None.

[src/gxccman.c 1.17, src/gxttfb.c 1.10, src/ttfmain.c 1.11, src/ttobjs.c 1.6, src/ttobjs.h 1.4]

2003-10-08 11:43 Alex Cherepanov

Contrary to the published spec (up to v.1.5) Acrobat Distiller 3.01 for Mac
can use /Identity instead of a tint transform function in /Separation color
space. Extend our PDF interpreter to cover this case.
Fix bug 687068.

[lib/pdf_draw.ps 1.77]

2003-10-08 11:34 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 10).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch implements a proper grid fitting and AlignToPixels.

EXPECTED DIFFERENCES :

None.

[src/gstype42.c 1.38, src/gxccman.c 1.16, src/gxttfb.c 1.9, src/gxttfb.h 1.7, src/lib.mak 1.144, src/ttfmain.c 1.10, src/ttfoutl.h 1.8]

2003-10-07 20:02 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 9).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch removes a dynamic biffer from ttfOutliner__BuildGlyphOutline,
and the macro wagOffset.
ttfFont::ttf_memory is moved to ttfInterpreter::ttf_memory.

EXPECTED DIFFERENCES :

None.

[src/gxttfb.c 1.8, src/ttfmain.c 1.9, src/ttfmemd.c 1.5, src/ttfoutl.h 1.7, src/ttinterp.c 1.5, src/ttload.c 1.4, src/ttobjs.c 1.5]

2003-10-07 15:26 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 8).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch implements a single instance of the TT interpreter shared
for all TT font instances.

EXPECTED DIFFERENCES :

None.

[src/gsfont.c 1.23, src/gstype42.c 1.37, src/gxccman.c 1.15, src/gxttfb.c 1.7, src/ttfmain.c 1.8, src/gxfcache.h 1.17, src/gxttfb.h 1.6, src/lib.mak 1.143, src/ttfmemd.c 1.4, src/ttfmemd.h 1.3, src/ttfoutl.h 1.6, src/ttinterp.c 1.4, src/ttobjs.c 1.4, src/ttobjs.h 1.3]

2003-10-07 00:03 Dan Coby

This is part of the fix for 687055.  This change splits the DeviceN
parameter handling.  The SeparationOrder parameter handling is split
into a separate routine.

DETAILS:

The DeviceN parameter SeparationOrder is used to select which separations
are to be included in the output.  This parameter is not appropriate for
high level devices like pdfwrite.  The pdfwrite device does not attempt
to separate its output into separations.  However the pdfwrite device
does use its process color model colors for specifying output colors in
some backup cases.  If a separation were missing then the it would create
an incorrect output color. By splitting out the SeparationOrder parameter
we can still use common routines for pdfwrite and other DeviceN output
devices.

[src/gdevdevn.c 1.11, src/gdevdevn.h 1.2]

2003-10-06 19:08 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 7).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch fixes more problems with error codes,
which could appear with high level devices.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtd.c 1.14, src/ttfmain.c 1.7, src/ttobjs.c 1.3]

2003-10-06 16:43 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 6).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch fixes more problems with error codes.
All comparefiles now run fine.

Rasters were checked with 72dpi.
TT glyphs appear in right places, but sometimes a hinted raster
looks worse than the old (unhinted) one. An example is Faktura.pdf .
To be analyzed.

EXPECTED DIFFERENCES :

None.

[src/gxttfb.c 1.6, src/ttfmain.c 1.6]

2003-10-06 16:42 Igor Melichev

Fix (pdfwrite) : A bug convertinging a CID to a glyph index.

DETAILS :

This portion of code works only while computing a FontBBox for a font subset.

EXPECTED DIFFERENCES :

None.

[src/gstype42.c 1.36]

2003-10-06 12:20 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 5).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch fixes some problems with error codes.
All comparefiles now run with no failure (rasters not checked yet).

EXPECTED DIFFERENCES :

None.
With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent.

[src/gxccman.c 1.14, src/gxttfb.c 1.5, src/gxttfb.h 1.5, src/ttfmain.c 1.5, src/ttinterp.c 1.3, src/ttload.c 1.3]

2003-10-06 11:38 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 4).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch fixes problems with memory management.

EXPECTED DIFFERENCES :

None.
With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent.

[src/gsfont.c 1.22, src/gxccman.c 1.13, src/gxfcache.h 1.16, src/gxttfb.c 1.4, src/gxttfb.h 1.4, src/ttfmain.c 1.4, src/ttfmemd.c 1.3, src/ttfoutl.h 1.5, src/ttinterp.c 1.2, src/ttload.c 1.2, src/ttobjs.c 1.2, src/ttobjs.h 1.2]

2003-10-06 08:34 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 3).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

This patch propagates error codes from the new True Type interpreter,
and fixes some minor bugs.

EXPECTED DIFFERENCES :

None.
With NEW_TT_INTERPRETER 0 this change is algorithmically equivalent.

[src/gstype42.c 1.35, src/gxccache.c 1.23, src/gxccman.c 1.12, src/gxchar.c 1.36, src/gxfcache.h 1.15, src/gxfont42.h 1.17, src/gxttfb.c 1.3, src/gxttfb.h 1.3, src/ttfmain.c 1.3, src/ttfoutl.h 1.4]

2003-10-02 15:30 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter (step 2).

DETAILS :

The switch NEW_TT_INTERPRETER in gx.h is set to disable the new code.

With NEW_TT_INTERPRETER 1 the TT interpreter is now attached and
passed a simple test (2210 glyphshow) with
\WINDOWS\Fonts\mingliu.ttc, which is a Dynalab font.
The TT error processing isn't completed. It may cause a crash.

EXPECTED DIFFERENCES :

None.

[src/gstype42.c 1.34, src/gxttfb.c 1.2, src/gxttfb.h 1.2, src/lib.mak 1.142, src/ttfmain.c 1.2, src/ttfoutl.h 1.3]

2003-10-02 11:48 Igor Melichev

Implementing a bridge to the True Type bytecode interpreter.

DETAILS :

A new switch NEW_TT_INTERPRETER in gx.h disabled the new code.
The new code is incomplete (see a "stub" in gstype42.c) and insufficiently debugged.
This patch provides necessary data transfer to places, in which
the True Type bytecode interpreter must be called.

EXPECTED DIFFERENCES :

None.

[src/gstext.c 1.13, src/gstype42.c 1.33, src/gx.h 1.13, src/gxccache.c 1.22, src/gxccman.c 1.11, src/gxchar.c 1.35, src/gxfcache.h 1.14, src/gxfont42.h 1.16, src/gxttfb.c 1.1, src/ttfmemd.c 1.2, src/zchar42.c 1.13, src/gxtext.h 1.11, src/gxttfb.h 1.1, src/lib.mak 1.141, src/ttfmemd.h 1.2, src/ttfoutl.h 1.2]

2003-10-02 10:15 Igor Melichev

Fix : Removing the dependence on graphic state from font cache rutines.

DETAILS :

This change is algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxccache.c 1.21, src/gxccman.c 1.10, src/gxchar.c 1.34, src/gxfcache.h 1.13]

2003-10-02 09:59 Igor Melichev

Fix : Characters were cached mixing alpha bits numbers (continued).

DETAILS :

The previous patch appears incomplete.

EXPECTED DIFFERENCES :

None (the nightly regression doesn't test alpha bits).

[src/gxccache.c 1.20, src/gxccman.c 1.9, src/gxfcache.h 1.12]

2003-10-02 08:51 Igor Melichev

Fix : Characters were cached mixing alpha bits numbers.

DETAILS :

This bug only has an effect when same font renders to devices
with different alpha bits. It can cause rendering a cached charascter
with a wrong size (devided or multiplied by 1<

[src/gxccache.c 1.19, src/gxchar.c 1.33, src/gxfcache.h 1.11]

2003-10-02 07:02 Dan Coby

Move the various device fields associated with the DeviceN process
color model into a common structure.  This allows common routines to
be used to support DeviceN process color model features on different
devices.  The src/gdevdevn.h file was added to define common fields
and structures.

The first application of this code is for 687055 - Adding support for
the DeviceN process color model to the pdfwrite device.

[src/devs.mak 1.97, src/gdevdevn.c 1.10, src/gdevdevn.h 1.1]

2003-10-01 16:36 Jack Moffitt

Fix two bugs in testdiff that work around missing baselines.

[toolbin/tests/testdiff 1.4]

2003-10-01 13:44 Igor Melichev

Initial commit for a reduced True Type bytecode interpreter.

DETAILS :

The True Type bytecode interpreter is branched from the Free Type 1 project.
Patented algorithms have been removed.
Now it compiles with Ghostscript, but it is never called.

EXPECTED DIFFERENCES :

None.

[src/lib.mak 1.140, src/ttcalc.c 1.1, src/ttcalc.h 1.1, src/ttcommon.h 1.1, src/ttconf.h 1.1, src/ttconfig.h 1.1, src/ttfinp.c 1.1, src/ttfinp.h 1.1, src/ttfmain.c 1.1, src/ttfmemd.c 1.1, src/ttfmemd.h 1.1, src/ttfoutl.h 1.1, src/ttfsfnt.h 1.1, src/ttinterp.c 1.1, src/ttinterp.h 1.1, src/ttload.c 1.1, src/ttload.h 1.1, src/ttmisc.h 1.1, src/ttobjs.c 1.1, src/ttobjs.h 1.1, src/tttables.h 1.1, src/tttype.h 1.1, src/tttypes.h 1.1]

2003-09-30 15:16 Alex Cherepanov

Handle missing /BitsPerComponent key case.
Fix bug 687956.

[lib/pdf_draw.ps 1.76]

2003-09-30 11:00 Igor Melichev

Fix (pdfwrite) : Don't use Tj when real width is smaller than 1% of Widths.

DETAILS :

This is a workaround for the bug 687051
"freehand patterns cause incorrect result".
See comment in code.

Our workaround is hewristical.
To get a strongly guaranteed result a bug to be reported to Freehand,
which sets a wrong character size with setcachedevice :
the setcachedevice arguments appear 144 times bigger when the actual glyph size.
After converting to PDF it causes too big numeric errors in a PDF viewer.

Adobe Distiller converts this text into a paintings of
individual glyphs, loosing the text features, and enlarging the uncompressed output.
The Adobe's method appears acceptable with this document
because the text actually represents a texture, and the text features (Encoding, etc.)
appears unimportant. We can't implement the Adobe's method because we have no idea
how to recognize in pdfwrite the case of a Type 3 font represents a texture.

Users may want to apply an idiom recognition in PS level for that texture,
to convert it into a regular images for a better coordinate precision.
The ideom approach is independent to this patch, and we believe that
both things can work togeter.

EXPECTED DIFFERENCES :

None.

[src/gdevpdts.c 1.25]

2003-09-29 20:32 Alex Cherepanov

Fix calculation of the area where path segments can mark the current band.
Old code skipped segments above the page boundary regardless of the line width.
Fixes bug 686788 from customer 710.

DETAILS:
The area is calculated now as [y - expansion.y, y + height + expansion.y]
for every band. Beware of FOR_RECTS_NO_ERROR loop silently updating y and
height.

[src/gxclpath.c 1.18]

2003-09-29 13:41 Igor Melichev

Fix (pdfwrite) : Don't synchronize graphic state before exiting a charproc.

DETAILS :

The problem discovered with the test document of the bug 687051
"freehand patterns cause incorrect result".
It wrote an excessive clipping path at the end of charproc.

This patch doesn't close the bug, because there is another problem
(with Type 3 character placement) in there.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c 1.61]

2003-09-28 19:54 Alex Cherepanov

Convert input values to the traditional Lab range when input
color space of ICC profile is Lab. Before conversion all colors
were rendered 100 times darker, i.e. almost black.
Fixes bug 600288 from customer 150.

[src/gsicc.c 1.12]

2003-09-25 21:23 Igor Melichev

Fix (pdfwrite) : Inline images mangled charproc stream.

DETAILS :

The problem discovered with the test document of the bug 687051
"freehand patterns cause incorrect result".

The problem happened due to pdf_copy_data can't handle the case
when the target file of the source cos_write_stream object
is same as the target file for the copying. Implementing
a new funtion pdf_copy_data_safe for this case.

This patch doesn't close the bug, because there is another problem
(with Type 3 character placement) in there.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c 1.21, src/gdevpdfu.c 1.42, src/gdevpdfx.h 1.75]

2003-09-24 13:41 Ralph Giles

Correct a typo in the 'make so' target link line. This also allows the
Solaris linker to ignore the option, allowing the link to complete on
that platform. Thanks to Bob T. for pointing out the issue. Partial fix
for bug 686865.

DETAILS:

I don't know if this was originally a typo or if GNU ld's options have
changed. However, the manpage for my version (2.14.90.0.6) clearly
states the syntax is -soname=foo.

[src/unix-dll.mak 1.10]

2003-09-18 13:20 Igor Melichev

Fix : Fonts with zero FontBBox were not anti-aliased.

DETAILS :

Bug 687036 "gs 8.11 does not anti-alias type 3 bitmap fonts".
The bug appeared in gxchar.c revision 1.21.

EXPECTED DIFFERENCES :

None, because the test tool doesn't test TextAlphaBits > 1.

[src/gxchar.c 1.32]

2003-09-16 13:54 Igor Melichev

Fix : A bug in compare_glyphs.

DETAILS :

This fixex the crash with illustrator5.ps mentioned in the
bug #687044 "strange elements with text".
It appears a 1 year old bug.
The behavior could be indeterministic.

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c 1.32]

2003-09-16 12:11 Igor Melichev

Fix (pdfwrite) : Don't write a clipping path with setcharwidth.

DETAILS :

This is a partial fix for the bug #687044 "strange elements with text".
See big comments added to gdevpdfg.c .

Minor changes :

1. Removed an unsafe cast to gs_state * in gdevpdfg.c
with defing a new graphics library function gs_currentscreenphase_pis.

2. Provided a safety with a cast to gs_show_enum * in gdevpdtt.c .

3. defined a new graphics library function gx_get_clip_path_id .

EXPECTED DIFFERENCES :

A progression in pdfwrite with 238-01.ps .

[src/gdevpdfg.c 1.41, src/gdevpdtt.c 1.60, src/gsht.c 1.17, src/gsstate.c 1.22, src/gxistate.h 1.17, src/gxstate.h 1.8]

2003-09-16 10:02 Igor Melichev

Don't apply Type 1 hinting to charpath.
THIS IS AN INCOMPATIBLE CHANGE : charpath now creates a different outline than before.

DETAILS :

Adobe doesn't hint charpath.
Not sure why GS did.
This change makes GS to be closer to Adobe and
partially fixes the bug 687044 "strange elements with text".

Note that 'charpath fill' never was equal to 'show'. Neither the old hinter,
nor the new hinter, nor any combination of them in the pair ('charpath', 'show')
give same result. This happens because 'fill' uses the "center pixel inside" rule,
but 'show' uses a different one. With the new hinter 'show' performs
a spot topology analyzis during the rasterization. This rule doesn't belong
to the class of rules, which can be explained in terms "a part of pixel inside".

Thus, since "same" or "closer" result isn't possible,
the criterion for the choice must lie in another space.
I believe that the "Adobe compatibility" is the right one.

Besides that, Ghostscript PDF imperpreter emulates the text rendering modes 1,5,6
with 'charpath stroke', and with the hinted charpath the results look strange.

EXPECTED DIFFERENCES :

pdfwrite + ppmraw 72pdi :

017-01.ps
027-01.ps
027-05.ps
027-09.ps
027-13.ps
034-01.ps
045-01.ps
093-01.ps
220-01.ps
327-01.ps
334-01.ps
335-01.ps
336-01.ps
alphabet.ps
bugsample.pdf
PixelisAd.pdf
ridt91.eps

pdfwrite + ppmraw 300pdi :

017-01.ps
027-01.ps
027-05.ps
027-09.ps
027-13.ps
034-01.ps
045-01.ps
093-01.ps
220-01.ps
327-01.ps
334-01.ps
335-01.ps
336-01.ps
alphabet.ps
bugsample.pdf
PixelisAd.pdf
ridt91.eps

ppmraw 72pdi :

027-01.ps
027-05.ps
027-09.ps
027-13.ps
034-01.ps
220-01.ps
alphabet.ps
bugsample.pdf
PixelisAd.pdf
ridt91.eps

ppmraw 300pdi :

027-01.ps
027-05.ps
027-09.ps
027-13.ps
034-01.ps
220-01.ps
alphabet.ps
bugsample.pdf
PixelisAd.pdf
ridt91.eps
two_encodings.ps

[src/gxtype1.c 1.32]

2003-09-16 07:11 Dan Coby

Remove extra carriage returns (^M) at the end of some lines.

[lib/pdf_draw.ps 1.75]

2003-09-15 20:05 Alex Cherepanov

Following PLRM, set identity initial matrix for non-forwarding nulldevice.
Fix bug 687041

[src/gdevnfwd.c 1.12]

2003-09-15 17:11 Igor Melichev

Fix (pdfwrite) : Write color commands to charprocs which don't call setcachedevice[2].

DETAILS :

This is a partial fix for the bug #687044 "strange elements with text".

Minor change : Removed a duplicated instruction from gdevpdtt.c .

This patch doesn't cause a difference with our test base.

[src/gdevpdti.c 1.20, src/gdevpdtt.c 1.59]

2003-09-15 10:04 Igor Melichev

Fix : A bug in the new code of gs_rectfill (gsdps1.c Revision 1.9).

[src/gsdps1.c 1.10]

2003-09-13 02:04 Russell Lang

Fix: Prevent crash caused by dsc_copy_string not stopping at the end
of a string occasionally.
Fixes bug 687045 "Crash while parsing long %%DocumentProcessColor line".
Report (atend) in the trailer as being unknown.
Recognise %%DocumentProcessColors and %%DocumentCustomColors
in the trailer.
Allocate colour details using the correct allocator so they
will be freed correctly.

[src/dscparse.c 1.14]

2003-09-12 04:42 Dan Coby

Provide a means for disabling color space substitution.

DETAILS:

Ghostscript supports substituting CIE and ICC color spaces for DeviceGray
DeviceRGB, and DeviceCMYK color spaces.  This is part of the support for
the UseCIEColor feature in PostScript.  This substitution is done inside
the PostScript code in lib/gs_devcs.ps.

The recent improvements to the pdfwrite device mean that the interpreter's
color space and color values are now passed to the output file.  Since
the color space substitution is done prior to passing the color space to
the interpreter, the original color space is lost if UseCIEColor is
set.  This change provides a means to prevent the substitution.  Thus
the original color space is passed to the interpreter and on to the
output file for pdfwrite.

[doc/Use.htm 1.89, lib/gs_devcs.ps 1.2, lib/gs_init.ps 1.96]

2003-09-11 21:12 Igor Melichev

pdfwrite : Implement CDevProc handling for CIDFontType 2.

DETAILS :

It defines a new gs_text_process return value TEXT_PROCESS_CDEVPROC,
which allows a device to request a special interpreter callout
for executing CDevProc. The processing is some tricky :
we apply zchar_set_cache to prepare interpreter stacks,
and hook its results in pte->procs->set_cache .

This patch handles CDevProc only for CIDFontType 2.
Other font types should be a separate patch.

This patch causes progressions in pdfwrite :
japan.ps
Type11CDevProc.ps

[src/gdevpdtc.c 1.28, src/gdevpdte.c 1.44, src/gdevpdtt.c 1.58, src/gdevpdtt.h 1.18, src/gstext.h 1.9, src/gxfont.h 1.21, src/int.mak 1.116, src/zchar.c 1.12, src/zchar1.c 1.32, src/zchar42.c 1.12, src/zchar42.h 1.1]

2003-09-11 20:43 Igor Melichev

Fix (pdfwrite) : A part of CID text was missed after a font change.

[src/gdevpdtc.c 1.27]

2003-09-11 16:34 Alex Cherepanov

Ignore system-defined FILENAME_MAX when it is too small.
HP-UX 11i 11.11 incorrectly defines FILENAME_MAX as 14.
Fix bug 687030 from customer 1060

[src/gp_unifs.c 1.15]

2003-09-11 11:14 Igor Melichev

Fix (pdfwrite) : Stream content of ICC color space was missed.
It seems a very old bug...

[src/gdevpdfo.c 1.20]

2003-09-10 12:01 Igor Melichev

Fix (pdfwrite) : Improving text colors.

DETAILS :

1. Check the color and clip change after each callout (gdevpdtt.c).
   Fixes the bug 686822 "Wrong PDF from kshow with grestore".

2. Don't write color into charprocs of bitmap fonts.

3. Skip writing a process color imaging a cached bitmap character.
   The old code wrote redundant "0 g" commands.

This patch causes progressions in pdfwrite :
093-01.ps
165-01.ps
244-01.ps
kshow_with_grestore.ps

[src/gdevpdfb.c 1.20, src/gdevpdtt.c 1.57]

2003-09-10 08:01 Igor Melichev

Fix (pdfwrite) : Image XObject was not added into pattern's Resources.

DETAILS :

Bug 687028 "ps2pdf for makepattern creates PDF unreadable by Acrobat Reader".

[src/gdevpdfj.c 1.26]

2003-09-09 20:35 Igor Melichev

pdfwrite : Apply the color space serialization for color space comparizon (continued).

DETAILS :

Fixes redundant Pattern color space objects.
Bug 687022 "pdfwrite : Redundant color space objects"

Also fixed a bug in gx_serialize_Pattern.

[src/gdevpdfc.c 1.39, src/gdevpdfg.c 1.40, src/gdevpdfg.h 1.26, src/gdevpdfv.c 1.30, src/gspcolor.c 1.12]

2003-09-09 19:30 Igor Melichev

pdfwrite : A minor code cleanup.

DETAILS :

'sclose' is inserted for a conformity, rather it has no effect in this case.

The "fixme" comment is removed because it appears wrong.
If the color space is new, it needs a complete serialization
for storing the data to PDF resource. We can't delay the serialization
because the life time of the original color space may exceed before
the next comparizon happens. Contrary, if the color space is not new,
it also needs a complete serialization for a full comparison,
to know whether it is same color space.
Thus, a complete serialization is required in any case.

[src/gdevpdfc.c 1.38]

2003-09-09 16:03 Igor Melichev

pdfwrite : Apply the color space serialization for color space comparizon.

DETAILS :

Fixes the bug 687022 "pdfwrite : Redundant color space objects"

[src/devs.mak 1.96, src/gdevpdfc.c 1.37, src/gdevpdfg.h 1.25]

2003-09-09 15:54 Igor Melichev

Implementing a serialization for color spaces and functions (continued 2).

DETAILS :

Fixes a bug in gs_function_Sd_serialize, fn_common_serialize.

[src/gsfunc.c 1.9, src/gsfunc0.c 1.12]

2003-09-09 14:25 Igor Melichev

Implementing a serialization for color spaces and functions (continued).

DETAILS :

This stuff will be used by high level devices for comparing color spaces.
A serialization will. be used because we need to compare color spaces,
which's life times don't intersect.

This patch only defines new functions but never calls them.
Regressions should not appear.
A draft implementation for the functions is provided.
A debugging of them will be a separate issue.

[src/gscie.h 1.13, src/gscscie.c 1.10, src/gsicc.c 1.11, src/gspcolor.c 1.11, src/lib.mak 1.139]

2003-09-09 12:44 Igor Melichev

Implementing a serialization for color spaces and functions.

DETAILS :

This stuff will be used by high level devices for comparing color spaces.
A serialization will. be used because we need to compare color spaces,
which's life times don't intersect.

This patch only defines new functions but never calls them.
Regressions should not appear.
A draft implementation for the functions is provided.
A debugging of them will be a separate issue.

[src/gscdevn.c 1.15, src/gscdevn.h 1.8, src/gscolor2.c 1.15, src/gscpixel.c 1.9, src/gscscie.c 1.9, src/gscsepr.c 1.22, src/gscspace.c 1.10, src/gsfunc.c 1.8, src/gsfunc.h 1.9, src/gsfunc0.c 1.11, src/gsfunc3.c 1.16, src/gsfunc4.c 1.14, src/gxcspace.h 1.10, src/gxfunc.h 1.8, src/lib.mak 1.138]

2003-09-08 13:30 Igor Melichev

Fix : Cygwin/gcc compiler warnings.

[src/gdevdgbr.c 1.11, src/gstrans.c 1.18]

2003-09-08 13:19 Igor Melichev

Fix : Impproving the coordinate precision in function fill_rectangle_hl_color.

DETAILS :

It fixes the coordinate precision in the recent patch.
With pdfwrite the following files become better (closer to the old code) :
213-01.ps
255-01.ps
270-01.ps
442-01.ps

[src/gdevdflt.c 1.13, src/gdevnfwd.c 1.11, src/gdevpdfd.c 1.33, src/gsdps1.c 1.9, src/gspaint.c 1.8, src/gxdevcli.h 1.18]

2003-09-08 12:06 Igor Melichev

Fix : Cygwin/gcc compiler warnings.

DETAILS :

The change to zbfont.c may cause a progression on low endian platforms.

[src/gdevpdfc.c 1.36, src/gxcldev.h 1.13, src/gxcpath.c 1.8, src/lib.mak 1.137, src/zbfont.c 1.24, src/ztrans.c 1.21]

2003-09-08 11:45 Igor Melichev

Defining a new device virtual function fill_rectangle_hl_color.
This fuction is used to implement gs_rectfill and gs_fillpage
with a high level color handling.

DETAILS :

The old device virtual function fill_rectangle has no way to pass a high level color.
Therefore high level devices always used process colors with rectfill and fillpage.
See gxdevcli.h for the definition of the new function.

The new function is used to implement gs_rectfill and gs_fillpage in pdfwrite.
gs_rectfill and gs_fillpage are modified to provide the new logics.
gdevpdfd.c is reorganised with factoring out some common code parts.

Fixes the bug #687024 "rectfill doesn't pass high level colors to device".

This patch causes a MINOR DIFFERENCE in color in all Genoa tests with pdfwrite :
a gray rectangle in the header gets a sligtly different gray value.

Besides that, the following files render few differently due to coordinate rounding in pdfwrite :
245-13.ps
442-01.ps

[src/gdevbbox.c 1.14, src/gdevdflt.c 1.12, src/gdevnfwd.c 1.10, src/gdevpdf.c 1.71, src/gdevpdfd.c 1.32, src/gdevpdfx.h 1.74, src/gdevrops.c 1.8, src/gsdps1.c 1.8, src/gspaint.c 1.7, src/gxclip.c 1.11, src/gxclip2.c 1.8, src/gxclipm.c 1.10, src/gxclist.c 1.11, src/gxdevcli.h 1.17, src/gxdevice.h 1.13, src/gxhldevc.c 1.3, src/gxhldevc.h 1.4, src/lib.mak 1.136]

2003-09-05 21:30 Dan Coby

Add gxhldevc.c and gxhldevc.h to the file list.

[doc/Develop.htm 1.121]

2003-09-04 16:17 Ralph Giles

VMS fix from Forrest Cahoon.

[src/gp_vms.c 1.35]

2003-09-04 14:51 Igor Melichev

Removing rudiments of the old hinter (step 5).

DETAILS :

Removed an unused variable.

[src/gxtype1.c 1.31]

2003-09-04 14:31 Igor Melichev

Removing rudiments of the old hinter (step 4).

[src/gxop1.h 1.7]

2003-09-04 14:28 Igor Melichev

Removing rudiments of the old hinter (step 3).

DETAILS :

The structure gs_op1_state stored an unused data and now removed.

The change to gstype2.c ln 262-279 is not algorithmically equivalent.
The old code erroneusely called closepath in some cases.
It produced a small dirt in rendering.
Due to that, this patch causes progressions in rendering :

72pdi :

bugsample.pdf
PixelisAd.pdf
RodinCIDEmbed.pdf

300dpi :

bugsample.pdf
PixelisAd.pdf

[src/gdevpsfx.c 1.24, src/gstype1.c 1.28, src/gstype2.c 1.31, src/gxop1.h 1.6, src/gxtype1.c 1.30, src/gxtype1.h 1.17, src/lib.mak 1.135]

2003-09-04 12:10 Igor Melichev

Fix : Removing obsolete linker statements from Win32 linkage definitions (an addition 2).

DETAILS :

The patch http://www.ghostscript.com/pipermail/gs-cvs/2003-September/003574.html
was wrong. Now fixed.

[src/dwsetup.def 1.4, src/dwuninst.def 1.4, src/msvc32.mak 1.49]

2003-09-04 11:30 Igor Melichev

Fix (the new type 1 hinter) : Slightly sloped stems were wrongly grid-fitted.

DETAILS :

It shifted a stem pole to central coordinate of the stem.
Unsloped stems are insencitive, but sloped ones got a wrong placement.
Fixes the bug 687018 "Shift in glyph position/bbox using new font renderer".

This patch causes differences in rendering :

72pdi :

033-52-5873.pdf
alphabet.ps
bulletin.pdf
fonttest.pdf
HeiseiMinStd.pdf
Openhuis_pdf_zw.pdf
ridt91.eps
Svd.pdf

300dpi :

033-52-5873.pdf
045-01.ps
455690.pdf
86554321.pdf
aaon97_p7.pdf
adesso6.pdf
ai2.pdf
bulletin.pdf
fonttest.pdf
HeiseiMinStd.pdf
LD.pdf
Openhuis_pdf_zw.pdf
prob.pdf
ridt91.eps
RodinCIDEmbed.pdf
Svd.pdf

The baseline to be updated.

[src/gxhintn.c 1.32]

2003-09-04 09:52 Jouk Jansen


 Committing in .

 OpenVMS patches

 Modified Files:
 	gs/src/gp_vms.c gs/src/openvms.mmk gs/src/vms_x_fix.h
 ----------------------------------------------------------------------

[src/gp_vms.c 1.34, src/openvms.mmk 1.26, src/vms_x_fix.h 1.7]

2003-09-03 20:31 Igor Melichev

Fix : Removing obsolete linker statements from Win32 linkage definitions (an addition).

[src/dwsetup.def 1.3, src/dwuninst.def 1.3, src/msvc32.mak 1.48]

2003-09-03 20:27 Igor Melichev

Removing rudiments of the old hinter (step 3, final).

[src/gxhint1.c 1.7, src/gxhint2.c 1.8, src/gxhint3.c 1.9]

2003-09-03 20:21 Igor Melichev

Removing rudiments of the old hinter (step 2).

DETAILS :

This patch removes rudiments of the old hinter, which were enclosed with
"#ifdef KEEP_OLD_HINTER", and removes gxhint1.c, gxhint2.c gxhint3.c
from makefiles.

[src/gstype2.c 1.30, src/gxtype1.c 1.29, src/gxtype1.h 1.16, src/lib.mak 1.134]

2003-09-03 16:20 Jack Moffitt

Make run_nightly retry sending mail every 5 seconds.

[toolbin/tests/run_nightly 1.20]

2003-09-03 03:22 Ralph Giles

Rename the client header errors.h to ierrors.h. This is more consistent
with iapi.h, and reduces the risk of a namespace conflict. The old
errors.h header is still available, and simply includes ierrors.h
for compatibility. This file is marked as deprecated and will be removed
in a future release.

This change is in response to a spurious report of a namespace conflict on MacOS in bug 686966.

[doc/API.htm 1.37, doc/C-style.htm 1.44, doc/Develop.htm 1.120, src/dmmain.c 1.2, src/dpmain.c 1.9, src/dwmain.c 1.13, src/dwmainc.c 1.15, src/dxmain.c 1.11, src/dxmainc.c 1.8, src/errors.h 1.8, src/fapi_ft.c 1.11, src/fapiufst.c 1.23, src/gs.c 1.11, src/gsdll.c 1.10, src/gsiomacres.c 1.5, src/ialloc.c 1.6, src/iapi.c 1.9, src/iapi.h 1.12, src/ibnum.c 1.7, src/iccfont.c 1.8, src/icontext.c 1.16, src/idict.c 1.8, src/idparam.c 1.8, src/ierrors.h 1.1, src/igc.c 1.10, src/igstate.h 1.8, src/iinit.c 1.9, src/ilocate.c 1.9, src/imain.c 1.33, src/imainarg.c 1.31, src/iname.c 1.7, src/inobtokn.c 1.5, src/int.mak 1.115, src/interp.c 1.15, src/iparam.c 1.9, src/iplugin.c 1.4, src/ireclaim.c 1.7, src/isave.c 1.8, src/iscan.c 1.14, src/iscanbin.c 1.13, src/iscannum.c 1.7, src/istack.c 1.6, src/iutil.c 1.9, src/iutil2.c 1.6, src/macos-fw.mak 1.7, src/opcheck.h 1.6, src/oper.h 1.6, src/os2.mak 1.34, src/zcid.c 1.8, src/zfile1.c 1.11, src/ziodev.c 1.13]

2003-09-02 22:50 Igor Melichev

pdfwrite : Implementing a high level color handling (a 3d improvement).

DETAILS :

This fixes the problem with 477-03.ps described in the bug #687023.

[src/gdevpdfc.c 1.35]

2003-09-02 21:57 Igor Melichev

pdfwrite : Implementing a high level color handling (a 2nd improvement).

DETAILS :

This fixes a minor bug in the patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003560.html :
use process color when gx_hld_get_color_space_and_ccolor returns an unknown result.
This change should not change behavior because this case currently never happens.

[src/gdevpdfg.c 1.39]

2003-09-02 19:10 Ralph Giles

Propagate CFLAGS and LDFLAGS values set in the environment when configure
is run to the autoconf top-level makefile. Unlike passing the same values
to make, the values are added to the generated arguments and act supplementally.
Closes bug 686943.

[src/Makefile.in 1.27]

2003-09-02 15:47 Igor Melichev

pdfwrite : Implementing a high level color handling (an improvement).

DETAILS :

This fixes bugs in the patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003560.html :

1. pdf_cs_Pattern_uncolored_hl wrote a wrong base space of a Pattern space.
   It fixes a failure with 245-01.ps .

2. Improving the approximation in pdf_write_ccolor.

[src/gdevpdfc.c 1.34, src/gdevpdfg.c 1.38]

2003-09-02 10:17 Igor Melichev

Removing rudiments of the old hinter (step 1).

DETAILS :

This patch encloses rudiments of the old hinter with "#ifdef KEEP_OLD_HINTER",
where KEEP_OLD_HINTER is undefined.

This change is algorithmically equivalent,
because the new hinter worked instead the old one. Only exception is
the change to gstype1.c ln 370 : the condition t1_hinter__is_x_fitting(h)
is waeker than the old pcis->fh.use_x_hints, because
the new hinter applies an X-grid fitting with a slightly sloped transforms.

The change to gdevpsfx.c define local arrays for storing hints.
The old code used the old hinter structures, which appear too heavy
for the need of gdevpsfx.c .

[src/gdevpsfx.c 1.23, src/gstype1.c 1.27, src/gstype2.c 1.29, src/gxhint1.c 1.6, src/gxhint2.c 1.7, src/gxhint3.c 1.8, src/gxhintn.c 1.31, src/gxhintn.h 1.14, src/gxtype1.c 1.28, src/gxtype1.h 1.15]

2003-08-30 22:18 Ralph Giles

Add 'extern "C"' protection to iapi.h for inclusion in C++ clients. Closes
bug 686990.

[src/iapi.h 1.11]

2003-08-30 19:10 Dan Coby

Fix for 686948 Dotted lines messing in PDF.  Draw all line cap
types for zero line lengths.  Previously only rounded caps were
drawn.

DETAILS:

This is a (minor) revision to a the previous fix from Jeong for
this problem.

For those people who do not remember, this problem involves a dashed
line with a zero line length for the imaged (pen down) part of the
dashed line.  Ghostscript currently calls this a degenerate situation
and does nothing except for round line caps.  Jeong had previously
proposed changing the test to any line cap except butt caps.  Jeong
removed this proposal after testing and finding that Adobe Acrobat
drew thin line segments even for butt line caps.

This proposal simply removes the test for line cap type completely.
It does still leaves a test for dot length = 0.

The routine already contains code for using adjacent line segments
to determine a 'direction' for zero length segments.

Testing with both butt and square line caps and with on axis and
diagonal lines produces results comparable to Adobe Acrobat.
(Acrobat is not consistent with segment widths for the butt joints.)

[src/gxstroke.c 1.9]

2003-08-30 08:03 jeong

When a PDF file has an embedded TrueType font with wrong 'name' table
entry, /findname procedure in gs_ttf.ps throwed a rangecheck error.
Now it just returns 'false' as an output instead of making rangecheck
error.
Bug# 686903.

[lib/gs_ttf.ps 1.32]

2003-08-28 19:42 Igor Melichev

pdfwrite : Implementing a high level color handling.

DETAILS :

pdfwrite now passes colors identically except minor problems,
which should be fixed soon :

1. rectfill still converts colors.
   This happens because gs_rectfill calls dev_proc(pdev,fill_rectangle),
   which doesn't pass device color.
   Therefore high level color is not available for pdfwrite.
   This is an architectural problem which requires a hard decision.

2. Some documents (gs.anotherfailure.pdf is an example) generate
   too many color space objects to the output PDF.
   Requires an optimization.

3. 477-03.ps embeds a color space that can't write to PDF due to PDF limitations.
   Process colors are written into PDF.

4. Few tests cause significant difference in colors :
	0.pdf               (yellow background)
	MagicEye.pdf        (yellow background)
	Fixed_Original.pdf
	Testform.v1.0.2.pdf (a gray rectangle disappears)
   To be analyzed.

[src/devs.mak 1.95, src/gdevpdfc.c 1.33, src/gdevpdfd.c 1.31, src/gdevpdfg.c 1.37, src/gdevpdfg.h 1.24, src/gdevpdfv.c 1.29, src/gdevpdtw.c 1.25, src/gdevpsdf.h 1.20, src/gdevpsdu.c 1.20, src/gxhldevc.c 1.2, src/gxhldevc.h 1.3]

2003-08-28 10:18 Igor Melichev

Fix : Removing obsolete linker statements from Win32 likage definitions.

[src/dw32c.def 1.3, src/dwmain32.def 1.3, src/gsdll32.def 1.4]

2003-08-26 21:08 Igor Melichev

Fixing all MSVC compiler warnings (icclib).

[icclib/icc.c 1.9]

2003-08-26 20:54 Igor Melichev

Fixing all MSVC compiler warnings (Release build).

[src/gxclipm.c 1.9]

2003-08-26 15:38 Igor Melichev

Fixing all MSVC compiler warnings.

[src/gdevpsdu.c 1.19, src/gdevupd.c 1.13, src/gsciemap.c 1.15, src/gswts.c 1.5, src/gxclrect.c 1.6, src/gxdda.h 1.5, src/gxshade.c 1.17, src/gxstroke.c 1.8, src/sdcparam.c 1.6]

2003-08-26 12:37 Igor Melichev

A preparation for high level color handling in vector devices.

THIS IS INCOMPATIBLE CHANGE for devices derived from gx_device_vector.
Now they must implement the new virtual function can_handle_hl_color.
A simplest impementation compatible to the old behavior is to return false.

DETAILS :

The new code uses the new functions gx_hld_save_color and
gx_hld_saved_color_equal instead the old gx_saved_color_update.
This allows devices to know when the client color changes and
to generate the appropriate output. This affects
pdfwrite, pswrite, epswrite, pxlmono and pxlcolor devices.
However the devices still write device colors to output.
An implementation of writing the client color
in pdfwrite, pswrite, epswrite will be the next improvement.

Since a big part of color code is shared with pxlmono and pxlcolor,
we need a switch for checking whether the device can handle
high level colors. For this purpose we add a new
virtual function can_handle_hl_color to gx_device_vector_procs.
Currently all implementation of this function return false,
and all devices still write process colors.

A minor change : psdf_setfillcolor and psdf_setstrokecolor
are removed because they were never called.

[src/gdevpdfd.c 1.30, src/gdevpdfg.c 1.36, src/gdevpdfg.h 1.23, src/gdevpdfx.h 1.73, src/gdevpdtt.c 1.56, src/gdevps.c 1.36, src/gdevpsdf.h 1.19, src/gdevpsdu.c 1.18, src/gdevpx.c 1.14, src/gdevvec.c 1.20, src/gdevvec.h 1.12, src/gsdcolor.h 1.12, src/gxdcolor.c 1.12, src/gxhldevc.h 1.2, src/lib.mak 1.133]

2003-08-21 19:50 Raph Levien

Fix decimal value of NoView annotation flag in annotvisible logic.
Fixes bug #687010.

DETAILS:

On page 493 of the PDF 1.4 reference, NoView is specified as bit
position 6, which would seem to correspond to the old value of 64.
However, for some reason Adobe counts its bit positions starting at
1, so the actual numeric value is 2^(bit pos - 1), or 32.

[lib/pdf_draw.ps 1.74]

2003-08-21 17:18 Raph Levien

Re-enable tempfile creation with empty string prefix - was disabled
as part of tempfile prefix_is_simple checking patch.

[src/zfile.c 1.38]

2003-08-21 14:55 Igor Melichev

Fixing some Cygwin/gcc warnings.

[src/gdevdgbr.c 1.10, src/gdevepsc.c 1.10, src/gdevmrun.c 1.5, src/gdevpdtw.c 1.24, src/gspath.c 1.8, src/gstype1.c 1.26, src/gstype1.h 1.8, src/gxcmap.c 1.16, src/gxcpath.c 1.7, src/gxhintn.c 1.30, src/gxpath.h 1.8, src/gzacpath.h 1.6, src/ifont2.h 1.6]

2003-08-21 14:25 Igor Melichev

Removing the obsolete code DROPOUT_PREVENTION 0.

DETAILS :

The macros PSEUDO_RASTERIZATION, ADJUST_SERIF, CHECK_SPOT_CONTIGUITY
are left for further developmant. We intend to convert the filling algorithm into
a template like we did with gxdtfill.h . The goal is to generate
several instances of the algorithm optimized for different cases :
a non-character fill (with the path adjustment and with no dropout prevention),
character fill (with no path adjustment and with dropout prevention),
and spot topology analyzis for autohinting (no adjustment, no dropout prevention,
store trapezoids into a special storage). The ADJUST_SERIF code
probably will die after True Type hinter is done.

[src/gdevddrw.c 1.8, src/gdevddrw.h 1.3, src/gx.h 1.12, src/gxccache.c 1.18, src/gxchar.c 1.31, src/gxfill.c 1.39, src/gxpcopy.c 1.9, src/gxpflat.c 1.6, src/zchar42.c 1.11]

2003-08-21 13:47 Igor Melichev

Removing the obsolete code NEW_TYPE1_HINTER 0 from the character renderer.

DETAILS :

A small part of the old Type 1 hinter is still called from gdevpsfx.c for
converting Type 1 font to Type 2. gdevpsfx.c to be ported to the new Type 1
hinter and then the old hinter (gxhint1.c, gxhint2.c, gxhint3.c) to be
completely removed.

[src/gstype1.c 1.25, src/gstype2.c 1.28, src/gx.h 1.11, src/gxtype1.c 1.27, src/gxtype1.h 1.14]

2003-08-20 19:53 Igor Melichev

Removing the obsolete code PATTERN_STREAM_ACCUMULATION 0 .

[src/gdevpdf.c 1.70, src/gdevpdfi.c 1.49, src/gdevpdfm.c 1.32, src/gdevpdfv.c 1.28, src/gdevpdfx.h 1.72, src/gdevpdti.c 1.19, src/gsptype1.c 1.17, src/gx.h 1.10, src/gxpcmap.c 1.10, src/gxpcolor.h 1.9, src/zpcolor.c 1.11]

2003-08-20 17:58 Igor Melichev

Removing the obsolete code NEW_COMBINE_PATH 0 .

[src/gp_dosfs.c 1.15, src/gp_iwatc.c 1.16, src/gp_macio.c 1.31, src/gp_ntfs.c 1.20, src/gp.h 1.26, src/gp_os2.c 1.29, src/gp_unifn.c 1.14, src/gp_unifs.c 1.14, src/gp_vms.c 1.33, src/icontext.c 1.15, src/icstate.h 1.12, src/imainarg.c 1.30, src/zfile.c 1.37, src/zfile1.c 1.10, lib/gs_ciddc.ps 1.12, lib/gs_fonts.ps 1.42, lib/gs_init.ps 1.95, lib/gs_res.ps 1.35]

2003-08-19 20:20 Alex Cherepanov

Cygwin wants X11 libraries in the order Xt SM ICE Xext X11 but autoconf
generated them in the order SM ICE Xt Xext X11. Restore pre-autoconf order.

[src/configure.ac 1.33]

2003-08-18 23:38 Ralph Giles

Raise the limit on interpreter memory to 1GB for regression testing. This
larger value is required to process the ai2.pdf test file with pdfwrite
at the default (720 dpi) resolution.

[toolbin/tests/gstestgs.py 1.21]

2003-08-18 21:21 Dan Coby

This commit is part of extending support for high level colors to
high level devices.  In general, additions have been made to the
device colors to include the high level color values used to create
the device color.  A flag was also added to indicate if the color
information (in dev_color->ccolor) is valid.  There are also two
files being added to provide support for saving and comparing the
high level color information.

[src/devs.mak 1.94, src/gdevbbox.c 1.13, src/gdevdbit.c 1.9, src/gdevpdfb.c 1.19, src/gdevpdfd.c 1.29, src/gdevpdfg.c 1.35, src/gdevpdfi.c 1.48, src/gdevpdfv.c 1.27, src/gdevpdtt.c 1.55, src/gdevplnx.c 1.6, src/gdevps.c 1.35, src/gdevpx.c 1.13, src/gdevvec.c 1.19, src/gsciemap.c 1.14, src/gscolor.c 1.11, src/gscsepr.c 1.21, src/gsdcolor.h 1.11, src/gslib.c 1.12, src/gspcolor.c 1.10, src/gsptype2.c 1.13, src/gsptype2.h 1.8, src/gxacpath.c 1.9, src/gxcmap.c 1.15, src/gxdcolor.c 1.11, src/gxhldevc.c 1.1, src/gxhldevc.h 1.1, src/gxi12bit.c 1.6, src/gxicolor.c 1.9, src/gxifast.c 1.9, src/gximage3.c 1.12, src/gxipixel.c 1.9, src/gxpcmap.c 1.9, src/lib.mak 1.132]

2003-08-18 20:43 Dan Coby

Fix for 686998 syntax error in findxref for customer 580.  The given
test file does not have 'startxref' on its own line.  This is a
violation of the PDF spec.  However Adobe Acrobat accepts the file.
This fix adds a check for this case and prints a warning message.
File processing then continues.

DETAILS:

This fix also includes moving the findxref inside of a stopped context
check in case any other problems are encountered while searching for
the xref table.  If a problem is now found during findxref, the xref
rebuild logic will be called.

[lib/pdf_main.ps 1.77, lib/pdf_rbld.ps 1.4]

2003-08-18 20:33 Raph Levien

The invocation "./configure; make install" wasn't working because
the install target doesn't create the "standard directories", in
particular obj/. This patch simply adds the STDDIRS dependency to
the install-exec target, parallel to the existing std target, which
is the default chosen from a simple "make" invocation.

[src/unixinst.mak 1.32]

2003-08-18 20:30 Ray Johnston

Fix non-conformance of "startjob" if password check fails. Previously, the
"quit" operator in systemdict was masked by a definition of /quit as /stop
in userdict, even if startjob failed due to password check or other reason.

[lib/gs_lev2.ps 1.30]

2003-08-18 17:02 Ralph Giles

Bump the version number post-release.

[doc/News.htm 1.136, lib/gs_init.ps 1.94, src/gscdef.c 1.38, src/version.mak 1.66]

2003-08-18 01:50 Ralph Giles

Protect a Carbon-only call in the MacOS code. This was preventing linking
in the Classic shlib build.

[src/gp_macio.c 1.30]

2003-08-17 17:41 Ray Johnston

Add some more CMap files that have been encountered in files recently
submitted as bugs. Newer versions of some of the ETen CMap group are also
provided.

[Resource/CMap/ETHK-B5-H 1.1, Resource/CMap/ETHK-B5-V 1.1, Resource/CMap/ETen-B5-H 1.2, Resource/CMap/ETen-B5-UCS2 1.1, Resource/CMap/ETen-B5-V 1.2, Resource/CMap/ETenms-B5-H 1.1, Resource/CMap/ETenms-B5-V 1.1]

2003-08-17 10:52 Russell Lang

Add the jbig2dec source directory to the Windows Release instructions.

[doc/Release.htm 1.81]

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.5.2.15 2004/09/22 17:25:56 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   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  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 :

      .file_name_combine  true
      .file_name_combine   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  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  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 

      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 

      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 

      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 :

     .file_name_combine 

      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 

      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 

      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 

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

    .file_name_parents 

      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  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.15, 22 September 2004