"Fossies" - the Fresh Open Source Software Archive

Member "gs8.54/doc/Details.htm" (18 May 2006, 2702266 Bytes) of package /linux/misc/old/ghost/AFPL/gs854/gs854os2.zip:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the project site itself.

2006-05-17T18:27:07.676488Z Ralph Giles

Merge change from trunk.

Remove ARCH_STRUCT_ALIGN_MOD entirely and revert to 
ARCH_ALIGN_MEMORY_MOD not having the extra jmp_buf
alignment requirements. This satisfies the assumption
that structure alignment and sizeof(ref) agree in
the Ghostscript code and should finally fix 687643.

Also add a cast back to jmp_buf in the alignment
macro setjmp_.h. Fixes bug 688698. Patch from
Alex Cherepanov.

[/branches/ghostscript-8.54/src/std.h /branches/ghostscript-8.54/src/setjmp_.h /branches/ghostscript-8.54/src/genarch.c]

2006-05-17T15:32:18.088676Z Ralph Giles

Port the fix for bug #688149 from trunk. Originally committed by Ray 
Johnson.

Fix so that dictionaries that grow preserve attributes.                         
Several problems reported including a potential security                        
hole when in SAFER mode. Thanks to mat Gh Savulescu                             
(SaGS) for the bug report, the patch and excellent                              
analysis of the problem.                                                        
                                                                                
DETAILS:                                                                                                                                                        
Ordinarily dictionaries have unprotected, non-exectue                           
status, but it is possible to "grow" executable or even                         
"read-only" dictionaries (contact Ray Johnston for an                           
explanation as provided by mat Gh Savulescu). The bug                           
in idict.c would not preserve the attributes, making                            
the dictionary not executable, and not readonly even                            
if those were the original attributes.                                          
                                                                                
EXPECTED DIFFERENCES:                                                                                                                                           
None. (we don't run regression in SAFER mode and don't                          
rely on 'special' dict attributes).

[/branches/ghostscript-8.54/src/idict.c]

2006-05-15T23:32:49.061208Z Ralph Giles

Additional release date updates.

[/branches/ghostscript-8.54/doc/Details8.htm /branches/ghostscript-8.54/doc/History8.htm]

2006-05-15T23:03:16.814804Z Ralph Giles

Update release date for 8.54rc2.

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

2006-05-15T22:59:12.198801Z Ralph Giles

Update changelogs for 8.54rc2.

[/branches/ghostscript-8.54/doc/News.htm /branches/ghostscript-8.54/doc/Details8.htm /branches/ghostscript-8.54/doc/Details.htm /branches/ghostscript-8.54/doc/Changes.htm /branches/ghostscript-8.54/doc/History8.htm]

2006-05-15T22:51:20.894499Z giles

Add setjmp_.h, which was left out of the patch fixing bug #687643.

[/branches/ghostscript-8.54/src/setjmp_.h]

2006-05-15T21:31:28.156524Z giles

Correct a typo resulting in inproper glyph placement with transposed 
text and a top left reference corner. Fixes bug 688645. Fix merged
from trunk.

[/branches/ghostscript-8.54/jbig2dec/jbig2_text.c]

2006-05-15T21:07:48.699439Z giles

Update MSVC build to refer to the release version of MS Visual Studio 
.NET 2005.

[/branches/ghostscript-8.54/doc/Make.htm /branches/ghostscript-8.54/src/msvc32.mak]

2006-05-15T19:17:06.838612Z giles

Update the usage line for the split_changelog utility.

[/branches/ghostscript-8.54/toolbin/split_changelog.py]

2006-05-15T19:16:13.375379Z giles

Correct a problem with the display device. The initialiser            
needs to be a scaler, not the array that was being used.
GCC on OS/2 was giving a warning about this. This makes it
consistent with gdevtsep.c. Patch from Russell Lang.

[/branches/ghostscript-8.54/src/gdevdsp.c]

2006-05-15T19:08:28.721428Z giles

Update changelogs.

[/branches/ghostscript-8.54/doc/News.htm /branches/ghostscript-8.54/doc/Details8.htm /branches/ghostscript-8.54/doc/Details.htm /branches/ghostscript-8.54/doc/Changes.htm /branches/ghostscript-8.54/doc/History8.htm]

2006-05-15T19:00:31.775976Z giles

FIX: Allocate jmp_buf with padding, to satisfy alignment constraints.           
Fixes bug #687643. Change merged from trunk.

[/branches/ghostscript-8.54/src/sdct.h /branches/ghostscript-8.54/src/ttinterp.c /branches/ghostscript-8.54/src/ttobjs.h /branches/ghostscript-8.54/src/sjpegc.c /branches/ghostscript-8.54/src/lib.mak /branches/ghostscript-8.54/src/sjpegd.c /branches/ghostscript-8.54/src/sjpege.c]

2006-05-15T17:36:28.446043Z giles

Port documentation updates from trunk.

DETAILS:

Document how to compile Ghostscript with the Luratech compression 
libraries. Bug 688665.

Update Language.htm to better describe the current level of PDF support. 
Bug 688661.

[/branches/ghostscript-8.54/doc/Make.htm /branches/ghostscript-8.54/doc/Language.htm]

2006-05-15T17:35:26.789659Z giles

Add commented out line for manually enabling the luratech build with 
autoconf. Change ported from trunk.

[/branches/ghostscript-8.54/src/Makefile.in]

2006-05-15T17:34:18.223579Z giles

Always make read progress is s_jbig2encode process when there is data
available. Fixes bug #688658. Port from trunk to the 8.54 branch.

[/branches/ghostscript-8.54/src/sjbig2_luratech.c /branches/ghostscript-8.54/src/sjbig2_luratech.h]

2006-05-15T01:29:53.383801Z dan

Port fix for 688686 segfault in find_bit_map() to 8.54 branch.

DETAILS:

The addition of the compressed encoded color logic created a problem for
the psdrgb device.  This device shares most of its code with the psdcmyk
device.  The common print_page procedure uses devn_unpack_row.  This
routine was modified to work with the compressed encoded color values.
However the psdrgb device does not use the compressed encoded color logic.

The fix consists of checking for the presence or absence of a compressed
color list pointer.  The presence of this pointer indicates if the compressed
color logic is being used.  The appropriate uncompress logic is used.

[/branches/ghostscript-8.54/src/gdevdevn.c]

2006-05-11T01:28:43.068966Z giles

Update the changelog xml2html script to handle the output of 
'svn log --verbose --xml' instead of 'cvs2cl'.

[/branches/ghostscript-8.54/toolbin/split_changelog.py]

2006-05-10T22:05:04.536292Z giles

Fix up pre.tcl a bit to handle svn Id: lines.

[/branches/ghostscript-8.54/toolbin/pre.tcl]

2006-05-10T21:57:36.424976Z giles

Propagate release number and data changes to the documentation.

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

2006-05-10T21:54:27.892199Z giles

Update the libpng version number to match the included release.

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

2006-05-10T21:44:14.213811Z giles

Update version numbers and dates for release.

[/branches/ghostscript-8.54/src/winint.mak /branches/ghostscript-8.54/doc/News.htm /branches/ghostscript-8.54/src/gscdef.c /branches/ghostscript-8.54/src/version.mak /branches/ghostscript-8.54/src/dwsetup.rc]

2006-05-10T21:06:42.656903Z giles

Branch for the AFPL Ghostscript 8.54 release.

[/branches/ghostscript-8.54]

2006-05-10T21:05:11.037293Z Ralph Giles

We must reset the state structure pointers passed as userdata for the 
luratech library read and write callback from within the s_jpxe_process
method because the garbage collector may have move the struct since the
call to s_jpxe_init. Fixes bug 688657.

Thanks to Ray Johnston for his analysis of the issue.

[src/sjpx_luratech.c]

2006-05-10T11:23:25.592534Z Alex Cherepanov

Upgrade Japanese Unicode CMap resources from
ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/aj16.tar.Z
Bug 688685.

DIFFERENCES:
None

[Resource/CMap/UniJISX0213-UTF32-H Resource/CMap/UniJIS-UTF32-H Resource/CMap/UniJIS-UTF16-H Resource/CMap/UniJIS-UTF8-H]

2006-05-08T17:43:01.487840Z Ray Johnston

Add checking for required Function in some shadings to prevent later
SEGV. Detected with CET 12-14b.ps

EXPECTED DIFFERENCES:

None. This CET tests known ILLEGAL cases. The CET is not part of the
nightly regression suite.

[src/zshade.c]

2006-05-08T05:39:29.301618Z Ray Johnston

Move internal type 'gs_pattern1_instance_t' and 'gs_pattern2_instance_t' into
an array for compatibility with CPSI and a poorly designed CET (09-03.ps).

DETAILS:

The CET doesn't bother to examine the array contents, so this ruse works.
Since patterns aren't that common, we go ahead and use a 2 element array
even though we only use the first element.

EXPECTED DIFFERENCES:

None.

[lib/gs_patrn.ps lib/gs_lev2.ps src/zcolor.c]

2006-05-04T19:57:23.542378Z Ray Johnston

Fix a missing image problem seen in 468-03 (part of 468-01.ps). Even though
this test appears to violate the rules in the PLRM for Mask and Data Image
sizes for ImageType3, Adobe CPSI and other RIPS ignore the problem.

EXPECTED DIFFERENCES:

468-01.ps

[src/gximage3.c]

2006-05-03T15:24:53.610732Z Ralph Giles

Add a note about additional license change cleanup to be done when 
making GPL releases. Bug 688677.

[doc/Release.htm]

2006-04-28T07:43:58.270935Z leonardo

pdfwrite : Luratech filters must not apply to inline images, part 2.

DETAILS :

Bug 688679 "/syntaxerror in ID with luratech coded pdf".

The last patch appears incomplete. THis one fixes that.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdi.c]

2006-04-27T17:39:56.495819Z leonardo

Fix (UFST bridge) : Update makefile for UFST 4.6 .

DETAILS :

An .h file has been renamed.

EXPECTED DIFFERENCES :

None.

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

2006-04-27T17:36:41.601504Z leonardo

pdfwrite : Luratech filters must not apply to inline images and for Indexed images.

DETAILS :

Bug 688659 "A wrong encoding with Luratech encoder".

1. JPXEncode, JBIG2Encode can't apply to inline images because
PDF specification doesn't define short names for them.

2. JPXEncode can't apply to Indexed images.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfb.c src/gdevpdfv.c src/gdevpsdi.c src/gdevpsdf.h src/gdevpdfi.c]

2006-04-26T22:26:54.710871Z Ralph Giles

As of libpng 1.2.10 we have to define PNG_NO_ASSEMBLY_CODE or include
one of the two asm files on MacOS X. We don't want to fiddle with
the source list based on compiler at this point (MSVC vs GCC) so
just do without the assembly as before.

[src/libpng.mak]

2006-04-26T19:16:55.695237Z Ray Johnston

Fix SEGV when 'reversepath' invoked with a currentpoint but no segments.
Detected with the CET Global Interference test.

EXPECTED DIFFERENCES:

The CET tests might run now ;-)
Otherwise no differences.

[src/gspath1.c]

2006-04-26T01:17:13.575661Z Ray Johnston

Fix for 470-01 at some resolutions (90 dpi failed, 125 dpi worked). Zero
width or height clip box confused shading logic.

EXPECTED DIFFERENCES:

None. 470-01.ps was not in the comparefiles (yet). I will be adding it.

[src/gsshade.c]

2006-04-25T17:31:26.091156Z leonardo

pdfwrite : Implementing ColorImageAutoFilterStrategy, GrayImageAutoFilterStrategy.

DETAILS :

This patch implements ColorImageAutoFilterStrategy, GrayImageAutoFilterStrategy 
destiller parameters, and applies them for choosing image encoding filters
when Ghostscript is built with Luratech filters.

1. Since the old architecture defines common image parameter lists for
pswrite and pdfwrite, now we need to pass CompatibilityLevel to
those common modules. Doing that in a hackish way with defining
a new field gx_device_psdf::ParamCompatibilityLevel,
and setting it whenever that stuff is called from pdfwrite.

2. Using it for the filter choice in psdf_setup_image_filters.

3. Enhance psdf_get_image_params and psdf_put_image_params with
ColorImageAutoFilterStrategy, GrayImageAutoFilterStrategy (gdevpsdp.c).

4. Passing the lossless option for JPXEncode filter in setup_image_compression,
and using that filter for lossless compression instead FlateEncode/LZWEncode
when it is available, depending on ColorImageAutoFilterStrategy, GrayImageAutoFilterStrategy.

5. With CompatibilityLevel>=1.5, with 1bpp images we choose JBIG2Encode instead 
FlateEncode/LZWEncode when it is available.

Thus, when Luratech filters are available, with CompatibilityLevel>=1.5,
Luratech filters work by default.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdp.c src/gdevpdfp.c src/gdevpdfb.c src/gdevpdfv.c src/gdevpsdi.c src/gdevpsdf.h src/gdevpdfi.c]

2006-04-25T16:40:09.951186Z Ralph Giles

Copy the new 1.2.10 libpng release into our tree.

[libpng]

2006-04-25T16:39:48.646150Z Ralph Giles

Remove the included libpng 1.2.8.

[libpng]

2006-04-25T03:10:32.157126Z Ralph Giles

Add hooks for setting the lossly compression quality target or lossless 
compression to the jpxe stream state. Both new parameters are optional,
but the set_defaults method must now be called for consistent behavior.

The quality option allows setting a quality value (1-100 inclusive) 
different from the default, currently 60. Setting the lossless flag
specifies lossless encoding and overrides any quality setting.

[src/sjpx_luratech.h src/gdevjpx.c src/sjpx_luratech.c]

2006-04-22T01:59:07.027378Z Ray Johnston

Change ASCII85Decode EOD handling to make sure that the EOD characters are
consumed before we provide the last bit of data to the caller. The ~> sequence
(actually could be   ~   > ) left in the currentfile would
cause an /undefined error. Bug 688618.

DETAILS:

When the input is piped from %stdin the smaller buffers tripped over this
frequently with the test file simply because there were more buffer bounds
conditions.

Note that this area is _still_ not quite the way Adobe works, but without
major surgery and analysis of Adobe filter behaviour we aren't likely to
achieve 100% compatiblity.

Since we handle the case where the EOD sequence is in the part of the buffer
that we defer processing on (if last is false) we should be quite similar
as far as when we process the EOD since if a complete EOD wasn't in the
buffer previously, the '~' was left there. Now we avoid returning the last
word of data if the complete EOD isn't in the tail of the buffer.

If the EOD sequence seen in the tail is preceded by the 'real' EOD before
the tail in the current buffer, the "false positive" does no harm. Similarly
if there is a malformed EOD '~' not followed by '>' (possibly with intervening
) the error condition will still be detected when the '~' is actually
parsed in the deocder.

EXPECTED DIFFRENCES:

None. The regression suite still runs fine for me, including FTS files that
use the ASCII85Decode filter such as 119-01.ps.

[src/sa85d.c]

2006-04-22T01:15:50.051226Z Ray Johnston

Yet another apparently broken PDF file that Acrobat Reader handles silently.
In this case a 'Tj' operator when the font is an embedded double byte font
(CIDFont) has an odd number of bytes in the string. Change to return a
.notdef' glpyh for the tail of the string. Bug 688670 fro customer 562.

EXPECTED DIFFERENCES:

None since we did not have any files with this problem.

[src/gsfcmap1.c]

2006-04-21T01:11:36.736823Z Dan Coby

Fix for 688648 Too many MAP file names.

DETAILS:

The Borland C++ 5.5 Builder no longer worked.  The problem was caused
by an earlier change:

r5596 | igor | 2004-12-20 14:17:39 -0800 (Mon, 20 Dec 2004) | 18 lines
Fix : Completely remove the platform dependent target lib.tr from makefiles

There was a note in that change message that it had not been tested with
the Borland compiler.  The bug was also subtle in that the only reason
that the linker command worked previously was because the lib.tr file
was empty.

[src/bcwin32.mak]

2006-04-20T18:14:11.385429Z leonardo

Fix (pdfwrite) : Work around degenerate CTM while stroking a path.

DETAILS :

Bug 688606 "ps2pdf fails with Error: /undefinedresult in --stroke--".

The pdfwrite device uses an inverse CTM to satisfy
Adobe Reader constraing for user coordinates. 
The test document demonstrates another case when a 3d party software 
strokes a path with a degenerate CTM. The old code already implements
a workaround for a si,ilar case. However the old
condition in there appears too strong, and now
we make it weaker to pass a new class of degenerate CTMs.

NMot sure whether we should pass any degenerate CTM.
Will see if new ones appear.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2006-04-18T17:32:25.849734Z Ray Johnston

Implement the status operation for the %rom% device. Restructure the
makefiles to correct some dependency problems. The creation time of
files in the %rom% device are now set to the build time. The need
for this was established during bug 687094.

DETAILS:

Not tested on VMS or OS/2. Header file dependencies were missing. Now
the mkromfs ZLIB objs are a shared macro list as are the header list.

EXPECTED DIFFERENCES:

None since this only is used if COMPILE_INITS=1.

[src/lib.mak src/openvms.mak src/mkromfs.c src/gsiorom.c src/unix-aux.mak src/macos-mcp.mak src/msvctail.mak src/os2.mak]

2006-04-16T19:08:54.198111Z leonardo

Fix (MSVC build) : Always use nodebug CRTL when building a nodebug Ghostscript.

DETAILS :

The old makefile gave a wrong profiling result due to
linking with debug CRTL when TDEBUG=0 DEBUGSYM=1.

EXPECTED DIFFERENCES :

None.

[src/msvc32.mak]

2006-04-16T19:01:41.671156Z leonardo

Fix (memory manager) : Reduce the CPU time consumption for 'restore', step 2.

DETAILS :

This fixes the bug
Bug 688602 "Displaying file with GS-8.53 is much slower than with GS-8.51"
with switching on the new code.
See the revision 6706 log message.

EXPECTED DIFFERENCES :

None.

[src/gxalloc.h]

2006-04-14T19:49:13.902581Z leonardo

Fix (memory manager) : Reduce the CPU time consumption for 'restore'.

DETAILS :

This is a preparation for fixing 
Bug 688602 "Displaying file with GS-8.53 is much slower than with GS-8.51".
Currently the new code is disabled with the macro NO_INVISIBLE_LEVELS
defined in gxalloc.h . 

The performance flaw happened in revision 5980.
Before it the memery manager created "invisible" save levels
when the changes list becomes too long and needs a big time for 
restoring l_new marks. The idea was to skip marls for 
older changes so that they don't consume processor time.
The cost was an extra growth of the changes list,
because such changes are stored at second time
if happen again after the "invisible" 'save'.
While fixing the bug 68815 this optimization was lost
because it was not documented.

In same time, "invisible" 'save' levels appear logically incorrect,
because they cause the problem documented in the bug 68815.
This change implements same idea (the skipping of old changes
while 'restore'), but it does that with no extra 'save' levels.

The new implementation maintains a pointer 
gs_ref_memory_t::scan_limit, which points 
to a middle element of the changes list.
Elements after that pointers do not restore
l_new mark during 'restore'. Besides that,
this change introduces a new kind of change list elements,
which is marked with AC_OFFSET_ALLOCATED in the 'offset' field.
Such elements do not represent a memory content change, 
but they represent an allocation event for 'ref' arrays.
The l_new mark is restored for those refs,
which were allocated after the change element
pointed by gs_ref_memory_t::scan_limit.

To simplify debugging, we define a new switch
NO_INVISIBLE_LEVELS in gxalloc.h .
When NO_INVISIBLE_LEVELS is zero, 
an algorithmically equivalent change happens in isave.c
and igcref.c, and other modules are not affected.
In this case :

1. Factored out a new function mark_allocated (isave.c).
2. Added a new argument to save_set_new, save_set_new_changes
   to know that it is called for an invisible level (isave.c).
3. Factored out a new function igc_reloc_ref_ptr_nocheck (igcref.c).

When NO_INVISIBLE_LEVELS is 1 :

1. Invisible save levels are not created 
   (the change to alloc_save_state in isave.c).
2. Instead that, it creates a new kind of alloc_change_t element, 
   which is marked with AC_OFFSET_ALLOCATED in the 'offset' field.
   Such element points to the beginning of a newly allocated 'ref' array
   (either packed or not) (see alloc_save_change_alloc in isave.c).
3. The new function alloc_save_remove removes such elements when
   the object is being removed explicitely.
4. save_set_new is expanded to process the new kind of alloc_change_t elements.
   With such elements it calls mark_allocated (see above),
   so that the effect is same as before the patch.
5. The scanning of allocated objects in save_set_new is removed
   due to (3).
6. save_set_new_changes is extended with computing the size of 
   newly allocated 'ref' arrays, which are processed during the scan.
   It appears to be close to what save_set_new did while scanning
   allocated objects (the variable 'changed').
7. The new field gs_ref_memory_t::scan_limit stores a termination
   condition for scanning objects in save_set_new_changes.
   The value is stored when save_set_new_changes is called 
   from alloc_save_state as it was for creatng an invisible save level.
   Rather the new code doesn't create an invisible level, 
   the scan termination condition work as it were created.
8. save_set_new_changes uses the variable 'changed'
   for a proper setting of the termination condition.
   The condition is not exactly equivalent to the
   old one, because the old code also accounts 
   a scanning of non-ref objects, but the new code
   doesn't bother with them. Therefore new termination conditions
   appear in some different points than invisible levels did.
   Therefore the behavior isn't algorithmically equivalent.
9. The new code always restore to a 'visible' level.
   In same time, doing a 'restore', some of l_new marks
   may be left unrestored due to the scan tremination condition.
   This effect may be considered as caching a reasonable
   number of recently changed objects by marking with l_new.
   Older changes loose the l_new mark and their further changes
   will be stored again in the 'changes' list. 
   This causes an extra growth of the 'changes' list,
   but saves the processor time from redundant setting
   of multiple l_new marks when save-restore is executed
   multiple times after a big number of changes.
10. The garbager implements a special processing for 
   AC_OFFSET_ALLOCATED elements. The 'where' pointer is not
   enumerated and isn't tracked while the marking phase.
   Instead that the garbager calls a special function 
   alloc_save__filter_changes to remove those elements, 
   which point to unused ref blocks. Also a special function
   igc_reloc_ref_ptr_nocheck is used to relocate
   'where' pointers. See comments in code.
11. In AC_OFFSET_ALLOCATED elements 60% of their size
   appears unused. We would like to define a smaller
   structure for them, but we don't want 
   enlarge the CPU time expense for checking types
   in loops.

Thus NO_INVISIBLE_LEVELS 1 reconstructs the optimization, 
which was lost while fixing the bug 688153 with the revision 5980.
Rather the behavior isn't strongly equivalent,
the overall logic is mostly same.

Now we commit this patch with new code disabled.
We'll enable it separately after the regression testing
of the algorithmically equivalent part.

EXPECTED DIFFERENCES :

None.

[src/isave.h src/gxalloc.h src/idosave.h src/igcref.c src/int.mak src/igc.c src/ialloc.c src/gsalloc.c src/isave.c]

2006-04-14T17:55:42.321007Z Ray Johnston

Indirect W, W2, Dw or DW2 values were not resolved at the correct point
which caused a check for 0 length W and W2 arrays to not work. Bug 688649.

[lib/pdf_font.ps]

2006-04-14T01:03:31.516512Z Dan Coby

Remove a piece of extra code that came in as part of the 'Named color' logic.

[src/gscdevn.c]

2006-04-13T04:24:47.344362Z Ray Johnston

Fix typo. IdoimSet was in RESOURCE_LIST instead of IdiomSet.
Thanks to "Edward" for spotting this. Bug 688644.

[src/bcwin32.mak src/openvms.mak src/ugcclib.mak src/macosx.mak src/watcw32.mak src/Makefile.in src/dvx-gcc.mak src/msvc32.mak src/unix-gcc.mak src/unixansi.mak src/macos-mcp.mak src/msvclib.mak src/os2.mak src/watclib.mak]

2006-04-11T05:56:23.659314Z Dan Coby

Fix for 688068 Problem with overprint in 1bit cmyk device.

DETAILS:

This problem was caused by an earlier change which was made for support
of ROPs in the GhostPCL product.  Logically there are some conflict
between the requirements for ROPs versus overprint.  See the discussion
in 688638 for the details.

Logically this change backs out the earlier change to big_map_color_rgb.
In actuality, a new routine call bit_decode_color was made which operates
like the earlier version of bit_map_color_rgb.  The new routine was created
since the current bit_map_color_rgb will be needed for ROP support.

[src/gdevbit.c]

2006-04-11T04:54:24.181044Z Ray Johnston

The .ResourceFile logic did not work with the %rom% device since it relied
on the 'status' operator. This change avoids the use of 'status' by using
the 'file' operator in a stopped context. Bug 687094.

DETAILS:

The %rom% device needs to add a 'status' function that comes up with some
reasonable results.

EXPECTED DIFFERENCES:

None.

[lib/gs_res.ps]

2006-04-06T00:30:46.126294Z Dan Coby

Fix for 688625 5x to 15x slowdown between 8.50 and 8.53 (ref#10273).

DETAILS:

The given test file specifies a graphics state for almost every line drawn.
As a result, over 380,000 extra transparency mask initializations are done.
The extra time occurred when the PDF transparency processing was changed
being passed through the clist.These extra initializations were using both
CPU time and clist memory (disk) space.

The fix consists of only processing PDF transparency features when it
is actually needed by the file.  Note:  This was already being done
for most PDF transparency operations but not for the mask initializtion.

[lib/pdf_ops.ps]

2006-04-03T13:43:22.538056Z Alex Cherepanov

Fix all obvious cases where the name of an operator for signalerror procedure
is searched in the dictionary stack instead of retrieving it from systemdict.
Bug 688548.

DIFFERENCES:
None

[lib/gs_lev2.ps lib/gs_img.ps lib/gs_dpnxt.ps lib/gs_cspace.ps]

2006-04-02T00:17:36.683425Z Ray Johnston

Fix rangecheck in shfill caused by floating point inaccuracies in the function
logic. Previous logic allowed for inaccuracy, but the value scaling was wrong
making the test too stringent. Bug 688574 for customer 531.

DETAILS:

This rangecheck failure was not consistent across various builds, but _was_
repeatable on peeves. The problem was a floating point calculation truncation
which caused a vaule to go outside of the defined range (in this case, the
value went negative and the limit was 0.0).

There was logic present in 'fn_1ItSg_is_monotonic' to allow for small
'out of bounds' conditions, but the value used was defined for a different
range and thus was too strict.

While fixing this (by splitting the 'small' values to different ones for
the 'b' range and the 'e' range) I also corrected many spelling errors
(s/noize/noise/ and s/beak/peak). I also regularized the small float
value to (float)1e-6 in the various modules.

[src/lib.mak src/gsfunc0.c src/gsfunc3.c src/gxpcopy.c]

2006-04-01T22:16:27.729522Z Alex Cherepanov

Work around a bug in GCC 2.96 for x86. Pre-load stack pages to avoid a SEGV.
Bug 688574.

DETAILS:
It is well known that GCC 2.96 for x86 sometimes forgets to adjust $esp
and leaves automatic variables at small distance below the stack pointer.
Apparently, when the access to the automatic variable causes a page fault
Linux sends a SEGV signal instead of committing the page if the access
happens below the stack pointer. Pre-loading the stack pages from a known
good context resolves the problem.

DIFFERENCES:
None.

[src/gs.c]

2006-04-01T15:09:59.196553Z Alex Cherepanov

Recognize PDF fonts by the first 4 bytes of the font stream. Simplify
Type 1 font reader and PFB font reader.
Bug 688569 from customer 850.

DETAILS:
Some PDF files mis-identify font type of the embedded font streams or
include raw PDF font streams. Length1, Length2, Length3 may be wrong or
missing. Adobe Acrobat corrects these types transparently to the user.

All PDF font streams can be easily recognized by the 1st 4 bytes of
the font stream. The PFB stream can be recognized by the 1st 2 bytes.

The Type 1 font reader doesn't need to follow 3-part structure of the
Type 1 font but interpret it as a single stream. PDF specifies that
Type 1 fonts with binary-encoded eexec  streams can be embedded. One can
imagine a binary eexec stream that is mis-identified as a hexadecimal
eexec stream by a standard PostScript eexec operator. So the encoded
stream was converted to hexadecimal stream before rev. 6568 . In
practice we've never seen a stream that need a hexadecimal conversion
but had several real hexadecimal streams. When the hexadecimal
conversion was removed in rev. 6568, handling of 3-part Type 1 structure
became a rudiment with is removed now.

Existing code restores the operand and dictionary stacks after the font
interpretation. So no extra code is required to support fonts without
the 3rd part - zeros and cleartomark.

These changes enable Ghostscript to interpret many kinds of malformed
font streams but reduce it's utility as a verification tool. Checking
of the declared type, subtype, and length parameters vs. actual values
has been moved to the bug 688627 and will be implemented later.

DIFFERENCES:
None

[lib/pdf_font.ps]

2006-04-01T13:35:02.551726Z Alex Cherepanov

Fix /ioerror when the length of the string data target is equal to number of
generated bytes. Calculate the exact number of \n characters inserted by
ASCIIHexEncode filter instead of the high bound
Bug 688569

DIFFERENCES:
None

[src/sstring.c]

2006-04-01T13:13:59.549095Z Alex Cherepanov

Enable redefinition of /image and /imagemask operators in PDF interpreter
whan DELAYBIND option is in effect.
Bug 688555

DETAILS:
pdf_draw.ps is loaded after gs_img.ps, gs_init.ps, gs_l2img.ps where /image and
/imagemask are redefined. So these names can be safely resolved at the
loading time, instead of taking the value from systemdict at run time as it was
done before.

DIFFERENCES:
None

[lib/pdf_draw.ps]

2006-03-31T01:07:31.896512Z Dan Coby

Fix for 688608 image rendered black in PDF-file

DETAILS:

The test file for this problem has several 1 bit DeviceGray images.  The file also uses
the 'Darken' blending mode.  This result of this blending mode is the darker of the
background and source colors.

The problem was that 1 bit DeviceGray images are handled by the copy_mon device procedure.
The PDF 1.4 transparency compositor devices were using the gx_default_copy_mono procedure.
However this routine first sets the specified area to black and then sets the white regions.
Since the entire area is first set to black, the blending operation always produced a
black result.

The fix consists of creating a new copy_mono procedure for the PDF 1.4 transparency
compositor devices.  The new routine does not set the entire area to black first.

[src/gdevp14.c]

2006-03-29T21:50:36.299258Z Ray Johnston

Document the new '-o' option. Also minor cleanup in the same area.

[doc/Use.htm]

2006-03-29T20:43:28.951336Z Ray Johnston

Correct double "" typo that made 'usage:' not work.

[toolbin/search-svn-revs]

2006-03-29T19:39:10.090689Z Raph Levien

Adds -o switch to command, which is essentially an alias for 
-sOutputFile=, -dNOPAUSE, and -dBATCH.

[src/imainarg.c]

2006-03-29T19:31:05.448360Z Ralph Giles

The luratech JPEG 2000 encoder defaults to lossless coding mode,
which doesn't offer any size advantages over the older DCT encode
filter. Instead ask for quality-based rate control at 60 on a scale
of 1-100. This also requires switching to the 9,7 wavelet from the
reversible 5,3.

[src/sjpx_luratech.c]

2006-03-28T01:05:49.592416Z Ray Johnston

Return a success code from the clist compression initialization functions.
Bug 688603. Thanks to "Nix" for spotting this.

DETAILS:

This problem actually existed with the LZW comoression init as well as ZLIB.

[src/gxclzlib.c src/gxcllzw.c]

2006-03-27T19:01:29.123835Z Ray Johnston

Fix typo in double inclusion protection.

[src/sjpx_luratech.h]

2006-03-27T18:53:39.250165Z Ray Johnston

Fix a problem handling ' " and \ characters that gave false postives when checkin
sources for C++ comments. Remove some modules from the 'skip' list that did not
belong there (IMHO) -- they were probably there due to previous false positives.

DETAILS:

This module was already sort of hackish. It works better, but probably can still
be fooled. At least we now ignore the character following a '\' and can handle
things like '"' and "'" without getting confused.

EXPECTED DIFFERENCES:

src/gdevpdfe.c will no longer be listed as having C++ comments.

[toolbin/tests/check_comments.py]

2006-03-25T01:38:29.250332Z Ralph Giles

Fix luratech-based encode filters. We now appear to work correctly.

DETAILS:

Invert the JBIG2 image data before passing it to the encoder library. We 
allocate a scratch buffer for this because the buffer we are passed in
the read cursor struct is marked const. We now produce output with the 
correct meaning for 0 and 1 bits, but the output of the jbig2 output 
device is now inverted.

In both the jbig2 and jpx encode filters, repeatedly grow dynamic 
buffers until they reach the required size instead of assuming a
single doubling will be sufficient. This fixes a segfault inside
the library compressing large JPX images.

[src/sjbig2_luratech.h src/sjbig2_luratech.c src/sjpx_luratech.c]

2006-03-24T23:58:42.888065Z Ralph Giles

Correct an unitialized variable warning.

[src/gdevjbig2.c]

2006-03-24T01:10:06.296187Z Alex Cherepanov

Use .languagelevel operator instead of languagelevel name to prevent
languagelevel redefinition to affect Ghostscript operation.
Bug 688583

DIFFERENCES:
None

[lib/gs_img.ps]

2006-03-23T19:32:06.035048Z Ray Johnston

Change PDF curve rendering to use 'accurate' curves. PostScript method
is retained for Adobe CPSI compatibility. Bug 688434.

EXPECTED DIFFERENCES:

All are varified as progressions (improvements). I will run update_specific
immediately after the patch is committed.

The file list is:

0.pdf
1_2001.pdf
1_pct_50_bang.pdf
86554321.pdf
Altona-Testsuite_p2_S_x3.pdf
Altona_Measure_1v1.pdf
Altona_Visual_bb_1v1_x3.pdf
Altona_Visual_sb_1v1_x3.pdf
BEST8-99-Path.fh7.pdf
BW0696FOLD1FRONT.pdf
Bug687724.pdf
Bug687828.pdf
Bug687840.pdf
DisplayedGood.pdf
DisplayedWrong.pdf
GS_Stroke_error.pdf
Openhuis_pdf_zw.pdf
PixelisAd.pdf
RodinCIDEmbed.pdf
S2_Digitalproof-Forum_x3k.pdf
SmoothShading.pdf
Svd.pdf
adesso8.pdf
ai2.pdf
annots.pdf
besttest.pdf
bugsample.pdf
bulletin.pdf
ca.pdf
chartab.pdf
chilis_black.pdf
chilis_red.pdf
file.pdf
file2.pdf
knight.pdf
messenger.pdf
messenger16.pdf
p2b-100.pdf
probe3.pdf
si_tg_brochure.pdf
time1.pdf

[lib/pdf_main.ps]

2006-03-23T12:39:23.850800Z leonardo

Fix (pdfwrite) : The font copying and the font comparizon didn't work with segmented True Type data.

DETAILS :

Bug 688611 "Font included in the PDF file several times".

In Postscript documents Trus Type font data are segmented
to fit into a maximal Postscript string.
If a True Type table is bigger, it must be segmented.
When creating a stable font copy such case is rare,
because we copy small tables only (skipping such big tables as 'glyph'
in order to create a font subset).
In the supplied test case True Type font is so wrongly segmented,
that 'cvt' table consistes of 2 segments, rather it could fit into a single string.
Due to that the old code accessed occasional data after a segment break.

We believe that the test document is an incorrect Postscript,
but we decided to do effort for handling this case.

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c src/gdevpsft.c]

2006-03-23T09:56:47.387302Z leonardo

(pdfwrite) : Integrating Luratech modules for JPXEncode, JBIG2Encode.

DETAILS :

This imolements a better filter initialization and 
a proper writing of filter names to the PDF output file.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfu.c src/gdevpsdi.c src/devs.mak]

2006-03-22T18:35:22.304671Z Raph Levien

FIX: Fixes segfault in wts persistent cache logic when no cache key is
generated. Fixes bug #688132.

[src/gswts.c]

2006-03-22T18:10:43.455701Z Ralph Giles

Fix printafm to properly handle files with more than 256 glyphs. Patch 
from Michail Vidiassov. Bug 688610.

[lib/printafm.ps]

2006-03-22T16:44:15.233805Z leonardo

(pdfwrite) : Integrating Luratech modules for JPXEncode, JBIG2Encode.

DETAILS :

This is a preliminary implementation.
The new filters in this revision isn't working well and need more debugging.

To build Ghostscript with new filters, specify 
"JBIG2_LIB=luratech JPX_LIB=luratech" in the command line when running 'make' utility.
Use this Postscript prefix to invoke new filters :

<< /ColorImageFilter /JPXEncode
   /GrayImageFilter /JPXEncode
   /MonoImageFilter /JBIG2Encode
>> setdistillerparams

JPXEncode requires CompatibilityLevel=1.5 , 
JBIG2Encode requires CompatibilityLevel=1.4 . 

IMPORTANT NOTE :
The change to gdevpsdi.c near line 239 slightly changes
the behavior in the case when no new filters involved.
When AutoFilter=true, the old code completely disregarded the filter 
specified in ColorImageFilter, GrayImageFilter.
The new code leaves it as a candidate for the automatic choice
if it is a non-lossless filter.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdp.c src/gdevpdfp.c src/gdevpsdi.c src/devs.mak]

2006-03-22T14:56:00.546050Z leonardo

Fix (pdfwrite) : A minor code cleanup.

DETAILS :

This is a preparation for integrating Luratech modules for JPXEncode, JBIG2Encode.
This change is algorithmicly equivalent.

1. Allowed CompatibilityLevel=1.5 . Old code replaced with 1.4 .
   The new code behaves same as the old one.

2. In gdevpsdi.c set_defaults was called twice for same filter in some cases.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfp.c src/gdevpsdi.c]

2006-03-22T08:43:11.486957Z leonardo

Fix : MSVC, Cygwin/gcc warnings.

DETAILS :

Note 1:
This patch inserts 2 initializations into gswts.c against an indeterminzm,
but we don't case about correct values in those cases.

Note 2:
This patch removes the messing pointer type cast insetred with the last patch.

EXPECTED DIFFERENCES :

None.

[src/gsimage.c src/gxfcopy.c src/gxwts.h src/gdevpdfg.c src/gswts.c]

2006-03-22T08:04:49.413437Z Ray Johnston

Fix compile problems and MSVC warnings.

[src/gxwts.h src/gswts.c]

2006-03-22T07:05:00.066628Z Raph Levien

Patch to put WTS halftones in clist so that WTS halftoning works in
banded mode. Also uses persistent cache when available to save time
initializing the WTS halftone structures. Some memory cleanup and
optimization work remains.

[src/gp_unix_cache.c src/gswts.h src/gshtscr.c src/gxdhtserial.c src/gxwts.h src/gsht.c src/gswts.c src/gxclrast.c src/gxdevndi.c src/gp.h src/gxclimag.c]

2006-03-22T04:58:45.401369Z Alex Cherepanov

Add ToWrite dictionary to complete the environment for pdfwrite.ps procedures
and enumerate JBIG2Globals parameter before the image to avoid recursion during
stream copying.
Bug 688556

DIFFERENCES:
None

[lib/pdfopt.ps]

2006-03-21T12:09:23.846370Z leonardo

Fix (pdfwrite) : Order embedded fonts against an indeterminizm.

DETAILS :

Bug 688561 "PDF content depends on memory allocation."

The old code writes font data depending on glyph name indices,
which are Postscript name indices and depend on memory allocation order,
which depend on occasional factors and events.

This patch implements a font data ordering by glyph names,
which are strings. The ordering is implemented for
stable font copies, which only represent an embedded font
before writing it.

See comments added into gxfcopy.h .

EXPECTED DIFFERENCES :

None.

[src/gdevpdtb.c src/gxfcopy.c src/gxfcopy.h]

2006-03-20T23:35:52.190540Z Ralph Giles

Implement RGB and CMYK output in the example JPX output device. The CMYK 
device isn't confirmed to be correct.

[src/devs.mak src/gdevjpx.c]

2006-03-17T20:26:58.555712Z Ralph Giles

Add the new luratech integration and testing files to the 
file list in the documentation.

[doc/Develop.htm]

2006-03-17T20:16:46.140063Z Ralph Giles

Add missing revision comment lines.

[src/gscedata.h src/gdevpdtv.c src/gdevpdtv.h src/gscedata.c]

2006-03-17T07:19:58.022114Z leonardo

Type 1 hinter : More improvements (continued 3).

DETAILS :

The revision 6642 appears incorrect.
We thought that the 'uninitialized' warning was issued
due to the compiler stupidity, however it appears useful.
Those variables could be uninitialized due to 
the operator 'continue' above their assignments.
Revisions before 6642 are indeterministic.

This patch provides a correct fix for that error.
The last patch fixed the indeterminizm,
but the computation was inaccurate.

EXPECTED DIFFERENCES :

normal 72 dpi :

"Bug687724.pdf" 
"chess.ps" 
"MagicEye.pdf" 

normal 300 dpi :

"86554321.pdf" 
"alphabet.ps" 
"t\Bug687724.pdf" 
"t\fonts.pdf" 
"t\MagicEye.pdf" 
"t\PixelisAd.pdf" 
"t\prob.pdf" 
"t\spec_gs.pdf" 
"t\spec_gv.pdf" 

pdfwrite 72 dpi :

"Bug687724.pdf" 
"chess.ps" 
"t\Bug687724.pdf" 
"t\chess.ps" 
"t\MagicEye.pdf" 

pdfwrite 300 dpi :

"86554321.pdf" 
"alphabet.ps" 
"Bug687603.ps" 
"Bug687724.pdf" 
"fonts.pdf" 
"MagicEye.pdf" 
"PixelisAd.pdf" 
"prob.pdf" 
"spec_gs.pdf" 
"spec_gv.pdf" 

[src/gxhintn.c]

2006-03-16T19:59:07.187142Z Ray Johnston

Remove individual credit from 'usage'.

[toolbin/search-svn-revs]

2006-03-15T19:56:58.028675Z Ralph Giles

Remove excessive debugging output.

[src/sjpx_luratech.c]

2006-03-15T19:45:00.902158Z Ray Johnston

Fix color procs to get gray scale instead of _b_w_.

[src/gdevjpx.c]

2006-03-15T14:35:27.348378Z Alex Cherepanov

Use gput procedure to store data in the PDF graphic state instead of the plain
def because initial graphic state is a read-only dictionary.
Bug 688593 from customer 870.

DIFFERENCES:
None

[lib/gs_ttf.ps]

2006-03-15T06:33:42.151793Z Ralph Giles

Add test frameworks for the JBIG2 and JPX encode filters. This code 
only depends on the encoder streams being available, but currently
that is only possible when building against the proprietary Luratech
implementation libraries.

[src/gdevjbig2.c src/gdevjpx.c src/devs.mak]

2006-03-15T05:46:07.272587Z Ralph Giles

Initial check in of JPX encode filter support based on the Luratech LWF 
JP2 library.

[src/sjpx_luratech.h src/sjpx_luratech.c]

2006-03-15T05:43:50.703217Z Ralph Giles

Commit header changes associated with the previous commit.

[src/sjpx_luratech.h]

2006-03-15T05:41:25.246375Z Ralph Giles

Instead of using the dimensions and depth of the first image component,
take the maximum of the values for each component, giving the highest 
resolution image. The library doesn't supply the information from 
the Image Header Box which should be the actual target resolution, 
so we still need to implement passing the target image dimensions 
from the image dictionary for complete robustness. 

Also, some code clean up and improvement of debugging messages.

[src/sjpx_luratech.c]

2006-03-13T21:11:43.073623Z stefan

Use vsprintf for currently unused gs_throw_imp for now.

[src/gsmisc.c]

2006-03-13T20:53:43.657512Z stefan

remove abberant include of stdint.h

[src/gdevpdfe.c]

2006-03-13T20:37:32.485353Z Ray Johnston

Add warning about potential misleading results as pointed out by Igor.
Credit him with this observation in the 'usage' explanantion.

[toolbin/search-svn-revs]

2006-03-13T19:52:46.775800Z Ralph Giles

Fix a typo that was introduced in r6651.

[src/gserror.h]

2006-03-13T19:41:07.288420Z Ralph Giles

Use the Id keyword instead of the old RCSFile and Revision.

[src/gserror.h]

2006-03-13T16:18:19.024819Z stefan

changed copyright headers

[src/iplugin.h src/gdevm48.c src/gsgdata.h src/configure.ac src/gsropt.h src/gdevmsxf.c src/gdevmem.c src/gdevmem.h src/zvmem.c src/write_t1.c src/gstrap.c src/icstate.h src/gxxfont.h src/write_t1.h src/gstrap.h src/gzacpath.h src/gdevcgmx.h src/gscssub.c src/gp_msdos.c src/gdevlbp8.c src/gdevdm24.c src/gdevpdfx.h src/zcsdevn.c src/dwsetup.rc src/zcontext.c src/gscssub.h src/icie.h src/gxdhtserial.c src/gdevpdts.c src/ccfont.h src/gxdither.h src/gxdhtserial.h src/gdevpdts.h src/macsystypes.h src/gxclutil.c src/gxcomp.h src/echogs.c src/oper.h doc/History7.htm src/zchar42.c src/gscscie.c src/gsfont0.c src/zchar42.h src/icfontab.c src/zht1.c src/zdevcal.c src/zpcolor.c src/gdevpdfi.c src/zcssepr.c src/ifont42.h src/sdcparam.c doc/Install.htm src/bcwin32.mak doc/Issues.htm src/sdcparam.h src/gdevpdtd.c src/gdevokii.c src/zcfont.c src/gdevpdtd.h src/gdevprna.c src/zcolor.c src/gxhtbit.c src/oparc.h src/sfxfd.c src/gdevprna.h src/gp_mspol.c src/dwuninst.h src/ttconfig.h src/gpmisc.c src/ireclaim.c src/gxstdio.h src/gsmemraw.h src/gpmisc.h doc/Lib.htm src/gxline.h doc/Ps-style.htm src/ijs.mak src/gserver.c src/gp_psync.c src/gp_os2pr.c src/gdevpsd.c src/gsiomacres.c src/gxclfile.c src/gxfilltr.h src/gdebug.h src/zfile.c src/gdev4693.c src/gxchar.c src/gxchar.h src/gsline.c src/gsfcid2.c src/gsalloc.c src/gsline.h src/gsiparm2.h src/gsalloc.h src/gxfont0.h src/gdevmeds.c src/gs16spl.c src/gdev4081.c src/gdevmeds.h src/srdline.h src/dpmain.c src/wctail.mak src/winlib.mak doc/History8.htm src/szlibx.h src/zmath.c src/gdevpdfk.c src/gxfont0c.h src/iimage.h src/gxpcolor.h src/gdevpdtf.c src/gp_unifn.c doc/Xfonts.htm src/gdevddrw.c src/gschar.c src/gdevpdtf.h src/gdevpsfm.c src/gdevddrw.h src/sarc4.c src/gschar.h src/gsptype2.c src/gdevpsu.c src/zfcid1.c src/sarc4.h src/gstrans.c src/gsptype2.h src/gdevpsu.h src/gstrans.h src/iestack.h src/gxbitfmt.h src/gxclio.h src/gstype2.c src/itoken.h src/inameidx.h src/gxhldevc.c src/gxhldevc.h src/sfxboth.c src/gp_macio.c src/wrfont.c src/sbhc.c src/gsdps.c src/zfont1.c doc/Maintain.htm src/wrfont.h src/sbhc.h src/gsdps.h src/spngp.c src/ghost.h src/gxalloc.h src/gsmatrix.c src/gxsamplp.h src/istruct.h src/gdevpsf.h src/gsmatrix.h src/zdouble.c src/dwreg.c src/spdiff.c src/gxfcmap1.h src/dwreg.h src/scommon.h src/gdevpdtw.c src/gdevpdtw.h src/unixhead.mak src/gsiparm4.h src/gxiscale.c src/gxbcache.c src/dwinst.cpp src/gxbcache.h src/ibnum.c src/gdevxcmp.c src/estack.h src/ibnum.h src/scfe.c src/gscompt.h src/gsdcolor.h src/gxdtfill.h src/gdevxcmp.h src/gdevlj56.c src/gdevhl7x.c src/gdevos2p.c src/gsparam.c src/gdevmr8n.c src/gsbitops.c src/gxftype.h src/gp_unix_cache.c src/gdevpdfm.c src/imain.c src/gsparam.h src/gsbitops.h src/zfilter2.c src/imain.h src/ifilter.h src/zfont42.c doc/Language.htm src/spdiffx.h src/smd5.c src/smd5.h src/gxhttype.h src/gs16spl.rc src/gspenum.h src/sjpx.c src/sjpx.h src/gxipixel.c src/sfilter2.c src/gdevsnfb.c src/gdevifno.c src/gscrd.c src/gxmclip.c src/gxcie.h src/gsio.h src/gscrd.h src/gxmclip.h src/unix-end.mak src/inobtokn.c src/gp_mslib.c src/gsiodev.c src/gdevescp.c src/igc.c src/msvc32.mak src/gdevmacxf.c src/gsfunc0.c src/igc.h src/jerror_.h src/zdosio.c src/gsfunc0.h src/gdevpsds.c src/gdevpsf1.c src/siscale.c src/gdevpsds.h src/ilevel.h src/gxfill.c src/gsdsrc.c src/siscale.h src/gxclread.c src/gxfill.h src/gsdsrc.h src/iostack.h src/gdevmr1.c src/gsdll.c src/gspath1.c src/gsdll.h src/sjpegc.c src/zfdcte.c src/zfcmap.c doc/Readme.htm src/gdevbit.c src/gdevfax.c src/gsequivc.c src/gsdevice.c src/gp_wsync.c src/gdevfax.h src/gsequivc.h src/gsdll32.rc src/gxclmem.c src/gshtx.c src/gscparam.c src/gdevpdfo.c src/gdevsj48.c src/gsdevice.h src/gsbittab.c src/sdctd.c src/macos_carbon_pre.h src/gxclmem.h src/gshtx.h src/gsmemory.c src/gdevpdfo.h src/gsbittab.h src/ifwpred.h src/gdevcdj.c doc/Devices.htm src/files.h src/gsmemory.h src/gxband.h src/scfdgen.c src/ttinterp.c src/ttcalc.c src/gsbitmap.h src/gdevtknk.c src/idsdata.h src/ttinterp.h src/ttcalc.h src/gxfont42.h src/scf.h src/inames.h src/gxidata.c src/gsroptab.c src/gdevm1.c src/gsistate.c src/os2.mak src/gscolor2.c src/gzline.h src/gscolor2.h src/gsmalloc.c src/ttfmain.c src/ivmem2.h src/gsmalloc.h src/gscindex.h src/gxiodev.h src/gp_macpoll.c src/dwmain.c src/gdevpcfb.c src/gdevvec.c src/dwmain.h src/gdevpcfb.h src/gdevvec.h src/ostack.h src/gsrect.h src/sdeparam.c src/idosave.h src/gsncdemo.c src/ifrpred.h src/gdevimgn.c src/gdevvglb.c src/gsmdebug.h src/gsovrc.c src/gxshade1.c src/gdevm32.c src/scfx.h src/gsovrc.h src/all-arch.mak src/bfont.h src/idparam.c src/gsparams.c src/gdevbjcl.c src/gdevpsdu.c src/dvx-gcc.mak src/idparam.h src/gsparams.h src/gxblend.c src/gdevdsp2.h src/gp_mswin.c src/gdevbjcl.h src/gxblend.h src/gp_mswin.h src/gp_os2.c src/zcolor1.c src/math_.h src/gp_os2.h src/gxfunc.h src/gdevstc.c src/macos-fw.mak src/ialloc.c src/gdevstc.h src/ialloc.h src/gserrors.h src/sjpege.c src/gxsample.c src/gxfarith.h src/dxmainc.c src/gdevbmp.c src/gxsample.h src/gserror.h src/gdevbmp.h src/gdevsppr.c src/igcstr.c src/gdevn533.c src/idebug.c src/igcstr.h src/iccinit1.c src/idebug.h src/gsht.c src/ifont2.h src/gdevpsdf.h src/gdevm16.c src/gsht.h src/scantab.c src/gxfapi.c src/zfilter.c src/gstype42.c src/gxfapi.h src/iutilasm.asm src/gsfunc.c src/sbcp.c src/iref.h src/gsfunc.h src/sbcp.h src/gdevtrac.c src/gp_ntfs.c src/libpng.mak src/gdevatx.c src/zfproc.c src/gs_dll_call.h src/dmmain.c src/istream.h src/gs.c doc/Ps2epsi.htm src/zdevice2.c src/iscannum.c src/sjbig2.c src/gdevpdfb.c src/gscrdp.c src/gspmdrv.c src/iscannum.h src/dmmain.r src/sjbig2.h src/gsfemu.c src/gdevpdfb.h src/gscrdp.h src/gspmdrv.h src/inamestr.h src/gxclrast.c src/gdevxres.c src/zfile1.c src/zimage3.c src/istkparm.h src/gdevo182.c src/zarith.c src/zcspixel.c src/gximage1.c src/msvctail.mak src/gsfunc4.c src/isdata.h src/gxclpath.c src/gsfunc4.h src/gxcmap.c src/gxclpath.h src/icsmap.h src/gxcmap.h src/gpgetenv.h src/zpath.c src/ttload.c src/gsnorop.c src/gdevmrop.h src/gxfillsl.h src/zcolor3.c src/ttload.h src/tttype.h src/gxcpath.c doc/Unix-lpr.htm src/gxcpath.h src/gdevlxm.c src/gxp1impl.h src/rinkj/rinkj-epson870.c src/rinkj/rinkj-epson870.h src/gxgetbit.h src/gdevabuf.c doc/Source.htm src/md5.c src/gp_mac.c src/gdevsgi.c src/zcie.c src/md5.h src/gdevsco.c src/gp_mac.h src/stream.c src/gdevsgi.h src/gdevdflt.c src/stream.h src/gsdpnext.h src/gdev8510.c src/gxstroke.c src/gdevpxut.c src/zmisc2.c src/ttmisc.h src/zfunc3.c src/iparam.c src/zrelbit.c src/gdevpxut.h src/gxclist.c src/gdevxini.c src/iparam.h src/gxclist.h src/jbig2.mak src/gdevpsfu.c src/gdevlp8k.c src/gdevpdt.c src/ttfmemd.c src/gdevpdt.h src/gp_dosfs.c src/ttfmemd.h src/gpcheck.h src/jasper.mak src/ztype.c src/dwuninst.cpp src/gdevxxf.c src/shc.c src/zshade.c doc/Use.htm src/opcheck.h src/shc.h src/gdevpdfd.c src/gdevcfax.c src/zicc.c src/vdtrace.c src/gxdda.h src/iscan.c src/vdtrace.h src/iscan.h src/gsnotify.c src/gximage3.c src/srle.c src/gsnotify.h src/zfilterx.c src/gsdll2.rc src/gximage3.h src/iparray.h src/memory_.h src/gsuid.h src/gdevstc2.c src/ziodev2.c src/gsiodevs.c src/zmisc.c src/gsargs.c src/devs.mak src/gp_win32.c src/gsargs.h src/gsinit.c src/gxttfb.c src/wmin.mak src/gxttfb.h src/dscparse.c src/winplat.mak src/gdev3852.c src/dscparse.h src/gp_getnv.c src/gp_wgetv.c src/gdevpxen.h src/gdevadmp.c src/gdevpxat.h src/zchar2.c src/errno_.h src/slzwc.c src/gdevpdfu.c src/ttcommon.h src/gdevp14.c src/dwinst.h doc/Ps2ps2.htm src/sfilter.h src/gdevp14.h src/ifcid.h src/sisparam.h src/ifont.h src/zfmd5.c src/unixlink.mak doc/Psfiles.htm src/zrop.c src/gdevegaa.asm src/zfjpx.c src/gspaint.c src/gspaint.h src/sa85x.h src/gsalpha.c src/int.mak src/gsalpha.h src/icremap.h src/imainarg.c src/gp_dvx.c src/imainarg.h src/spprint.c src/gxcldev.h src/zbfont.c src/unix-gcc.mak src/spprint.h src/igstate.h src/unistd_.h src/version.mak src/dwtext.c src/sbwbs.c src/gxdevmem.h src/icharout.h src/gdevstc4.c src/dwtext.h src/sbwbs.h src/szlibd.c src/gdevpccm.c src/gdevdfax.c src/gdevdbit.c src/gdevpccm.h src/strimpl.h src/gsutil.c src/opextern.h src/gsutil.h src/zimage.c src/gdevcgm.c src/gdevtsep.c src/gsfont0c.c doc/Deprecated.htm src/gsht1.c src/gspcolor.c src/gxi12bit.c src/gsht1.h src/iddstack.h src/rinkj/rinkj-config.c src/gspcolor.h src/zfjbig2.c src/std.h src/rinkj/rinkj-config.h src/gdevs3ga.c src/slzwe.c src/scfdtab.c src/gscolor.c src/stdint_.h src/ztoken.c src/gxpaint.c src/seexec.c src/zchar32.c src/gdevm56.c src/gscolor.h src/icid.h src/spsdf.c src/gxpaint.h src/gsfname.c src/spsdf.h src/gsfname.h src/gxalpha.h src/md5main.c src/srlx.h src/gxclipsr.h src/gdevmac.c src/idisp.c src/jpeg.mak src/gdevmac.h src/idisp.h src/idstack.c src/gdevrinkj.c src/idstack.h src/gdevwdib.c src/gxoprect.c doc/Copying.htm src/gdevsunr.c src/gdevpdtc.c src/gxoprect.h src/gsfcmap1.c src/gswts.c src/gsstate.c src/gswts.h src/ichar1.h src/gxiparam.h src/gsstate.h src/gdevcljc.c doc/Ps2pdf.htm src/iscanbin.c src/gdevmiff.c src/iscanbin.h src/gp_mshdl.c src/zfcid.c src/zfont.c src/unixinst.mak src/iminst.h src/zarray.c src/gxdevcli.h src/fcntl_.h src/gdevpe.c doc/Humor.htm src/zdfilter.c src/write_t2.c src/zdps1.c src/write_t2.h doc/Commprod.htm src/zhsb.c src/gxsync.c src/zupath.c src/dstack.h src/gsccolor.h src/gxsync.h src/gdevpdtt.c src/gdevpbm.c src/gdevpdtt.h src/gdevmrun.c src/gsdllwin.h src/gconf.c src/gdevmrun.h src/gconf.h src/sdct.h src/zfbcp.c src/gsipar3x.h src/gzcpath.h src/scfetab.c src/gxstate.h src/gdevpcl.c src/gdevcmap.c src/zht2.c src/gxfmap.h src/gdevpdfj.c src/zfarc4.c src/gdevpcl.h src/ichar.h src/gdevcmap.h src/zht2.h src/gdevwprn.c src/gxpdash.c src/ztrap.c src/gxlum.h doc/Drivers.htm src/gdevpdte.c src/gdevdevn.c src/gsgcache.c src/gdevdevn.h src/gsgcache.h src/gsptype1.c src/gxclbits.c src/zfcid0.c src/gsptype1.h src/macos_classic_d_pre.h src/zgstate.c src/zfontenum.c src/ctype_.h src/inouparm.c src/rinkj/rinkj-screen-eb.c src/slzwx.h src/gstype1.c src/gxdhtres.h src/gdevmpla.c src/rinkj/rinkj-screen-eb.h doc/Testing.htm src/gstype1.h src/dwmain.rc src/gxcspace.h src/gdevmpla.h src/rinkj/evenbetter-rll.c src/watclib.mak src/rinkj/evenbetter-rll.h src/gxfcache.h src/gxclzlib.c src/istack.c src/zfont0.c src/gstparam.h src/istack.h src/gdevevga.c src/gdevhit.c src/gxclimag.c src/gsdfilt.c src/gxfillts.h src/gsdfilt.h src/gxht.c src/gxdcconv.c src/gdevpsdp.c src/gxcht.c src/openvms.mak src/gdevxalt.c src/gdevclj.c src/gxht.h src/gxdcconv.h src/zvmem2.c src/gdevpdtv.c src/contrib.mak src/rinkj/rinkj-device.c src/gdevpdtv.h src/lwf_jp2.mak src/gxclpage.c src/gsiparm3.h src/gxfont1.h src/rinkj/rinkj-device.h src/icontext.c src/gsdllos2.h src/gxclpage.h src/zstring.c src/icontext.h src/unix-aux.mak src/gzspotan.c src/zfont32.c src/ttfoutl.h src/gxclip2.c src/szlibxx.h src/gdevdrop.c src/gzspotan.h src/gxclip2.h src/scfd.c src/cfonts.mak src/gxiclass.h src/gdevcgml.c src/gdevcgml.h src/gdevpx.c src/windows_.h src/gdevl256.c doc/DLL.htm src/igcref.c src/zcharx.c src/gxtype1.c src/gxtype1.h src/gdevcp50.c src/idictdef.h src/gsmemret.c src/gxclip.c src/gsmemret.h src/sfilter1.c src/iname.c src/sddparam.c src/gxclip.h src/zmedia2.c src/iname.h src/gs.mak src/gxpcmap.c doc/News.htm src/gp_msdll.c src/gxcid.h src/gdevnfwd.c src/macos-mcp.mak src/ttobjs.c doc/History1.htm src/zcontrol.c src/ttobjs.h src/icclib.mak src/gsfcmap.c src/zfont2.c src/iimage2.h src/gxrplane.h src/gsfcmap.h src/gxp1fill.c src/imemory.h src/gsciemap.c src/dos_.h src/zdscpars.c src/gscdef.c src/gdevwpr2.c src/gxtmap.h src/gsbitcom.c src/zchar.c src/gdevsun.c src/gscrypt1.c doc/Fonts.htm src/gscrypt1.h src/ztrans.c src/dwmainc.c src/gxdht.h src/dvx-head.mak src/zcsindex.c src/zcidtest.c src/gdevrops.c src/gdevpdtx.h src/gdevijs.c src/icolor.h src/stdpn.h src/store.h src/gxfixed.h src/gstypes.h src/gsserial.c src/string_.h src/gdevcslw.c src/gsjmorec.h src/gsserial.h src/zfdctd.c src/zdps.c src/gxpcache.h src/scanchar.h src/lib.mak src/gdevdsp.c src/zmatrix.c src/sdctc.c src/gdevdsp.h src/gdevpipe.c src/gspmdrv.rc src/gdevsvga.c src/gdevpdti.c src/gdevsvga.h src/gdevpdti.h src/gdevepsn.c src/gsparam2.c src/gp_mktmp.c src/stat_.h src/zfsample.c src/zfdecode.c src/gsstruct.h src/gximag3x.c src/gsgc.h src/gscolor1.c src/gsnamecl.c src/dwtrace.c src/gdevmswn.c src/ierrors.h src/gxfcmap.h src/gdevjpeg.c src/gximag3x.h src/siinterp.c src/gscolor1.h src/gsnamecl.h src/dwtrace.h src/gdevmswn.h src/gdevbbox.c src/siinterp.h src/opdef.h src/gdevbbox.h src/iddict.h doc/History2.htm src/gp_stdin.c src/gdevtfax.c src/gdevpjet.c src/gendev.c src/gsexit.h src/gdevphex.c src/gp.h src/gslparam.h src/ivmspace.h src/gdevtfax.h src/gshtscr.c src/bench.c src/gsnogc.c src/gdevbmpa.c src/gsnogc.h src/stdio_.h src/tttables.h src/gdevemap.c src/gp_sysv.c src/gsrefct.h src/iastruct.h src/gdevbjc.h src/gdevpsf2.c src/gzht.h doc/Develop.htm src/gxcvalue.h src/sstring.c src/gxpath.c src/scfparam.c src/iconf.c src/gdevupd.c src/sstring.h src/gxpath.h src/interp.c src/zcrd.c src/iconf.h src/dwnodll.c doc/C-style.htm src/dwdll.c src/interp.h src/gdevm40.c src/dwdll.h src/gsiodisk.c src/sjpegd.c src/gspath2.h src/gdevpsim.c src/dvx-tail.mak src/errors.h src/gp_msprn.c src/gxino12b.c src/gdevmgr.c src/gdevpdfp.c src/gxacpath.c src/gslib.c src/ziodev.c src/gdevmgr.h src/iccinit0.c src/sdcte.c doc/Release.htm src/gxccache.c src/gslib.h src/ifont1.h src/zfunc0.c src/gxmatrix.h src/ifunc.h src/gxfdrop.c src/gp_unifs.c src/gxobj.h src/gxfdrop.h src/gxhintn.c src/gsiorom.c src/isstate.h src/gdevm2.c src/gxhintn.h src/gsiorom.h src/ifilter2.h src/gdevwddb.c src/gspath.c src/gxpcopy.c src/gscolor3.c src/gspath.h src/gdevdjet.c src/gscolor3.h src/rinkj/rinkj-dither.c src/zpath1.c doc/History3.htm src/gdevm24.c src/gp_unix.c src/rinkj/rinkj-dither.h src/inamedef.h src/ilocate.c src/gxdcolor.c src/gdevpm.c src/gscdefs.h src/vmsmath.h src/gscencs.c src/gxdcolor.h src/gzstate.h src/gdevbmpc.c src/gdevpm.h src/gschar0.c src/iht.h src/zdevice.c src/gscie.c src/gscencs.h src/ifapi.h src/gxi16bit.c src/zimage2.c src/gscie.h src/iastate.h src/pipe_.h src/gxbitops.h src/ipacked.h src/gpsync.h src/gsfunc3.c src/gdevperm.c src/gswin.rc src/gsccode.h src/gxpath2.c src/gsfunc3.h src/gp_strdl.c src/gxdevbuf.h src/genconf.c src/sa85d.c src/gscsel.h src/sa85d.h src/openvms.mmk src/zcolor2.c src/gp_stdia.c src/gdev3b1.c src/gxttf.h src/ttconf.h src/genht.c src/zgeneric.c src/gxarith.h src/gxclrect.c src/gsshade.c src/gsshade.h src/msvclib.mak src/gsicc.c src/zcid.c src/dwsetup.cpp src/gdevp2up.c src/gsicc.h src/dwuninst.rc src/gdevpdfr.c src/gdevppla.c src/zmisc1.c src/gsdevmem.c src/gdevppla.h src/wccommon.mak src/gxfcopy.c src/gdevpsft.c src/gxfcopy.h src/gsmisc.c src/gdevtfnx.c src/gdevm4.c src/gxicolor.c src/ldf_jb2.mak src/gxpageq.c src/winint.mak src/gsdparam.c doc/Make.htm doc/Details8.htm src/gxpageq.h src/gxdevrop.h src/gsstype.h src/gdevprn.c src/gdevcif.c src/gxdevndi.c doc/History4.htm src/gdevprn.h src/gxdevndi.h src/iesdata.h src/dxmain.c src/gdevpdfc.c src/iapi.c src/spngpx.h src/btoken.h src/gdevherc.c src/gdevpdfc.h src/iapi.h src/zcharout.c src/gdevepsc.c src/gxdevice.h src/gximage2.c src/srld.c src/zht.c src/gxshade4.c src/sjpx_luratech.c src/gxshade4.h src/iinit.c src/watcw32.mak src/gdevstc1.c src/gxbitmap.h src/sjpx_luratech.h src/gxccman.c src/iinit.h src/gsalphac.c src/gxshade.c src/sbtx.h src/zfunc.c src/gsclipsr.c src/gsalphac.h src/gxshade.h src/gsrop.c src/gsclipsr.h src/idict.c src/gxistate.h src/gsrop.h src/gscoord.c src/idict.h src/macos_carbon_d_pre.h src/gxcolor2.h src/gscoord.h src/genarch.c src/gscedata.c doc/Projects.htm src/gxcindex.h src/gscpm.h src/gscedata.h src/gp_nsync.c src/gdevdgbr.c src/gdevmr2n.c src/gdevdsha.c src/zlib.mak src/gdevxcf.c src/gxtext.h src/zchar1.c src/gscdevn.c src/gscdevn.h src/gdevpdft.c src/gdevpsdi.c src/shcgen.c src/gsiparam.h src/zmisc3.c src/zfapi.c src/zfunc4.c src/malloc_.h src/shcgen.h src/gscpixel.c src/gscpixel.h src/gdevplnx.c src/dirent_.h src/gdevplnx.h src/zfzlib.c src/Makefile.in src/gscsepr.c src/iutil2.c doc/History5.htm src/gscsepr.h src/gxwts.c src/ipcolor.h src/gsimage.c src/sjpeg.h src/iutil2.h src/gstext.c src/gxwts.h src/gsimage.h src/msvccmd.mak src/gstext.h src/gdevpdfe.c src/rinkj/rinkj-byte-stream.c src/gsflip.c src/rinkj/rinkj-byte-stream.h src/gsflip.h src/gdevdljm.c src/zdpnext.c src/geninit.c src/gdevdljm.h src/zusparam.c src/gxchrout.c src/gximage4.c src/gxchrout.h src/gxshade6.c src/gxcoord.h src/gdevpdf.c src/macosx.mak src/tttypes.h src/zpacked.c src/gdevstc3.c src/gsparamx.c src/gp_dosfe.c src/iutil.c src/szlibc.c src/gsparamx.h src/gdevpng.c src/iutil.h src/gzpath.h src/sfxstdio.c src/gxcdevn.h src/sjbig2_luratech.c src/gxropc.h src/gxfcid.h src/gxfont.h src/sjbig2_luratech.h src/gdevccr.c src/mkromfs.c src/gslibctx.c src/gdevdcrd.c src/unix-dll.mak src/gslibctx.h src/zbseq.c src/ziodevsc.c src/gdevdcrd.h src/gdevl31s.c src/zfrsd.c src/iosdata.h src/gdevdjtc.c src/gdevmacpictop.h src/gxino16b.c src/gdevpcx.c src/gdevpxop.h src/zfileio.c src/slzwd.c src/gdevpdfv.c src/gxpflat.c src/gxifast.c src/dwimg.c src/fapi_ft.c src/zsysvm.c src/gsimpath.c src/dwimg.h src/gdevx.c src/gsmemlok.c src/gsos2.rc src/gximage.c src/gdevx.h src/gsmemlok.h src/ziodevs.c src/unixansi.mak src/gdevpsfx.c src/gximage.h src/gscspace.c src/gdevmacttf.h src/gdevm8.c src/gdevpnga.c src/gscspace.h src/gsropc.c src/gsxfont.h src/ttfsfnt.h src/gsjconf.h src/gsfcid.c src/zstack.c src/gsfont.c src/gsropc.h src/gsfont.h src/isave.c doc/History6.htm src/isave.h src/gdevm64.c src/zdict.c src/gxfrac.h src/gx.h src/iccfont.c src/gdevpdfg.c src/png_.h src/gdevps.c src/gxcllzw.c src/gdevpdfg.h src/gxhttile.h doc/API.htm src/gdevpdtb.c src/gsdps1.c src/time_.h src/gdevpdtb.h src/ttfinp.c src/gshsb.c src/pcwin.mak src/vms_x_fix.h src/ziodevst.c src/smtf.c src/ttfinp.h src/x_.h src/gdevtifs.c src/gshsb.h src/smtf.h src/gdevtifs.h src/gximono.c src/fapiufst.c src/szlibe.c src/gxctable.c src/main.h src/gp_vms.c src/gp_iwatc.c src/ugcclib.mak src/gxctable.h src/gdev8bcm.c src/dwsetup.h src/gp_os9.c src/gdevbj10.c src/gxclipm.c src/gdev8bcm.h src/zpaint.c src/stdpre.h src/iplugin.c src/gxclipm.h src/gsgdata.c]

2006-03-12T20:26:06.745233Z leonardo

Fix : gx_path_merge_contacting_contours incorrectly released path segments.
DETAILS :

Bug 688591 "Garbager problem with -r72 ppmraw S2_Digitalproof-Forum_x3k.pdf".
Path segments are always allocated in stable memory.

EXPECTED DIFFERENCES :

None.

[src/gxpcopy.c]

2006-03-12T06:28:39.018444Z Ralph Giles

Set the executable property on the new search script.

[toolbin/search-svn-revs]

2006-03-12T02:47:35.883320Z Ray Johnston

Add a bash script to search for the first svn rev. that succeeds. Binary search
is used to decide which rev to try next.

DETAILS:

There is a 'usage' if no parameters are given. If Ghostscript exits with a
non-zero exit code, then the 'test' operand is not needed. For example,
if rev. 6170 corresponds to 8.53, and the current HEAD is 6647, then the
following will find the first revision which succeeds (6579):

search-svn-revs 6170 6647 'bin/gs -dBATCH -dNODISPLAY -dNOPAUSE -q coloraerial.pdf'

The gs output is captured in 'test.log' so that output can be examined (for
instance using 'grep') for status conditions where the gs exit code is not
useful.

Note that if this is run on casper, where the svn repository is local, then
changing the "svn co ..." line to from "svn+ssh://svn.ghostscript.com/" to
"file:///" will perform the checkout more quickly.

There is a guess made for GS_LIB which is concatenated to the previous definition
(if any), to ./lib:/home/regression/fonts which also works on casper or peeves.

[toolbin/search-svn-revs]

2006-03-10T16:20:52.667102Z leonardo

Fix : Shading fill applied a wrong path adjustment.
DETAILS :

Bug 688568 "Shading fill applies a wrong path adjustment".
See also the log message of the patch
http://ghostscript.com/pipermail/gs-cvs/2006-February/006379.html

1. Removes the OLD_CODE_COMPATIBILITY flag.
2. An indeterministic bug while computing fill adjustment
   when gx_cpath_intersect_with_params is called (indirectly) from gs_shfill.
3. gs_shfill didn't apply fill adjustment.

EXPECTED DIFFERENCES :

"464-01-fixed.ps" 
"gradmesh.ai" 
"S2_Digitalproof-Forum_x3k.pdf" 
"shading_prob_800.ps" 
"SmoothShading.pdf" 
"STEUER-RollingMesh 1(linear).ai" 
"STEUER-RollingMesh 2(radial).ai" 
"Testform.v1.0.2.pdf" 

[src/gxcpath.c src/gxfill.c src/gscolor3.c]

2006-03-10T08:27:48.551311Z leonardo

pdfwrite : A simplified implementation for ColorConversionStrategy, continued 4.

DETAILS :

Fixing a crash with imagemask.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfi.c]

2006-03-09T23:15:58.290889Z Dan Coby

Add a description of the files which were added for the 'named color' callback.

[doc/Develop.htm]

2006-03-09T22:59:58.579801Z Dan Coby

Set the Id keyword for the 'named color' files.

[src/gsnamecl.h src/gsncdemo.c src/gsnamecl.c]

2006-03-09T22:24:34.708728Z Alex Cherepanov

Add missing initialization to the streams allocated on the stack or in raw
memory.
Bug 688572

DETAILS:
The following code doesn't initialize all the fields in the stream structure.
stream s; sread_string(&s, ...); but it initializes enough fields to be mostly
working. The bug has been detected by Valgrind.


DIFFERENCES:
None

[src/gdevpdfo.c src/gxfcopy.c src/gdevpdfc.c src/gxshade.c src/gdevpdfu.c src/gdevps.c src/gxclpath.c]

2006-03-09T11:09:19.401813Z leonardo

Fix : Cygwin/gcc warnings.

DETAILS :

1. Removed unuseful variable in gstype42.c .
2. The compiler claims an unititialized variable due to its stupidity.
   Forced an initialization to quiet the misleading warning.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c src/gstype42.c]

2006-03-09T11:05:49.196378Z leonardo

pdfwrite : A simplified implementation for ColorConversionStrategy, continued 3.

DETAILS :

1. is_pattern2_allowed_in_stradegy was underimplemented.
2. Fixed the spelling in "stradegy".

EXPECTED DIFFERENCES :

None.

[src/gdevpdfg.c]

2006-03-09T10:54:46.558875Z leonardo

pdfwrite : A simplified implementation for ColorConversionStrategy, continued 2.

DETAILS :

This implements color conversion for images.

1. make_device_color_space is factored out from psdf_setup_image_colors_filter,
because the substituted color spase is needed for pdf_begin_write_image,
which works before installing the image colors filter.

2. In pdf_begin_typed_image the new variables pcs_device and pcs_orig
provide a right logics for the color space substitution.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm src/gdevpsdi.c src/gdevpsdf.h src/gdevpdfi.c]

2006-03-09T02:18:37.723914Z Alex Cherepanov

Work around an internal compiler error C1001 in MSVC 7.1.3088. 
Split expressionss with multiple type conversions into 2 expressions.
Bug 688579

DIFFERENCES:
None

[src/gdevpdfe.c]

2006-03-08T08:06:00.462700Z leonardo

Fix : MSVC8 warnings.

DETAILS :

Type cast.

EXPECTED DIFFERENCES :

None.

[src/imain.c src/zfile.c]

2006-03-08T01:15:50.548475Z Ralph Giles

Fix filename lookup in the %rom% device to match the lenth of the 
requested path, not just a common start.

[src/gsiorom.c]

2006-03-08T00:21:56.952083Z Ralph Giles

Fix the unix install to include Fontmap.GS. This was the cause of 
688567.

DETAILS:

The mkromfs utility uses the passed paths as templates for file 
enumeration, so EXTRA_INIT_FILES was added containing only
'Fontmap' and 'FAPI' as a shorthand for the collections "Fontmap*"
and "FAPI*". However, this variable is also used in unixinst.mak
as a literal list of files to install, and so only 'Fontmap' was
actually being installed.

This fix remains confusing, but in practice handles the install.

[src/int.mak src/unixinst.mak]

2006-03-07T05:19:23.913236Z Ray Johnston

Handle yet another PDF that Acrobat Reader accepts silently that does not
conform to the specification. In this case the /Subtype is /TrueType but
the font is in the /FontFile, not the FontFile2 or FontFile3 stream.
Bug #688585 for customer #780.

DETAILS:

As usual, we issue a descriptive pdfformaterror message complaining about
the non-conformance.

[lib/pdf_font.ps]

2006-03-06T21:55:46.036109Z Ralph Giles

Calculate the input image stride in the jbig2encode stream init 
procedure so the caller doesn't have to.

[src/sjbig2_luratech.c]

2006-03-06T19:54:28.434131Z Ralph Giles

Fix a problem with CMYK JPXDecode filter image streams.

DETAILS:

The Luratech jp2 decoder does not return a general image size for CMYK 
images (this seems to be a bug) or for images with subsampled 
components. Therefore we use the dimensions of the zeroth component
rather than querying the overall image (component -1).

When the JPXDecode filter implementation is extended to pass the 
required Colorspace information from the image dictionary, it should
also pass the specified width and height of the image, since this
is the actual specification the filter must produce data for.

[src/sjpx_luratech.c]

2006-03-05T21:28:16.082867Z Ray Johnston

Move init files on %rom% device to lib directory prefix (%rom%lib/). This
prefix is used independent of the host OS. Requested by Ralph and Stefan.
The -d destination prefix might be useful for adding other directories
from other source directories to explicit locations in the %rom% device.

[src/imain.c src/mkromfs.c src/int.mak]

2006-03-02T14:20:22.695510Z Ray Johnston

Increase the MSVC compiler heap size to allow compilation of large initializers
for the %rom% device. The current setting worked with all Resource files, 35 PS
Type 1 fonts and 17 CJK fonts, the largest of which was the 12.2Mb MOEKai-Regular.

[src/msvccmd.mak]

2006-03-01T20:51:32.316771Z Ray Johnston

Fix opening of lib files so that %rom% files can be found. Previous code
only worked for default (os) device. Change iccinit1 so that gs_init.ps
is opened with .libfile allowing gs_init.ps to be changed even when
COMPILE_INITS=1. Remove another vestige of the old 'static resource'
approach that is no longer needed by COMPILE_INITS=1.

DETAILS:

This was a moderate amount of surgery, but was functionally extracted
from the old lib_fopen_with_libpaths and merged into lib_open_file
which now returns a PS file object. The lib_fopen now gets the FILE *
pointer from the stream structure for use in processing @ files.

Since the -I paths and the environment GS_LIB paths precede the
%rom% device (present when COMPILE_INITS=1) it is now eay to supersede
the init files, cidfmap, Fontmap, during development or debug, so 
there is little downside to running COMPILE_INITS=1 other than making
the executable bigger (6.6Mb vs 3.3Mb with the current CMaps). Defining
the GenericResourceDir string (using -s) on the command line also still
works since the PS code in iccinit1.c only sets this if it is not
predefined. The upside to having COMPILE_INITS=1 is that the gs
executable is fully self contained and does not need to be 'installed'.

If we built in the fonts (in the Resource/Fonts directory) then even
these aren't needed externally. It might reduce some of the common newbie
problems using Ghostscript. Then the executable grows to a healthy 9.9Mb
(fonts don't compress hardly at all currently).

EXPECTED DIFFERENCES.

None.

[src/imain.c lib/gs_res.ps src/iccinit1.c src/files.h src/zfile.c]

2006-03-01T19:23:16.175578Z Ray Johnston

Add missing files that were part of %rom% implementation.

[doc/Develop.htm]

2006-03-01T02:23:08.031658Z Dan Coby

Clean up for the last commit for 688575.  The previous commit had problems with the gcc compiler.

[src/gsnamecl.h]

2006-03-01T01:53:29.361859Z Dan Coby

Implement enhancement 688575 Add a cal back mechanism for support of PANTONE
or other special spot colors

DETAILS:

Ghostscript currently does not current have a mechanism for special handling 
of PANTONE or other special spot colors.

Currently all spot colors, in either a DeviceN or a Separation color space, 
are either processed via the alternate tint transform for the color space, or 
treated as a separation (as in the tiffsep device).

Obtaining the proper appearance of PANTONE or other special sets of spot 
colors, when custom inks are not available, usually depends upon values which 
are specific the devices inks, media, etc.  This is not usually handled 
properly by the tint transform function.

This enhancement adds a call back mechanism to allow custom processing of 
DeviceN and Separation color spaces by the calling application.

A description of the implementation is present in the comment block at
the start of src/gsnamecl.c.  An example implementation is provided in
src/gsncdemo.c.  The example implemenation shows how to interface with
the various Ghostscript structures and routines.  The example implementation
only contains a few demo colors.

The entire implemenation is conditionally compiled by a switch called
ENABLE_NAMED_COLOR_CALLBACK in src/gsnamecl.h.  Currently this switch
is set to disable the implementation.

[src/lib.mak src/gscspace.h src/gxistate.h src/gsnamecl.h src/gsdparam.c src/gsncdemo.c src/int.mak src/gxdevice.h src/gscsepr.c src/gsnamecl.c src/gscdevn.c src/gxdevcli.h]

2006-02-28T21:52:39.567783Z Ralph Giles

Project the WIN32 assembly from compilation on WIN64.

[jasper/src/libjasper/jpc/jpc_qmfb.c]

2006-02-28T21:21:30.311038Z Ralph Giles

Fix a problem with the jasper assembly code. Bug 688545.

[jasper/src/libjasper/jpc/jpc_qmfb.c]

2006-02-28T20:51:29.732995Z Ralph Giles

Rough support for a JBIG2 encoder stream using the Luratech 
implementation.

[src/sjbig2_luratech.h src/sjbig2_luratech.c]

2006-02-28T05:45:20.159028Z Ralph Giles

Report error codes returned by the lwf_jp2 library to allow better bug 
reports.

[src/sjpx_luratech.c]

2006-02-28T01:17:35.281917Z Ray Johnston

Remove deprecated module. No longer used for MS Windows.

[src/gp_msio.c]

2006-02-27T21:15:43.124755Z Ralph Giles

Output more debugging information with -Zw instead of switching on the 
special JBIG2_DEBUG preprocessor symbol.

[src/sjbig2.c src/sjbig2_luratech.c]

2006-02-24T21:07:18.367421Z leonardo

Fix : A slow rendering of a colored halftone (2nd attempt).

DETAILS :

Bug 688537 "A very slow rendering to spotcmyk".

The first attempt caused a regression with pkmraw and
has been undone. This patch accounts pkmraw effects,
which are explained below as "Auxiliary changes".

This patch creates a special branch in gx_default_fill_path 
for filling a path with a colored halftone. 
It installs a clipper device and then renders 
a rectangle through it, using the halftone color painting method immediately.

Auxiliary changes : 
The new branch in gx_default_fill_path calls gx_cpath_intersect
for intersecting the filling path with the clipping path.
The latter calls gx_default_fill_path again for 
converting a path into a rectangular clip list. 
Now we pass the fill adjastment parameters 
of the main gx_default_fill_path invocation
to the inner invocation.
Doing so because we need the intersection to be closer to
what the regular algorithm fills. The new function
gx_cpath_intersect_with_params works for that.
Particularly it causes dropout prevention to work 
for clipping, when a character is filled with a halftone.

The clip list accumulator device now sets
gx_device::memory to a real memory manager.
Before now it was NULL. The new code
uses it to allocate working data for the dropout prevention code.

Besides that, gx_cpath_intersect_with_params
now applies fill adjustment in the special 
branch for a rectangular path intersection.

The flag OLD_CODE_COMPATIBILITY minimizes raster differences 
for easier testing. It should be removed later,
because we believe that the old code is not perfect :
it doesn't pass fill adjustment through gx_cpath_intersect
while filling with a shading color. 

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxcpath.c src/gxacpath.c src/gxpath.h src/gxfill.c src/gzacpath.h]

2006-02-24T16:14:12.132166Z leonardo

Type 1 hinter : More improvements (continued 2).

DETAILS :

An indeterministic bug in the last patch.

EXPECTED DIFFERENCES :

normal 72 dpi :
"Bug687845.ps" 
"japan.ps"

normal 300 dpi :
Bug687889.pdf 

pdfwrite 72 dpi :

"Bug687603.ps" 
"Bug687845.ps" 
"Bug687889.pdf" 
"japan.ps" 
"NECPNTD.pdf" 
 
pdfwrite 300 dpi :
"Bug687698.ps" 
"Bug687889.pdf" 
"japan.ps" 

[src/gxhintn.c]

2006-02-23T17:27:22.487919Z Ray Johnston

FIx output format handling for -sOutputFile string. Thanks to Gh Savulescu
for the detailed analysis and patch. Bug 687621 for customers 670 and 770.
--This line, and th se below, will be ignored--

M    src/gsdevice.c
M    src/gdevupd.c
M    doc/Use.htm

[src/gdevupd.c doc/Use.htm src/gsdevice.c]

2006-02-23T07:18:29.475220Z Dan Coby

Fix for 688551 Need to process transparency in annot appearance streams.

DETAILS:

The fix involves 2 pieces.

1.  Add logic to pageusestransparency to detect if transparency is used
inside of an annotation.  As part of this effort, the logic for detecting
the use of transparency inside of an ExtGState dict was separated into a
separate procedure.

2.  Move the drawing of annotations was moved into showpagecontents.  This
was done since there so that the draw annotation logic is inside of the
push/pop pdf 1.4 transparency device logic.

[lib/pdf_main.ps]

2006-02-23T01:02:15.987199Z Ray Johnston

Remove module that is no longer used by newer COMPILE_INITS method.

[lib/gs_stres.ps]

2006-02-22T23:47:17.158224Z leonardo

Fix (gxfill) : Unwinding the revision 5699 change due to regressions.

DETAILS :

The patch
http://ghostscript.com/pipermail/gs-cvs/2006-February/006361.html
caused regressions with pkmraw -r72 154-01.ps in
http://ghostscript.com/pipermail/gs-regression/2006-February/001856.html

This reopens the bug
Bug 688537 "A very slow rendering to spotcmyk".

Note that another change was applied to gxfill.c between 5699 and now.

EXPECTED DIFFERENCES :

Should fix 2006-02-22 regressions.

[src/gxfill.c]

2006-02-22T21:28:01.105887Z Ralph Giles

Document in the generated gsromfs.c which target endianness the file
was built from, to make it easier to track down the source of non-
portability.

[src/mkromfs.c src/int.mak]

2006-02-22T19:28:07.197474Z Ray Johnston

Fix mkromfs to generate 32-bit big_endian values in memory, not native
byte ordering. Corresponding change in gsiorom.c to always read big_endian
32-bit values.

[src/mkromfs.c src/gsiorom.c]

2006-02-22T18:01:07.387840Z leonardo

Fix (gxfill) : The scanline algorithm could miss a spot boundary.

DETAILS :

Bug 688558 "Incorrect filled path rendering with .2 setflat".

1. merge_ranges wrongly computed the curve end point
   when the curve is scanned in the backward direction
   in gxfill.c (the real bug).

2. Propagates error code from step_al in gxfillsl.h
   (a minor fix).

3. Fixes a typoe in a comment in gxpflat.c .


EXPECTED DIFFERENCES :

None.

[src/gxfill.c src/gxpflat.c src/gxfillsl.h]

2006-02-22T12:59:54.243717Z leonardo

Fix : An MSVC warning and C style in a recent patch.

EXPECTED DIFFERENCES :

None.

[src/imain.c]

2006-02-22T12:10:10.472356Z leonardo

Type 1 hinter : More improvements (continued 2).

DETAILS :

Define PRESERVE_STEM_SLANT for easier experimenting with 
the "preserve stem slant" feature.
See comment in code.

This change is algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c]

2006-02-22T07:28:25.271395Z Ray Johnston

Remove CWD_PREFIX from makefiles -- mkromfs file list is reordered. Add
the %rom% device to the LIBPATH list in imain.c so that .libfile works.
Also export print_resource_usage for use in non-debug builds. Thanks to
Ralph Giles for the suggestions.

[src/openvms.mak src/macosx.mak src/int.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/bcwin32.mak src/imain.c src/ugcclib.mak src/Makefile.in src/unix-gcc.mak src/msvc32.mak src/iccinit1.c src/macos-mcp.mak src/watclib.mak]

2006-02-22T04:53:42.526904Z Ralph Giles

Document the pexit_code and user_errors arguments to gsapi_run_string*() 
and provide an example for how to parse a PDF file from inside the 
interpreter. Bug 688549.

[doc/API.htm]

2006-02-22T01:41:23.102136Z Ralph Giles

Remove the redundant Fixed type from the internal freetype code and 
replace uses of it with the TT_Fixed type. The un-namespaced version
conflicts with system headers on MacOS.

[src/ttfsfnt.h src/tttypes.h src/ttfmain.c]

2006-02-22T01:38:35.156952Z Ralph Giles

Use the uint32_t stdint type for the compiled initialization data 
representation. The previous code used 'unsigned long' but assumed
this type was 32 bits, which isn't true on all platforms.

[src/mkromfs.c src/gsiorom.c src/gsiorom.h]

2006-02-21T22:24:25.799346Z Ray Johnston

Fix missing declaration on Windows platforms.

[src/mkromfs.c]

2006-02-21T22:01:15.379976Z Ray Johnston

Add a missing file from the commits for rev 6600. This was a new file
that was not 'added' before that commit.

[src/gsiorom.h]

2006-02-21T21:29:07.026481Z Ray Johnston

Implement %rom% IODevice and use it for the COMPILE_INITS=1 builds. Data
is compressed and can include fonts as well as lib init files, Resource
directories and other. The (%rom%) path is inserted as the first path on
the LIBPATH list when COMPILE_INITS=1. The default GenricResourceDir is
set to %rom%Resource/ unless the command line sets -sGenericReourceDir.
Bug 687485.

DETAILS:

See gsiorom.* and mkromfs.c for details of the %rom% structure. The inital
implementation creates a string buffer for the entire file (block by block)
decompression is not yet implemented (a new stream type).

The %rom% IODevice is not PostScript specific so it could be used by non
PS interpreters (GhostPCL) but the creation of gsromfs.c by mkromfs needs
to be performed elsewhere (hint in src/lib.mak).

NOTES:
Tested on unix and Windows. Mac, OS/2 and VMS will need attention as will
non-MSVC tool chains. Since this replaces the old COMPILE_INIT method
don't use COMPILE_INTIS=1 on those platforms unless you are working on
fixing problems or just feel lucky.

The insertion of the %rom% device as the first path in the LIBPATH list
will make changing initfiles during debug more cumbersome, but using 
COMPILE_INITS=1 is really not intended for debugging or development anyway.

EXPECTED DIFFERENCES:

None. (we don't build with COMPILE_INITS).

[src/openvms.mak src/mkromfs.c src/gsiorom.c src/macosx.mak src/int.mak src/watcw32.mak src/dvx-gcc.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/lib.mak src/bcwin32.mak lib/winmaps.ps src/ugcclib.mak src/gs.mak src/Makefile.in src/iccinit1.c src/msvc32.mak src/unix-gcc.mak src/unix-aux.mak src/macos-mcp.mak src/unixinst.mak src/msvctail.mak src/watclib.mak lib/gs_init.ps]

2006-02-21T13:43:42.400991Z leonardo

Fix : A slow rendering of a colored halftone.

DETAILS :

Bug 688537 "A very slow rendering to spotcmyk".

This patch creates a special branch for filling a path with
a colored halftone. It installs a clipper device and then renders 
a rectangle through it, using the halftone color painting method immediately.

We're not sure, which color types should go through this branch.
Passing it to our color specialist for review.
Also we're not sure how to get test cases for this branch.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c]

2006-02-21T13:31:27.980844Z leonardo

Fix (shadings) : Save C stack space with removing rudimentary data.

DETAILS :

As a rudiment of the old shading algorithm,
mesh_fill_state_common defined a big data field,
which was placed on C stack and vever accessed.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h]

2006-02-21T12:54:34.181498Z Alex Cherepanov

Repair incorrect ToUnicode CMap streams that have no CMapName key.
Bug 688517

DETAILS:
Ghostscript has been writing incorrect ToUnicode CMap without CMapName into
the PDF since version 8.10 (rev. 3611) . This bug is fixed in version 8.54
(rev. 6201).

DIFFERENCES:
None

[lib/pdf_font.ps doc/Ps2pdf.htm]

2006-02-21T12:42:26.666806Z leonardo

Type 1 hinter : More improvements (continued).

DETAILS :

1. Adjusts t1_hint_range::end_pole if it refers an offcurve pole.
2. Regularizes the hint range adjustment logics (an algorithmically equivalent change).
3. The new function t1_hinter_fix_missed_flex works when a glyph doesn't define flex hints.
   Particularly it works for True Type fonts. 
   It recognizes low curvity boundaries of a flex-like shape and size, 
   and replaces them with a straight segment.
   See comments in code.
   Bug 688552 "A poor grid fitting when a flex hint is missing.".
4. When t1_hinter_fix_missed_flex works, we adjust those stem hint coordinates,
   which point to poles of a flex being unbended.
   For more information see comment in t1_hinter__adjust_stem_hints_by_missed_flex.
4. Improves the logic for obtaining a vdtrace device context in gzspotan.c .
5. t1_hinter__align_stem_poles summarizes alignment from all hint ranges.
   The old code does not do by a mistake.
6. t1_hinter__align_stem_poles now prefers hints, which have both sides applied.
7. The alignment at the stem middle is now applied only to stems,
   which are strongly vertical or horizontal in the design space.
   See comment in t1_hinter__find_stem_middle.

EXPECTED DIFFERENCES :

Massive : 97 of 484 comparefiles.

[src/gxhintn.c src/gxhintn.h src/gzspotan.c]

2006-02-20T07:30:32.227346Z Dan Coby

Addition to the fix for 688177 Eliminate the 64 bit pixel size limit.

DETAILS:

A one line change was missed in the previous commit for this fix.
Without this change, the maximum numbers of is 16.

[src/gxcindex.h]

2006-02-18T18:37:24.764551Z Ray Johnston

Implement yet another hack for an invalid PDF file that Adobe handles. If
a parameter is missing from the Page tree, check the Root Catalog. This case
had MediaBox in the Root dict, but not anywhere in the Pages tree. Bug 688562
for customer 670.

DETAILS:

MicroPatent probably misinterprets the spec where it mentions "For example,
a document might specify the same media box for all of its pages by including
a MediaBox entry in the root node of the page tree." thinking that the Root
Catalog is the Root of the Page tree, rather than the /Pages object from the
Root.

As is usual, I issue a pdfformaterror Warning when this is detected.

EXPECTED DIFFERENCES:

None.

[lib/pdf_main.ps]

2006-02-17T20:23:52.826051Z Ralph Giles

Update the eventone screening url. artofcode.com has been taking by 
spammners.

[src/rinkj/evenbetter-rll.c]

2006-02-17T07:12:46.743338Z Dan Coby

Fix for 688560 DeviceN with InDesign gradient causes segmentation fault.

DETAILS:

I am unable to reproduce the reported seg fault.  This patch fixes the
/rangecheck in --.sethalftone5--

The file was specifying a Gray halftone and also specifying the
SeparationORder parameter to select only a Cyan colorant.  This
was creating confusion in the halftone install logic.  The rangecheck
was being generated when the Gray halftone was being confused as a
second Default halftone.

The fix consists of adding a check for the situation in which the
device indicates that a color is supported by the device but not
being used because of the SeparationOrder parameter.  Note:  There
was already one check in the procedure for this situation but a
second check is needed to handle the 'treat gray like black' etc.
cases.

[src/gsht.c]

2006-02-17T04:10:07.505527Z Alex Cherepanov

Fix recognition of executable names "if" and "ifelse" as valid operations in
the calculator function. Bug 688547.

DIFFERENCED:
None

[src/zfunc4.c]

2006-02-16T19:53:28.400151Z leonardo

Fix (pdfwrite) : Propagate error code from s_DCTE_put_params (continued).

DETAILS :

Remove an obsolete comment.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdu.c]

2006-02-15T07:33:41.943841Z Ralph Giles

Enable $Id keyword substitution on the new luratech integration source 
files.

[src/sjbig2_luratech.h src/sjpx_luratech.h src/sjbig2_luratech.c src/ldf_jb2.mak src/lwf_jp2.mak src/sjpx_luratech.c]

2006-02-15T07:30:40.721233Z Ralph Giles

Update the "RCS" keyword check script to recognize SVN style as well as 
CVS style Id keyword lines. Bug 688554.

[toolbin/tests/check_source.py]

2006-02-15T07:26:26.954211Z Ralph Giles

Turn on keyword substitution. This is confusing, since the script also 
outputs a $Id: Details.htm 6777 2006-05-17 19:36:16Z giles $ line for the makefile it generates, but doesn't cause
problems in practice.

[toolbin/gen_ldf_jb2.py]

2006-02-13T20:28:55.328420Z leonardo

Type 1 hinter : Remove dead development branches.

DETAILS :

This change is syntactically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c src/gxhintn.h]

2006-02-13T00:05:28.577164Z leonardo

Type 1 hinter : More improvements.

DETAILS :

1. Account StemShapH, StemShapW according to Adobe Technical Note #5049.
   The new array stem_snap_vote works for that.
2. Pixel size was wrongly computed with anisitropic CTM.
3. pixel_ox, pixel_oy were mixed with a transposed glyph.
   Fully reconsider OPPOSITE_STEM_COORD_BUG_FIX and remove it.
4. t1_hinter__align_stem_commands sometimes started pole enumeration
   with an off-curve pole.
5. Hint range was wrongly computed for some glyphs.
6. Dotsection didn't work at all.
7. Implements an opposite stem boundary length calculation,
   and accounts it for resolving alignment conflicts.
   new fields boundary_length* work for that.
8. Removed t1_hint_range::contour_index because it worked wrongly.
   Use t1_pole::contour_index instead.
9. A bug in the initialization of max_stem_snap_count :
   the initial value was too small, causing an extra memory allocated.

Bug 687654 "t1_hinter__find_best_standard_width() always returns 0".
Bug 688553 "A poor grid fitting when stems conflict".

EXPECTED DIFFERENCES :

Massive : 343 of 484 comparefiles.

[src/gxhintn.c src/gxhintn.h]

2006-02-12T17:08:11.734787Z Ralph Giles

Correct the accidentally changed hardwired install prefix.

[toolbin/tests/run_nightly]

2006-02-11T23:45:18.286490Z Ralph Giles

Have the update_ghostscript function return the new SVN revision number 
and include it at the head of the report for clarity. Also, when the
complete report is trimmed from length, indicate so. Bug 688541.

[toolbin/tests/run_nightly]

2006-02-11T23:42:25.162459Z Ralph Giles

Also add the regression log file required by run_nightly to the example 
config file.

[toolbin/tests/testing.cfg.example]

2006-02-11T23:15:56.623144Z Ralph Giles

Correct a cut-and-paste error. The get_baselines script was listed under 
the diff_script key in the example config file.

[toolbin/tests/testing.cfg.example]

2006-02-10T14:46:51.888781Z leonardo

Fix (pdfwrite) : Updating the list of standard CMap names.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtc.c]

2006-02-09T23:00:19.858380Z leonardo

Fix (PDF interpreter) : When emulating the text rendering mode 3, don't render the text to the target device.

DETAILS :

Bug 688534 "Text doubled in produced PDF".

The old code executed 'charpath' with the target device just to move current point.
It caused too heavy effect to the target device.
Replacing with a lighter implementation.

Strongly speaking, this patch is not necessary for the bug 688534,
because the last patch fixed the undesirable effect for pdfwrite.
But we prefer to fix the PDF interpreter to exclude 
the unpleasant effect for other high level devices in general.

EXPECTED DIFFERENCES :

None.

[lib/pdf_ops.ps]

2006-02-09T23:00:06.441182Z leonardo

Fix (pdfwrite) : Handle charpath with default implementation.

DETAILS :

Bug 688534 "Text doubled in produced PDF".

The old code handled 'charpath' as a high level operation,
so that the effect to Postscript interpretation erroneusely appears empty,
and the text was erroneusely written to the PDF output.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c]

2006-02-09T18:03:38.118376Z leonardo

Fix (pdfwrite) : Propagate error code from s_DCTE_put_params.

DETAILS :

Bug 688544 "Error: /ioerror in --image--".

The old code erroneusely applied DCT compression to DeviceN colors,
causing an ioerror when the number of colorants is greater than 4.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdu.c]

2006-02-09T16:28:53.914553Z leonardo

Fix : Unwinding the change from rev 6573 to 6574 due to a pdfwrite problem.

DETAILS :

That change caused glyphs to dissapper when rendering a file conferted with pdfwrite.
The effect may be indeterministc.
As we could figure out, the change causes a wrong length of OS/2 table
to be written into embedded True Type fonts.
The problem happens when re-distilling 01_001.pdf, 159.pdf.
We didn't test all files.
Will reopen the bug 688536.

EXPECTED DIFFERENCE :

If a regression appeares with pdfwrite, it should recover.

[src/gxttf.h src/gdevpsft.c]

2006-02-09T15:18:52.242524Z leonardo

pdfwrite : A simplified implementation for ColorConversionStrategy, continued.

DETAILS :

Bug 687628 "ProcessColorModel /DeviceCMYK does not work".

This is a preliminary implementation of ColorConversionStrategy, 
the values UseDeviceIndependentColor and UseDeviceIndependentColorForImages. 
It also defines a new Ghostscript-specific value Gray.
We don't care about performance due to low demand to this feature.
Due to same reason a systematical testing was not done
except regression testing with the default value LeaveColorUnchanged.
We would appreciate users' help in testing new features.

The value UseDeviceIndependentColorForImages actually works as UseDeviceIndependentColor.

The old Ghostscript-specific value UseDeviceDependentColor
is now depricated. It causes a warning is printed to stderr,
and the valuse automaticly substitutes with sRGB, CMYK or Gray
depending on ProcessColorModel.

See also the documentation change included in the patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfp.c doc/Ps2pdf.htm src/gdevpdfc.c src/gdevpdfg.c src/gdevpsdf.h]

2006-02-09T13:16:28.615804Z Alex Cherepanov

Upgrade ttf_OS_2_t structure to support v.2 (96-byte) OS/2 table.
Bug 688536.

DETAILS:
We don't use new fields in the 96-byte structure and continue to
create 86-byte structures. The extra space is used as a buffer when
we copy the structure intact.

DIFFERENCES:
None

[src/gxttf.h src/gdevpsft.c]

2006-02-09T06:03:12.845053Z Ray Johnston

Clamp bbox rectangle to avoid q

[src/gdevp14.c]

2006-02-08T22:41:30.031403Z Ralph Giles

Remove two source files which in the normal build preprocess to nothing 
from our makefile. This means we can't buid with JB2_TEST, but the empty
modules cause an error on the MSVC build.

[src/ldf_jb2.mak]

2006-02-08T22:24:31.339253Z Ralph Giles

Add conditionals to the MSVC makefile to simplify switching between the 
Luratech and normal builds. With this patch it is sufficient to specify 
JPX_LIB=luratech and JBIG2_LIB=luratech on the nmake command line.

[src/msvc32.mak]

2006-02-08T20:30:10.070290Z Alex Cherepanov

Calculate the last byte of the character code modulo 256 to prevent the final
value exceed 256 and cause an rangecheck error.
Bug 688535.

DETAILS:
The overflow and the proposed adjustment can happen only when the
last element is 0xFF. 

The last value of the string is not used but discarded at the end of the loop.
So the adjustment has no effect other than suppressing the error with
the minimal changes in the existing code.

EXPECTED DIFFERENCES:
None

[lib/pdf_font.ps]

2006-02-08T19:57:10.364799Z leonardo

pdfwrite : A simplified implementation for ColorConversionStrategy values CMYK and sRGB .

DETAILS :

Bug 687628 "ProcessColorModel /DeviceCMYK does not work".


This is a preliminary implementation of ColorConversionStrategy, the values CMYK and sRGB . 
We don't care about performance due to low demand to this feature.
Therefore some objects, which use an incompatible color space, 
are converted to low level objects.

The new parameter values were not systematically tested due to low demand.
We would appreciate users' help in testing them.

For now the parameter values UseDeviceIndependentColor and UseDeviceIndependentColorForImages 
work as LeaveColorUnchanged, but the effect of UseDeviceIndependentColor
may be obtained with specifying -dUseCIEColor .

When specifying CMYK or sRGB, the value of ProcessColorModel must be 
DeviceCMYK or DeviceRGB cvorrespondingly.

The color conversion to sRGB is performed with the default color conversion,
which Ghostscript uses to convert to DeviceRGB color model.
Therefore color transfer may be imperfect.
Conversion to CMYK uses the default conversion also.

EXPECTED DIFFERENCES :

None.

[src/gsptype2.c src/gdevpdfp.c src/gdevpdfc.c src/gsptype2.h src/gdevpdfg.c src/gdevpsdf.h src/gdevpdfg.h]

2006-02-08T16:17:13.078988Z Alex Cherepanov

Removes hexadecimal conversion from the code and pass the encrypted
part of the type 1 font to eexec operator intact in all cases.
Bug 688385 from customer 1110.

DETAILS :
The PDF specification states that Type 1 fonts always use binary form of
the encrypted part, but some PDF producers embed fonts with hexadecimal
encoding unchanged. The standard eexec operator recognizes and decodes
them transparently.

The only case that is not handled is a binary-encoded file that looks like a
hexadecimal encoding to eexec. This case has not been observed in the wild. 

EXPECTED DIFFERENCES :
None

[lib/pdf_font.ps]

2006-02-08T13:52:40.832268Z Alex Cherepanov

Consume EOD character in the Hex stream when the stream length is > 0.
Bug 688512 from customer 232.

DETAILS :
This makes our StartData procedure to be compatible with Distiller and CPSI.
It is not clear from the TN #5014 whether an empty Hex stream should have an
EOD character but Adobe doesn't accept it. For non-empty streams they
appear to use an /ASCIIHexDecide filter. Our previous implementation used
readhexstring operator, which didn't consume the trailing EOD characters by
itself and required special code to move the current file past the EOD.

EXPECTED DIFFERENCES :
None

[lib/gs_cidfn.ps]

2006-02-08T06:26:06.073966Z Ralph Giles

Copy the jasper-1.701.0-gs5 release tag into the Ghostscript trunk.

[jasper]

2006-02-08T06:25:15.908588Z Ralph Giles

Remove the current jasper code to make way for the 1.701.0-gs5 release.

[jasper]

2006-02-07T12:19:02.250776Z leonardo

Fix (pdfwrite) : 'shfill' doesn't write a shading's Background.

DETAILS :

Bug 687676 "pdfwrite : shading background can erroneusly appear".

1. pdf_put_shading_common now depends on gs_pattern2_instance_t::shfill.
2. gx_dc_pattern2_save_dc now stores gs_pattern2_instance_t::shfill
   to allow pdf_reset_color to account it with gx_hld_saved_color_equal.

EXPECTED DIFFERENCES :

A progression in pdfwrite with hsadings :

464-01-fixed.ps 
483-01.ps
483-05-fixed.ps

[src/gsptype2.c src/gsdcolor.h src/gdevpdfv.c]

2006-02-06T11:04:12.919537Z leonardo

Fix (pdfwrite) : Allow instandard glyph names when synthesising an Encoding for 'glyphshow'.

DETAILS :

Bug 688017 "ps2pdf problem with CFF fontset resources".

The old code emited 'rangecheck' when glyphshow uses a glyph name,
which doesn't appear in Postscript font Encoding.
It hapens so due to the old code forces standard glyph names,
because other old procedures were restricted with them.
As result, such glyphs converted to rasters.

The modern code is not restricted with standard glyph names,
so we simply pass instandard ones when can't find a standard one.

EXPECTED DIFFERENCES :

Bug688154.ps

[src/gdevpdtt.c]

2006-02-05T14:25:24.143977Z leonardo

Fix  : Removing 'assert' from gxccman.c (continued).

DETAILS :

Add missing braces in the error code propagation introduced in rev. 6555.

EXPECTED DIFFERENCES :

None.

[src/zfont.c]

2006-02-04T03:56:37.709032Z Alex Cherepanov

Following FreeType 2 implementation, ignore incorrect SHC command.
Bug 688501

EXPECTED DIFFERENCES :
None

[src/ttinterp.c]

2006-02-04T00:23:59.520737Z Dan Coby

Fix for 688177 Eliminate the 64 bit pixel size limit.

DETAILS:

This change implements a scheme for compressing colorant values into
a gx_color_index.  For details of the compression scheme, see comments
before the devn_encode_compressed_color in src/gdevdevn.c.  With this
change, a maximum of 64 colorants are supported.

[src/gdevpsd.c src/gdevdflt.c src/gsccolor.h src/gdevtsep.c src/gdevdevn.c src/gsovrc.c doc/Devices.htm src/devs.mak src/gdevdevn.h]

2006-02-03T23:42:57.853736Z Ralph Giles

Correct a typo in the previous commit. jas_dump_image must be protected 
by #ifdef DEBUG to prevent unused variable warnings.

[src/sjpx.c]

2006-02-03T23:30:24.204851Z Ralph Giles

Code cleanup. Remove unused headers and report decoded image parameters 
through -Zw instead of with general or -Zs debug prints.

[src/sjpx.c src/sjbig2_luratech.c src/sjpx_luratech.c]

2006-02-03T15:45:13.779132Z leonardo

Fix  : Removing 'assert' from gxccman.c .

DETAILS :

Doing so by Stefan's and Raph's requests.
Changes to other modules propagate error codes.

EXPECTED DIFFERENCES :

None.

[src/isave.h src/gxfcache.h src/imain.c src/zvmem.c src/gsfont.c src/gxccman.c src/zfont.c src/gsfont.h src/gxccache.c src/isave.c]

2006-02-03T15:40:42.652558Z leonardo

Fix  : Removing 'assert' from gzspotan.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gzspotan.c]

2006-02-03T15:39:14.475213Z leonardo

Fix  : Removing 'assert' from siscale.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/siscale.c]

2006-02-03T15:37:47.547536Z leonardo

Fix  : Removing 'assert' from gxcht.c, gxdhtserial.c

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gxcht.c src/siinterp.c src/zcfont.c]

2006-02-03T15:35:25.138745Z leonardo

Fix  : Removing 'assert' from gxdhtserial.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gxdhtserial.c]

2006-02-03T15:34:27.957959Z leonardo

Fix  : Removing 'assert' from gsfunc0.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gsfunc0.c]

2006-02-03T15:33:21.731016Z leonardo

Fix  : Removing 'assert' from gsfcmap.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gsfcmap.c]

2006-02-03T15:32:12.047666Z leonardo

Fix  : Removing 'assert' from gdevpsft.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gdevpsft.c src/gdevpxut.c]

2006-02-03T13:13:55.222042Z leonardo

Fix  : Removing 'assert' from the FreeType FAPI bridge.

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/write_t1.c src/write_t2.c src/fapi_ft.c]

2006-02-03T12:52:24.873880Z leonardo

Fix  : Removing 'assert' from gdevpsf1.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gdevpsf1.c src/gdevpdfc.c src/gdevddrw.c]

2006-02-03T12:40:42.456435Z leonardo

Fix  : Removing 'assert' from gxpflat.c .

DETAILS :

Doing so by Stefan's and Raph's requests.
Changes to other modules propagate errors form gxpflat.c .

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxfilltr.h src/gzpath.h src/gxfill.c src/gxpflat.c src/gxfillsl.h]

2006-02-03T12:39:01.222510Z leonardo

Fix  : Removing 'assert' from gdewddrw.c, gxdtfill.h .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gxdtfill.h src/gdevddrw.c]

2006-02-03T12:35:10.242248Z leonardo

Fix  : Removing 'assert' from gxshade1.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gxfdrop.c]

2006-02-03T12:34:09.374887Z leonardo

Fix  : Removing 'assert' from gxshade1.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gxshade1.c]

2006-02-03T09:55:00.285432Z leonardo

Fix (font machinery) : Remove the dependency of the graphics library code on the PS interpreter code.

DETAILS :

This change is algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c src/gxfont42.h src/gstype42.c src/zfont42.c]

2006-02-02T22:22:38.927751Z leonardo

Fix (pdfwrite) : Devcice parameters placed in a wrong memory space.

DETAILS :

Bug 688531 "Segmentation fault running pdfwrite from 219-01.ps".

1. See comment in code.
2. Inserted gs_device_pdf::pdf_memory initialization into gdev_pdf_put_params,
The old code initializad in pdf_open, which is called after gdev_pdf_put_params.
We keep the old initialization because the PCL intrepreter may use it.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfp.c]

2006-02-02T22:21:42.095676Z leonardo

Unwinding the last patch due to wrong log message.

[src/gdevpdfp.c]

2006-02-02T22:12:18.484170Z leonardo

Fix  : Removing 'assert' from gxshade6.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfp.c]

2006-02-02T20:00:35.433481Z Ray Johnston

Use the TT font 'Full Name' (name id #4) if the PS name (id #6) is not present.
Related to Bug 688523 for customer 580.

[lib/gs_ttf.ps]

2006-02-02T12:14:33.590232Z leonardo

Fix : A wrong CTM in clist after a create compositor command.

DETAILS :

When a create compositor command is written to clist,
the imager state copy was not updated in the clist writer device,
causing a further CTM desyncronization.
It caused a wrong clist playback for the bands affected by the compositor.

Debugged with GS_Stroke_error.pdf, bugsample.pdf, Bug687724.pdf 
with the patch for 688518 applied.
Have no tests for observibg this bug without the patch for 688518.

EXPECTED DIFFERENCES :

None,

[src/gxclimag.c]

2006-02-02T00:46:28.135273Z Ralph Giles

Update the makefiles for the lwf_jp2 source v1.03 and ldf_jb2 source v2.04.

[src/ldf_jb2.mak src/lwf_jp2.mak]

2006-02-01T22:27:32.766702Z Ralph Giles

Include for reference a script to generate ldf_jb2.mak from the source 
directories, since the file list fluctuates somewhat from version to 
version.

[toolbin/gen_ldf_jb2.py]

2006-02-01T21:13:48.761011Z leonardo

Fix  : Removing 'assert' from gxshade6.c .

DETAILS :

Doing so by Stefan's and Raph's requests.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2006-02-01T20:56:40.633246Z Ray Johnston

Make the initial summary line say "ERROR" instead of "DIFFER" if
we get a non-zero exit code during pdfwrite checking.

[toolbin/tests/gstestutils.py]

2006-02-01T18:47:36.861536Z Ralph Giles

Raise the limit of the size of the complete regression beyond which it is not included to 300 KB.

[toolbin/tests/run_nightly]

2006-02-01T18:19:21.935317Z Ralph Giles

Remove an unnecessary terminal '\' in the definition of JAS_EXCF_ which causes problems with make 
in SGI Irix. Closes bug 688529.

[src/jasper.mak]

2006-02-01T10:09:25.288062Z leonardo

Fix (font machinery) : Dereferenced NULL in gx_add_char_bits.

DETAILS :

Bug 688527 "A crash (a null pointer deref) in gx_add_char_bits".

Type 3 fonts are not included into the dir->orig_fonts list.
So the list may be empty.

EXPECTED DIFFERENCES :

None.

[src/gxccman.c]

2006-01-30T21:41:02.804104Z Ralph Giles

Rename HAVE_LDF_JB2 and friend to USE_LDF_JB2 since this is a directive
more than just an availability test.

[src/zfjbig2.c src/zfjpx.c]

2006-01-30T10:49:52.354325Z Ralph Giles

Move the definition of the 3rd party library include paths for the jbig2 
and jpeg2k implementations back into gs.mak.

DETAILS:

Although it makes more sense to define these in the makefile for each 
library, they are also needed for building the calling code in the 
graphics library and interpreter. This causes a circular dependency
with tools such as nmake which perform variable resolution in a 
single-pass.

[src/gs.mak src/jbig2.mak src/ldf_jb2.mak src/lwf_jp2.mak src/jasper.mak]

2006-01-30T10:30:53.447513Z Ralph Giles

Split the JPXDecode filter build at the interpreter level so the correct 
include path is used.

[src/int.mak]

2006-01-30T09:20:34.569051Z Ralph Giles

Correct build path errors in the Luratech makefiles.

[src/ldf_jb2.mak src/lwf_jp2.mak]

2006-01-30T08:51:04.157759Z Ralph Giles

Add the new Luratech makefiles to the MSVC and MacOS CodeWarrior builds.

[src/macos-mcp.mak src/winlib.mak]

2006-01-30T08:47:30.163980Z Ralph Giles

Rename jbig2_luratech.mak to ldf_jb2.mak to make upstream conventions.

[src/Makefile.in src/ldf_jb2.mak src/jbig2_luratech.mak]

2006-01-30T07:55:21.176824Z Ralph Giles

Initial check in of a makefile for building the Luratech LWF JPEG 2000 
CSDK source as part of Ghostscript, and add it to the autoconf build. 
Also associated cleanup.

[src/lib.mak src/Makefile.in src/lwf_jp2.mak src/jbig2_luratech.mak]

2006-01-30T06:41:14.593860Z Ralph Giles

Add hooks for passing license keys to the Luratech jpeg2k and jbig2 
implementations, for those linking against CSDK builds that require
this.

[src/sjbig2_luratech.c src/sjpx_luratech.c]

2006-01-30T06:39:50.565912Z Ralph Giles

Include jbig2_luratech.mak in the autoconf build.

[src/Makefile.in]

2006-01-30T06:39:02.652740Z Ralph Giles

Switch the choice of JBIG2Decode and JPXDecode stream implementations
based on a preprocessor define.

[src/zfjbig2.c src/zfjpx.c]

2006-01-30T06:37:31.179455Z Ralph Giles

Minor build variable rearrangement and clean up related to the Luratech 
JBIG2 decoder integration.

[src/lib.mak src/gs.mak src/int.mak src/jbig2.mak src/jasper.mak]

2006-01-30T05:34:32.468930Z Ralph Giles

Initial check in of a makefile for building the Luratech LDF JBIG2 CSDK
source as part of Ghostscript.

[src/jbig2_luratech.mak]

2006-01-29T23:54:46.647329Z Ralph Giles

Fix a missing dependency in the new sjbig2 build rules.

[src/lib.mak]

2006-01-29T23:36:18.372226Z Ralph Giles

Update the autotools makefile for the jbig2/jpeg2k indirection changes.

[src/Makefile.in]

2006-01-29T23:31:07.833789Z Ralph Giles

Introduce a level of indirection so the builds for the two different 
jbig2 and jpeg2k implementations can coexist. Also, add jasper to the 
OS/2 and OpenVMS builds, and update the OpenVMS makefiles now that the 
third-party libraries are included with the source release.

[src/openvms.mak src/watcw32.mak src/macosx.mak src/dvx-gcc.mak src/jbig2.mak src/unixansi.mak src/msvclib.mak src/os2.mak src/openvms.mmk src/lib.mak src/ugcclib.mak src/gs.mak src/unix-gcc.mak src/msvc32.mak src/macos-mcp.mak src/wccommon.mak src/watclib.mak]

2006-01-29T21:58:57.475609Z Ralph Giles

Rename the jasper-oriented top-level makefile elements to the more
generic JPX.

[src/lib.mak src/gs.mak src/int.mak src/Makefile.in src/msvc32.mak src/macos-mcp.mak src/jasper.mak src/winlib.mak]

2006-01-29T21:04:26.485513Z leonardo

Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 6.

DETAILS :

This finally completes the fix for the bug 688513 "pdfwrite: redundant CharProcs elements.".
It repairs minor defects of last patches.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c src/gdevpdtf.c src/gdevpdti.c src/devs.mak src/gdevpdti.h]

2006-01-29T19:35:26.757129Z Ralph Giles

Improve the documentation for the CAPOPT unix makefile variable.

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

2006-01-29T18:06:11.349450Z leonardo

Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 5.

DETAILS :

This completes the fix for the bug 688513 "pdfwrite: redundant CharProcs elements.".

1. Moving char_name from the charproc structure to pdf_char_proc_ownership_t,
because charprocs with different glyph names may have same command stream.

2. pdf_is_charproc_compatible is changed to a weaker condition
to allow to merge char procs with different names.
However we prefer fonts with a compatible encoding, which are attached to same PS font, 
in order to prevent mixing glyphs from various fonts.

3. charproc_compatibility_data_t is defined to reduce the gx_device_pdf::find_resource_param bogus.

4. pdf_char_widths_from_charprocs is a new function for reconstructing
real_width when a PDF Type 3 font is attached to another PS font.
Due to historical reason, real_width is a property of the attachment,
rather in novadays it should be a property of PDF font.
It happens because a PDF font may migrate to another PS font due to charproc merging,
especially in case of glyph variations.

5. The condition for involving pdf_find_same_charproc has been changed 
in pdf_end_charproc_accum to a weaker one, to allow to merge with charprocs from other fonts.
With the old condition a charproc didn't merge when appears in a font at the first time,
so it never merged with ones from other fonts.

6. Added a marking of glyph names in pdf_char_proc_ownership_t for the garbager.

7. Now we mark glyph names for garbager for all simple fonts,
except synthesised bitmap fonts (which use char codes instead glyph names).
The old code did for non-bitmap Type 3 only, and theretore it can have an indeterminizm
with other simple font types.

8. Minor change to gsstruct.c :
Added gs_*_st_strings1_ptrs4 and moved gs_*_st_strings1_ptrs1 
for a better code grouping.

This change causes a minor dirrefernce in raster with Bug687660a.ps with pdfwrite at 72 dpi.
It happens because the space glyph appears same for two fonts, which form a single text,
so that the font change appears some earier. However it causes the representation
of a glyph position to change from an absolute coordinate (in user points) 
to the Tj offset operand (in the 1000-unit scale). 
It causes a 1 pixel noize (the glyph shift) due to a different rounding.

EXPECTED DIFFERENCES :

pdfwrite at 72 dpi :
Bug687660a.ps 

[src/gdevpdfx.h src/gdevpdtt.c src/gdevpdtf.c src/gsstruct.h src/gdevpdtw.c src/gdevpdti.c src/gdevpdtt.h src/devs.mak src/gdevpdti.h]

2006-01-29T17:48:58.910034Z leonardo

Fix (font machinery) : Inaccurate condition in zfont_mark_glyph_name.

DETAILS :

The old condition passes standard encoding indices as Postscript name indices.
It could cause a crash in the garbager.

EXPECTED DIFFERENCES :

None.

[src/int.mak src/zfont.c]

2006-01-29T08:08:11.685892Z Ralph Giles

Initial checkin of /JBIG2Decode filter support based on the
proprietary Luratech implementation.

[src/sjbig2_luratech.h src/lib.mak src/sjbig2_luratech.c]

2006-01-29T01:12:20.057028Z Ralph Giles

Initial checkin of /JPXDecode filter support based on the 
proprietary Luratech implementation.

This version uses the system malloc and only handles 8-bit-
per-component images without channel subsampling.

[src/lib.mak src/sjpx_luratech.h src/sjpx_luratech.c]

2006-01-29T01:04:43.551064Z Ralph Giles

Rearrange code for clarity.

[src/sjbig2.h]

2006-01-27T21:58:27.997608Z Ralph Giles

Make ps2epsi create a temporary file more securely in an owner-locked 
directory. Closes bug #687243.

[lib/ps2epsi]

2006-01-27T19:52:13.853680Z leonardo

Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 4.

DETAILS :

This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.".

This change moves char_code and the font reference from the charproc structure 
to pdf_char_proc_ownership_t.

The function pdf_is_same_charproc has been reorganized due to the data structure change,
and the condition become weaker - not accoutning character codes
and Postscript glyph id.

With this change pdf_end_charproc_accum performs an untrivial charproc substitution
with 238-01.ps due to a weaker condition for charproc equality
But we still have an example (t1.ps from the bug 238-01.ps),
which needs a further improvement.

Adding gx_dfevice_pdf::find_resource_param is bogus.
Would like to do without it, but don't want to enlarge the patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdtt.c src/gsstruct.h src/gdevpdfb.h src/gdevpdti.c]

2006-01-27T17:55:49.774445Z Ray Johnston

Handle indirect object reference for CIDSystemInfo element. Bug 688515
for customer 870.

[lib/pdf_font.ps]

2006-01-27T09:45:38.491381Z leonardo

Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 3.

DETAILS :

This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.".

This change is algorithmically equivalent.
It defines a new type pdf_char_proc_ownership_t for
representing a many-to-many correspondence
of charprocs to fonts. But this patch still keeps
the old many-to-one constraint to simplify the testing.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdti.c src/gdevpdtf.h]

2006-01-27T08:12:27.899649Z leonardo

Fix (pdfwrite) : Remove pdf_begin_char_proc_generic.

DETAILS :

This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.".

This change is algorithmically equivalent.
It inlines pdf_begin_char_proc_generic.
pdf_begin_char_proc_generic is an old attempt to factor out
a common portion of code for bitmap (synthesised) and non-bitmap fonts,
but that attempt appeared unuseful.

EXPECTED DIFFERENCES :

None.

[src/gdevpdti.c]

2006-01-26T13:18:07.717021Z leonardo

Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 2.

DETAILS :

This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.".

This change is algorithmically equivalent.
It drops last asserts and simplifies the code with them.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c]

2006-01-26T13:07:55.087988Z leonardo

Fix (pdfwrite) : Avoid the dependency of a charproc on char code, step 1.

DETAILS :

This is a preparation for the bug 688513 "pdfwrite: redundant CharProcs elements.".

This change is algorithmically equivalent.
It moves the Type 3 character code computation from pdf_text_set_cache
to a portion, which works before performing the interpreter callout
for executing a Postscript charproc. Doing so to exclude the necessity 
of storing the character code in pdf_char_proc_t.

We inserted additional asserts to define invariants explicitely.
We'll remove them after regression testing.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c src/gdevpdtt.h]

2006-01-26T10:29:36.328224Z leonardo

Fix (pdfwrite) : Prevent extra encoding elements (continued).

DETAILS :

Bug 687669 "pdfwrite : extra encoding elements with a Type 3 font".
Cleaning Cygwin/gcc warnings from the last patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c]

2006-01-26T10:21:40.117753Z leonardo

Fix (pdfwrite) : Prevent extra encoding elements.

DETAILS :

Bug 687669 "pdfwrite : extra encoding elements with a Type 3 font".

The old code created encoding elements for entire text
with no regard to font changes. Some fonts got extra encoding elements 
for glyphs, which were moved to another font.

1. Converting pdf_encode_string into pdf_encode_string_element
   with dropping the text characters cycle.

2. Call it in process_text_modify_width, process_text_return_width
   immediately before processing a character.

3. pdf_encode_process_string is renamed into pdf_process_string_aux
   (because now it is an auxiliary function for pdf_process_string).

4. Few function prototype changes done to pass necessary data
   to pdf_encode_string_element.

After this reorganization a part of scan_cmap_text
appars to duplicate a part of pdf_encode_string_element.
Delaying a further reorganization for better times. 

EXPECTED DIFFERENCES :

None.

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

2006-01-26T08:20:39.942266Z leonardo

Fix (pdfwrite) : Optimize cos_dict_put_copy.

DETAILS :

The old implementation produced a lot of garbage due to redundant 
adding same key-value pair to a cos_dict_t instance.
It happens because cos_dict_put_copy first creates a copy of the value in the heap.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c]

2006-01-25T23:06:08.925944Z Ralph Giles

Correct a syntax error.

[toolbin/tests/run_nightly]

2006-01-25T22:14:19.978978Z leonardo

pdfwrite : Implementing composite fonts with Type 3 descendents (continued).

DETAILS :

Fixing a heap damage bug in the last patch,
which appeared due to inaccurate commitment of a wrong file state.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c]

2006-01-25T21:51:22.137980Z leonardo

pdfwrite : Implementing composite fonts with Type 3 descendents.

DETAILS :

Bug 687875 "pdfwrite : Type 0 FMapType 9 font with a Type 3 descendent converts to bitmaps".
Bug 687298  "(pdfwrite) composite font with Type 3 descendent".

The old code converted such fonts into bitmap fonst.
The new code converts them into multiple Type 3 fonts ;

A. If a composite font uses a CMap mapping,
the Type 3 font descendent may use any CID from the CMap.
Therefore such single Type 3 font is being converted into
multiple Type 3 fonts, each of which is restricted
with 256 characters by the PDF specification.

B. If a composite font has multiple Type 3 descendents,
each descendent form a separate Type 3 font in the PDF output
(or multiple fonts if it falls into both cases (A) and (B)).

This is a case-driven implementation, which is done with adding special branches into 
scan_cmap_text and process_text_modify_width for handling the failed cases.
Other new cases (which we have no samples for) may may need further improvements.

EXPECTED DIFFERENCES :

pdfwrite :
020-01.ps
Bug687845.ps

[src/gdevpdfx.h src/gdevpdtc.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdti.c src/gdevpdtt.h]

2006-01-25T21:29:44.622210Z leonardo

Fix (pdfwrite) : Incorrect computation of a FMapType 9 text size.

DETAILS :

The old code didn't update pte->current_font before calling pdf_update_text_state,
and the matrix computation in scan_cmap_text was bug-to-bug compatible.

This is a preparation for fixing the bug 687875 
"pdfwrite : Type 0 FMapType 9 font with a Type 3 descendent converts to bitmaps".

EXPECTED DIFFERENCES :

None.

[src/gdevpdtc.c]

2006-01-25T19:42:55.998332Z leonardo

Fix : A minor modularity improvement.

DETAILS :

This change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/zchar.c]

2006-01-25T19:22:19.285423Z Ralph Giles

Remove the errpage.ps utility. It is not being used by developers and is no longer functional. 
Bug #688511.

[lib/errpage.ps]

2006-01-25T18:18:31.504275Z Ralph Giles

Include the complete list of regressions in the report if it is less than 40 KB.

[toolbin/tests/run_nightly]

2006-01-25T18:04:36.499424Z Ralph Giles

Improve error reporting.

[toolbin/tests/run_nightly]

2006-01-25T18:01:09.701817Z Ralph Giles

Add usage messages.

[toolbin/tests/make_two_versions toolbin/tests/make_two_pdfversions]

2006-01-25T04:50:25.532213Z Ray Johnston

Add required 'quit' execution to avoid prompt thus requiring a double 'quit'.
Bug 688497.

DETAILS:

This was inadvertently removed when I thought it was not needed and was a
result of a cut-and-paste mistake. This commit will now serve to document
that the extra line _is_ needed.

EXPECTED DIFFERENCES:

None.

[src/imain.c]

2006-01-23T20:25:12.430841Z Ralph Giles

Repeat the reference to autogen.sh in the Unix-specific build 
instructions. Bug #688504.

[doc/Make.htm]

2006-01-23T18:08:18.107243Z Ralph Giles

Use the local MAX() macro instead of the MSVC implicit max() in fuzzy.c 
for portability. Also, add parentheses to silence a GCC warning.

[toolbin/tests/fuzzy.c]

2006-01-23T17:39:54.710146Z Ralph Giles

Infix .pdf. in the output of make_two_pdfversions.

[toolbin/tests/make_two_pdfversions]

2006-01-23T13:29:30.215782Z leonardo

Fix (ps2write) : Incorrect xref offsets.

DETAILS :

Bug 688502 "Incorrect xref table in the PDF stream generated by ps2write".
The old code calculated offsets from the beginning of the PS file.
We generate xref to allow a verification with PDF viewers.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfu.c src/gdevpdfb.h]

2006-01-22T03:02:40.596096Z Alex Cherepanov

Add backward-compatible glyph names for new TTF glyphs. For instance,
/mu1 (micro symbol) is aliased to /mu (greek letter).
Bug 688265

EXPECTED DIFFERENCES :
None

[lib/gs_ttf.ps]

2006-01-21T17:32:17.337421Z Alex Cherepanov

Increase the halftone cache size to improve the performance of large
halftone cells.
Bug 687525

EXPECTED DIFFERENCES :
None


[src/gzht.h]

2006-01-20T08:20:17.716374Z leonardo

Fix : Unwinding the 6449 change (Fix detection of hexadecimal encoding in eexec portion of Type 1 fonts).

DETAILS :

The fix for the Bug 688385 caused a regression with fonttest.pdf.
Unwinding it now.

EXPECTED DIFFERENCES :

fonttest.pdf should restore.

[lib/pdf_font.ps]

2006-01-20T07:52:45.171824Z leonardo

Fix : Cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/gxi16bit.c src/gscdevn.h src/gxccman.c src/int.mak src/zfsample.c src/gxicolor.c src/gxclrast.c src/zcolor.c src/gxi12bit.c src/gdevp14.c]

2006-01-20T06:43:12.729752Z leonardo

Fix (pdfwrite, PDF/X) : Implement TrimBox, BleedBox and related Distiller parameters.

DETAILS :

Bug 688443 "TrimBox values should be customizable for PDF/X document".

Patch from Gunnar Ritter with minimal adoptation and a minimal testing.
We added sscanf to acquire TrimBox from Postscript.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm lib/gs_pdfwr.ps]

2006-01-20T06:38:30.009975Z leonardo

Fix (pdfwrite, PDF/X) : Implement TrimBox, BleedBox and related Distiller parameters, continued.

DETAILS :

Bug 688443 "TrimBox values should be customizable for PDF/X document".
Patch from Gunnar Ritter.


Adobe PDF Creation Settings, 7/27/05, p. 111:

[beg quote]
PDFXTrimBoxtoMediaBoxOffset

	Supported by: Distiller

	Type: array

	UI name: Set TrimBox to MediaBox with offsets (units)

	Default value: [0.00000 0.00000 0.00000 0.00000]

	If both the TrimBox and ArtBox entries are not specified
	in the page object, TrimBox is set to MediaBox with
	offsets. Offsets are specified as [left right top bottom].
	All numbers must be greater than or equal to 0.0. TrimBox
	offsets place TrimBox entirely inside MediaBox.

	NOTE:This setting is ignored if PDFXNoTrimBoxError is true.
[end quote]



EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c]

2006-01-19T18:51:22.949228Z Ray Johnston

Previous patch had matrix1 matrix2 operands exchanged so scaling by cmmatrix was
wrong. This now works for resolutions other than 72. Bug 688485 for customer 850.

[lib/pdf_draw.ps]

2006-01-19T12:08:23.013531Z leonardo

Fix (pdfwrite) : Don't embed unused fonts.

DETAILS :

Bug 688106 "Unused fonts embedded in PDF".
Bug 688380 "pdfwrite: Type 3 fonts with empty CharStrings".


1. Delay font object id assignation until it is used with synch_text_state.
2. Same for font descriptors.
3. Writing a stream resource list, skip ones with no id.
4. Writing font descriptors, skip ones with no id.
5. Same for font objects.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdts.c src/gdevpdtd.c src/gdevpdte.c src/gdevpdtf.c src/gdevpdfu.c src/gdevpdtw.c src/gdevpdtd.h src/gdevpdtf.h]

2006-01-19T00:21:28.720381Z Ralph Giles

Correct a typo in the usage.

[toolbin/tests/update_specific]

2006-01-19T00:18:05.626817Z Ralph Giles

Accept '-r ' as well as a date spec to the 
update_specific script. Bug 688498.

[toolbin/tests/update_specific]

2006-01-18T21:01:50.698782Z Alex Cherepanov

Print error messages, don't leave them on the stack.
Bug 688491

[lib/gs_ttf.ps]

2006-01-18T13:08:41.803688Z leonardo

Fix (pdfwrite, PDF/X) : Implement TrimBox, BleedBox and related Distiller parameters.

DETAILS :

Bug 688443 "TrimBox values should be customizable for PDF/X document".

Patch from Gunnar Ritter with minimal adoptation and a minimal testing.
We added sscanf to acquire TrimBox from Postscript.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfp.c src/gdevpdfb.h]

2006-01-18T05:10:22.427953Z Ralph Giles

Apply assert patch for CMYK JPEG 2000 images from bug 688142.

[jasper/src/libjasper/jpc/jpc_dec.c]

2006-01-17T17:56:36.138363Z Ray Johnston

Apply a SubFileDecode filter to streams if the Length is valid. This prevents
reading past the end of data for filters that are not terminated, expecting
the PDF Length or 'endstream' to terminate the data. Bug 687435 for customers
780 and 870. Thanks to Alex Cherepanov for this patch.

DETAILS:
Since the Length on some broken PDF's is wrong (a warning will be issued),
this patch will not fix the case where the Length is wrong and the stream
is not terminated.

EXPECTED DIFFERENCES:

None. (according to Alex).


[lib/pdf_base.ps]

2006-01-17T13:43:24.915413Z leonardo

Fix (pdfwrite) : Loss of graphics with GraphicsAlphaBits > 1.

DETAILS :

Bug 688417 "Setting -dGraphicsAlphaBits when using -sDEVICE=pdfwrite causes loss of graphics".

1. Propagate error codes from psdf_get_bits through alpha buffer device methods.
2. Print error message in psdf_get_bits if GraphicsAlphaBits > 1.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdu.c src/gdevabuf.c src/gspaint.c]

2006-01-17T08:37:48.515251Z leonardo

Fix (type 1 interpreter) : c1_hsbw of the main subglyph was replaced with one from the glyph.

DETAILS :

Bug 688453 "gs8.53 renders certain fonts incorrectly".

EXPECTED DIFFERENCES :

normal : Bug687489.ps

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

2006-01-17T05:13:50.629958Z leonardo

Fix (type 1 interpreter) : Improve the mlodularity about seac data.

DETAILS :

This change is algorithmically equivalent.
It is a praparation for bug 688453.

1. seac_flag is moved from Type 1 hinter (gxhintn.h) to Type 1 interpreter (gstype1.h). 
2. Type 2 interpreter (gstype2.c) appears not depending on seac_flag.

EXPECTED DIFFERENCES :

None.

[src/gstype1.c src/gstype2.c src/gxhintn.c src/gxtype1.c src/gxhintn.h src/gxtype1.h]

2006-01-17T00:26:20.734768Z Ralph Giles

Use an explicit target for ps2write.dev, depending on pdfwrite.dev.

DETAILS:
 
Previously, the pdfwrite.dev target just created a dummy ps2write.dev
file without all the dependencies, since ps2write is just an extension
of pdfwrite and depends on much of the same source.

However, this caused problems with parallel builds, and failed badly if 
a user requested ps2write without pdfwrite in the top-level makefile.

[src/devs.mak]

2006-01-16T23:30:44.016752Z Ray Johnston

A better approach to avoid having uninstallpagedevice free a device that needs
closing. Bug 688494. Thanks to leo for the suggestion.

DETAILS:

Increment the rc_assign prior to the .uninstallpagedevice to insure that the
device is still around afterwards so we can call gs_closedevice on it. Many
devices don't need the closedevice, but some might.

[src/imain.c]

2006-01-16T19:08:58.896938Z Ralph Giles

Remove gsmalloc.h from source files that no longer use gs_malloc() or 
gs_memory_default.

[src/lib.mak src/zfdctd.c src/zfdcte.c src/int.mak src/sdctc.c src/sdctd.c src/sdcte.c src/szlibc.c src/szlibd.c src/szlibe.c]

2006-01-16T17:25:29.114707Z Ray Johnston

Make sure that the final gs_closedevice isn't called on a device that has been
freed during the final .uninstallpagedevice. Bug 688494.

DETAILS:

The overprint device or other compositors can (under some circumstances) have
a reference count of 1 when the gs_lib_finit is called, which means that the
'nulldevice' operator executed by the .uninstallpagedevice will free the
compositor when the rc_assign to the graphics state is performed.

To avoid an operation on a pointer to freed memory, don't attempt to close
the device if the ref_count prior to the unistallpagedevice was 1.

EXPECTED DIFFERENCES:

None.

[src/imain.c]

2006-01-16T14:06:57.132584Z leonardo

Fix (pdfx) : Registered printing conditions don't need an ICC profile.

DETAILS :

Bug 688476 "PDF/X-3 without ICC profile".

We could got more knowledge from http://www.color.org/IPA_2003-11_PDFX.pdf .
The main one is the RegistryName key, which we didn't see before. 

Rather PDFX_def.ps becomes complicated, currently we don't try to
simplify the user interface because we've got insufficient
information about user requirements to it.

EXPECTED DIFFERENCES :

None.

[lib/PDFX_def.ps doc/Ps2pdf.htm]

2006-01-16T11:48:41.730324Z leonardo

Fix (type 1 interpreter) : ce1_setcurrentpoint was wrong in a subglyph.

DETAILS :

Bug 688481 "wrong rendering of Type 1 font".

1. ce1_setcurrentpoint didn't account the position of a subglyph in the glyph.
   The bug was contributed with attaching the new Type 1 hinter
   (gstype1.c rev. 1.23, 1.13).
2. (minor change) A wrong condition for opening a visual trace in gxhintn.c . 

EXPECTED DIFFERENCES :

None.

[src/gstype1.c src/gxhintn.c]

2006-01-16T05:44:16.806614Z Ray Johnston

Update the PDF text matrix basis (TextSaveMatrix) when a 'cm' occurs within a
BT/ET section. Bug 688485 for customer #850.

DETAILS:

Apparently this is rare -- none of the previous regression tests had this case
(a 'cm' inside a BT/ET section). The 'missing' Arabic text was actually outside
the clipping path, so nothing was painted.

EXPECTED DIFFERENCES:

None. I ran the PDF subset of the regression suite and none of the files had
this.

[lib/pdf_draw.ps]

2006-01-16T05:22:18.914647Z leonardo

pdfwrite : Implementing DeviceN attributes, part 1.

DETAILS :

Bug 688406 "pdfwrite : wrong overprint color from Altona_Visual_1v2a_x3.pdf".

This is a partial implementation for DeviceN attributes in pdfwrite.
It is restricted with information, which the graphics library currently provides.
For a complete implementation need a complete fix for Bug 688413.

1. Added a writing of attributes Colorants in gdevpdfc.c .
2. Don't write a resource list for resourceOther, because they are not real PDF resources.

EXPECTED DIFFERENCES :

pdfwrite Bug687660a.ps 

[src/gdevpdfc.c src/gdevpdfu.c src/devs.mak]

2006-01-15T13:42:29.836501Z leonardo

Use a floating point representation for a huge Type 3 text width.

DETAILS :

Bug 687822 "/limitcheck in --setcharwidth--".

We guess the test document uses huge characters for metric computations
rather than for a real rendering.

When a text has a big width (and therefore it is not cached),
we use a new field gs_show_enum::wxy_float instead wxy,
because the latter overflows.
We implement it for Type 3 only due to no other test cases.

EXPECTED DIFFERENCES :

None.

[src/gxchar.c src/gxchar.h]

2006-01-13T22:09:55.060982Z stefan

dprintf format string repair.

[src/zfcid0.c]

2006-01-13T21:59:13.702725Z stefan

Added printf format string argument checking under gcc to std.h

Corrected or commented existing errors.

NB: gx_color_index maybe 4 or 8 giving interesting results to printf
that choose to do:  "color is %lx", color  


[src/gdevxcmp.c src/gxi16bit.c src/std.h src/zfcid0.c src/gdevpsf2.c src/gsfcmap1.c src/gsmemory.c src/gxpflat.c src/gxicolor.c src/gxi12bit.c src/gdevp14.c src/stream.c]

2006-01-13T20:56:57.627440Z leonardo

Fix (pdfwrite) : Type 3 font indeterminizm.

DETAILS :

Bug 688379 pdfwrite: "an indeterministic behavior with Bug687660a.ps" from Comment #21. 

During a garbage collection Type 3 font glyph names were not marked.
Therefore they could be collected and later get different name indices.
Several fonts could be gererated from a single Type 3 font.

EXPECTED DIFFERENCES :

pdfwrite Bug687660a.ps 

[src/gdevpdtt.c src/gdevpdtf.c src/gdevpdtf.h]

2006-01-13T19:19:26.202800Z Ray Johnston

Minor cleanup to remove a line that was left in from a cut-and-paste when this
call was added. Discovered during bug 688487.

[src/imain.c]

2006-01-13T08:29:47.649971Z Dan Coby

Fix for 688487 A crash from garbage collector pointer validation.
This is an addition to 688413 DeviceN under implements 'attributes'

DETAILS:

The GC validation problem was caused by the DeviceN attribute list elements
not being freed.  These list elements contained Separation color spaces.
The color spaces contained a 'map' element which was being freed.  The
GC validation logic was detecting the that the color spaces were pointing
to a freed item.

The fix consists of adding a reference count to the gs_device_n_attributes
structure plus the appropriate logic for incrementing/decrementing.

The name of the DeviceN attributes list was changed to colorants per
Igor's request.

[src/gscspace.h src/gxcdevn.h src/gscdevn.c]

2006-01-12T12:02:56.192425Z Alex Cherepanov

Fix an out of range subscript in Gimp (XCF) export device and a few minor
issues identified by Intel C++ .
Bug 687292

[src/imain.c src/gxfcopy.c src/gdevxcf.c src/zcolor.c]

2006-01-12T11:43:04.185594Z Alex Cherepanov

Fix detection of hexadecimal encoding in eexec portion of Type 1 fonts.
Bug 688385

DETAILS:

The old code that detected hexadecimal encoding appeared to do the reverse.
It worked because PDF is defined to use binary encoding only in the eexec
portion of the font and conversion to hex won't spoil the binary stream.

However, conversion to hex breaks hexadecimal streams. The proposed patch
adds more precise checking for the hexadecimal encoding similar to
the checking algorithm in the eexec operator.

[lib/pdf_font.ps]

2006-01-12T07:10:34.762843Z Ralph Giles

Virtualize the global ctx pointer so it can be replaced by different 
implementations at the stream level.

[src/zfjbig2.c src/sjbig2.c src/sjbig2.h]

2006-01-12T07:09:08.418655Z Ralph Giles

Remove an unused funtion. This was used but the now removed ARCH_CACHE_* 
logic.

[src/genarch.c]

2006-01-12T00:42:19.645669Z Dan Coby

Fix for 688488 Since Jan 7 2006, many regression files get 'typecheck in --execfunction--'

DETAILS:

The commit for 688413 introduced a new problem.  If the attributes dictionary contains a reference to a separation color space which had already been resolved, then a conflict occured with the processing of the alternate tint transform function.  This patch eliminates the conflict by creating a new copy of the DeviceN color space array and the attributes array when the color space is resolved.

[lib/pdf_draw.ps]

2006-01-11T13:20:01.631161Z Alex Cherepanov

Move back-up CharString construction procedures (RD, ND, ...) to a special
dictionary and put it below userdict to avoid warnings when the font
defines them in userdict.
Bug 688464


DETAILS:

Some broken fonts forget to define CharString construction procedures because
non-PostScript font rasterizers don't detect this error. Ghostscript has
a back-up definitions of the procedures that do their job and issue a warning.

Other correct but old-fashioned fonts define CharString construction procedures
in userdict. We had the back-up procedures defined above userdict, where they
preempted the userdict definitions and issued a bogus warning. This patch moves
the definitions below userdict.

[lib/pdf_font.ps]

2006-01-06T23:27:45.066243Z Ralph Giles

Update the regression code to use the new SVN repository. This also includes some 
other minor fixes. The new version of update_specific hasn't been tested.

[toolbin/tests/run_nightly toolbin/tests/testing.cfg.example toolbin/tests/update_specific toolbin/tests/gstestgs.py]

2006-01-06T19:10:31.983184Z Dan Coby

Remove "#if 1" that crept into the last commit.

[src/gscdevn.c]

2006-01-06T19:08:06.688571Z Ralph Giles

Remove the lowercase versions of some of the less common arch.h #defines in favor 
of uppercase versions as per C-style.

[src/gxobj.h src/gxcmap.c src/gxbitmap.h src/gxfarith.h src/siscale.c src/imainarg.c src/gdevdbit.c src/iref.h src/gxclutil.c src/std.h src/gsmalloc.c src/zusparam.c src/gxfixed.h src/gxbitops.h src/ipacked.h src/gxbcache.h src/ibnum.c]

2006-01-06T19:01:15.497779Z Ralph Giles

Remove the check for files not listed in CVS.

DETAILS:

This no longer works since we've switched to subversion for version control. The 
check could of course be ported, but the object was the detect files that had 
either accidentally been left out of a commit, or files that might slip into a
release unintentionally. The 'svn status' command is an effective and more 
commonly used check for the former, and our policy of building releases from
a clean export of the tag eliminates the other.

[toolbin/tests/check_dirs.py]

2006-01-06T18:56:33.954639Z Dan Coby

Partial fix for 688413 DeviceN under implements 'attributes'

DETAILS:

This patch implements the passing of DeviceN attribute color spaces into the graphics library.  The patch consists of the following pieces:

1. In lib/gs_devn.ps:  Attribute color spaces are processed like another color space and then .attachattributecolorspace is called to associate the attribute color space with a DeviceN color space.

2. In lib/pdf_draw.ps: Logic wa added to resolve references to attribute color spaces in PDF DeviceN color spaces.

3. In src/zcsdevn.c and src/gscdevn.c: The implementation of the .attachattributecolorspace is done.

4. Header files were modified to add the attribute color space structures and fields.

5. GC enumeration and relocation logic was added.

[src/zcsdevn.c src/gscspace.h src/gxcdevn.h lib/gs_devn.ps lib/pdf_draw.ps src/gscdevn.c]

2006-01-06T18:54:32.653218Z Ralph Giles

Add the PDFA_def prefix file to the file documentation.

[doc/Psfiles.htm]

2006-01-06T12:27:00.677606Z Alex Cherepanov

Implementation of the remaining TN 5044 operators,
Bug 688268

[lib/gs_lev2.ps]

2006-01-04T22:01:24.416332Z Ralph Giles

Remove the unused ARCH_CACHE defines and the code in genarch.c that 
creates them. Bug 688469.

DETAILS:

The cache detection was both slow and unreliable, especially given the 
spread of cpu and memory speeds now available. Furthermore, no use was
being made of these attempted cache size measurements. We have therefore
removed them as a simplification.

Choosing the blocksize of large inner loops can indeed be a good 
technique, but this is a case of premature optimization. Moreover,
it's usually better to test at run time with the actual algorithm
in question than try to work from a general number.

[src/std.h doc/Make.htm src/genarch.c]

2005-12-30T20:35:22.773764Z Ralph Giles

Ignore generated files in the jasper subtree.

[jasper jasper/src/libjasper/pgx jasper/src/libjasper jasper/src/libjasper/include/jasper /trunk/gs jasper/src/libjasper/base jasper/src/libjasper/mif jasper/src/libjasper/jpc jasper/src/libjasper/bmp jasper/src/libjasper/jpg jasper/src/appl jasper/src/libjasper/include jasper/src jasper/src/libjasper/ras jasper/src/libjasper/pnm jasper/src/libjasper/jp2 jasper/src/msvc]

2005-12-29T01:11:43.615008Z Alex Cherepanov

Clean-up temporary parameter files created by batch files.
Bug 688471

[lib/ps2ps2.bat lib/ps2ps.bat]

2005-12-28T20:48:32.669903Z Ralph Giles

Apply Raph's patch to handle broken channel specifications.

[jpeg/jdmarker.c]

2005-12-28T20:46:39.574800Z Ralph Giles

Copy the IJG jpeg-6b source from /tags/.

[jpeg]

2005-12-28T20:45:24.158383Z Ralph Giles

Remove our local jpeg in favor of one copied from tags.

[jpeg]

2005-12-28T20:39:05.309532Z Ralph Giles

Copy in tagged zlib and libpng source.

[libpng zlib]

2005-12-28T20:37:11.865745Z Ralph Giles

Remove local copies of zlib and libpng in favor of ones copied from /tags/

[libpng zlib]

2005-12-28T20:11:05.093674Z Ralph Giles

Convert .cvsignore settings.

[src/.cvsignore ijs src .cvsignore contrib/pscolor/.cvsignore /trunk/gs contrib/pscolor ijs/.cvsignore]

2005-12-28T19:56:24.767413Z Ralph Giles

Enable Id keyword substitution on appropriate files.

[src/iplugin.h src/gdevm48.c src/gsgdata.h lib/pfbtopfa.ps src/configure.ac src/gdevmsxf.c src/gsropt.h src/gdevmem.c man/ps2epsi.1 src/gdevmem.h src/zvmem.c src/write_t1.c jasper/src/libjasper/base/jas_seq.c src/rm.cmd src/gstrap.c src/icstate.h src/gxxfont.h src/write_t1.h lib/gs_epsf.ps src/gstrap.h src/gzacpath.h src/gscssub.c src/gdevcgmx.h src/gp_msdos.c src/gdevlbp8.c src/gdevpdfx.h src/gdevdm24.c src/zcsdevn.c src/dwsetup.rc src/gxdhtserial.c src/icie.h src/zcontext.c src/gscssub.h zlib/contrib/ada/buffer_demo.adb jasper/src/libjasper/include/jasper/jas_malloc.h src/gdevpdts.c src/ccfont.h src/gxdither.h src/gxdhtserial.h src/cp.cmd lib/gslp.ps src/gdevpdts.h src/macsystypes.h src/gxclutil.c lib/font2c.cmd src/gxcomp.h lib/level1.ps src/echogs.c lib/lpgs.bat src/oper.h doc/History7.htm src/zchar42.c toolbin/tests/cmpi.py lib/gs_lev2.ps src/gscscie.c src/gsfont0.c src/zchar42.h src/icfontab.c src/zht1.c toolbin/gssubst src/zpcolor.c src/zdevcal.c src/gdevpdfi.c src/zcssepr.c doc/Install.htm src/ifont42.h src/sdcparam.c lib/markhint.ps zlib/uncompr.c src/bcwin32.mak doc/Issues.htm src/sdcparam.h jasper/src/libjasper/jpc/jpc_math.c src/gdevpdtd.c src/gdevokii.c src/zcfont.c src/gdevprna.c src/gdevpdtd.h toolbin/makefonts.tcl jasper/src/libjasper/include/jasper/jas_cm.h src/zcolor.c src/gxhtbit.c src/oparc.h jasper/src/libjasper/jp2/jp2_cod.c src/sfxfd.c src/gdevprna.h lib/caption.ps jasper/src/libjasper/jp2/jp2_cod.h src/gp_mspol.c src/dwuninst.h src/gpmisc.c src/ttconfig.h src/ireclaim.c toolbin/pdfinflt.ps src/gxstdio.h src/gsmemraw.h src/gpmisc.h lib/gs_cidcm.ps toolbin/split_changelog.py doc/Lib.htm src/gxline.h lib/bdftops.cmd lib/FAPIconfig doc/Ps-style.htm man/gslp.1 toolbin/tests/check_docrefs.py jbig2dec/Makefile.am lib/traceimg.ps src/ijs.mak src/gserver.c src/gp_psync.c toolbin/tests/update_baseline man/de/pdfopt.1 src/gp_os2pr.c src/gsiomacres.c src/gdevpsd.c src/gxclfile.c man/de/wftopfa.1 src/gxfilltr.h man/de/ps2ps.1 src/gdebug.h lib/viewpcx.ps toolbin/tests/gsconf.py src/zfile.c jasper/src/libjasper/jpc/jpc_bs.c src/gdev4693.c src/gxchar.c lib/gs_indxd.ps jasper/src/libjasper/jpc/jpc_bs.h src/gxchar.h src/gsfcid2.c src/gsline.c src/gsalloc.c doc/Helpers.htm lib/dumphint src/gsline.h src/gsalloc.h src/gsiparm2.h src/gxfont0.h lib/gs_ksb_e.ps lib/ps2pdf.cmd src/gdevmeds.c src/gs16spl.c src/gdev4081.c src/gdevmeds.h src/srdline.h src/dpmain.c src/wctail.mak src/winlib.mak jasper/src/libjasper/jp2/jp2_enc.c doc/History8.htm src/szlibx.h src/zmath.c jbig2dec/jbig2_image_png.c toolbin/tests/make_two_pdfversions src/gdevpdfk.c lib/jispaper.ps src/gxfont0c.h src/iimage.h jasper/src/libjasper/jp2/jp2_dec.c src/gxpcolor.h src/gdevpdtf.c doc/Xfonts.htm src/gp_unifn.c src/gdevddrw.c src/gschar.c src/gdevpdtf.h src/gdevddrw.h src/gdevpsfm.c src/sarc4.c lib/traceop.ps src/gschar.h src/gdevpsu.c src/gsptype2.c src/zfcid1.c src/sarc4.h src/gstrans.c src/gdevpsu.h src/gsptype2.h src/catmake zlib/crc32.c src/gstrans.h src/iestack.h src/gxbitfmt.h src/gxclio.h lib/pdf_rbld.ps src/gstype2.c src/itoken.h lib/pdf2ps.bat lib/gs_dscp.ps src/inameidx.h src/gxhldevc.c lib/gs_devn.ps zlib/contrib/iostream2/zstream.h src/gxhldevc.h lib/pdfopt.ps src/sfxboth.c src/gp_macio.c src/wrfont.c src/sbhc.c lib/viewps2a.ps src/gsdps.c src/zfont1.c src/wrfont.h src/sbhc.h doc/Maintain.htm jbig2dec/jbig2_priv.h man/de/gsnd.1 lib/gs_dbt_e.ps src/gsdps.h src/spngp.c src/ghost.h jbig2dec/jbig2dec.c toolbin/tests/check_all.py doc/gs.css toolbin/tests/gsutil.py src/gxalloc.h src/gsmatrix.c src/gxsamplp.h lib/cidfmap src/istruct.h src/gdevpsf.h src/gsmatrix.h src/zdouble.c src/dwreg.c jasper/src/libjasper/include/jasper/jas_getopt.h src/spdiff.c src/gxfcmap1.h lib/pf2afm.cmd jasper/src/libjasper/base/jas_string.c src/dwreg.h src/scommon.h src/gdevpdtw.c src/gdevpdtw.h src/unixhead.mak src/gsiparm4.h lib/ps2ascii.ps src/gxiscale.c lib/gs_ce_e.ps src/gxbcache.c src/dwinst.cpp src/gxbcache.h src/ibnum.c lib/gs_type1.ps lib/gsnup.ps src/gdevxcmp.c src/ibnum.h src/estack.h src/scfe.c ijs/configure.ac lib/eps2eps.cmd src/gscompt.h src/gsdcolor.h src/gxdtfill.h src/gdevxcmp.h lib/stocht.ps src/gdevlj56.c src/gdevhl7x.c src/gdevos2p.c src/gsparam.c src/gsbitops.c src/gdevmr8n.c lib/gs_pdfwr.ps src/gxftype.h src/gp_unix_cache.c src/gdevpdfm.c src/imain.c src/gsparam.h src/gsbitops.h src/zfilter2.c src/imain.h src/ifilter.h lib/gs_ccfnt.ps jasper/src/libjasper/base/jas_cm.c src/zfont42.c lib/Fontmap.ATB doc/Language.htm jasper/src/libjasper/pnm/pnm_cod.c src/smd5.c src/spdiffx.h jasper/src/libjasper/pnm/pnm_cod.h src/smd5.h src/gs16spl.rc src/gxhttype.h lib/Fontmap.ATM src/gspenum.h src/sjpx.c lib/unix-lpr.sh lib/ps2epsi.bat lib/decrypt.ps src/gxipixel.c src/sjpx.h src/sfilter2.c src/gdevsnfb.c src/gdevifno.c src/gscrd.c src/gxmclip.c src/mv.cmd src/gxcie.h src/gsio.h lib/gs_cspace.ps src/gscrd.h src/gxmclip.h toolbin/suite.tcl lib/pftogsf.bat lib/uninfo.ps src/unix-end.mak jbig2dec/Makefile.in src/inobtokn.c toolbin/afmutil.py src/gp_mslib.c lib/Fontmap.Sol zlib/minigzip.c src/gsiodev.c src/gdevescp.c src/igc.c src/msvc32.mak src/gdevmacxf.c src/gsfunc0.c jbig2dec/jbig2_arith.c src/igc.h src/jerror_.h src/zdosio.c toolbin/tests/testdiff src/gsfunc0.h jbig2dec/jbig2_arith.h toolbin/jpxtopdf.c src/gdevpsf1.c src/gdevpsds.c src/siscale.c src/gdevpsds.h lib/gs_img.ps src/gsdsrc.c src/gxfill.c src/ilevel.h src/siscale.h src/gxclread.c src/gsdsrc.h src/gxfill.h toolbin/tests/gstestgs.py lib/pdf2ps src/iostack.h lib/gs_kanji.ps lib/stcolor.ps src/gsdll.c src/gdevmr1.c lib/Fontmap.Ult src/gspath1.c jasper/src/libjasper/pnm/pnm_enc.c doc/Details.htm src/gsdll.h src/sjpegc.c src/zfdcte.c lib/ps2ascii.bat src/zfcmap.c doc/Readme.htm src/gdevfax.c src/gdevbit.c toolbin/tests/check_source.py src/gsequivc.c src/gsdevice.c src/gp_wsync.c src/gdevfax.h src/gsequivc.h src/gsdll32.rc src/gxclmem.c src/gshtx.c src/gscparam.c src/gsdevice.h src/gdevsj48.c src/gdevpdfo.c jasper/src/libjasper/pnm/pnm_dec.c src/gsbittab.c src/gxclmem.h src/macos_carbon_pre.h src/sdctd.c src/gsmemory.c src/gshtx.h src/gdevpdfo.h src/gsbittab.h src/ifwpred.h src/gdevcdj.c doc/Devices.htm src/gsmemory.h man/de/ps2ascii.1 src/files.h src/gxband.h src/scfdgen.c src/ttinterp.c src/ttcalc.c src/gsbitmap.h src/gdevtknk.c toolbin/genfontmap.ps src/idsdata.h src/ttinterp.h src/ttcalc.h src/gxfont42.h src/scf.h src/gsroptab.c lib/gs_fntem.ps src/gxidata.c src/inames.h src/gsistate.c src/gdevm1.c src/os2.mak src/gscolor2.c lib/gs_cidfm.ps src/gzline.h src/gscolor2.h lib/bdftops src/gsmalloc.c src/ttfmain.c lib/errpage.ps src/ivmem2.h src/gsmalloc.h src/gscindex.h src/gxiodev.h toolbin/makewin.tcl src/gp_macpoll.c src/dwmain.c src/gdevpcfb.c jasper/src/libjasper/bmp/bmp_cod.c src/gdevvec.c src/dwmain.h src/gdevpcfb.h jasper/src/libjasper/bmp/bmp_cod.h lib/gs_statd.ps src/gdevvec.h src/ostack.h src/gsrect.h jasper/src/libjasper/jpc/jpc_qmfb.c src/sdeparam.c src/idosave.h src/gdevvglb.c src/gdevimgn.c src/ifrpred.h jasper/src/libjasper/jpc/jpc_qmfb.h lib/impath.ps src/gsmdebug.h zlib/contrib/ada/zlib-thin.adb src/gsovrc.c src/gxshade1.c lib/ps2ps src/gdevm32.c jbig2dec/jbig2_symbol_dict.c src/gsovrc.h src/scfx.h src/all-arch.mak lib/gs_init.ps jbig2dec/jbig2_symbol_dict.h src/gsparams.c src/bfont.h src/idparam.c src/gdevbjcl.c src/gdevpsdu.c src/dvx-gcc.mak src/gsparams.h src/idparam.h src/gp_mswin.c src/gdevdsp2.h src/gxblend.c zlib/contrib/ada/zlib-thin.ads src/gdevbjcl.h src/gp_mswin.h src/gxblend.h src/gp_os2.c src/zcolor1.c zlib/trees.c lib/ps2ps2.bat src/math_.h src/gp_os2.h lib/gs_resmp.ps src/gdevstc.c lib/printafm.ps src/gxfunc.h jbig2dec/jbig2_segment.c src/macos-fw.mak src/ialloc.c src/gdevstc.h src/ialloc.h jasper/src/libjasper/jpc/jpc_mqcod.c src/gserrors.h src/sjpege.c jasper/src/libjasper/jpc/jpc_mqcod.h man/de/pdf2dsc.1 zlib/ChangeLog src/gxsample.c src/gxfarith.h src/dxmainc.c src/gdevbmp.c src/gxsample.h src/gserror.h src/gdevbmp.h src/gdevsppr.c src/igcstr.c src/gdevn533.c lib/pfbtopfa src/idebug.c src/igcstr.h src/rm.bat src/idebug.h toolbin/tests/run_regression src/gsht.c lib/gs_lgx_e.ps src/ifont2.h src/gdevpsdf.h src/gdevm16.c src/gsht.h src/scantab.c src/gxfapi.c src/zfilter.c jasper/src/libjasper/bmp/bmp_enc.c src/gstype42.c src/gxfapi.h src/iutilasm.asm src/gsfunc.c src/cp.bat src/sbcp.c jasper/src/libjasper/base/jas_image.c src/iref.h jbig2dec/jbig2_mmr.c src/gsfunc.h toolbin/encs2c.ps src/sbcp.h zlib/zconf.h lib/font2c.bat jbig2dec/jbig2_mmr.h src/gdevtrac.c src/gp_ntfs.c src/libpng.mak zlib/contrib/ada/zlib.adb src/gdevatx.c lib/docie.ps src/zfproc.c src/gs_dll_call.h src/dmmain.c lib/acctest.ps jasper/src/libjasper/bmp/bmp_dec.c src/istream.h doc/Ps2epsi.htm src/gs.c src/zdevice2.c jasper/src/libjasper/include/jasper/jas_types.h src/iscannum.c src/sjbig2.c src/gdevpdfb.c src/iscannum.h src/gscrdp.c src/gspmdrv.c zlib/contrib/ada/zlib.ads src/dmmain.r src/sjbig2.h toolbin/tests/gscheck_all.py src/gdevpdfb.h src/gsfemu.c src/inamestr.h src/gxclrast.c src/gdevxres.c src/gscrdp.h src/gspmdrv.h src/zfile1.c src/zimage3.c src/istkparm.h src/gdevo182.c src/zcspixel.c src/zarith.c src/gximage1.c lib/xlatmap src/msvctail.mak src/gsfunc4.c src/isdata.h src/gxclpath.c jasper/src/libjasper/jpc/jpc_mqenc.c jasper/src/libjasper/base/jas_malloc.c src/gsfunc4.h src/gxcmap.c src/gxclpath.h jasper/src/libjasper/jpc/jpc_mqenc.h src/icsmap.h src/gxcmap.h src/gpgetenv.h src/zpath.c src/ttload.c src/gsnorop.c src/gdevmrop.h src/gxfillsl.h src/zcolor3.c src/ttload.h zlib/contrib/ada/mtest.adb src/tttype.h src/gxcpath.c jasper/src/libjasper/jpc/jpc_mqdec.c doc/Unix-lpr.htm src/gxcpath.h lib/bdftops.bat jasper/src/libjasper/jpc/jpc_mqdec.h src/gxp1impl.h src/gdevlxm.c man/ps2ps.1 lib/Fontmap.GS src/rinkj/rinkj-epson870.c jbig2dec/jbig2_generic.c lib/eps2eps src/rinkj/rinkj-epson870.h jbig2dec/jbig2_generic.h jasper/src/libjasper/jpc/jpc_cod.h jbig2dec/jbig2_image.c lib/gs_ciecs3.ps src/gxgetbit.h src/gdevabuf.c doc/Source.htm src/md5.c jbig2dec/jbig2_image.h src/gp_mac.c src/gdevsgi.c jasper/src/libjasper/jpg/jpg_cod.h src/zcie.c src/md5.h src/gdevsco.c src/stream.c src/gp_mac.h lib/pdf_main.ps src/gdevsgi.h src/gdevdflt.c src/stream.h src/gsdpnext.h src/gdev8510.c lib/pdfwrite.ps src/gxstroke.c src/gdevpxut.c src/zmisc2.c src/zfunc3.c src/ttmisc.h src/iparam.c toolbin/tests/dump_testdb src/zrelbit.c src/gdevpxut.h src/gxclist.c src/gdevxini.c src/iparam.h lib/printafm Resource/ColorSpace/DefaultCMYK src/gxclist.h src/jbig2.mak src/gdevpsfu.c src/gdevlp8k.c jbig2dec/jbig2_arith_iaid.c man/font2c.1 doc/Htmstyle.htm src/gdevpdt.c lib/gsnd.bat src/ttfmemd.c lib/ps2pdf.bat jbig2dec/jbig2_arith_iaid.h src/gdevpdt.h src/gp_dosfs.c src/ttfmemd.h lib/dumphint.ps src/gpcheck.h src/jasper.mak src/ztype.c src/dwuninst.cpp lib/ps2ascii src/gdevxxf.c src/shc.c src/zshade.c man/ps2ascii.1 Resource/ColorSpace/DefaultGray doc/Use.htm src/opcheck.h src/shc.h lib/gsndt.bat src/gdevpdfd.c toolbin/tests/gssum.py src/gdevcfax.c src/zicc.c src/vdtrace.c src/gxdda.h src/vdtrace.h src/iscan.c src/iscan.h src/gsnotify.c toolbin/precheck.tcl toolbin/errlist.tcl src/gximage3.c lib/wftopfa lib/pfbtopfa.bat src/srle.c lib/gs_icc.ps src/zfilterx.c Resource/ColorSpace/TrivialCMYK src/gsnotify.h src/gximage3.h src/gsdll2.rc man/gs.1 src/memory_.h src/iparray.h jasper/src/libjasper/jpc/jpc_enc.c lib/gs_wl1_e.ps src/gsuid.h jasper/src/libjasper/jpc/jpc_enc.h Resource/Decoding/Unicode src/gdevstc2.c src/ziodev2.c man/eps2eps.1 src/gsiodevs.c lib/gs_sym_e.ps src/zmisc.c src/gsargs.c src/devs.mak src/gp_win32.c lib/ppath.ps doc/gsdoc.el src/gsargs.h src/gsinit.c src/gxttfb.c src/wmin.mak jasper/src/libjasper/jpc/jpc_flt.h jasper/src/libjasper/jpc/jpc_dec.c src/gxttfb.h src/winplat.mak src/dscparse.c src/gdev3852.c jasper/src/libjasper/jpc/jpc_dec.h src/dscparse.h src/gp_getnv.c lib/gs_dps1.ps zlib/contrib/ada/test.adb jasper/src/libjasper/jpc/jpc_t1cod.c src/gp_wgetv.c src/gdevpxen.h jasper/src/libjasper/jpc/jpc_t1cod.h src/gdevadmp.c src/gdevpxat.h src/zchar2.c src/errno_.h lib/wrfont.ps src/slzwc.c src/gdevpdfu.c src/ttcommon.h src/gdevp14.c src/sfilter.h src/dwinst.h doc/Ps2ps2.htm lib/pf2afm.bat lib/gs_trap.ps src/gdevp14.h src/ifcid.h src/sisparam.h src/ifont.h src/zfmd5.c src/unixlink.mak doc/Psfiles.htm src/zrop.c lib/pdfopt.bat src/zfjpx.c src/gdevegaa.asm toolbin/tests/gscheck_pdfwrite.py src/gspaint.c doc/index.html src/gspaint.h src/sa85x.h src/gsalpha.c src/int.mak lib/eps2eps.bat src/gsalpha.h src/icremap.h src/imainarg.c src/gp_dvx.c src/imainarg.h jbig2dec/os_types.h src/spprint.c src/gxcldev.h src/zbfont.c lib/FAPIfontmap src/unix-gcc.mak src/spprint.h src/igstate.h lib/ps2ps.cmd jasper/src/libjasper/base/jas_getopt.c src/unistd_.h src/version.mak src/dwtext.c src/sbwbs.c lib/bdftops.ps src/gxdevmem.h jasper/src/libjasper/jpc/jpc_t1enc.c src/icharout.h lib/gsbj src/gdevstc4.c src/dwtext.h src/sbwbs.h jasper/src/libjasper/jpc/jpc_t1enc.h src/szlibd.c src/gdevdbit.c src/gdevdfax.c src/gdevpccm.c lib/ps2pdf src/gdevpccm.h src/strimpl.h src/mv.bat src/gsutil.c jasper/src/libjasper/jpc/jpc_t1dec.c jasper/src/appl/imginfo.c src/opextern.h src/zimage.c src/gsutil.h jasper/src/libjasper/jpc/jpc_t1dec.h src/gdevcgm.c jbig2dec/jbig2_metadata.c lib/gs_wl2_e.ps src/gdevtsep.c src/gsfont0c.c doc/Deprecated.htm jbig2dec/jbig2_metadata.h man/de/font2c.1 src/gsht1.c src/gspcolor.c src/gxi12bit.c src/iddstack.h src/gsht1.h src/zfjbig2.c src/rinkj/rinkj-config.c src/gspcolor.h src/std.h src/rinkj/rinkj-config.h lib/type1ops.ps src/gdevs3ga.c src/slzwe.c lib/ps2epsi.ps src/scfdtab.c src/gscolor.c src/stdint_.h src/ztoken.c src/gxpaint.c src/zchar32.c src/seexec.c zlib/deflate.c src/icid.h src/gdevm56.c src/gscolor.h src/spsdf.c src/gxpaint.h zlib/zutil.c src/gsfname.c zlib/deflate.h toolbin/tests/make_testdb lib/gssetgs.bat jasper/src/libjasper/jpc/jpc_t2cod.c src/spsdf.h zlib/zutil.h lib/gsdj src/gsfname.h jasper/src/libjasper/jpc/jpc_t2cod.h src/gxalpha.h src/md5main.c jbig2dec/jbig2_refinement.c src/srlx.h src/gxclipsr.h src/gdevmac.c src/idisp.c src/jpeg.mak src/gdevmac.h src/idisp.h src/idstack.c src/gdevrinkj.c toolbin/makehist.tcl src/idstack.h src/gxoprect.c src/gdevwdib.c doc/Copying.htm src/gdevsunr.c src/gxoprect.h src/gdevpdtc.c src/gsfcmap1.c Resource/Decoding/StandardEncoding src/gswts.c lib/gs_diskf.ps lib/font2c.ps src/gsstate.c src/ichar1.h src/gswts.h src/gxiparam.h src/gsstate.h src/gdevcljc.c lib/pdf_base.ps doc/Ps2pdf.htm src/iscanbin.c src/gdevmiff.c lib/pphs.ps src/iscanbin.h src/gp_mshdl.c src/zfcid.c src/zfont.c jasper/src/libjasper/include/jasper/jas_math.h src/unixinst.mak src/zarray.c src/iminst.h src/gxdevcli.h src/fcntl_.h src/gdevpe.c doc/Humor.htm jasper/src/libjasper/jpc/jpc_t2enc.c src/zdfilter.c lib/Fontmap.SGI lib/gs_pdf_e.ps lib/prfont.ps jasper/src/libjasper/jpc/jpc_t2enc.h jasper/src/libjasper/include/jasper/jas_image.h src/write_t2.c src/zdps1.c src/write_t2.h doc/Commprod.htm lib/gs_css_e.ps src/zhsb.c toolbin/makemaster.tcl jasper/src/libjasper/jpc/jpc_t2dec.c toolbin/tests/revert_baseline src/zupath.c src/gxsync.c jasper/src/libjasper/jpc/jpc_t2dec.h src/dstack.h src/gxsync.h src/gsccolor.h src/gdevpdtt.c lib/ps2write.bat src/gdevpbm.c src/gdevpdtt.h src/gdevmrun.c src/gsdllwin.h lib/gs_typ32.ps src/gconf.c src/gdevmrun.h src/gconf.h src/sdct.h src/zfbcp.c src/gzcpath.h src/gsipar3x.h src/scfetab.c jbig2dec/jbig2.c src/gxstate.h jbig2dec/jbig2.h src/gdevpcl.c src/gdevcmap.c src/zht2.c src/gxfmap.h src/zfarc4.c src/gdevpcl.h src/gdevpdfj.c src/ichar.h lib/viewmiff.ps src/gdevcmap.h src/zht2.h src/gdevwprn.c src/gxpdash.c lib/gs_dps.ps src/ztrap.c src/gxlum.h toolbin/3way.tcl doc/Drivers.htm src/gdevdevn.c src/gdevpdte.c src/gsgcache.c src/gdevdevn.h src/gsgcache.h src/gsptype1.c src/zfcid0.c src/gxclbits.c src/zgstate.c src/macos_classic_d_pre.h src/gsptype1.h src/zfontenum.c lib/gs_setpd.ps src/ctype_.h lib/font2c src/inouparm.c src/rinkj/rinkj-screen-eb.c src/slzwx.h src/gstype1.c src/gxdhtres.h lib/gs_lgo_e.ps jasper/src/libjasper/include/jasper/jas_version.h src/gdevmpla.c src/rinkj/rinkj-screen-eb.h man/pdf2ps.1 src/gstype1.h src/dwmain.rc lib/ps2pdf12.cmd doc/Testing.htm lib/gs_fonts.ps src/gxcspace.h lib/gslj.bat lib/Fontmap.OS2 src/gdevmpla.h src/rinkj/evenbetter-rll.c man/wftopfa.1 src/watclib.mak src/rinkj/evenbetter-rll.h src/gxfcache.h src/istack.c src/gxclzlib.c src/zfont0.c lib/gs_l2img.ps src/istack.h src/gstparam.h lib/stcinfo.ps src/gdevevga.c src/gdevhit.c src/gxclimag.c src/gsdfilt.c lib/packfile.ps toolbin/many2pdf.tcl src/gxfillts.h src/gsdfilt.h toolbin/tests/run_nightly toolbin/tests/get_baselines toolbin/gsindent src/gxht.c src/gxdcconv.c src/gdevpsdp.c src/openvms.mak src/gxcht.c src/gdevclj.c src/gdevxalt.c src/gxht.h src/gxdcconv.h src/zvmem2.c src/gdevpdtv.c src/contrib.mak src/rinkj/rinkj-device.c src/gdevpdtv.h src/gsiparm3.h lib/gs_typ42.ps src/gxclpage.c lib/dumphint.bat src/gxfont1.h src/rinkj/rinkj-device.h lib/gslj src/icontext.c src/gsdllos2.h src/gxclpage.h src/zstring.c src/icontext.h lib/gslp src/unix-aux.mak src/gzspotan.c src/zfont32.c src/ttfoutl.h src/gxclip2.c src/szlibxx.h src/gdevdrop.c src/gzspotan.h jasper/src/libjasper/jpc/jpc_cs.c src/gxclip2.h man/dvipdf.1 src/scfd.c jasper/src/libjasper/jpc/jpc_cs.h src/cfonts.mak src/gxiclass.h lib/pdf2dsc lib/ht_ccsto.ps src/gdevcgml.c src/gdevpx.c src/gdevcgml.h src/gdevl256.c jasper/src/libjasper/ras/ras_cod.c src/windows_.h doc/DLL.htm src/igcref.c src/zcharx.c src/gxtype1.c jasper/src/libjasper/ras/ras_cod.h src/gxtype1.h src/gdevcp50.c lib/gs_ciddc.ps src/idictdef.h src/gsmemret.c toolbin/bughunt.sh src/gxclip.c src/gsmemret.h lib/gsnd src/iname.c src/sfilter1.c lib/pdfopt src/gxclip.h src/sddparam.c src/zmedia2.c src/iname.h src/gs.mak src/gxpcmap.c doc/News.htm src/gp_msdll.c lib/gs_wan_e.ps lib/ps2pdf13.cmd jasper/src/libjasper/include/jasper/jas_stream.h src/gxcid.h src/gdevnfwd.c src/macos-mcp.mak src/ttobjs.c doc/History1.htm src/ttobjs.h src/zcontrol.c src/icclib.mak src/gsfcmap.c src/iimage2.h src/zfont2.c src/gsfcmap.h src/gxrplane.h src/gxp1fill.c src/imemory.h src/gsciemap.c src/dos_.h src/zdscpars.c src/gscdef.c lib/winmaps.ps src/gdevwpr2.c lib/landscap.ps src/gxtmap.h lib/gs_frsd.ps src/gsbitcom.c src/zchar.c lib/gs_devpxl.ps src/gdevsun.c lib/fixmswrd.pl src/gscrypt1.c doc/Fonts.htm toolbin/tests/gscheck_raster.py lib/gsdj500.bat src/gscrypt1.h jasper/src/libjasper/include/jasper/jas_tvp.h src/ztrans.c src/dwmainc.c src/gxdht.h src/dvx-head.mak lib/ps2ps2 src/zcsindex.c src/gdevrops.c src/zcidtest.c src/gdevpdtx.h src/gdevijs.c doc/gs-vms.hlp src/icolor.h src/gp_msio.c src/stdpn.h jasper/src/libjasper/ras/ras_enc.c src/store.h src/gstypes.h src/gxfixed.h src/gsserial.c src/string_.h src/gsserial.h src/gsjmorec.h src/gdevcslw.c src/zfdctd.c src/zdps.c jasper/src/libjasper/ras/ras_dec.c src/gxpcache.h src/scanchar.h man/de/pdf2ps.1 src/gdevdsp.c src/lib.mak src/zmatrix.c src/sdctc.c src/gdevdsp.h src/gdevpipe.c src/gspmdrv.rc zlib/compress.c src/gdevsvga.c src/gdevpdti.c lib/pf2afm src/gdevsvga.h src/gdevpdti.h src/gdevepsn.c src/gsparam2.c src/gp_mktmp.c src/stat_.h src/zfsample.c src/gsstruct.h jbig2dec/jbig2_huffman.c lib/gs_wl5_e.ps src/zfdecode.c src/gximag3x.c src/gsgc.h jbig2dec/jbig2_huffman.h src/gscolor1.c src/dwtrace.c src/gdevmswn.c src/gxfcmap.h src/ierrors.h src/gdevjpeg.c src/gximag3x.h src/siinterp.c src/gscolor1.h src/dwtrace.h src/gdevmswn.h src/gdevbbox.c src/opdef.h src/siinterp.h lib/opdfread.ps lib/ps2pdf14.cmd src/gdevbbox.h lib/gs_mex_e.ps src/iddict.h lib/gs_std_e.ps src/gp_stdin.c doc/History2.htm src/gsexit.h src/gendev.c src/gdevtfax.c src/gdevpjet.c src/gdevphex.c src/gslparam.h src/gp.h src/ivmspace.h src/gshtscr.c src/gdevtfax.h jbig2dec/jbig2_image_pbm.c src/bench.c src/gsnogc.c src/gsnogc.h src/gdevbmpa.c src/stdio_.h src/tttables.h src/gdevemap.c src/gp_sysv.c jasper/src/libjasper/include/jasper/jas_debug.h src/gsrefct.h src/iastruct.h toolbin/tests/revert_pdfbaseline man/de/dvipdf.1 src/gdevbjc.h lib/gs_mro_e.ps lib/ps2ps.bat src/gdevpsf2.c jbig2dec/jbig2_arith_int.c src/gzht.h doc/Develop.htm src/gxcvalue.h jbig2dec/jbig2_arith_int.h lib/mkcidfm.ps src/sstring.c lib/cid2code.ps src/gxpath.c src/scfparam.c src/gdevupd.c src/iconf.c src/sstring.h src/gxpath.h src/interp.c src/zcrd.c src/dwnodll.c src/iconf.h doc/C-style.htm src/gdevm40.c lib/gs_cff.ps lib/zeroline.ps src/dwdll.c src/interp.h man/ps2pdfwr.1 src/dwdll.h src/gsiodisk.c src/sjpegd.c src/gspath2.h lib/rollconv.ps src/gdevpsim.c src/dvx-tail.mak lib/lp386.bat src/errors.h src/gp_msprn.c lib/lprsetup.sh src/gxino12b.c src/gdevmgr.c src/gdevpdfp.c src/gxacpath.c src/gslib.c src/gdevmgr.h src/ziodev.c src/iccinit0.c src/sdcte.c doc/Release.htm src/gslib.h lib/gs_dpnxt.ps lib/pdf_draw.ps src/gxccache.c src/ifont1.h src/zfunc0.c src/gxmatrix.h src/gxfdrop.c src/ifunc.h src/gp_unifs.c zlib/contrib/ada/read.adb src/gxfdrop.h src/gxobj.h toolbin/tests/update_pdfbaseline src/gsiorom.c src/gxhintn.c src/isstate.h jbig2dec/jbig2_text.c jbig2dec/jbig2_hufftab.h src/gdevm2.c src/gxhintn.h src/ifilter2.h src/gspath.c src/gdevwddb.c src/gxpcopy.c src/gspath.h src/gscolor3.c src/gdevdjet.c man/gsnd.1 lib/ps2pdf12 src/gscolor3.h lib/ps2pdf13 lib/ps2pdf14 lib/pdf2dsc.ps lib/gs_pfile.ps src/rinkj/rinkj-dither.c src/zpath1.c src/gdevm24.c doc/History3.htm src/gp_unix.c src/rinkj/rinkj-dither.h src/inamedef.h jbig2dec/config_win32.h lib/gs_rdlin.ps src/ilocate.c src/gxdcolor.c src/gdevpm.c src/gscdefs.h src/vmsmath.h src/gscencs.c src/gxdcolor.h src/gzstate.h src/gschar0.c src/gdevpm.h src/gdevbmpc.c Resource/ColorSpace/DefaultRGB src/iht.h src/zdevice.c src/gscie.c src/gscencs.h lib/gs_cidfn.ps doc/Changes.htm lib/addxchar.ps src/gxi16bit.c src/ifapi.h src/zimage2.c src/gscie.h src/iastate.h src/pipe_.h src/gxbitops.h src/ipacked.h lib/font2pcl.ps lib/PDFA_def.ps src/gsfunc3.c src/gpsync.h src/gdevperm.c src/gswin.rc src/gsccode.h src/gsfunc3.h src/gxpath2.c src/gp_strdl.c src/genconf.c src/gxdevbuf.h lib/gs_ciecs2.ps toolbin/tests/gsparamsets.py lib/lpr2.bat lib/lp386r2.bat src/sa85d.c src/gscsel.h man/pdf2dsc.1 toolbin/tests/update_specific lib/gsbj.bat src/openvms.mmk src/sa85d.h src/gp_stdia.c src/zcolor2.c doc/Hershey.htm src/gdev3b1.c lib/wmakebat.bat lib/gst.bat src/gxttf.h src/ttconf.h src/genht.c src/zgeneric.c lib/type1enc.ps lib/dvipdf man/de/printafm.1 src/gxarith.h src/gxclrect.c src/gsshade.c lib/pdf_sec.ps src/gsshade.h src/msvclib.mak src/gsicc.c src/zcid.c src/dwsetup.cpp src/gdevp2up.c lib/pv.sh src/gsicc.h src/dwuninst.rc lib/PDFX_def.ps lib/viewjpeg.ps lib/image-qa.ps src/gdevpdfr.c src/gdevppla.c autogen.sh jasper/src/appl/jasper.c toolbin/gsmake src/zmisc1.c src/gsdevmem.c src/gdevppla.h src/wccommon.mak jasper/src/libjasper/include/jasper/jas_string.h src/gxfcopy.c src/gdevpsft.c lib/ps2epsi src/gxfcopy.h src/gsmisc.c src/gdevtfnx.c lib/wftopfa.ps src/gdevm4.c src/gxicolor.c src/gxpageq.c lib/ps2ai.ps src/gsdparam.c lib/pdf2ps.cmd src/winint.mak jasper/src/libjasper/include/jasper/jas_seq.h man/ps2pdf.1 doc/Make.htm doc/Details8.htm src/gxpageq.h src/gsstype.h src/gxdevrop.h src/gdevprn.c src/gdevcif.c lib/gs_resst.ps src/gxdevndi.c doc/History4.htm toolbin/tests/check_comments.py src/gdevprn.h src/gxdevndi.h jasper/src/libjasper/base/jas_tvp.c src/iesdata.h src/dxmain.c lib/gs_sepr.ps src/gdevpdfc.c src/iapi.c lib/gstt.bat src/spngpx.h src/gdevpdfc.h src/gdevherc.c src/btoken.h src/iapi.h src/zcharout.c toolbin/tests/gscheck_fuzzypdf.py src/gdevepsc.c toolbin/drawafm.ps lib/gs_il1_e.ps src/gxdevice.h src/gximage2.c src/srld.c src/zht.c src/gxshade4.c lib/gs_stres.ps src/gxshade4.h src/iinit.c src/gdevstc1.c src/gxbitmap.h src/gxccman.c src/watcw32.mak lib/ps2pdfxx.bat src/iinit.h src/gsalphac.c src/gxshade.c toolbin/pre src/sbtx.h src/zfunc.c src/gsclipsr.c src/gsalphac.h src/gxshade.h src/gsrop.c src/gsclipsr.h src/idict.c src/gxistate.h src/gsrop.h src/gscoord.c jbig2dec/memcmp.c src/idict.h doc/Public.htm lib/ps2pdf12.bat src/gxcolor2.h src/macos_carbon_d_pre.h zlib/example.c src/gscoord.h jasper/src/libjasper/jpc/jpc_tsfb.c toolbin/pre.tcl src/genarch.c jasper/src/libjasper/jpc/jpc_tsfb.h src/gscedata.c doc/Projects.htm lib/viewcmyk.ps src/gscpm.h src/gxcindex.h src/gscedata.h src/gp_nsync.c src/gdevmr2n.c src/gdevdgbr.c src/gdevdsha.c src/gdevxcf.c src/zlib.mak lib/gs_fapi.ps src/gxtext.h src/zchar1.c src/gscdevn.c lib/pf2afm.ps src/gscdevn.h jasper/src/libjasper/jpc/jpc_fix.h src/gdevpdft.c src/gdevpsdi.c zlib/adler32.c src/shcgen.c src/gsiparam.h lib/pphs src/zmisc3.c src/zfapi.c src/zfunc4.c lib/gsdj500 src/malloc_.h src/shcgen.h src/gscpixel.c lib/pdf_font.ps lib/viewgif.ps lib/gs_diskn.ps src/gscpixel.h lib/gs_btokn.ps lib/ps2epsi.cmd toolbin/tests/check_dirs.py toolbin/gsmake.tcl src/gdevplnx.c lib/lines.ps src/dirent_.h src/gdevplnx.h jasper/src/appl/imgcmp.c src/zfzlib.c lib/FAPIcidfmap src/Makefile.in src/gscsepr.c src/iutil2.c doc/History5.htm src/gscsepr.h src/gsimage.c src/gxwts.c src/ipcolor.h src/iutil2.h src/sjpeg.h src/gstext.c src/gsimage.h lib/gs_fform.ps src/gxwts.h src/msvccmd.mak src/gstext.h src/gsflip.c src/gdevpdfe.c src/rinkj/rinkj-byte-stream.c src/gsflip.h src/rinkj/rinkj-byte-stream.h jasper/src/libjasper/jpc/jpc_mct.c src/gdevdljm.c src/zdpnext.c src/geninit.c jasper/src/libjasper/jpc/jpc_mct.h src/gdevdljm.h lib/gs_ll3.ps src/zusparam.c man/pfbtopfa.1 src/gxchrout.c src/gximage4.c src/gxchrout.h src/gxshade6.c src/gxcoord.h jbig2dec/jbig2_page.c src/gdevpdf.c src/macosx.mak src/tttypes.h src/zpacked.c toolbin/tests/gstestutils.py src/gsparamx.c src/gdevstc3.c src/gp_dosfe.c src/iutil.c src/szlibc.c toolbin/maketars.tcl src/gsparamx.h lib/gs_cmdl.ps lib/gs_cmap.ps src/gdevpng.c src/iutil.h jasper/src/libjasper/include/jasper/jas_fix.h jbig2dec/test_jbig2dec.py lib/gs_il2_e.ps src/gzpath.h zlib/zconf.in.h src/gxcdevn.h src/sfxstdio.c lib/ps2pdf13.bat lib/ps2pdfwr src/gxropc.h toolbin/makeset.tcl src/gxfcid.h src/gxfont.h lib/gs_agl.ps src/gdevccr.c lib/ps2ascii.cmd src/mkromfs.c zlib/contrib/ada/zlib-streams.adb src/gslibctx.c zlib/gzio.c src/gdevdcrd.c src/unix-dll.mak src/gslibctx.h src/zbseq.c src/ziodevsc.c src/gdevdcrd.h src/instcopy src/gdevl31s.c man/de/ps2pdf.1 src/zfrsd.c src/iosdata.h src/gdevmacpictop.h src/gdevdjtc.c lib/showchar.ps src/gxino16b.c toolbin/tests/rasterdb.py zlib/contrib/ada/zlib-streams.ads src/gdevpcx.c src/gdevpxop.h src/zfileio.c jasper/src/libjasper/jpc/jpc_tagtree.c src/slzwd.c src/gdevpdfv.c lib/pcharstr.ps src/gxifast.c src/gxpflat.c jasper/src/libjasper/jpc/jpc_tagtree.h src/dwimg.c src/fapi_ft.c lib/pdf_ops.ps src/zsysvm.c src/gsimpath.c src/dwimg.h src/gdevx.c src/gsmemlok.c src/gsos2.rc lib/gs_cidtt.ps lib/gs_dps2.ps src/gximage.c src/gdevx.h man/printafm.1 src/gsmemlok.h src/ziodevs.c src/unixansi.mak jasper/src/libjasper/pgx/pgx_cod.h src/gdevpsfx.c ijs/Makefile.am src/gximage.h src/gscspace.c src/gdevmacttf.h src/gdevm8.c lib/gsdj.bat src/gdevpnga.c lib/gs_mgl_e.ps examples/waterfal.ps src/gsropc.c src/gscspace.h src/gsxfont.h src/ttfsfnt.h src/gsjconf.h man/pdfopt.1 toolbin/tests/make_two_versions src/gsfcid.c src/zstack.c src/gsfont.c jasper/src/libjasper/base/jas_stream.c src/gsropc.h src/gsfont.h lib/gs_ttf.ps lib/unprot.ps src/isave.c lib/gslp.bat lib/align.ps doc/History6.htm src/gdevm64.c src/isave.h src/zdict.c toolbin/leaks.tcl src/gxfrac.h toolbin/tmake.tcl src/gx.h jasper/src/libjasper/jpc/jpc_util.c src/iccfont.c src/gdevpdfg.c lib/markpath.ps src/gdevps.c lib/pdf2dsc.bat src/png_.h src/gxcllzw.c src/gdevpdfg.h lib/gs_patrn.ps doc/API.htm src/gxhttile.h toolbin/smoke.ps src/gdevpdtb.c src/gsdps1.c lib/gs_res.ps src/time_.h src/gdevpdtb.h src/ttfinp.c src/gshsb.c src/pcwin.mak src/vms_x_fix.h src/ziodevst.c src/smtf.c src/ttfinp.h src/gshsb.h src/gdevtifs.c src/x_.h lib/gs_devcs.ps man/pf2afm.1 src/smtf.h src/gdevtifs.h src/gximono.c src/fapiufst.c Resource/Decoding/Latin1 lib/viewpbm.ps src/szlibe.c lib/ps2ps2.cmd src/gxctable.c src/main.h toolbin/headers.tcl src/gp_vms.c src/gp_iwatc.c src/gxctable.h src/ugcclib.mak src/gdev8bcm.c src/gp_os9.c src/dwsetup.h src/gdevbj10.c src/gxclipm.c src/gdev8bcm.h src/zpaint.c lib/ps2pdf14.bat src/stdpre.h src/iplugin.c src/gxclipm.h src/gsgdata.c]

2005-12-26T22:36:16.000000Z Ray Johnston

Enable use of "Bold" in BaseFont name when doing font substitution from PDF
files that don't embed all fonts. Bug 688432 for customer 670.

DETAILS:

There is not really a 'Bold' flag in the FontDescriptor Flags (the ForceBold
infers a Bold font, but is not present for all Bold fonts since it has a
different meaning).

The pdf_font.ps logic had logic for "Narrow" in the font name, but not "Bold".
Enabling recognition of "Bold" works for this file and probably most others.

EXPECTED DIFFERENCES.

unknown, but if so progressions will be updated.

[lib/pdf_font.ps]

2005-12-26T14:38:15.000000Z Alex Cherepanov

Latest CMap files from ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe
Bug 688412

[Resource/CMap/78-H Resource/CMap/Hojo-H Resource/CMap/GB-RKSJ-H Resource/CMap/CNS06-RKSJ-H Resource/CMap/UniHojo-UCS2-V Resource/CMap/CNS2-H Resource/CMap/RKSJ-H Resource/CMap/78-V Resource/CMap/Hojo-V Resource/CMap/TCVN-RKSJ-H Resource/CMap/CNS2-V Resource/CMap/Hiragana Resource/CMap/RKSJ-V Resource/CMap/Roman Resource/CMap/UniKS-UTF32-H Resource/CMap/KSCpc-EUC-V Resource/CMap/CNS05-RKSJ-H Resource/CMap/UniHojo-UTF8-H Resource/CMap/CNS15-RKSJ-H Resource/CMap/Adobe-Korea1-0 Resource/CMap/Adobe-Korea1-1 Resource/CMap/Adobe-Korea1-2 Resource/CMap/78-RKSJ-H Resource/CMap/HKdlb-B5-V Resource/CMap/UniKS-UTF32-V Resource/CMap/KSC2-RKSJ-H Resource/CMap/UniHojo-UTF32-H Resource/CMap/UniHojo-UTF8-V Resource/CMap/HKscs-B5-H Resource/CMap/78-RKSJ-V Resource/CMap/GBT-RKSJ-H Resource/CMap/HKgccs-B5-V Resource/CMap/Add-H Resource/CMap/Adobe-GB1-0 Resource/CMap/UniHojo-UTF32-V Resource/CMap/EUC-V Resource/CMap/Adobe-GB1-1 Resource/CMap/Adobe-GB1-2 Resource/CMap/UniGB-UCS2-V Resource/CMap/Adobe-GB1-3 Resource/CMap/HKm471-B5-V Resource/CMap/Adobe-GB1-4 Resource/CMap/HKscs-B5-V Resource/CMap/CNS04-RKSJ-H Resource/CMap/Adobe-GB1-5 Resource/CMap/UniCNS-UTF32-H Resource/CMap/Add-V Resource/CMap/Hojo-EUC-H Resource/CMap/UniJISPro-UCS2-V Resource/CMap/GBT-H Resource/CMap/UniKS-UTF8-H Resource/CMap/UniCNS-UTF32-V Resource/CMap/Ext-RKSJ-V Resource/CMap/Hojo-EUC-V Resource/CMap/UniGB-UTF8-H Resource/CMap/GBT-V Resource/CMap/Adobe-Japan1-0 Resource/CMap/GBK-EUC-V Resource/CMap/Adobe-Japan1-1 Resource/CMap/UniKS-UTF8-V Resource/CMap/Adobe-Japan1-2 Resource/CMap/UniKS-UTF16-H Resource/CMap/CNS03-RKSJ-H Resource/CMap/Adobe-Japan1-3 Resource/CMap/Adobe-Japan1-4 Resource/CMap/Adobe-Japan1-5 Resource/CMap/Adobe-Japan1-6 Resource/CMap/UniJIS-UTF32-H Resource/CMap/B5-H Resource/CMap/UniGB-UTF8-V Resource/CMap/UniKS-UTF16-V Resource/CMap/UniJIS-UCS2-H Resource/CMap/UniHojo-UTF16-H Resource/CMap/V Resource/CMap/KSC-H Resource/CMap/UniJIS-UTF32-V Resource/CMap/B5-V Resource/CMap/UniJISPro-UTF8-V Resource/CMap/Katakana Resource/CMap/CNS02-RKSJ-H Resource/CMap/UniHojo-UTF16-V Resource/CMap/KSC-V Resource/CMap/GBK2K-H Resource/CMap/UniCNS-UTF16-H Resource/CMap/HKdla-B5-V Resource/CMap/UniGB-UTF32-H Resource/CMap/GBKp-EUC-V Resource/CMap/GBK2K-V Resource/CMap/UniCNS-UTF16-V Resource/CMap/UniGB-UTF32-V Resource/CMap/Adobe-CNS1-0 Resource/CMap/Adobe-CNS1-1 Resource/CMap/UniJIS-UTF8-H Resource/CMap/Adobe-CNS1-2 Resource/CMap/UniCNS-UCS2-V Resource/CMap/Adobe-CNS1-3 Resource/CMap/Adobe-CNS1-4 Resource/CMap/GB-H Resource/CMap/Adobe-CNS1-5 Resource/CMap/Adobe-Japan2-0 Resource/CMap/CNS01-RKSJ-H Resource/CMap/UniJISX0213-UTF32-H Resource/CMap/UniJIS-UTF8-V Resource/CMap/UniJIS-UTF16-H Resource/CMap/GB-V Resource/CMap/UniJISX0213-UTF32-V Resource/CMap/UniJIS-UTF16-V Resource/CMap/UniCNS-UTF8-H Resource/CMap/UniJIS-UCS2-HW-H Resource/CMap/HKm314-B5-V Resource/CMap/Hankaku Resource/CMap/UniCNS-UTF8-V Resource/CMap/WP-Symbol Resource/CMap/NWP-H Resource/CMap/CNS1-H Resource/CMap/Hojo-RKSJ-H Resource/CMap/UniGB-UTF16-H Resource/CMap/78-EUC-H Resource/CMap/NWP-V Resource/CMap/CNS1-V Resource/CMap/UniGB-UTF16-V Resource/CMap/78-EUC-V Resource/CMap/KSC-RKSJ-H Resource/CMap/ETHK-B5-H Resource/CMap/Ext-H Resource/CMap/KSC-Johab-H Resource/CMap/CNS07-RKSJ-H Resource/CMap/78ms-RKSJ-H Resource/CMap/HK-RKSJ-H Resource/CMap/GBTpc-EUC-H Resource/CMap/ETHK-B5-V Resource/CMap/Ext-V Resource/CMap/KSC-Johab-V Resource/CMap/78ms-RKSJ-V Resource/CMap/UniJISPro-UCS2-HW-V Resource/CMap/GBTpc-EUC-V]

2005-12-23T20:26:00.000000Z leonardo

Fix handling of broken TrueType fonts that have a loca table that is not in order (continued 2).

DETAILS :

Bug 688461 "TrueType-Problem with Core-Dump (Solaris)".

This is a further improvement of the patch for
Bug 687889  "/rangecheck in --string--".

The last patch erroneusely computed loca_size,
causing a string length problem when running pdfwrite with
the test file of the bug 688461.

EXPECTED DIFFERENCES :

None.

[src/gstype42.c]

2005-12-23T15:39:07.000000Z leonardo

Fix handling of broken TrueType fonts that have a loca table that is not in order (continued).

DETAILS :

Bug 688461 "TrueType-Problem with Core-Dump (Solaris)".

This is a further improvement of the patch for
Bug 687889  "/rangecheck in --string--".

1. Inserted a code for ignoring excessive data at end of 'loca' - see comment in code.
2. When (1) works, a warning is printed to stderr (in debug build only).
3. Fixed C coding style in gstype42.c revision 1.49.

We're not sure that this patch is good for any incorrect TrueType font,
because the old code keeps some artifacts without enough explanation.
We inserted a debug printing to study related cases better.

EXPECTED DIFFERENCES :

None.

[src/gstype42.c]

2005-12-22T18:46:45.000000Z leonardo

Fix (pdfwrite) : CID fonts got incorrect FontBBox.

DETAILS :

Bug 688467 "pdfwrite device creates incorrect PDF from EPS with CIDFont".
This fixes the 1st part of the bug 688467.
See the bug about the 2nd part.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtd.c]

2005-12-22T06:47:17.000000Z Alex Cherepanov

Recursively enumerate filter parameters and resolve indirect objects.
Bug 688415 from customer 670.

[lib/pdf_base.ps]

2005-12-22T06:40:13.000000Z Alex Cherepanov

Correct a few typos in 16-bit pixel differencing filter.
Bug 687986

DETAILS :
This is a partial fix for a dead code. The patch fixes simple typos in 16-bit
code, which are difficult to spot because of the nested macroses.  Assignment
ss->prev[0] = s0 is needed because the code for handling leftover bytes uses
ss->prev[0]. The filter still falls into an infinite loop sometimes, but this
fix doesn't address this problem.

[src/spdiff.c]

2005-12-22T06:10:31.000000Z Alex Cherepanov

Move ReadString and related procedures from systemdict to local environment
to avoid a name conflict in a file that defines ReadString in userdict.
Bug 687848 from customer 1120

[lib/gs_cidfn.ps]

2005-12-21T03:57:16.000000Z Alex Cherepanov

Add missing ps2write device to Makefile.in
Bug 688420

[src/Makefile.in]

2005-12-21T03:36:12.000000Z Alex Cherepanov

Fix serious warnings generated by GCC 3.2 on Cygwin.
Bug 687622

[src/gdevxini.c src/gdevpdtb.c src/gdevpdfe.c]

2005-12-20T22:57:52.000000Z Ralph Giles

Commit Raph's patch to ignore invalid channel mappings. This gives
better behaviour on a common file breakage with CMYK jpeg images in PDF.

[jpeg/jdmarker.c]

2005-12-20T14:36:30.000000Z leonardo

Fix (pdfwrite) : A tolerance to a long 'head' table of a TrueType font.

DETAILS :

Bug 688409 "regression cvs 11/14/2005 ps2pdf fails with "Error: /invalidfont in --xshow--"".

Ignore and skip data beond the end of 'head' table.

EXPECTED DIFFERENCES :

None.

[src/gdevpsft.c]

2005-12-19T15:22:47.000000Z leonardo

Fix (pdfwrite) : Can't skip identity ToUnicode CMap for a composite font.

DETAILS :

Bug 688447 "ps->pdf korean english mixed text fails to text extract english correctly.".

Not sure why old code skips identity ToUnicode CMap -
likely it was taken from scratch and now appears incorrect.

With Type 0 fonts the PDF specification allows to skip ToUnicode only
when a font has a predefined CMap name as a value Encoding entry.
However we don't recognize standard CMap because our PS interpreter
doesn't provide a neccessary data - see bug 688459.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtw.c]

2005-12-18T18:11:25.000000Z Ralph Giles

Correct an incorrect return value. Thanks to Leonardo for pointing this
out.

[jbig2dec/jbig2_text.c]

2005-12-17T09:11:10.000000Z Ralph Giles

Pass the CFLAGS makefile variable when building auxiliary programs on
MSVC. This is necessary to that genarch sees the GX_COLOR_INDEX_TYPE
define to calculate the corresponding sizeof define. This is already
the case in the autoconf/unix build. Bug 687523.

[src/msvccmd.mak]

2005-12-17T02:08:58.000000Z Ralph Giles

Document the change synchronization issue with the two
GX_COLOR_INDEX_TYPE fallbacks. Bug 687523.

[src/gxcindex.h src/genarch.c]

2005-12-17T02:04:33.000000Z Ralph Giles

Have genarch define ARCH_SIZEOF_GX_COLOR_INDEX in arch.h. Bug 687523.

DETAILS:

One can't use the sizeof operator in preprocessor directives, so there's
been no way to do compile-time codepath choice based on the chosen size
of the color index type, which is quite important for performance.
Therefore we add a test to genarch.h to make this runtime test available
throughout the code when Ghostscript is built.

Note that this is a little fragile since the GX_COLOR_INDEX_TYPE define
is set by the toplevel makefiles. If nothing is set, the code in
gxcindex.h falls back to 'unsigned long int'. genarch.c now has the same
fallback, but obviously those should be kept in sync.

[src/genarch.c]

2005-12-17T01:56:04.000000Z Ralph Giles

Merge latest jbig2dec trunk into cvs. This is not released code.

[jbig2dec/config_win32.h jbig2dec/jbig2_metadata.c jbig2dec/jbig2_image_pbm.c jbig2dec/jbig2.c jbig2dec/jbig2_generic.h jbig2dec/jbig2_image.c jbig2dec/jbig2.h jbig2dec/jbig2_metadata.h jbig2dec/jbig2_priv.h jbig2dec/jbig2_image_png.c jbig2dec/jbig2_image.h jbig2dec/jbig2dec.c jbig2dec/os_types.h jbig2dec/configure.ac jbig2dec/jbig2_arith.c jbig2dec/jbig2_symbol_dict.c jbig2dec/jbig2_arith.h jbig2dec/jbig2_page.c jbig2dec/jbig2_symbol_dict.h jbig2dec/jbig2_arith_int.c jbig2dec/jbig2_text.c jbig2dec/jbig2_hufftab.h jbig2dec/jbig2_huffman.c jbig2dec/jbig2_arith_int.h jbig2dec/jbig2_huffman.h jbig2dec/jbig2_mmr.c jbig2dec/jbig2_refinement.c jbig2dec/jbig2_arith_iaid.c jbig2dec/jbig2_mmr.h jbig2dec/test_jbig2dec.py jbig2dec/memcmp.c jbig2dec/jbig2_segment.c jbig2dec/jbig2_arith_iaid.h jbig2dec/Makefile.am jbig2dec/jbig2_generic.c]

2005-12-16T22:16:02.000000Z Ralph Giles

Remove references to little-used mailing lists.

[doc/Release.htm]

2005-12-16T22:12:59.000000Z Ralph Giles

Remove references to the bug-gs mailing list in the manpages, and add
references to bugs.ghostscript.com to gs and ps2pdf. Also list Artifex
as an author before artofcode.

[man/pf2afm.1 man/dvipdf.1 man/ps2ascii.1 man/printafm.1 man/eps2eps.1 man/de/font2c.1 man/de/gsnd.1 man/de/pdfopt.1 man/de/pdf2ps.1 man/de/ps2pdf.1 man/gsnd.1 man/font2c.1 man/pdfopt.1 man/ps2pdf.1 man/pdf2ps.1 man/de/wftopfa.1 man/de/ps2ps.1 man/pfbtopfa.1 man/de/dvipdf.1 man/de/ps2ascii.1 man/gslp.1 man/wftopfa.1 man/ps2pdfwr.1 man/ps2ps.1 man/de/printafm.1 man/gs.1]

2005-12-16T21:52:51.000000Z Ralph Giles

Remove the bug report instructions from the documentation. Clearly no
one is using this, and just pointing people at the tracker is simplest.

[doc/Readme.htm doc/Bug-form.htm doc/Bug-info.htm]

2005-12-15T21:21:50.000000Z leonardo

Fix (TT interpreter) : Uninitialized data access while interpreting a high subglyph tree (continued).

DETAILS :

Bug 688421 "Ghostscript deadloop when processing PDF".
The last latch missed a return code in one branch.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c]

2005-12-15T19:55:41.000000Z Alex Cherepanov

Skip '+' character in real numbers during CFF font generation.
Ignore the reserved nibble 0xd in encoded real numbers in CFF fonts.
Bug 688449

[src/gdevpsf2.c lib/gs_cff.ps]

2005-12-15T12:21:17.000000Z leonardo

Fix : Iproving the coding style.

DETAILS :

An indentation was confusing in gs_pdfwr.ps .

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps]

2005-12-15T07:54:30.000000Z Ray Johnston

Continuation of previous patch for another branch to handle the /URI key
in a pdfmark, moving it into the /A (Action) dict with /S key value /URI.
Bug 688414 for customer 515.

[src/gdevpdfm.c]

2005-12-14T21:33:39.000000Z Alex Cherepanov

Normalize the BBox value in the shading dictionary.
Bug 688433

[lib/pdf_draw.ps]

2005-12-14T18:44:45.000000Z Ralph Giles

Provide more specific fonts for the headers since CJK Windows, uses a
bitmap font for just 'sans-serif'. Closes bug 688442.

[doc/gs.css]

2005-12-14T18:12:59.000000Z Ralph Giles

Improve the wording of two error messages. Related to bug 688451.

[src/gxttfb.c]

2005-12-14T15:44:51.000000Z leonardo

Fix (TT interpreter) : Uninitialized data access while interpreting a high subglyph tree.

DETAILS :

Bug 688421 "Ghostscript deadloop when processing PDF".

Actually the behavior was indeterministic due to
BuildGlyphOutlineAux wrongly computed a points array offset
while concatinating point lists of subglyphs.
The error happened only with subglyphs, which
include subglyphs (i.e. when a subglyph tree height
is greater than 2). The test document embeds a font
with such glyph.

1. The core of the change is in ttfmain.c :
   it fixes the incorrect offset computation.

2. An assertion added into gxpflat.c for an earlier
   detection of an incorrect behavior.
   Without this assertion another assertion
   fails in same module few moments later,
   and the analyzis appears some complicated.

3. Check and propagate a return code from
   gx_flattened_iterator__init in gxfill.c .


EXPECTED DIFFERENCES :

None, because our test base doesn't contain such cases.
Will add one after this fix is committed.

[src/ttfmain.c src/gxpflat.c src/gxfill.c]

2005-12-14T15:07:49.000000Z Alex Cherepanov

Fix a spelling error in an error message, s/fhe/the/ .
Bug 688451

[src/gxttfb.c]

2005-12-13T13:38:12.000000Z leonardo

Fix (pdfwrite) : Upgrade the PDF/X version identifier.

DETAILS :

Adobe Acrobat 7 Preflight Tool doesn't accept PDF/X-3:2001.

EXPECTED DIFFERENCES :

None.

[lib/PDFX_def.ps]

2005-12-12T14:40:29.000000Z leonardo

Fix (font machinery) : Improve the font-matrix cache management.

DETAILS :

Bug 688422 "Assertion failed! in gxccman.c".

This patch restricts the probability of failure
with a reasonable limit - 200 faces per BuildChar.
Ratrher it doesn't fix the bug completely,
the failure won't happen in practical cases.

This patch maintains a list of font-matrix pairs in the order
of accessing them. When cache overflows, it drops
the pair, which was not accessed a long time ago.
See comments in code for more details.

If one needs to drop the constraint for the number of
font-matrix pairs per charproc, entire cache algorithm to be
revised. First, it needs to lock font-matrix pairs
while they are referred by a text enumerator,
which executes a charproc. Second, need a workaround
for the case of 200 "nested" charprocs,
which exceed entire cache with locked pairs.

This patch adds new 'assert' statements into code.
We cannot replace them with return codes,
because a container function is being called
by the garbager as a part of a finalization routine
of font objects, with no way to propagate an error code.

EXPECTED DIFFERENCES :

None.

[src/gxfcache.h src/gxccman.c src/gxccache.c]

2005-12-12T09:48:09.000000Z leonardo

Fix (font machinery) : Provide an additional debug data about text enumeration.

DETAILS :

This relates to Bug 688422 "Assertion failed! in gxccman.c".
It doesn't fix the bug, simplifies its analyzis.
We decided to make this change permanent because
in the past we spent many efforts for anayzis of such kind.

Rather text_enum_id is not used with release build,
it is still defined to keep same structure size.

EXPECTED DIFFERENCES :

None.

[src/gxfcache.h src/gstext.c src/gsfont.c src/gxtext.h src/gxfont.h]

2005-12-10T11:08:05.000000Z leonardo

Fix : Remove 'assert' from gxccman.c .

DETAILS :

Bug 688422 "Assertion failed! in gxccman.c".

It doesn't fix the bug, but avoids harmful effects,
which 'assert' implementation causes on some embedded systems.
The assertion in gsccman.c failed too frequently during last 2 years.

EXPECTED DIFFERENCES :

None.

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

2005-12-09T18:39:09.000000Z Alex Cherepanov

Work around a compile error on Solaris 9 (Sun C 5.5).
Bug 688411

DETAILS :
Solaris 9 (Sun C 5.5) compiler cannot initialize a 'const' array unless it is
'static const'.

[src/gxshade6.c]

2005-12-08T21:13:22.000000Z Alex Cherepanov

Work around a bug in PDF files produced by SPIRIT 12.30.
Create the missing root of the page tree when /Pages entry in the
document root points directly to the 1st page instead of the /Pages node.
Fix bug 688419 from customer 850.

[lib/pdf_main.ps]

2005-12-07T19:55:35.000000Z leonardo

Fix (pdfwrite) : Imprecise clipping.

DETAILS :

Bug 688407 "pdfrwrite : A shading displaced converting Altona_Visual_1v2a_x3.pdf".

When a clipping path is a single rectangle,
rounded coordinates were written into PDF,
because the internal representation rounds them to device pixels.
This doesn't comply with complex cases, in which clipping path
is written as a high level object with unrounded coordinates.
After scaling the generated PDF visual defects appeared.

EXPECTED DIFFERENCES :

pdfwrite 300dpi :

"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"Bug688308.ps"
"test.pdf"

[src/gdevpdfd.c]

2005-12-07T12:53:30.000000Z leonardo

Fix (pdfwrite) : A coding style improvement.

DETAILS :

This change is syntacticly equivalent.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-12-05T19:14:22.000000Z Ray Johnston

Change handling of /URI key/value pair in pdfmark parameters to move it
from the upper level Annot dict down into the /A (Action) dict with a
/A (Subtype)i value of /URI so that Adobe Reader will recognize it as a
hyperlink to a web site. Bug 688414 for customer 515.

DETAILS:

The URI key/value pair from the pdfmark list would ordinarily go into
the upper level Annot dict. Instead this is deferred and processed with
the /Action (/A) into the /A dict. A /S key with value /URI is also added
into the /A dict. This is done prior to processing keys that may have
been present in the /Action key, so that any /S (or /Subtype) and any
/URI from the pdfmark /A list will replace the one we move from the
Annot dict. This may not be exactly what Distiller does in the event
of such a conflict.

EXPECTED DIFFERENCES:

None. (doesn't change the appearance, just the action when viewed with
Adobe Reader).

[src/gdevpdfm.c]

2005-11-30T16:56:01.000000Z leonardo

Fix (pdfwrite) : ToUnicode CMap was written with incorrect Postscript.

DETAILS :

CMapName was undefined in the ToUnicode CMap stream.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtw.c src/gdevpsfm.c]

2005-11-29T12:32:57.000000Z leonardo

Fix : Dangling pointers after a font cache overlow.

DETAILS :

Bug 688392 "Crash after font enumeration."

When a scaled font is being removed from the font cache,
the old code released its UID. However other fm pairs
in the cache could store copies of same UID.
Those copies got dangling pointers to UID data.

We're not sure why the old copy resets UID of a font
when a font is being excluded from cache.
Likely it is an incorrect hack.

This patch disables the hack and documents our
understanding of the old code. See comments in code.

EXPECTED DIFFERENCES :

None.

[src/gsfont.c]

2005-11-26T04:26:31.000000Z Ray Johnston

Handle yet enother possibly invalid PDF where the /Subtype of a FOnt is
/ (and empty name). BUg 688398 for customer 850.

DETAILS:

This was checked for in one path, but not both.

[lib/pdf_font.ps]

2005-11-25T20:22:19.000000Z leonardo

Fix : Prevent a crash with an invalid FontInfo.

DETAILS :

Bug 688355 "Segmentation fault occurs in rendering Japanese text".

The test document defines a Type 3 font, in which FontInfo has a string value.
That isn't a correct Postscript, but we prefer to make it not crashing.

EXPECTED DIFFERENCES :

None.

[src/zbfont.c]

2005-11-25T15:01:52.000000Z Alex Cherepanov

Fix a SEGV in ps2pdf conversion of imagemask when -dConvertCMYKImagesToRGB=true
Fix bug 688390

[src/gdevpdfi.c]

2005-11-23T18:09:40.000000Z Raph Levien

Fix: Remove attempt to cleanup GS state at gs_abort(), because the
attempt to cleanup often triggers a recursive abort. Fixes bug #603934.

[src/imain.c]

2005-11-23T17:44:37.000000Z Ray Johnston

Regularize the use of signalerror (a private Ghostscript operator used to
report errors from within PS procedures) so that standard PS operators
use the systemdict version (which is usually defined with 'odef') so that
the error message is not misleading. Fix one instance of a missing operator
name below the error name on the stack. Bug 687806.

DETAILS:

There is still some possibly confusing usage of signalerror where the
operator operand is of the form /pseudo_operator cvx /errorname signalerror.
I did not change these.

[lib/gs_devcs.ps lib/gs_dps.ps lib/gs_diskn.ps lib/gs_res.ps lib/gs_l2img.ps lib/gs_ll3.ps lib/gs_btokn.ps lib/gs_fapi.ps lib/gs_pfile.ps lib/gs_setpd.ps lib/gs_cmap.ps lib/gs_devpxl.ps lib/gs_init.ps]

2005-11-23T14:09:22.000000Z leonardo

pdfwrite : Provide a PDF/A document conformity.

DETAILS :

This patch is a part of the PDF/A project.
Provide object conversion when PDF/A doean't allow
a specific object type :

- Check device parameters compatibility (gdevpdfp.c).
- Skip transfer functions (gdevpdfg.c).
- Skip image interpolation (gdevpdfj.c).
- Convert transparency into bitmaps (gdevpdft.c).
- Execute /PS pdfmark streams (gs_pdfwr.ps), and fix a bug (stack balance) in there.
- Add a sample PDF/A definition file.
- Update the user manual with PDF/A generation.

Minor change :
- Fix a comment in PDFX_def.ps .

EXPECTED DIFFERENCES :

None.

[lib/PDFX_def.ps src/gdevpdfp.c doc/Ps2pdf.htm src/gdevpdft.c src/gdevpdfg.c lib/PDFA_def.ps src/gdevpdfj.c lib/gs_pdfwr.ps]

2005-11-23T06:51:22.000000Z Dan Coby

Fix for 688348 transparency image smask bug.  The test file used PDF 1.4
transparency and had an SMask which was a type 1 image with 16 bits per
component.  The SMask logic assumed a maximum of 8 bits.  There was a
second problem with the image enumerator structure not being initialized
with the imager state.

[src/ztrans.c src/gximag3x.c]

2005-11-21T19:50:07.000000Z leonardo

pdfwrite : Extract FontInfo information from TrueType font data.

DETAILS :

This patch provides font metadata for the PDF/A project for
True Type fonts, which have insufficient FontInfo data.

The new function gs_type42_font_info is a special method
for True Type font subclasses. It extracts data from the 'name' table
of a True Type font data. pdfwrite calls it when creating a stable copy
of a Type 11 or a Type 42 font. Later the data
is being accounted by pdf_write_font_metadata.

Note that PDF True Type fonts are not necessarily include a 'name' table.
Therefore re-distilling a PDF may give insufficient Metadata
for the PDF/A format.

Minor change : fix Cygwin/gcc warnings in gdevpdfe, gdevpdtb;
some dependencies were missed in devs.mak .

EXPECTED DIFFERENCES :

None.

[src/gdevpdtb.c src/gxfont42.h src/gstype42.c src/gdevpdfe.c src/zfont42.c src/devs.mak]

2005-11-21T19:46:11.000000Z Raph Levien

Fix: Disable run-length grouping of identical pixels when image is rotated
or skewed, as numerical problems at T-joins of rectangles can cause
dropouts. Fixes bug #688362 and #688179.

[src/gxicolor.c]

2005-11-21T19:00:45.000000Z Ray Johnston

Clarify the Ps2pdf usage, particularly the use of array and dictionary
distiller options when using the script/batch 'helper' files and the
limitations imposed by the simple script. Bug 687373. Thanks to Richard
Yeh, Alex Cherepanov and Ralph Giles for suggestions.

[doc/Ps2pdf.htm]

2005-11-20T20:21:18.000000Z Alex Cherepanov

Fix an error in Unicode to ASCII conversion when the font name is empty string.
Fix bug 687938

DETAILS :
This problem is caused by a TrueType font that has no PostScript font name,
for instance urdunast.ttf. GS 8.10 added Unicode to ASCII conversion for the
font name but the code assumed that the name length > 0 . This patch skips
Unicode to ASCII conversion for empty names.

[lib/gs_fonts.ps]

2005-11-18T02:16:00.000000Z Ray Johnston

Add capability to display text Value strings in Widget Annotations. Multi
line support is not yet implemented, but basic Tx types are supported with
/DA appearance string (used to select font and color, etc.) as well as /Q
(quadding == justinfication) properly supported. Bug 688368 for customer
#670.

DETAILS:

This is an initial implementation sufficient for the customer's immediate
requirement. NYI includes handling Flag (/F and /Ff) bits, one of which
is supposed to make the rendering "invisible".

Note that if the /AP keyword is present, that appearance will be used to
render the Annotation rather than the /V value based rendering. This was
needed to properly render the 01_001.pdf where both keys are present.
Presumably, the /AP appearance was 'baked in' by the form filling application.

Also note that the /DA string in the sample file used "/FontName scale Tf"
which required making the /Tf implementation handle both a font dictionary
(usual case) as well as a font name (pdf_ops.ps change).

[lib/pdf_draw.ps lib/pdf_ops.ps]

2005-11-17T02:09:09.000000Z Alex Cherepanov

Use .bind operator (instead of bind) in the image interpolation logic because
it is nor affected by -dDELAYBIND or -dNOBIND flags. The redefinition logic
assumes that all operators, including .interpolate are bound, i.e. requires
a working bind operator.
Fix bug 688231

[lib/gs_init.ps]

2005-11-16T22:17:29.000000Z Alex Cherepanov

Pacify Valgrind warnings, initialize the image buffer overshot area.
Partial fix for bug 688379

[src/scfe.c]

2005-11-16T21:18:37.000000Z Alex Cherepanov

Insert a space character before "%%" or "%!" in ASCII85Encode filter
to avoid confusion with DSC comments.
Fix bug 688079

DETAILS :
ASCII85Encode filter has a special treatment of some output lines that looks
like DSC line, (ie. lines that begins with %% or %! are broken after first
percent). This didn't work when the last line of encoded stream begins with %%
and input stream was ended not on full 4-tuple.

EXPECTED DIFFERENCES :
None

[src/sfilter2.c]

2005-11-16T20:33:57.000000Z Alex Cherepanov

Work around a bug in PDF files produced by Enfocus PitStop 3.1. Handle
annotation border object depending on the actual type of the object, not the
key name.
Fix bug 688013

DETAILS :
Enfocus PitStop 3.1 generates bad PDF files, which have annotation border
dictionary on /Border key (instead of /BS). PitStop is a well-known application
and GS can easily work around this bug.

EXPECTED DIFFERENCES :
None

[lib/pdf_draw.ps]

2005-11-16T20:00:06.000000Z Alex Cherepanov

Improve error reporting in the jpeg driver. Initialize report_error member of
jpeg encoding stream and propagate stream exceptions to the interpreter level.
Fix bug 688005

[src/gdevjpeg.c]

2005-11-16T16:34:51.000000Z leonardo

pdfwrite : Generate a font Metadata.

DETAILS :

This patch provides font metadata for the PDF/A project.
True Type fonts need a further improvement -
need to get Coipyright, Owner from the TT data.

1. Define a new device parameter PDFA. It is not yet documented
because PDF/A project isn't complete.
2. gx_device_pdf::uuid_time keeps an unique time for all UUIDs
to minimize an indeterminizm.
3. Made pdf_base_font_s be public : moved to gdevpdtf.h .
4. pdf_write_embedded_font computes an MD5 sum of the font
for generating an instance id for the font.
5. The new function pdf_font_metadata perform the main work.

Foe now pdf_write_font_metadata uses some inaccurate coding with
copy&replace. Doing so because we don't know the final structure yet.
Will factor out common subfunctions later.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfp.c src/gdevpdtb.c src/gdevpdfe.c src/gdevpdfb.h src/devs.mak src/gdevpdtf.h src/gdevpdfg.h]

2005-11-15T22:48:46.000000Z leonardo

pdfwrite : Generate document Metadata (continued 1).

DETAILS :

It fixes an indeterminizm in the recent code.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfe.c]

2005-11-15T13:27:17.000000Z leonardo

Fix : An unitialized data access.

DETAILS :

We detected sevral problems with running comparefiles with pdfwrite with
enabling floating point interrupts (patch IM866).
This patch fixes an unitialized data access, or inaccurate type casts.
These problems may relate to Bug 688379
"pdfwrite: an indeterministic behavior with Bug687660a.ps",
rather we could not get a proof for that
due to instability of the effect in the old code.

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c src/ztrans.c src/gdevpsft.c src/gxhldevc.c src/gdevpdfg.c src/gdevpdti.c src/zchar1.c]

2005-11-14T20:22:47.000000Z leonardo

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

DETAILS :

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

Changes to gdevpdfm.c :
1. The new function pdfmark_bind_named_object provides a correct association
   of an object with an object name, accounting forward references
   and duplicate objects. Now it is used in pdfmark_SP and pdfmark_EP.
   as an uniforem method for such association.
2. pdfmark_PS objects are now written when created. The old code missed them.
3. Add a comment about an important constraint in pdfmark_BP,
   which is a consequence of basic assumptions.
4. Issue rangecheck if an object is attempted to modify after it is written.

Chanes to gdevpdfu.c :

pdf_find_same_resource now works for named resources.

Changes to gdevpdfo.c :

Since pdf_substitute_resource in pdfmark_EP can associate one object
with multiple names, the freeing logic is improved
to avoid crashes due to dual freeing of objects.

General consequences :

1. The new code writes an object whenever it is defined,
with no regard whether it is referred or not.
If one needs an optimization with skipping
unreferenced objects, the named object handling logics
to be changed dramaticly with distinguishing a storage for
all objects and a storage for currently named objects.
An object must get special mark whenever it is referred
(it would be a big distrubuted change through the code).
Writing all objects to be delayed until the document end,
and a garbage collection to be implemented for that storage.

2. We do not reproduce a part of Adobe Distiller behavior,
which allows to modify objects when they are being created between
pdfmark_BP and pdfmark_EP. Particularly this prohibits self-referenced objects.
This is a strong consequence of (1).
(Note that the bug 687560 examples miss a big class of cases when
the creating object is referenced with /PUT pdfmark during its creation.
Those examples show only cases when it is being modified.).

3. Users should not define "pdfmark libraries" with multiple object definitions,
which are not really used. We realize that such libraries may be useful
for a better modularity of document creation algorithms.
However we do not have enough engineering resources to
develop this area, and we have no real customer demand on it.
Instead that object definitions to be included into source PS code
only if they are really used in the document.

Thanks to SaGS for supplied test cases.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c src/gdevpdfo.c src/gdevpdfu.c]

2005-11-14T11:40:53.000000Z leonardo

Fix (pdfwrite) : Generate ToUnicode CMap data from 'uniXXXX' character names.

DETAILS :

Bug 688373 "Text does not extract with correct codes".

We guess it's another undocumented feature of Adobe Distiller.
Some Type 1 fonts appear to contain Korean glyphs with
glyph names in the format uniXXXX, where X is a hexadecimal character.
Adobe Distiller 6 looks to recognize them when generating ToUnicode.
Now we do same.

We're not sure on what condition the recognition may happen.
For now we do whenever a simple font (Type 1,2,42) has no GlyphNames2Unicode entry
for the given glyph.

EXPECTED DIFFERENCES :

None.

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

2005-11-13T17:44:21.000000Z leonardo

Fix (TT font parser) : An incorrect Encoding entry type appeared.

DETAILS :

When a glyph index past end of 'post' table,
the old code produced Encoding entries of integer type.

Bug 688370 "pdfwrite segfault with TT font cmap warnings post is incomplete".

EXPECTED DIFFERENCES :

None.

[lib/gs_ttf.ps]

2005-11-13T17:42:07.000000Z leonardo

Fix (pdfwrite) : Prevent a crash due to an incorrect Encoding of a Type 42 font.

DETAILS :

When a Typoe 42 font has Encoding entries of the integer type,
the old code crashed with GPF.

1. Check Encoding entry type and return invalidfont on error (gxfcopy.c, hunk 1).
2. Propagate return codes (gdevpdtb.c, gdevpdtt.c).
3. When creating a complete copy of a Type 42 font, ignore pending Encoding entries
   since 033-52-5873.pdf and 159.pdf include some (gxfcopy.c).
   (This supposes that the document doesn't refer them. If it does,
   another error will happen when creating the font subset.)

This is a partial fix for the bug 688370
"pdfwrite segfault with TT font cmap warnings post is incomplete".

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c src/gdevpdtb.c src/gdevpdtt.c]

2005-11-13T14:59:01.000000Z leonardo

Fix (pdfwrite) : The DestOutputProfile stream dictionary requires the N entry (improved).

DETAILS :

This improves the last patch : a lesser input data required,
because N computes from ProcessColorModel.

EXPECTED DIFFERENCES :

None.

[lib/PDFX_def.ps]

2005-11-13T09:18:37.000000Z leonardo

Fix (pdfwrite) : The DestOutputProfile stream dictionary requires the N entry.

DETAILS :

Adobe Reader 7 could not open files generated with PDFX option.
The PDF specification defines the N entry as a required one.

EXPECTED DIFFERENCES :

None.

[lib/PDFX_def.ps]

2005-11-11T16:32:47.000000Z Ray Johnston

Nightly regression cannot tolerate '_' instead of '-' in GS_PRODUCT string.
Revert to '-' so that change_gsproduct works.

[src/gscdef.c]

2005-11-11T12:35:37.000000Z leonardo

pdfwrite : Generate document Metadata.

THIS IS INCOMPATIBLE CHANGE.

Adobe Distiller 5 generates metadata according to Adobe XMP speification
iff the distiller parameter ParseDSCCommentsForDocInfo or PreserveEPSInfo is true.
Old versions of Ghostscript does not do that.
New versions of Ghostscript do when CompatibilityLevel >= 1.4 (default).
Generated PDF documents become longer in about 1.5 kilobytes.

See the documentation change about new command line options and distiller parameters.

DETAILS :

It's a part of the PDF/A project.

This is an initial commit for the subject.
It generates Document metadata as Adobe Distiller 6 does
for a simple file (Genoa test 001-01.ps).

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/smd5.h src/gdevpdfp.c src/gdevpdf.c doc/Ps2pdf.htm src/gdevpdfe.c src/gdevpdfb.h src/devs.mak src/smd5.c src/gdevpdfg.h]

2005-11-09T18:37:29.000000Z Ray Johnston

Bump version to 8.54 CVS PRE-RELEASE after the 8.53 release.

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

2005-11-09T17:27:24.000000Z Ray Johnston

Improve documentation of -d and -c switches (slightly). Thanks to Chapman
Flack for his suggestions. Bug 688321.

[doc/Use.htm]

2005-11-09T12:55:45.000000Z leonardo

Fix (pdfwrite) : Provide Resources dictionary for Type 3 fonts.

DETAILS :

Bug 688357 - epstopdf does not include /Resources in Type3 fonts

The PDF specification defines Resources dictionary of a Type 3 font
to be  "optional but strongly recommended".
Linux Acrobat Reader Version 7.0.1 07/27/2005 appears not handling the "optional" case.
Now we provide explicit Resources sinse that reader version is widely distributed.

The Resources dictionary of a Type 3 font is a PDF 1.2 feature.
To provide a compatibility to PDF 1.1,
the old code implemented a special mechanizm for transmitting resources of
a Type 3 font to pages, which use the font.

This patch disables that mechanizm when CompatibilityLevel >= 1.2 in gdevpdte.c .
Instead that it creates Resources of a Type 3 font as a cos_dict_t instance
in gdevpdtf.h, gdevpdtt.c, and writes it out when the font is being written
in gdevpdtw.c .

gdevpdti.c now installs Resources dictionary of a Type 3 font
to accumulate resources of its charproc streams.
Note that the name substream_Resources does not longer reflects
its semantics perfectly : for a charproc stream it is Resources of
the font, rather than Resources of the charproc stream
(the pdf spec doesn't define the latter).
Keeping the old name to simplify the patch.

In the old mechanizm we replace used_resources and relatives with Resources,
because those two things are similar. The goal is to simplify data structures and logics.
For doing so we implement new functions cos_dict_forall, process_resources1, process_resources2.
This appears some less effective due to searches in process_resources1, process_resources2,
but we consider the performance low important because PDF 1.1 isn't highly useful in the modern world.
Also removed the related accessor pdf_register_charproc_resource.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdfo.h src/gdevpdtf.c src/gdevpdtw.c src/gdevpdti.c src/devs.mak src/gdevpdtf.h src/gdevpdfj.c]

2005-11-06T19:21:07.000000Z Ray Johnston

Make sure procedure target of an Encode filter gets called with the end
of data condition, i.e., 'false' condition. Bug 688326.

DETAILS:

When a procedure is a data target, it is signalled that it has been closed by
one final callback with a possibly empty string containing any final buffered
data, and the boolean false.

When 'last' was true if the count was 0, the previous code would not return
CALLC status which is needed to call the procedure with the 'false' status.
If ss->eof is already true, then the call has already been done.

This condition is not checked in any of the Genoa test suites.

EXPECTED DIFFERENCES:

none.

[src/zfproc.c]

2005-11-02T13:17:58.000000Z leonardo

Fix (pdfwrite) : Safely close the output file when the device initialization fails.

DETAILS :

Bug 688345 "Keeping output PDF file open when quitting".


EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c src/gdevvec.c]

2005-10-25T09:17:45.000000Z Russell Lang

Add the jpeg, libpng and zlib libraries to the list of files
needed for building a Windows release.

[doc/Release.htm]

2005-10-24T17:52:21.000000Z Ray Johnston

Fix for regression introduced with patch for 688182 (rev 1.46). The /Length
entry is required in stream dicts to prevent undefined in --get-- errors.
If the Length is invalid, set it to 0 to prevent using the incorrect value.
Fixes bug 688347 for customer 770.

EXPECTED DIFFERENCES:

None.

[lib/pdf_base.ps]

2005-10-20T23:41:48.000000Z Dan Coby

Fix for 688344 Error: /invalidaccess in --setfileposition-- after finding
bad XREF.

DETAILS:

The test file contains xref table entries that have locations beyond the
end of the file.  When the xref table entries were being verified, this
would cause an attempt to seek beyond the end of the file.  This closed
the file.  The attempt to rebuild the xref table then crashed.

The fix consists of adding a check for xref entry locations being within
the file.

[lib/pdf_main.ps]

2005-10-20T20:14:37.000000Z Ray Johnston

Final updates to Change logs and History prior to 8.53 release.

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

2005-10-20T19:46:55.000000Z Ray Johnston

Update doc files and version files for 8.53 release.

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

2005-10-20T19:42:18.000000Z Ray Johnston

Remove trailing ^M () characters.

[src/slzwd.c src/gdevbmp.c]

2005-10-20T18:51:13.000000Z Raph Levien

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

[src/tttypes.h]

2005-10-20T13:04:16.000000Z leonardo

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

DETAILS :

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

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

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps]

2005-10-18T20:31:59.000000Z leonardo

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

DETAILS :

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

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

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

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

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps]

2005-10-18T09:05:58.000000Z leonardo

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

DETAILS :

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

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

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

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

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

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

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

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c src/gdevpdfc.c src/gdevpdfu.c src/devs.mak]

2005-10-18T07:58:42.000000Z leonardo

Fix (pdfwrite) : Propagate error codes from pdf_write_value.

DETAILS :

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

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

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfo.c src/gdevpdfu.c]

2005-10-17T19:23:44.000000Z leonardo

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

DETAILS :

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

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

Thanks to SaGS for pointing these problems out.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c]

2005-10-12T17:59:55.000000Z leonardo

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

DETAILS :

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

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

EXPECTED DIFFERENCES :

None.

[src/gspaint.c src/gsdevice.c src/gxdevcli.h]

2005-10-12T11:05:11.000000Z leonardo

Implementing a pointer stability validation in the garbager, continued.

DETAILS :

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

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

This fixes a minor bug in the last patch.

EXPECTED DIFFERENCES :

None.

[src/ilocate.c]

2005-10-12T10:45:21.000000Z leonardo

Implementing a pointer stability validation in the garbager.

DETAILS :

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

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

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

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

EXPECTED DIFFERENCES :

None.

[src/gxobj.h src/gxalloc.h src/ilocate.c src/ialloc.c src/gsalloc.c]

2005-10-12T08:16:50.000000Z leonardo

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

DETAILS :

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

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

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

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

Will add Bug688327.ps to comparefiles.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdtt.c src/gdevpdfd.c src/gdevpdti.c src/gdevpdfb.h]

2005-10-11T10:04:28.000000Z leonardo

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

DETAILS :

Bug 688330 "A dangling pointer in gx_screen_enum.".

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

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

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

EXPECTED DIFFERENCES :

None.

[src/zht.c src/zht1.c src/zht2.c src/iht.h]

2005-10-10T19:09:30.000000Z leonardo

Fix: Cygwin/gcc warninhs.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfb.c src/devs.mak]

2005-10-10T18:58:18.000000Z leonardo

Optimizing the transparency compositor.

DETAILS :

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

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

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

EXPECTED DIFFERENCES :

None.

[src/gxclpath.h src/gxclpath.c src/gdevp14.c src/gxclimag.c]

2005-10-07T19:49:25.000000Z Ray Johnston

Add missing space in CVS PRE-RELEASE string.

[src/gscdef.c]

2005-10-07T19:46:35.000000Z Ray Johnston

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

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

2005-10-07T18:58:40.000000Z Ray Johnston

Commit final documentation that is automatically created by release scripts.

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

2005-10-07T18:35:42.000000Z Ray Johnston

Update to final release date for 8.52

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

2005-10-07T18:09:38.000000Z Ray Johnston

Remove this script that is no longer used in the release process. We now
use cvs2cl.pl third party script.

[toolbin/cvs2hist.py]

2005-10-07T18:02:22.000000Z Ray Johnston

Fix serious bit rot for building History# and Details# from Changes and
Details created by split_changelog.py. Allows the instructions in Release.htm
to actually work. This file invoked by toolbin/makehist.tcl.

DETAILS:

This script really hasn't worked since we changed to the new format Changes
that is created by cvs2cl.pl (instead of the now deprecated cvs2hist.py)

For all releases after the aforementioned change, the History#.htm and
Details#.htm were being hand edited. Hopefully the format created by
this script will appear consistent with that created manually.

[toolbin/makeset.tcl]

2005-10-05T14:37:59.000000Z Ray Johnston

Two changes needed to fix a single bug. First, the GC 'limit' logic was
collecting too frequently. Second, the PDF ICCBased colorspace logic was
repeatedly creating a ReusableStreamDecode filter for the DataSource
element. Fixes bug #687117 for customer #850.`

DETAILS:

The 'limit' value used to trigger a GC process was sometimes set to a
number smaller than the 'inheritied' value. This resulted in a GC scan
on every interpreter loop past the gc_signal check.

Even with this fixed, the file ran slower than the -dNOGC case because
the PDF interpreter 'csset' logic would set the ICCBased colorspace that
would create a new ReusableStreamDecode filter from the DataSource on
every 'Do' of the many images used to paint the logo (line by line).
The reusablestreamdecode logic would allocate a 64000 byte string (only
3144 bytes of which were actually retained) so after about 8 images the
allocations would exceed the limit and another GC would run (freeing up
the space used by those 8 large strings and 7 of the small ones along
with miscellaneous stuff).

The fix for the second issue was to check if the ICCBased colorspace
had already been 'resolved' (was a dicttype instead of a procedure that
was an indirect reference). Since the initial processing of the ICCBased
colorspace created a ReusableStreamDecode filter for the DataSource we
are able to skip all of this preparation logic.

EXPECTED DIFFERENCES.

None (except a speed increase). The regression I ran reduced from 9000 sec
to 8700 sec.

[src/gsalloc.c lib/pdf_draw.ps]

2005-10-04T19:24:49.000000Z Ray Johnston

Update change logs for 8.52 release.

[doc/Changes.htm doc/Details.htm]

2005-10-04T17:51:52.000000Z Ray Johnston

Tolerate 'null' as a single argument form of setcustomcolor. This is not
documented in TN5044, but older Adobe ProcSets apparently use this mode.
Fixes 'misc/cnurse.ps' of the smoke test used prior to release.

[lib/gs_lev2.ps]

2005-10-04T06:30:02.000000Z Ray Johnston

Fix (some of) the gcc compiler warnings (at least the really easy ones).

[src/gsiorom.c src/zfcmap.c src/zdps1.c src/ztrans.c src/genht.c src/zdevice2.c]

2005-10-04T01:07:20.000000Z Ray Johnston

Commit updates for 8.52 release -- documentation dates and GS_PRODUCT

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

2005-10-01T04:40:18.000000Z Dan Coby

Fix for 688316 SeparationOrder device parameter causes "/undefined in
--get--".

DETAILS:

The fix for 688192 created a problem with the handling of the
SeparationOrder device parameter.  That fix changed when device parameter
values were updated into the device structure.  This caused a problem
when checking the colorant names for the SeparationOrder parameter.

[src/gdevdevn.c src/gdevdevn.h]

2005-09-30T19:11:23.000000Z Ray Johnston

Add missing documentation for lib/PDFX_def.ps.

[doc/Psfiles.htm]

2005-09-29T18:35:18.000000Z leonardo

Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters (continued 3).

DETAILS :

The first patch for the subject used an incompatible type for
representation of HSamples, VSamples in the intermediate parameter list.
It caused another compiler dependent effect when choosing DCT parameters.

Also changed the dominatrion factor to pass color spaces of Altona-Testsuite_p2_S_x3.pdf
as RGB-like ones.

EXPECTED DIFFERENCES :

None with Windows/MSVC2005.
On Linux may fix more 2005-09-23 regressions, which left on 2005-09-29.

[src/gdevpsdi.c]

2005-09-29T15:24:53.000000Z leonardo

PDF interpreter now processes ToUnicode CMaps when the target device is pdfwrite (continued).

DETAILS :

This minor fix removes an unintended debug printing.

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps]

2005-09-29T08:36:00.000000Z leonardo

Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters (continued 2).

DETAILS :

The first patch for the subject defined an incorrect condition for matrix diagonal domination.

In same time, the regression test tool detected differences on Linux, which are not appeared
while testing on Windows. We found out that Windows and Linux builds apply
different DCT encode parameters.

We guess that the reason is that the patched code accesses
the [2][3]th element of a [4][3] array. Such element doesn't exist theoretically,
so the effect may be compiler dependent (rather we're wonder what exactly does it access on Linux,
because [2][3] is still inside the array memory area).

So now we fix the incorrect condition and then will check regressions again.


EXPECTED DIFFERENCES :

None with Windows/MSVC2005.
May fix the 2005-09-23 regressions on Linux.

[src/gdevpsdi.c]

2005-09-28T04:33:27.000000Z Dan Coby

Fix for 688310 pdf open error in op_show_continue.

DETAILS:

This is another example of a file with a singular CTM while processing
text.  There already was some logic in pdf_ops.ps for handling this
sort of situation.  However it did not properly handle this case.  The
fix consists of extending the logic for handling singular CTMs.

[lib/pdf_ops.ps]

2005-09-26T08:20:56.000000Z leonardo

Fix (pdfwrite) : High level pattern handling was incomplete.

DETAILS :

Bug 688307 (the bug title is misleading).

gdev_pdf_fill_mas must not call gx_default_fill_mask with a pattern color,
which is dummy due to high level pattern handling.
Actually it's a missed code branch since high level pattern were implemented.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfb.c src/devs.mak]

2005-09-23T18:21:23.000000Z Ray Johnston

Change reporting of some noisy (irritating) Warnings generated from many
PDF files that don't strictly follow the spec. Bug 688229.

DETAILS:

The "fonts with Subtype = /TrueType" and "Embedded font uses undefined proc"
messages could occur MANY times in PDF files. I'm sure users will get the
point as well with this approach that only gives the warnings once at the
end of processing, with the list of offensive printed once. Particularly
for the TrueType font issue it might make it easier to figure out which
fonts are missing (and thus substituted) since each font is only listed
once and the list is sorted (which will collect font families together).

EXPTECTED DIFFERENCES.

None (execpt the gs-stderr log will now be shorter).

[lib/pdf_main.ps lib/pdf_font.ps]

2005-09-22T16:11:37.000000Z Ray Johnston

Fix handling of TrueType fonts with zero length name tables. Bug 688305
for customer 870.

DETAILS:

This worked with a very old gs_ttf.ps, but since we didn't have any such
files in our regression suite, whatever caused the regression is unknown.
Detecting zero length name tables and returning false is straightforward.

EXPECTED DIFFERENCES.

None (ran existing regression suite).

[lib/gs_ttf.ps]

2005-09-21T17:03:43.000000Z Ray Johnston

MSVC 6 cannot convert from int64 to double (not yet implemented error).
Truncate to int prior to conversion to float.

[src/gdevpsdi.c]

2005-09-21T03:24:16.000000Z Ray Johnston

Fix handling of EOD sequences when decoding CCITT data with EndOfBlock
false. Bug 688306 for customer 780.

DETAILS:

Although the PLRM implies that the CCITT EOD sequence(s) will not be present
when EndOfBlock is false (the default is 'true'), Adobe Acrobat will create
PostScript with EOD sequences after the CCITT even when EndOfBlock is false.

There was a comment in the CCITT decoder about this, but once 'rows_left'
went to zero, any EOD sequence was not consumed by the CCITTFaxDecode filter.

The fix checks for and consumes any trailing EOD sequence even when the
EndOfBlock parameter is false. IMHO, this is a really sloppy behaviour
by Adobe Acrobat since they seem to just copy the CCITT data from the input
PDF, but explicitly put EndOfBlock false even though the PDF did not have
the parameter to the filter (defaulting to EndOfBlock true).

EXPECTED DIFFERENCES:

None. Regression test OK.

[src/scfd.c]

2005-09-20T11:35:22.000000Z leonardo

Fix (pdfwrite) : Improve DCT compression quality with a hewristic choice of DCT encoding parameters.

DETAILS :

Bug 687174 "(pdfwrite) DCT compression quality problem".

It implements Raph's suggestion about choosing DCT parameters for 3-component images
depending on the image color space.
If color space looks like RGB, set ColorTransform to 1.
If color space looks like Lab, set ColorTransform to 0.
Otherwise set /HSamples [1 1 1 1] /VSamples [1 1 1 1].
See a motivation in the bug 687174.
See comments in code about details of the hewristic.

Minor change : pdf_setup_masked_image_converter called a memory allocator with
a wrong client name.

EXPECTED DIFFERENCES :

test.pdf

[src/gdevpdfd.c src/gdevpsdi.c src/devs.mak]

2005-09-19T14:12:33.000000Z leonardo

Fix: /SP pdfmark must synchronize the clipping path (continued).

DETAILS :

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

This improves the clipping path synchronization as SaGS suggested
(see the bug 688167 Comment #4).

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps]

2005-09-16T19:01:30.000000Z Ray Johnston

Fix for double 'endstream' in a Content stream. Now endstream terminates
the object the same way 'endobj' would. Bug 688303 for customer 670.

EXPECTED DIFFERENCES:

None (case did not exist in regression suite).

[lib/pdf_base.ps]

2005-09-16T06:17:34.000000Z Ray Johnston

Fix handling of paths so that 'cm' will affect pending path operations (fill
stroke or clip). Verified that with this patch we do as Acrobat Reader from
4 through 7 does. Bug 688299 for customer 870.

DETAILS:

The basics of using 'upath', then 'uappend' to capture, then replay the
path after the 'concat' done by 'cm' is straightforward, but since the path
may not be used, there may be coordinates that are WAY out-of-range after
an arbitrary 'cm' so we execute the 'uappend' inside a 'stopped' context.

EXPECTED DIFFERENCES:

None. I did a check of all PDF's in the regression suite -- none had
any differences.

[lib/pdf_draw.ps]

2005-09-16T04:03:01.000000Z Ray Johnston

Correct edit problem with previous commit (copy/paste didn't get totally
changed for src/gsiorom.c).

[doc/Develop.htm]

2005-09-16T03:59:44.000000Z Ray Johnston

Add missing documentation in Develop.htm and remove dead code commented out
with C++ style comments to eliminate regression test squawks.

[src/mkromfs.c doc/Develop.htm]

2005-09-14T07:13:51.000000Z Ray Johnston

Add a common case to an optimization check in the memflip function.

[src/gsutil.c]

2005-09-14T07:09:50.000000Z Ray Johnston

Prevent accessing past end of estack block which could occur if screen
enum was not in the current estack block.

EXPECTED DIFFERENCES.

None. (this was only encountered in rare circumstances).

[src/zht.c]

2005-09-12T11:52:33.000000Z leonardo

ps2write : Implementing a generation of PDF/X-3 (continued).

DETAILS :

This change improves the documentation.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm]

2005-09-12T11:34:50.000000Z leonardo

ps2write : Implementing a generation of PDF/X-3.

DETAILS :

This implements the new feature, which is being coontrolled
with a new command line option PDFX, and a new pdfwrite device paramewter with same name.

1. A documentation change, which explains the new feature.
2. A Postscript code change : the DeviceRGB color space substitution, a special handling of /PS pdfmark.
3. A new sample file gs/lib/PDFX_def.ps with default PDF/X-3 definitions.
4. A C code change : force CompatibilityLevel 1.3, force embedding all fonts,
   skip halftone phases and transfer functions, write TrimBox.

EXPECTED DIFFERENCES :

None.

[lib/gs_devcs.ps src/gdevpdfx.h lib/PDFX_def.ps src/gdevpdfp.c src/gdevpdf.c doc/Develop.htm doc/Ps2pdf.htm src/gdevpdtf.c src/gdevpdfg.c src/gdevpdfb.h lib/gs_pdfwr.ps]

2005-09-08T17:32:40.000000Z leonardo

Fix (ps2write) : Suppress floating point number format in pdfmark operands.

DETAILS :

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

An unobvious point in this bug was to find that the coversion happens in
Postscript code of the pdfmark handler rather than in C code of the PDF writer.

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps]

2005-09-07T20:43:36.000000Z leonardo

Fix (ps2write) : Adjust the graphic state before executing a Form XObject.

DETAILS :

Bug 688293 "opdfread: Wrong graphics state when painting a Form XObject".
Patch from SaGS (see Bug 688293).

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-09-07T18:08:40.000000Z Ray Johnston

Change to accept PDF with names that mis-use the '#" escape character when
characters following the # are not hex (AR 7 does this). Bug 688297.

EXPECTED DIFFERENCES:

none.

[lib/pdf_base.ps]

2005-09-06T22:21:14.000000Z leonardo

Fix (pdfwrite) : Handling transparency as a high level objects, part 12 (fix 2).

DETAILS :

The old code wrote a scratch data for the key /G of a soft mask dictionary,
because the referent was freed earlier. Debugged with -Z?$@ SoftMaskDict.pdf .

EXPECTED DIFFERENCES :

None.

[src/gdevpdft.c]

2005-09-06T20:04:28.000000Z leonardo

Fix (ps2write) : The vector device virtual function dorect was not clipped by page.

DETAILS :

Bug 688279 "ps2write : maybe an incorrect sbstack bottom condition.".

This change fixes a minor problem, which appears in ps2write only.
Doing it almost for a clarity of the code.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-09-06T17:18:43.000000Z leonardo

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

DETAILS :

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

This change relates to pdfmark BP, EP, SP and PS.

1. Delay the object ID assignation untill the stream accumulation is completed.
2. Drop redundant equal objects, substituting references to an old one
   (Equal BP...EP objects appear when BP...EP portion is executed with _same_ graphic state).
3. Delay the storing in the named resource dictionary untill the stream accumulation is completed
   and redundant object is substituted.
4. gx_device_pdf::objname stores the last name for (3).
   It is being saved and restored in the substream stack.
5. The memory descriptor of gx_devoce_pdf is enhanced with objname,
   which is a pointer to string.
6. gsstruct.h adds another memory descriptor macro for (4).
7. Forward references mentioned in the bug 687560 are not supported and cause "undefined".

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c src/gdevpdfx.h src/gdevpdf.c src/gsstruct.h src/gdevpdti.c src/gdevpdfb.h]

2005-09-06T16:22:15.000000Z leonardo

Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device (continued).

DETAILS :

The last patch for the subject appears incomplete.
This one adds macros for parameter strings for pointer enumeration.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c src/gsstruct.h]

2005-09-06T13:47:10.000000Z leonardo

Fix (ps2write) : pdf_substitute_resource was misspelled.

DETAILS :

This a cosmetic syntaxical change.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdft.c src/gdevpdfu.c src/gdevpdfg.c src/gdevpdfj.c]

2005-09-05T14:18:27.000000Z leonardo

ps2write : Compact the output file.

DETAILS :

1. Strip whitespaces and comments when writing procsets to the output file.
2. A new device parameter CompressEntireFile allows to apply LZWEncode
   either to the procset or to entire file.
3. When HaveTrueTypes is false, the related part of the procset is being skipped

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h doc/Ps2ps2.htm src/gdevpdfp.c src/gdevpdf.c src/gdevpdfu.c src/gdevpdfb.h]

2005-09-05T14:18:27.000000Z leonardo

Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device.

DETAILS :

We occasionally detected that gdev_pdf_put_params wrongly handled the OPDFReadProcsetPath parameter :
the old code modifies the next field after gx_device_pdf::OPDFReadProcsetPath.
It happens because c_param_write assumes the parameter type is gs_param_string
(and doesn't check it neither at the compile time, nor at runtime),
but the actual field type is gs_string, which is smaller in 4 bytes.

When we fix the type of gx_device_pdf::OPDFReadProcsetPath,
a problem appears in the garbager descriptor : a warning about a type cast appears.
Analyzing it so far we found that in this case the garbager may relocate "persistent" parameter string,
which is not allocated in the heap.

For fixing the latter we define a new garbager method igc_reloc_param_string
and few accessors to it, and use them in the gx_device_pdf memory descriptor.
We choose this way because we know that other devices need same method for separation names.

This patch consists of 2 parts :

1. The enhancement for the garbager, which also moves the definition of gs_param_string
   to the scope visible the garbager. This part modifies the files igc.c, igcstr.c, gsparam.h,
   gsstruct.h, gstypes.h, igcstr.h

2. The improvement for the pdfwrite device, which modifies other files :
   gdevpdfb.h, gdevpdfx.h, gdevpdf.c, gdevpdfu.c .

Other devices may need a revision.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-09-05T13:58:55.000000Z leonardo

Fix (garbager) : Provide a method for relocating a parameter string and use it in the pdfwrite device.

DETAILS :

We occasionally detected that gdev_pdf_put_params wrongly handled the OPDFReadProcsetPath parameter :
the old code modifies the next field after gx_device_pdf::OPDFReadProcsetPath.
It happens because c_param_write assumes the parameter type is gs_param_string
(and doesn't check it neither at the compile time, nor at runtime),
but the actual field type is gs_string, which is smaller in 4 bytes.

When we fix the type of gx_device_pdf::OPDFReadProcsetPath,
a problem appears in the garbager descriptor : a warning about a type cast appears.
Analyzing it so far we found that in this case the garbager may relocate "persistent" parameter string,
which is not allocated in the heap.

For fixing the latter we define a new garbager method igc_reloc_param_string
and few accessors to it, and use them in the gx_device_pdf memory descriptor.
We choose this way because we know that other devices need same method for separation names.

This patch consists of 2 parts :

1. The enhancement for the garbager, which also moves the definition of gs_param_string
   to the scope visible the garbager. This part modifies the files igc.c, igcstr.c, gsparam.h,
   gsstruct.h, gstypes.h, igcstr.h

2. The improvement for the pdfwrite device, which modifies other files :
   gdevpdfb.h, gdevpdfx.h, gdevpdf.c, gdevpdfu.c .

Other devices may need a revision.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gsparam.h src/gdevpdf.c src/igcstr.h src/igc.c src/gstypes.h src/gsstruct.h src/gdevpdfu.c src/gdevpdfb.h src/igcstr.c]

2005-09-04T20:42:53.000000Z leonardo

Type 1 hinter : Improve the criterion for stem recognition.

DETAILS :

Bug 687727 "Type 1 hinter : A horizontal line condition maybe too strong".

Patch from Igor Melichev.

1. Many fonts, including URW TimesRoman, needs to apply alignemnt zones
to upper or lower corners of a glyph. An example is '1' in TimesRoman.
This patch detect upper and lower corners as local extremes by Y,
and pass them to t1_hinter__find_zone.

2. After the change (1) we detected, that the document comparefiles/LD.pdf
renders much worse. Analyzing it so far, we detected that the top of the left vertical arm
of 'm' applies same hint as horizontal arc stems. To avoid this,
this patch computes a "stem boundary quality", which is the tangent of the stem boundary,
and use it as a priority for choosing a pole for stem alignment
(the lower tangent, the higher priority).

After the change (2) we detected that most Genoa test render differently.
The reason appears that the old code erroneusely aligned a diagonal pole
of the character 'm', which is placed between the right vertical arm and
the nearest upper arc stem. This patch fixes that due to other (right) poles
get a better priority, but to our apologies this progression causes
numerous differences in rasters.

EXPECTED DIFFERENCES :

Almost ALL FILES with a text RENDER DIFFERENTLY.

"normal" :

N "000040cf.000_60.pdf"
N "001-01.ps"
N "001-13.ps"
N "001-25.ps"
N "002-09.ps"
N "002-21.ps"
N "002-33.ps"
N "012-01.ps"
N "012-05.ps"
N "012-09.ps"
N "012-13.ps"
N "013-01.ps"
N "013-05.ps"
N "013-09.ps"
N "013-13.ps"
N "014-01.ps"
N "014-05.ps"
N "014-09.ps"
N "014-13.ps"
N "015-01.ps"
N "015-05.ps"
N "015-09.ps"
N "016-01.ps"
N "017-01.ps"
N "018-01.ps"
N "01_001.pdf"
N "020-01.ps"
N "023-01.ps"
N "027-01.ps"
N "027-05.ps"
N "027-09.ps"
N "028-01.ps"
N "031-01.ps"
N "031-05.ps"
N "032-01.ps"
N "032-07.ps"
N "033-01.ps"
N "033-52-5873.pdf"
N "034-01.ps"
N "034-10.ps"
N "035-01.ps"
N "035-07.ps"
N "036-01.ps"
N "038-01.ps"
N "039-01.ps"
N "040-01.ps"
N "045-01.ps"
N "055-01.ps"
N "083-01.ps"
N "083-05.ps"
N "083-09.ps"
N "083-13.ps"
N "084-01.ps"
N "091-01.ps"
N "093-01.ps"
N "094-01.ps"
N "096-01.ps"
N "102-01.ps"
N "103-01.ps"
N "104-01.ps"
N "109-01.ps"
N "110-01.ps"
N "113-01.ps"
N "118-01.ps"
N "119-01.ps"
N "119-10.ps"
N "119-16.ps"
N "119-23.ps"
N "119-35.ps"
N "119-41.ps"
N "119-47.ps"
N "120-01.ps"
N "123-01.ps"
N "123-05.ps"
N "123-09.ps"
N "124-01.ps"
N "129-01.ps"
N "136-01.ps"
N "141-01.ps"
N "148-01.ps"
N "148-05.ps"
N "148-11.ps"
N "148-16.ps"
N "149-01.ps"
N "149-05.ps"
N "150-01.ps"
N "154-01.ps"
N "158-01.ps"
N "159.pdf"
N "162-01.ps"
N "165-01.ps"
N "166-01.ps"
N "169-01.ps"
N "169-05.ps"
N "169-09.ps"
N "169-13.ps"
N "170-01.ps"
N "175-01.ps"
N "176-01.ps"
N "181-01.ps"
N "184-01.ps"
N "192-01.ps"
N "194-01.ps"
N "200-01.ps"
N "205-01.ps"
N "205-05.ps"
N "205-09.ps"
N "205-13.ps"
N "206-01.ps"
N "212-01.ps"
N "213-01.ps"
N "214-01.ps"
N "215-01.ps"
N "219-01.ps"
N "220-01.ps"
N "220-07.ps"
N "222-01.ps"
N "222-05.ps"
N "222-09.ps"
N "222-13.ps"
N "223-01.ps"
N "226-01.ps"
N "227-01.ps"
N "231-01.ps"
N "233-01.ps"
N "237-01.ps"
N "238-01.ps"
N "244-01.ps"
N "245-01.ps"
N "245-07.ps"
N "245-13.ps"
N "245-17.ps"
N "246-01.ps"
N "250-01.ps"
N "251-01.ps"
N "255-01.ps"
N "257-01.ps"
N "258-01.ps"
N "260-01.ps"
N "263-01.ps"
N "264-01.ps"
N "268-03.ps"
N "268-04.ps"
N "268-05.ps"
N "268-06.ps"
N "269-01.ps"
N "270-01.ps"
N "272-01.ps"
N "276-01.ps"
N "281-01.ps"
N "282-01.ps"
N "289-01.ps"
N "296-01.ps"
N "297-01.ps"
N "298-01.ps"
N "298-05.ps"
N "298-09.ps"
N "299-01.ps"
N "303-01.ps"
N "304-01.ps"
N "307-01.ps"
N "307-07.ps"
N "307-13.ps"
N "308-04.ps"
N "310-04.ps"
N "311-03.ps"
N "313-01.ps"
N "316-07.ps"
N "320-01.ps"
N "321-01.ps"
N "321-05.ps"
N "321-09.ps"
N "325-01.ps"
N "327-01.ps"
N "330-01.ps"
N "334-01.ps"
N "335-01.ps"
N "336-01.ps"
N "401-01.ps"
N "405-01.ps"
N "409-01.ps"
N "415-01.ps"
N "421-01.ps"
N "430-01.ps"
N "442-01.ps"
N "450-01.ps"
N "455690.pdf"
N "460-01.ps"
N "463-01.ps"
N "464-01-fixed.ps"
N "468-01-fixed.ps"
N "476-01-fixed.ps"
N "476-01.ps"
N "478-01.ps"
N "483-05-fixed.ps"
N "541.pdf"
N "541_623.pdf"
N "687572.pdf"
N "86554321.pdf"
N "acrobat.pdf"
N "adesso1.pdf"
N "adesso3.pdf"
N "adesso7.pdf"
N "ADOBE1-4.pdf"
N "AdobeLic.pdf"
N "alphabet.ps"
N "Altona-Testsuite_p2_S_x3.pdf"
N "Altona.Page_3.2002-09-27.pdf"
N "Altona_Measure_1v1.pdf"
N "Altona_Technical_1v1_x3.pdf"
N "Altona_Visual_bb_1v1_x3.pdf"
N "Altona_Visual_sb_1v1_x3.pdf"
N "besttest.pdf"
N "bla.ps"
N "brochurep1.pdf"
N "bug-gstest.pdf"
N "Bug687044.ps"
N "Bug687111.ps"
N "Bug687311.pdf"
N "Bug687546.ps"
N "Bug687603.ps"
N "Bug687672.pdf"
N "Bug687698.ps"
N "Bug687724.pdf"
N "Bug687828.pdf"
N "Bug687840.pdf"
N "Bug687845.ps"
N "bulletin.pdf"
N "chartab.pdf"
N "chess.ps"
N "Dave_Barry.pdf"
N "Fixed_Original.pdf"
N "fonts.pdf"
N "fonttest.pdf"
N "H00216q.pdf"
N "HeiseiMinStd.pdf"
N "japan.ps"
N "js.pdf"
N "kazmir.pdf"
N "keyboard.pdf"
N "KozukaB-ILEmbed.pdf"
N "laballade.pdf"
N "LD.pdf"
N "MagicEye.pdf"
N "ngnews.pdf"
N "ngnews1.pdf"
N "NIL_0003.pdf"
N "Openhuis_pdf_zw.pdf"
N "Original.pdf"
N "pdfopt_bug.pdf"
N "pdftops.pdf"
N "PixelisAd.pdf"
N "prfmm.pdf"
N "prob.pdf"
N "pstopdf.pdf"
N "pstopdfO3.pdf"
N "PT.ps"
N "QA_Inv.pdf"
N "RealCities.pdf"
N "RodinCIDEmbed.pdf"
N "S2_Digitalproof-Forum_x3k.pdf"
N "smdf.90441.102.pdf"
N "Svd.pdf"
N "test-hyperref.pdf"
N "test.pdf"
N "TextRize.pdf"
N "time1.pdf"
N "tpc2.ps"
N "Type3stringwidth.ps"
N "type42_glyph_index.ps"
N "waterfal.ps"
N "womanface.pdf"
N "xgfddg.pdf"



pdfwrite :

P "0.pdf"
P "000040cf.000_60.pdf"
P "01_001.pdf"
P "001-01.ps"
P "001-13.ps"
P "001-25.ps"
P "002-09.ps"
P "002-21.ps"
P "002-33.ps"
P "012-01.ps"
P "012-05.ps"
P "012-09.ps"
P "012-13.ps"
P "013-01.ps"
P "013-05.ps"
P "013-09.ps"
P "013-13.ps"
P "014-01.ps"
P "014-05.ps"
P "014-09.ps"
P "014-13.ps"
P "015-01.ps"
P "015-05.ps"
P "015-09.ps"
P "016-01.ps"
P "017-01.ps"
P "018-01.ps"
P "01_001.pdf"
P "020-01.ps"
P "023-01.ps"
P "027-01.ps"
P "027-05.ps"
P "027-09.ps"
P "028-01.ps"
P "031-01.ps"
P "031-05.ps"
P "032-01.ps"
P "032-07.ps"
P "033-01.ps"
P "033-52-5873.pdf"
P "034-01.ps"
P "034-10.ps"
P "035-01.ps"
P "035-07.ps"
P "036-01.ps"
P "038-01.ps"
P "039-01.ps"
P "040-01.ps"
P "045-01.ps"
P "055-01.ps"
P "083-01.ps"
P "083-05.ps"
P "083-09.ps"
P "083-13.ps"
P "084-01.ps"
P "091-01.ps"
P "093-01.ps"
P "094-01.ps"
P "096-01.ps"
P "102-01.ps"
P "103-01.ps"
P "104-01.ps"
P "109-01.ps"
P "110-01.ps"
P "113-01.ps"
P "118-01.ps"
P "119-01.ps"
P "119-10.ps"
P "119-16.ps"
P "119-23.ps"
P "119-35.ps"
P "119-41.ps"
P "119-47.ps"
P "120-01.ps"
P "123-01.ps"
P "123-05.ps"
P "123-09.ps"
P "124-01.ps"
P "129-01.ps"
P "136-01.ps"
P "141-01.ps"
P "148-01.ps"
P "148-05.ps"
P "148-11.ps"
P "148-16.ps"
P "149-01.ps"
P "149-05.ps"
P "150-01.ps"
P "154-01.ps"
P "158-01.ps"
P "159.pdf"
P "162-01.ps"
P "165-01.ps"
P "166-01.ps"
P "169-01.ps"
P "169-05.ps"
P "169-09.ps"
P "169-13.ps"
P "170-01.ps"
P "175-01.ps"
P "176-01.ps"
P "181-01.ps"
P "184-01.ps"
P "192-01.ps"
P "194-01.ps"
P "200-01.ps"
P "205-01.ps"
P "205-05.ps"
P "205-09.ps"
P "205-13.ps"
P "206-01.ps"
P "212-01.ps"
P "213-01.ps"
P "214-01.ps"
P "215-01.ps"
P "219-01.ps"
P "220-01.ps"
P "220-07.ps"
P "222-01.ps"
P "222-05.ps"
P "222-09.ps"
P "222-13.ps"
P "223-01.ps"
P "226-01.ps"
P "227-01.ps"
P "231-01.ps"
P "233-01.ps"
P "237-01.ps"
P "238-01.ps"
P "244-01.ps"
P "245-01.ps"
P "245-07.ps"
P "245-13.ps"
P "245-17.ps"
P "246-01.ps"
P "250-01.ps"
P "251-01.ps"
P "255-01.ps"
P "257-01.ps"
P "258-01.ps"
P "260-01.ps"
P "263-01.ps"
P "264-01.ps"
P "268-03.ps"
P "268-04.ps"
P "268-05.ps"
P "268-06.ps"
P "269-01.ps"
P "270-01.ps"
P "272-01.ps"
P "276-01.ps"
P "281-01.ps"
P "282-01.ps"
P "289-01.ps"
P "296-01.ps"
P "297-01.ps"
P "298-01.ps"
P "298-05.ps"
P "298-09.ps"
P "299-01.ps"
P "303-01.ps"
P "304-01.ps"
P "307-01.ps"
P "307-07.ps"
P "307-13.ps"
P "308-04.ps"
P "310-04.ps"
P "311-03.ps"
P "313-01.ps"
P "316-07.ps"
P "320-01.ps"
P "321-01.ps"
P "321-05.ps"
P "321-09.ps"
P "325-01.ps"
P "327-01.ps"
P "330-01.ps"
P "334-01.ps"
P "335-01.ps"
P "336-01.ps"
P "401-01.ps"
P "405-01.ps"
P "409-01.ps"
P "415-01.ps"
P "421-01.ps"
P "430-01.ps"
P "442-01.ps"
P "450-01.ps"
P "455690.pdf"
P "460-01.ps"
P "463-01.ps"
P "464-01-fixed.ps"
P "468-01-fixed.ps"
P "476-01-fixed.ps"
P "476-01.ps"
P "478-01.ps"
P "483-05-fixed.ps"
P "541.pdf"
P "541_623.pdf"
P "687572.pdf"
P "86554321.pdf"
P "acrobat.pdf"
P "adesso1.pdf"
P "adesso3.pdf"
P "adesso7.pdf"
P "adesso8.pdf"
P "ADOBE1-4.pdf"
P "alphabet.ps"
P "Altona-Testsuite_p2_S_x3.pdf"
P "Altona.Page_3.2002-09-27.pdf"
P "Altona_Measure_1v1.pdf"
P "Altona_Technical_1v1_x3.pdf"
P "Altona_Visual_bb_1v1_x3.pdf"
P "Altona_Visual_sb_1v1_x3.pdf"
P "annots.pdf"
P "besttest.pdf"
P "bla.ps"
P "brochurep1.pdf"
P "bug-gstest.pdf"
P "Bug687044.ps"
P "Bug687111.ps"
P "Bug687311.pdf"
P "Bug687546.ps"
P "Bug687603.ps"
P "Bug687672.pdf"
P "Bug687698.ps"
P "Bug687724.pdf"
P "Bug687828.pdf"
P "Bug687840.pdf"
P "Bug687845.ps"
P "bulletin.pdf"
P "chartab.pdf"
P "chess.ps"
P "Dave_Barry.pdf"
P "Fixed_Original.pdf"
P "fonts.pdf"
P "fonttest.pdf"
P "H00216q.pdf"
P "HeiseiMinStd.pdf"
P "japan.ps"
P "js.pdf"
P "kazmir.pdf"
P "keyboard.pdf"
P "KozukaB-ILEmbed.pdf"
P "LD.pdf"
P "MagicEye.pdf"
P "ngnews.pdf"
P "ngnews1.pdf"
P "NIL_0003.pdf"
P "Openhuis_pdf_zw.pdf"
P "Original.pdf"
P "p2b-100.pdf"
P "pdfopt_bug.pdf"
P "pdftops.pdf"
P "PixelisAd.pdf"
P "prfmm.pdf"
P "prob.pdf"
P "pstopdf.pdf"
P "pstopdfO3.pdf"
P "QA_Inv.pdf"
P "RealCities.pdf"
P "RodinCIDEmbed.pdf"
P "S2_Digitalproof-Forum_x3k.pdf"
P "smdf.90441.102.pdf"
P "Svd.pdf"
P "t.pdf"
P "test-hyperref.pdf"
P "test.pdf"
P "test_multipage_prob.pdf"
P "TextRize.pdf"
P "time1.pdf"
P "tpc2.ps"
P "type42_glyph_index.ps"
P "waterfal.ps"
P "womanface.pdf"
P "xgfddg.pdf"

[src/gxhintn.c src/gxhintn.h]

2005-09-04T05:44:43.000000Z Dan Coby

Fix for 688275 Overprint problems in Display driver - Gs 8.50 and Gs 8.51.

DETAILS:

The cause of the problem was that gx_default_get_bits_rectangle did not
properly handle a situation in which GX_RETURN_POINTER was not specified
for a get_bits operation.  The overprint logic is one of the few situations
in which this option is not specified.  The display device is one of the
few situations that uses the default get_bits logic. This is the second
problem that has been found in this combination.

[src/gdevdsp.c src/gdevdgbr.c]

2005-09-02T05:54:03.000000Z leonardo

Fix (pdfwrite) : Handling transparency as a high level objects, part 11 (fix 1).

DETAILS :

The ps2write device was broken with recent patches. Fixing it now.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h]

2005-09-01T22:04:37.000000Z stefan

Formatting cleanup for the printing of the Font samples.

Fixes bug 688281
Thanks to: SaGS5495@hotmail.com

[lib/prfont.ps]

2005-09-01T00:05:07.000000Z Alex Cherepanov

Fix incorrect detection of the end of input data during processing of
(next_code == lzw_decode_max) branch in s_LZWD_process(). Return the error
status only when there's not enough data in the buffer and the buffer
cannot be refilled.
Fix bug 688287

[src/slzwd.c]

2005-08-31T18:34:46.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 10, final.

DETAILS :

This completes the fix for the bug 687168
"(pdfwrite) Transparency as a high level object"

It switches on the new code by changing the default value for the HaveTransparency option.

EXPECTED DIFFERENCES :

pdfwrite :

ai2.pdf
dina3_watermark.pdf
SoftMaskGroup.pdf

[src/gdevpdfb.h]

2005-08-31T18:31:01.000000Z Igor Melichev

pdfwrite : Upgrading the default CompatibilityLevel to 1.4 .
THIS IS INCOMPATIBLE CHANGE.

We believe that CompatibilityLevel=1.3 is now obsolete,
because most viewers can handle PDF 1.4 .
If an user needs to create a document for older viewers,
he should specify CompatibilityLevel explicitly.
Note that PDFSETTINGS parameter lists have been upgraded also.

EXPECTED DIFFERENCES :

None.

[lib/ps2pdf lib/ps2pdf.cmd src/gdevpdf.c lib/ps2pdf.bat doc/Ps2pdf.htm lib/gs_pdfwr.ps]

2005-08-31T15:29:40.000000Z Ray Johnston

Update map_cmyk_color function to modern version (was old style). This
should complete jpegcmyk for correct behaviour.

[src/gdevjpeg.c]

2005-08-31T14:31:27.000000Z Ray Johnston

Add jpegcmyk device (module missed in previous commit).

[src/gdevjpeg.c]

2005-08-31T12:35:24.000000Z Igor Melichev

Documenting the new pdfwrite device paramentr HaveTransparency.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm]

2005-08-31T11:18:48.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 9.

DETAILS :

This is a continuation of the fix the bug 687168
"(pdfwrite) Transparency as a high level object"

It simplifies the logic of the HaveTransparency flag.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfp.c src/gdevpdft.c]

2005-08-31T11:07:25.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 8.

DETAILS :

This is a continuation of the fix the bug 687168
"(pdfwrite) Transparency as a high level object"

It applies pdf_substitue_resource to transparency-related objects.

EXPECTED DIFFERENCES :

None.

[src/gdevpdft.c]

2005-08-31T11:02:56.000000Z Igor Melichev

Fix (pdfwrite) : A code restructurisation : factor out pdf_substitue_resource.

DETAILS :

This change is algorithmicly equivalent.
pdf_substitue_resource is a new function, which replaces redundant code fragments.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfu.c src/gdevpdfg.c src/gdevpdfj.c]

2005-08-31T07:40:52.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 7.

DETAILS :

This is a continuation of the fix the bug 687168
"(pdfwrite) Transparency as a high level object"

1. Restructurize the code in gdevpdft.c .
2. Provide a delayed obgect ID assignation in gdevpdft.c .
3. gdevpdfb.h, gdevpdfx.h slightly changed for (2).

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdft.c src/gdevpdti.c src/gdevpdfb.h]

2005-08-31T05:59:58.000000Z Ray Johnston

Remove inadvertent commit that included png48 device.

[src/msvc32.mak]

2005-08-31T05:52:32.000000Z Ray Johnston

Add jpegcmyk device.

[src/bcwin32.mak src/openvms.mak src/macosx.mak src/watcw32.mak src/unix-gcc.mak src/msvc32.mak src/unixansi.mak src/macos-mcp.mak src/devs.mak src/os2.mak]

2005-08-31T03:41:24.000000Z Dan Coby

Fix for 688252 Signal 11 in set_color_ht_le_4 on AMD64.  The fix comes
from Alex Cherepanov.  Add a cast for force signed math when working
with a signed and unsigned value.

[src/gxcht.c]

2005-08-30T23:26:49.000000Z Alex Cherepanov

Encode the indication that the EPS file has been cropped into
EPSBoundingBoxState and suppres subsequent messages about cropping the file.
The warning is false when BoundingBox preceeds HiResBoundingBox and BoundingBox
causes cropping but HiResBoundingBox doesn't.
Fix bug 688062

[lib/gs_epsf.ps]

2005-08-30T23:19:01.000000Z Ray Johnston

Fix handling of zero length input files so that .peekstring does not give
a rangecheck error. Bug 688199.

DETAILS:

Following Russell Lang's suggestion, the zpeekstring function appeared to
have been (at one time) designed so that EOFC returned an empty string, but
the check for requested len > bsize had priority, and when the file was
closed, the 'bsize' was reset to 0. I removed the "HACK" check to after the
check for status == EOFC.

[src/zfileio.c]

2005-08-30T19:12:19.000000Z Ray Johnston

Fix for large 'loca' table counts in TrueType fonts causing stackoverflow.
Bug 688277 for customer 870.

DETAILS:

While the MaxOpStack userparam (default value 50000 in gs_init.ps) could
work around this problem, a cleaner and more efficient solution is to
create the array for the 'loca' values, then fill it.

[lib/gs_ttf.ps]

2005-08-30T17:32:13.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 6.

DETAILS :

This is a continuation of the fix the bug 687168
"(pdfwrite) Transparency as a high level object"

The last patch was commited with errors.
This patch fixes that.

EXPECTED DIFFERENCES :

None.

[src/ztrans.c]

2005-08-30T17:08:55.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 5.

DETAILS :

This is a continuation of the fix the bug 687168
"(pdfwrite) Transparency as a high level object"

The last patch was commited with errors.
This patch fixes that.

EXPECTED DIFFERENCES :

None.

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

2005-08-30T16:49:34.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 4.

DETAILS :

This is a continuation of the fix the bug 687168
"(pdfwrite) Transparency as a high level object"

This patch debugs soft mask groups.

1. The pdf14 device appears to use soft mask Background converted into DeviceGray.
We believe it is incorrect, but we don't want to fix it now.
To provide the correct data for high level devices we added a new field
GrayBackground, which keeps the Background color converted into DeviceGray.
Background now keeps the original Background, specified in the blend color space.

2. Do not use gsave-grestore when creating a soft mask with .begintransparencygroup,
because high level devices need to modify the graphic state with storing the sift mask ID.
The new code uses currentcolorspace-setcolorspace instead gsave-grestore.

EXPECTED DIFFERENCES :

None.

[src/int.mak src/ztrans.c src/gstrans.c src/gstparam.h src/gdevpdft.c lib/pdf_draw.ps src/gdevp14.c]

2005-08-30T13:01:03.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 3.

DETAILS :

This is a continuation of the fix the bug 687168
"(pdfwrite) Transparency as a high level object"

This patch completes the graphic state synchronization.
A new field soft_mask_id is added to gs_imager_state.
High level devices use it for storing an ID of the current soft mask.
Currently it doesn't affect low level devices.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gxistate.h src/gstrans.c src/gdevpdft.c src/gdevpdfg.c]

2005-08-30T10:49:34.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects, part 2.

DETAILS :

This is a continuation of the fix the bug 687168
"(pdfwrite) Transparency as a high level object"

This patch provides an accumulation of a transparency mask group as a PDF command stream,
a creation of SMask dictionaries and a synchronization of the graphic state with them.

The graphic state synchronization is incomplete due to
insufficient data supplied by the graphics library
when executong a grestore. It will be fixed later.

pdf_substream_save_s::soft_mask_dict is added to handle nested mask groups.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gsstruct.h src/gdevpdft.c src/gdevpdti.c src/gdevpdfb.h]

2005-08-30T09:06:01.000000Z Igor Melichev

Fix (device intervace, PDF interpreter) : High level devices need to know whether the mask is an image or a group.

DETAILS :

This is the fourth preparation for fixing the bug 687168
"(pdfwrite) Transparency as a high level object"

A high level device needs to know whether a transparency mask is
a group or an image. To provide this data we split the operator
.begintransparencymask into .begintransparencymaskgroup and
.begintransparencymaskimage, which should be invoked in appropriate cases.
The structure gs_pdf14trans_params_s passes a new flag mask_is_image.

EXPECTED DIFFERENCES :

None.

[src/ztrans.c src/gstrans.c lib/pdf_draw.ps src/gstrans.h doc/Language.htm lib/pdf_ops.ps]

2005-08-30T06:38:44.000000Z Igor Melichev

Fix : Cygwin/gcc warnings.

DETAILS :

This fixes some Cygwin/gcc warnings and improves few comments.

EXPECTED DIFFERENCES :

None.

[src/gdevpsd.c src/gdevpdf.c src/gdevtsep.c src/gdevdevn.c src/gsistate.c src/gxpcopy.c src/zmedia2.c]

2005-08-29T19:59:23.000000Z Ray Johnston

Invalid xref was not detected causing some objects to be defined as 'null'
which could cause 'typecheck' or other errors. Bug 688285 for customer #870.

DETAILS:

The xref subsection count was one too small, so there was one xref entry
that was being interpreted as a new subsection. Detect the trailing 'n'
garbage (any non-whitespace) and signal an error so that the 'rebuild'
logic can recover the correct xref.

EXPECTED DIFFERENCES.

none (tested all pdf files in comparefiles).

[lib/pdf_main.ps]

2005-08-29T18:21:57.000000Z Igor Melichev

Fix (pdfwrite) : Handling transparency as a high level objects.

DETAILS :

This is an initial commit for the high level handler to pdfwrite.
It fixes the bug 687168
"(pdfwrite) Transparency as a high level object"

It defines a new distiller parameter HaveTransparency.
When it is false (default), the behavior is equivalent to the old one -
the transparency is being converted into a plane image.

The value true only works with CompatibilityLevel>=1.4 .
In this case transparency is being written to output as high level objects.
The writtemn objects are not necesserily repear the structure of the
input document, because the PDF interpreter performs some simplifications,
which can't be recovered by the pdfwrite device.

The main conversion happens in gdevpdft.c . See comments in there.
Two new resource types are being added - resourceSoftMaskDict,
resourceGroup. Doing so to allow a further optimization
with merging duplicated objects of such types.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfp.c src/gdevpdf.c doc/Develop.htm src/gdevpdft.c src/gdevpdfu.c src/gdevpdfg.c src/gdevpdfb.h src/devs.mak src/gdevpdfi.c src/gdevpdfj.c src/gdevpdfg.h]

2005-08-29T18:12:34.000000Z Igor Melichev

Fix (PDF interpreter) : Provide a bbox for .begintransparencygroup (issue 2).

DETAILS :

This is the second attempt of the second preparation for fixing the bug 687168
"(pdfwrite) Transparency as a high level object"
The last patch about the bbox appear incorrect due to
the device transparency handler receives the image bbox data
when CTM is concatenated with the image matrix.

This patch almost restores the old code except
image bbox is changed from 0 0 0 0 to 0 0 1 1,
which is the right rectangle in the image coordinates.

EXPECTED DIFFERENCES :

None.

[lib/pdf_draw.ps]

2005-08-29T15:58:30.000000Z Igor Melichev

Fix: Validate the number of transparency Background components.

DETAILS :

The old code never checked whether a transparency Background has a proper number of components.
It could cause an indeterministic behavior with incorrect documents.

EXPECTED DIFFERENCES :

None.

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

2005-08-29T15:25:54.000000Z Igor Melichev

Fix (device interface): Provide an access for the number of transparency Background components for high level devices, part 2.

DETAILS :

This continues the third preparation for fixing the bug 687168
"(pdfwrite) Transparency as a high level object"

The last patch has a minor inaccuracy :
the field Background_components defined as bool.
It must be int.

EXPECTED DIFFERENCES :

None.

[src/gstparam.h src/gstrans.h]

2005-08-29T15:18:44.000000Z Igor Melichev

Fix (device interface): Provide an access for the number of transparency Background components for high level devices.

DETAILS :

This is a third preparation for fixing the bug 687168
"(pdfwrite) Transparency as a high level object"

This change is algorithmically equivalent.

The member has_Background is now replaced with Background_components,
which stores the number of Background components.
It is visible for devices when the create_compositor method
is called with PDF14_BEGIN_TRANS_GROUP.

The clist file format has been slightly changed :
the field Background_components is now written into a
separate byte, and unused Background components are being skipped.

EXPECTED DIFFERENCES :

None.

[src/ztrans.c src/gstrans.c src/gstparam.h src/gstrans.h src/gdevp14.c]

2005-08-29T14:05:06.000000Z Igor Melichev

Fix (PDF interpreter) : provide a bbox for .begintransparencygroup .

DETAILS :

This is a second preparation for fixing the bug 687168
"(pdfwrite) Transparency as a high level object"

The old code calls .begintransparencygroup with zero bbox
when processing a Type 3 image with SMask.
This patch computes the bbox from the image coordinates
in order to provide data for the high level transparency handler.

EXPECTED DIFFERENCES :

None.

[lib/pdf_draw.ps]

2005-08-29T12:51:57.000000Z Igor Melichev

Fix (pdfwrite) : Use DeviceGray when writing SMask image.

DETAILS :

This is a preparation for fixing the bug 687168
"(pdfwrite) Transparency as a high level object"

The old code tried to use DevicePixel while writing a SMask image.
Currently this branch never executes because the current code always converts
transparency to a plain image.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfb.h src/gdevpdfi.c]

2005-08-25T15:34:08.000000Z Ray Johnston

Change ResusableStreamDecode filter implementation to avoid using .bigstring
so that languagelevel 3 is not required for this filter. Patch thanks to
mat. Gheorghe Savulescu. Bug 688150.

DETAILS:

In general, running at Language Level 2 by using .setlanguagelevel is not
supported when using features that are part of LanguageLevel 3, such as
filters that are part of LL3, but this patch is simple and low risk so
I am adding it and closing the bug.

[lib/gs_frsd.ps]

2005-08-24T19:02:22.000000Z Ralph Giles

Partial support for a compressed %rom% iodevice. It is enabled by
adding romfs.dev to FEATURE_DEVS in the top-level Makefile.

This also includes a C commandline-utility 'mkromfs' that takes
a directory and creates a compressed image of it as a file. Currently
the %rom% iodevice in gsiorom.c reads this directly.

The compressed image is a list of paths with offset pointers,
each offset pointing to the beginning of a series of zlib-
compressed blocks comprising the file. This gets us pretty
good (typically 50% or better) compression of the support
files while still allowing relatively fast seek and random
access.

TODO:

1. Have mkromfs trace through the include directives in lib/
so that only those postscript files required by Ghostscript are
included, the same as geninit does now. Resources/ and fonts/
can still be included as-is.

2. Have mkromfs (or a separate tool) general a C file (or sequence
of them, so the data can be compiled directly into the Ghostscript
executable. And of course modify gsiorom.c to pull its data from
there instead of a literal file.

3. Integrate mkromfs into the build system and replace the existing
geninit code. Setting COMPILE_INITS=1 in the top-level Makefile
should automatically construct and compile in the compressed image
and enable the romfs FEATURE_DEV

4. Switch to a b-tree for the block pointer index, so that file
access remains fast if someone dumps in a huge number of Resources
or fonts. Right now it does a linear search, which is fast enough
for the current complement but will cause a problem as some point.

[src/lib.mak src/mkromfs.c src/gsiorom.c src/Makefile.in]

2005-08-24T17:04:21.000000Z Raph Levien

Cleanup of error message "printquit" calls in pf2afm, mostly to add
missing newlines. Thanks to Paul Vojta for the patch.

[lib/pf2afm.ps]

2005-08-24T17:03:48.000000Z Igor Melichev

Fix (the device interface) : High level devices need an access to a transparency transfer function object.

DETAILS :

It adds  "gs_function_t *transfer_function" to gs_pdf14trans_params_s and
enhances a garbager descriptor st_pdf14trans.

We think that such pointer is alvays have a correct stability,
because the transparency only comes from the PDF interpreter,
which doesn't create graphic states in the global memory.
Otherwise the function object must be global as well.
Unfortunately we don't have a validation mechanizm right now,
but likely it will appear with fixing the bug 688226.

EXPECTED DIFFERENCES :

None.

[src/gstrans.c src/gstparam.h src/gstrans.h src/gdevp14.c]

2005-08-23T19:26:47.000000Z Igor Melichev

Fix (pdfwrite) : Improve the logic of combining a text rotation with ViewingOrientation.

DETAILS :

Bug 687800 "%%ViewingOrientation not processed by pdfwrite".

We can't say that we perfectly understand what rules Adobe uses to combine them,
becaue the explanation in "Technical Note #5151
Version :Acrobat 6.0 Acrobat Distiller Parameters" page 50 is incomplete.
But with this change the result looks more compatible to Adobe.

EXPECTED DIFFERENCES :

"Bug687044.ps"
"Bug687603.ps"

[src/gdevpdf.c]

2005-08-23T17:34:29.000000Z Igor Melichev

Fix (Type 1 hinter) : Allow degenerate CTM by a rendering with no hinting.

DETAILS :

This is a fix for a part of the bug 688065
"incorrect handling of type 1 fonts at 0 0 scale",
which relates to "1 0 scale".
The case "0 0 scale" was fixed earlier.

With degenerate CTM the old code fails with 'rangecheck'
due to the hinter logics needs an inverse CTM.
However some documents set "1 0 scale" to compute text width.
The new code does render a text with degenerate CTM with no hinting.
We could implement an optimized algorithm for this with
a simple rendering of a line which is a projection of the glyph,
but we have no engineering resources for this optimization.
We believe that such optimisation isn't much useful.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c]

2005-08-23T12:58:45.000000Z Igor Melichev

Fix (pdfwrite and other vector devices) : A compatibility to Adobe when stroking with a degenerate CTM.

DETAILS :

Bug 687901 '"wrong operand type" error'.
See comment in code.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-08-23T11:26:26.000000Z Igor Melichev

Fix (pdfwrite and other vector devices) : Indeterministic result when stroking a path with a degenerate CTM.

DETAILS :

It fixes the indeterministic habavior with the test document of the
Bug 687901 '"wrong operand type" error',
but doesn't fix the bug.

EXPECTED DIFFERENCES :

None.

[src/gdevvec.c]

2005-08-22T21:30:58.000000Z Igor Melichev

Fix: /SP pdfmark must synchronize the clipping path.

DETAILS :

Bug 687558 "Wrong clipping path with /SP pdfmark".

This patch consists of 2 parts :

1. A hack for synchronizing the clipping path in 'pdfmark'.
We need to use a hack, because the implementation of 'pdfmark'
is based on the device method put_params, and
there is no regular way to pass the imager state or the clipping path through it.
The hack paints something outside the device bbox,
so that the painting doesn't appear in the output.

2. An improvement to the pdfwrite device,
which skips a stroking, if it appears entirely outside the clipping box.
That improvement appears some imperfect due to a compatibility
to the hack (1) - see comment in code. The imperfection is
the synchronization of a clipping path when a document strokes outside
the clipping box. We believe that such cases are rare,
so the imperfection isn't important.

A progression appears while a charproc accumulation :
the old code accumulated strokes outside the bounding box
set by 'setcachedevice', but the new one does not.
The new one appears compatible to Adobe Distiller 5.

EXPECTED DIFFERENCES :

pdfwrite 72 dpi :
015-09.ps

[src/gdevpdfd.c lib/gs_pdfwr.ps]

2005-08-22T21:29:12.000000Z Igor Melichev

The filling algorithm : optimize paths with many subpaths (continued).

DETAILS :

The last patch can cause a dangling pointer subpath_current.
Rather we don't use it, it may be harmful for the garbager.
This patch fixes that.

Minor change : removed an unuseful type case and empty line.

EXPECTED DIFFERENCES :

None.

[src/gxpcopy.c]

2005-08-22T14:29:18.000000Z Igor Melichev

The filling algorithm : optimize paths with many subpaths.

DETAILS :

Bug 686996 "Orientation has massive effect on render time".
It fills a path consisting of 4440 subpaths,
each of which is a quasi-rectangle
(or a rectangle with a fixed_fraction noise).

If a path has over 50 subpaths,
we try to merge subpaths by common vertical lines.
This works around a poor 3d party software,
which generates a path as a huge number of contacting rectangles.

An additional complexity happens due to the sample document defines multiple
quasi-colinear lines instead colinear ones. An example : {{362254, 42905},
{362253, 204152}} and {{362253, 42881},{362253, 204152}}.
We believe that with a huge number of contours the precision of the rendering
doesn't need to be so strong as with a small number.
Therefore we replace quasi-colinear lines with colinear ones.

Another smart point is which pairs of lines to be checked for colinearity.
Obviousely checking all pairs would be too slow. Probably we can assume that the
Postscript writer orders rectangles by the trasversal direction, so
colinear pairs appear in the path within a small window, which roughly is the
number of spot holes multiplied by 4. (Well, one can construct a worse path,
but unlikely it is practical). This patch hardcodes few arbitrary
constants, which may need further improvements.

See commnmets in code for more details.

EXPECTED DIFFERENCES :

None.

[src/gxpath.h src/gxfill.c src/gxpcopy.c]

2005-08-18T08:07:08.000000Z Igor Melichev

ps2write : Improve the documentation about Policies.PageSize .

EXPECTED DIFFERENCES :

None.

[doc/Ps2ps2.htm]

2005-08-17T21:54:55.000000Z Igor Melichev

PDF interpreter now processes ToUnicode CMaps when the target device is pdfwrite.

DETAILS :

Bug 685335 "PDF interpreter doesn't process ToUnicode".

The PDF interpreter now converts ToUnicode CMaps into FontInfo.GlyphNames2Unicode,
which PS interpreter passes to high level devices,
and the pdfwrite device converts it again into ToUnicode.
Therefore re-distilling a PDF file with GS|pdfwrite
preserves the searchability. Before now it was lost.

Currently this stuff works only when the output device is pdfwrite.
Doing so to save the processor time with raster devices.
In future the condition in .processToUnicode may need an enhancement.

We found that some documents define ToUnicode incorrectly.
For now we skip cases, in which ToUnicode is defined to a name,
because the PDF specification requires it to be a stream.

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps lib/gs_cmap.ps]

2005-08-17T18:30:06.000000Z Ray Johnston

Previous change for ignoring 0 area clip path was not sufficient and made
other files misbehave. Fixes bugs 688121 and 688259, reopen 687136.

DETAILS:

Thanks to Dan for identifying the change that caused 688259 to fail. I had
coincidentally been looking in the same area for 688121.

687136 will require more analysis and a different patch, and the patch will
need to be tested against the files for 688121 and 688259 along with the
full regression suite.
`

[lib/pdf_ops.ps]

2005-08-17T14:40:13.000000Z Igor Melichev

Fix : Unconforming line join.

DETAILS :

Ghostscript Bug 688126 "Wrong line join".

1. The old code applied a bewel join while flattening a curve.
   Such behavior appears incompatible to Adobe CPSI 3010.105.
   Language.htm said that it was done with .setcurvejoin
   for a compatibility to Adobe implementations.
   We believe that modern Adobe implementations are not such,
   and therefore we change the default value of .setcurvejoin to -1,
   which actually disables a curve join by default.
   The documentation is being updated accordingly.

2. Since round join always paints a full circle (see comment in add_round_cap),
   and since such circle doesn't appear when CPSI paints a flattened curve,
   we conclude that round join isn't applied to flattened curves.
   Therefore we change the condition in gxstroke.c
   to replace round join with bevel join for flattened curves.

   Note that PDF 1.5 requires to paint a "pieslice-shaped figure",
   rather than PDF 1.4 and PLRM3 does a round.
   Thus, GS code appears some obsolete, and we'll open a
   separate bug 688269 about that.


EXPECTED DIFFERENCES :

Visible differences at 300dpi with  034-01.ps, 123-05.ps.

Numerous single pixel differences stroking curves.

normal, 72 dpi :

"012-05.ps"
"012-13.ps"
"013-05.ps"
"013-13.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-05.ps"
"015-09.ps"
"027-09.ps"
"034-01.ps"
"034-10.ps"
"083-05.ps"
"083-13.ps"
"123-05.ps"
"176-01.ps"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"289-01.ps"
"298-09.ps"
"308-04.ps"
"316-07.ps"
"321-09.ps"
"ai2.pdf"
"Bug687812.ps"
"bugsample.pdf"
"messenger16.pdf"
"Openhuis_pdf_zw.pdf"
"tiger.eps"



normal,300dpi :

"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-05.ps"
"015-09.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"045-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"149-05.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"176-01.ps"
"192-01.ps"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"220-01.ps"
"220-07.ps"
"237-01.ps"
"245-13.ps"
"251-01.ps"
"255-01.ps"
"258-01.ps"
"269-01.ps"
"281-01.ps"
"289-01.ps"
"297-01.ps"
"298-09.ps"
"308-04.ps"
"316-07.ps"
"321-09.ps"
"86554321.pdf"
"adesso8.pdf"
"ai2.pdf"
"besttest.pdf"
"Bug687044.ps"
"Bug687489.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687840.pdf"
"bugsample.pdf"
"ca.pdf"
"chartab.pdf"
"Clarke Tate Manns Chinese.ai"
"escher.ps"
"golfer.eps"
"messenger.pdf"
"messenger16.pdf"
"Openhuis_pdf_zw.pdf"
"p2b-100.pdf"
"si_tg_brochure.pdf"
"Svd.pdf"
"t.pdf"
"tiger.eps"



pdfwrite, 72dpi :

"012-05.ps"
"012-13.ps"
"013-05.ps"
"013-13.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-05.ps"
"015-09.ps"
"027-01.ps"
"027-09.ps"
"034-01.ps"
"034-10.ps"
"083-05.ps"
"083-13.ps"
"176-01.ps"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"220-07.ps"
"237-01.ps"
"298-09.ps"
"308-04.ps"
"316-07.ps"
"321-09.ps"
"adesso8.pdf"
"ai2.pdf"
"annots.pdf"
"Bug687812.ps"
"chartab.pdf"
"messenger.pdf"
"messenger16.pdf"
"Openhuis_pdf_zw.pdf"
"tiger.eps"


pdfwrite, 300dpi :

"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"039-01.ps"
"045-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"104-01.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"176-01.ps"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"237-01.ps"
"244-01.ps"
"245-07.ps"
"255-01.ps"
"269-01.ps"
"281-01.ps"
"298-09.ps"
"308-04.ps"
"316-07.ps"
"321-09.ps"
"86554321.pdf"
"ai2.pdf"
"besttest.pdf"
"Bug687044.ps"
"Bug687489.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687840.pdf"
"bugsample.pdf"
"ca.pdf"
"chartab.pdf"
"escher.ps"
"golfer.eps"
"messenger.pdf"
"messenger16.pdf"
"Openhuis_pdf_zw.pdf"
"p2b-100.pdf"
"si_tg_brochure.pdf"
"t.pdf"
"tiger.eps"

[src/gxstroke.c doc/Language.htm src/gxline.h]

2005-08-11T17:10:17.000000Z Igor Melichev

Fix (pdfwrite) : Exit a text context before resetting a clip.

DETAILS :

Bug 688094 "error converting PostScript document".

The test document caused a wrong balance of
pdf_save_viewer_state / pdf_restore_viewer_state due to a clipping
was reset in a text context of a form XObject created with /BP pdfmark.

The patch changes pdf_unclip so that it exits a text context
when a clipping needs to reset with 'Q'.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c]

2005-08-11T15:38:38.000000Z Igor Melichev

Fix : Clipping was missed while stroking a path with a pattern color.

DETAILS :

Bug 688211 "Gradient not rendered".

EXPECTED DIFFERENCES :

None.

[src/gxstroke.c]

2005-08-10T19:36:11.000000Z Igor Melichev

Fix : Divide long lines while flattening a path.

DETAILS :

Bug 688228 "ps2pdf appears to infinite loop processing a document".

The old code didn't check for fixed overflow while computing a segment span
while flattening a path for the filling algorithm. Due to that
it got a wrong coordinate of a line intersection point, and fallen into an infinite cycle.

The new code subdivides a line segment if the segment span is greater than max_fixed.
See comment in code.

EXPECTED DIFFERENCES :

None.

[src/gxpflat.c]

2005-08-10T19:32:38.000000Z Igor Melichev

Fix : Develop.htm must reference all relevant files (continued).

[doc/Develop.htm]

2005-08-10T19:31:01.000000Z Igor Melichev

Fix : Develop.htm must reference all relevant files (continued).

[doc/Develop.htm]

2005-08-09T22:38:23.000000Z Dan Coby

Fix for 688250 Another overprint problem with the tiffsep and psdcmyk
devices.  The fix ensures that the various bit mask and shift fields in
the device's color_info structure is set for the tiffsep, psdcmyk, and
spotcmyk devices.

[src/gdevpsd.c src/gdevtsep.c src/gdevdevn.c]

2005-08-09T20:23:07.000000Z Ralph Giles

Port the 4-bit EGA device to the new DeviceN color mapping. After
a patch from William Bader. Fixes bug #687795.

[src/gdevpcfb.c]

2005-08-08T23:24:56.000000Z Ralph Giles

Remove a generated file that was causing build portability problems.

[jasper/src/libjasper/include/jasper/jas_config_ac.h]

2005-08-04T17:38:45.000000Z Alex Cherepanov

Fix calculation of the row width on 64-bit platforms. Remove bitmap_raster()
macro because Windows bitmap is not affected by the source platform alignment
constrains. Initialize padding bytes to 0.
Fix bug 688247

[src/gdevbmp.c src/gdevbmpc.c]

2005-08-04T09:32:25.000000Z Igor Melichev

Fix (TT font reader) : Allow 'post' over 65536 bytes.

DETAILS :

Bug 688154 "TTF file fails to load".

It applies .readbigtable to 'post' and then use new accessors
get_from_stringarray, getinterval_from_stringarray, string_array_size
to decode it.

The change should be algorithmically eqiovalent except for the 'post' size limitation.
A further optimizatrion of calls to first_post_string may be useful.

EXPECTED DIFFERENCES :

None.

[lib/gs_ttf.ps]

2005-08-03T16:36:27.000000Z Igor Melichev

Fix (ps2write) : A workaround for an HP LaserJet 1320 bug in 'resourcestatus'.

DETAILS :

See comments in code.
The problem happened with the following files :

017-01.ps
020-01.ps
045-01.ps
327-01.ps
336-01.ps
Bug687603.ps

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-08-02T11:12:32.000000Z Igor Melichev

Fix (TT interpreter) : Optimize the debug support.

DETAILS :

Bug 688253 "TT interpreter : too heavy debug support".

In the debug build the old code of TT interpreter allocates a copy of points arrays and
checks for any point change after TT instruction.

The new code checks whether the DebugPrint method is available,
and skips all the debug support otherwise. The method is set only if
-ZY option is specified. In the release build the debug support
compiles to empty.

We do not bring if_debug macros to the TT interpreter
because we want to keep it close to the original FreeType code.

EXPECTED DIFFERENCES :

None.

[src/gxttfb.c src/ttfmain.c src/ttfoutl.h src/ttload.c src/ttinterp.c]

2005-08-01T20:58:18.000000Z Igor Melichev

Fix (TT interpreter) : Skip TT instructions if the font program or the cvt program fails.

DETAILS :

Bug 688236 "/invalidfont in -show-".
This patch maps any TT bytecode interpreter error to "fBadInstruction",
if the error happens during the font instantiation or during the face instantiation.
As usual, fBadInstruction disables TT instructions for the font and prints a warning to stderr.

EXPECTED DIFFERENCES :

None.

[src/ttfmain.c]

2005-08-01T19:40:59.000000Z Igor Melichev

Fix : Develop.htm must reference all relevant files.

[doc/Develop.htm]

2005-07-30T02:39:45.000000Z Alex Cherepanov

Replace memcpy() with overlapping intervals to memmove() in Type 2 font
generator. The old code violated the C spec and failed on HP aC++ compiler
with +Olibcalls option. Thanks to Hin-Tak Leung for the patch.
Fix bug 687360

[src/gdevpsfx.c]

2005-07-29T02:49:52.000000Z Alex Cherepanov

Remove the check for 0 CTM in the type 1 font hinter to support PDF files
with 0-size fonts or 0 CTM. 
Fix bug 688237

[src/gxhintn.c]

2005-07-28T15:24:29.000000Z Alex Cherepanov

Pacify Valgrind: don't copy memory on itself. 
Partial fix for bug 688225.

[src/gsiodev.c src/zcie.c]

2005-07-27T22:34:40.000000Z Igor Melichev

Fix : Maybe line breaks are broken by the last patch. Commit it again with right line breaks for sure.

[src/gdevpdfx.h src/gxcpath.c src/gxpath.h src/gdevpdfd.c src/gdevpdfb.h src/gdevpdti.c]

2005-07-27T22:09:37.000000Z Igor Melichev

Fix (pdfwrite) : Skip a clip path, which is set by setcachedevice.

DETAILS :

Bug 687678 "pdfwrite : A Type 3 character cut-off".

The setcachedevice clipping must not be written to a charproc.
The old code wrote it, causing a character cut-off with several viewers,
including Adobe Reader 6.

The patch saves a 'setcachedevice' bbox in the pdfwrite device structure
and checks it whenever a clip path needs to be written out.
See gdevpdfx.h about the new data definition.
The box is being saved and restored while entering and exiting a substream.

EXPECTED DIFFERENCES :

pdfwrite :

"012-09.ps" 
"013-09.ps" 
"014-09.ps" 
"015-09.ps" 
"017-01.ps" 
"020-01.ps" 
"045-01.ps" 
"083-09.ps" 
"093-01.ps" 
"123-09.ps" 
"136-01.ps" 
"165-01.ps" 
"205-09.ps" 
"212-01.ps" 
"213-01.ps" 
"214-01.ps" 
"226-01.ps" 
"238-01.ps" 
"260-01.ps" 
"264-01.ps" 
"281-01.ps" 
"298-09.ps" 
"321-09.ps"

[src/gdevpdfx.h src/gxcpath.c src/gxpath.h src/gdevpdfd.c src/gdevpdti.c src/gdevpdfb.h]

2005-07-27T11:24:38.000000Z Igor Melichev

Fix : Ignore XUID if Metrics[2] has been changed.

DETAILS :

Bug 674418 "093-01.ps : Wrong text".

When a fong is being cached, the metric data for a glyph is being taken from the cache.
If a font have a valid XUID, the XUID is used as the cache key.
Consequently, if Metrics[2] has been changed after a font is cached,
the font renders with the wrong (unchanged) metric.

This patch checks whether another registered font has same XUID
and another Metrics[2] dictionary. If so, the XUID is dropped,
and it not used as a cache key.

EXPECTED DIFFERENCES :

Normal :

093-01.ps.

[src/gsfont.c src/zbfont.c src/gsfont.h]

2005-07-26T23:49:49.000000Z Ralph Giles

Improve wording of the new p2ps2 script documentation.

[doc/Ps2ps2.htm]

2005-07-26T20:50:23.000000Z Igor Melichev

Fix (pdfwrite) : Delay the assignation of object id to a color space until its creation is completed.

DETAILS :

Bug 687712 "ps2pdf silently generates bad PDF in 1.2 mode".

The old code reserved an objewct id for a color space when starting its creation.
If the creation fails (for example, with CompatibilityLevel <= 1.2),
the related graphics is being converted into low level objects.
In that case the reserved object id doesn't appear in the output PDF,
causing an incorrect xerf.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfc.c]

2005-07-26T00:59:39.000000Z Dan Coby

Fix for 688052 Segv with test file for 687980 and the psdcmyk device.

DETAILS:

The 'put_param' routines for the routines which implement the handling of
the SeparationOrder, SeparationColorNames, and the MaxSeparation device
parameterswere always resetting the number of device components
(num_components in the color_info structure) when they were called.  This
can cause problems with the PDF 1.4 transparency since the transparency
processing can have its own process color model.  The fix involves only
changing the number of device components when one of the three device
parameters changes value.  This should only occur at the start of a page.
The PDF 1.4 process color model is only active during the processing of
a page.

[src/gdevpsd.c src/gdevdevn.c]

2005-07-21T19:50:40.000000Z Alex Cherepanov

Use memmove() instead of memcpy() in Ins_MINDEX() because of the overlapping
memory blocks.
Fix bug 688224.

[src/ttinterp.c]

2005-07-21T19:32:06.000000Z Alex Cherepanov

Fix off-by-one error in Decode array testing.
Fix bug 688223.

[src/gxipixel.c]

2005-07-21T18:19:50.000000Z Dan Coby


Fix for 688218 gdevpng.c(148) : A harmful warning from MSVC8.  The warning
message was due to a math overflow for the dither_grays and dither_colors
fields in the device color_info structure.  This occured due to the
addition of the png48 device which has 16 bit components.  The fix is to
increase the field size to a uint (typically 32 bits).

[src/gxdevcli.h]

2005-07-21T18:13:19.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : Merge equal function resources.

DETAILS :

Bug 688195  "pdfwrite,ps2write : Redundant function objects".

This patch applies the usual merging method for function objects :
a delayed assignation of object id, search for equal object,
replace redundant one with an old equal one.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c]

2005-07-21T16:04:18.000000Z Igor Melichev

Fix (ps2write) : Some of Widths elements could be missed.

DETAILS :

This is the fourth partial fix for the bug 688169 "ps2write : text dissappears".
It relates to Comment #6 of the bug 688169.

Some elements of Widths array could be missing if the encoding defines
several codes for samne character, and only the first code is used.
The old code scanned Encoding and put a Metrics dictionary element
for each element of Encoding. However Encoding could contain dummy
elements witrh the value 0, and the value 0 replaced an useful value defined earlier.

This fix assumes that ps2write renames glyphs if they have several occurances in Encoding,
and more than one occurance is used. Under this assumption,
if only one occurance is used, other accurances will get the value 0
(using exactly 0 in this case is another ps2write feature being assumed here).
So is Metrics already has a non-zero value, it shouldn't be replaced with zero,
and the logic is pretty simple : don't replace non-zero values.

This patch causes ps2write progressions :

687572.pdf
86554321.pdf
Jahr2000.pdf
rf1025.pdf

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-07-21T09:53:42.000000Z Igor Melichev

Fix : Move character raster buffers into the memory space of gx_show_enum.

DETAILS :

Bug 688222 "Another crash in igc_reloc_struct_ptr".

This is a partial change for the problem.
It fixes exactly the case that happened in the bug report.

However there is another harmful case, which we want to fix separately
due to it requires a big change. The case is
running 'show' in the global allocation mode while
the current font is local. We open a separate bug 688227 for it.

EXPECTED DIFFERENCES :

None.

[src/gxchar.c]

2005-07-20T18:14:04.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : Synthesized bitmap fonts had zero character width in charprocs.

DETAILS :

1. The Wx operand of d1 always got the zero value
when a font is being converted into a bitmap font.

2. The Width array was wrongly computed
when a font is being converted into a bitmap font.

3. Computing Metrics, Widths values to be scaled with the FontMatrix,
to account an unusuial FontMatrix of Type 1 fonts,
which were created by 3d parties from TrueTypes.

4. Metrics was not set to a font due to a bad stack balance.

Bug 688172 "ps2write : CID text displacement".

This patch gives a numerous progressions when ps2write runs with a small resolution -r72.
In same time with this patch few files regress when ps2write runs with a small resolution -r72 :

687572.pdf
86554321.pdf
Jahr2000.pdf

EXPECTED DIFFERENCES :

pdfwrite 72dpi :

"020-01.ps"
"093-01.ps"
"Bug687845.ps"

pdfwrite 300dpi :

"020-01.ps"
"093-01.ps"
"405-01.ps"
"450-01.ps"
"Bug687845.ps"

[src/gdevpdtt.c src/gdevpdfb.c lib/opdfread.ps]

2005-07-20T14:46:16.000000Z Ray Johnston

Fix undefined in -get- caused by previous (1.38) patch that ignored zero
length tables in TT font. Previous fix for 687457. Bug 688220 for customer
580.

DETAILS:

Some tables, such as 'glyf' are required by the ttf code even if they are
zero length. The 687457 bug omitted these tables since their position is
arbitrary, but they could cause false 'overlap' conditions, potentially
truncating a non-zero length table to zero length. The simplest solution
is to place all zero length tables at offset 0 (the offset is arbitrary
for zero length tables).

EXPECTED DIFFERENCES:

Regression testing showed no problems. The file for 687457 is now added
to the regression suite as will a test file with a zero length 'glyf'.

[lib/gs_ttf.ps]

2005-07-20T08:20:55.000000Z Igor Melichev

Fix (ps2write) : Initial commit of the ps2ps2 documentation.

EXPECTED DIFFERENCES :

None.

[doc/Ps2ps2.htm doc/Readme.htm]

2005-07-20T07:22:01.000000Z Igor Melichev

Fix (ps2write) : The default value for MaxInlineImageSize was incorrect.

DETAILS :

It was too small for real images.
May improve the printer prerformance.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c src/gdevpdfb.h]

2005-07-20T06:17:06.000000Z Igor Melichev

Fix (ps2write) : Bring the script to the traditional form (continued).

DETAILS :

Rename the distiller settings PSPrinter with a more meanful name PSL2Printer.

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps]

2005-07-20T06:10:13.000000Z Igor Melichev

Fix (ps2write) : Bring the script to the traditional form.

DETAILS :

Bug 688190 "ps2write : improve the ps2ps2 script".

Since ps2write actually is a clone of pdfwrite,
we define special distiller settings named PSPrinter.
After this device parameters are gone from the script,
and the ps2ps2 script looks similarly to ps2ps .

EXPECTED DIFFERENCES :

None.

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

2005-07-20T06:00:54.000000Z Igor Melichev

Fix (ps2write) : Bring the script to the traditional form.

DETAILS :

Bug 688190 "ps2write : improve the ps2ps2 script".

Since ps2write actually is a clone of pdfwrite,
we define special distiller settings named PSPrinter.
After this device parameters are gone from the script,
and the ps2ps2 script looks similarly to ps2ps .

EXPECTED DIFFERENCES :

None.

[lib/ps2ps2.bat lib/ps2ps2 lib/ps2ps2.cmd lib/gs_pdfwr.ps]

2005-07-19T19:31:19.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : Tj must account the Widths rounding when converting to a bitmap font.

DETAILS :

Bug 688170 "ps2write : text displacement".
An imprecise text width happened when distillation uses a low resolution
to convert a font into a bitmap font. Important for CompatibilityLevel <= 1.2 .

EXPECTED DIFFERENCES :

None.

[src/gdevpdti.c]

2005-07-18T05:51:57.000000Z Ray Johnston

Skip CFF tables at 0 or negative offset because some CFF fonts put empty tables
at offset 0. Bug 688160. Thanks to Alex Cherepanov for this patch.

[lib/gs_cff.ps]

2005-07-18T05:33:12.000000Z Ray Johnston

Fix handling of Some Type1C (CFF) font subsets where the tables may not
be completely contiguous. Seen with PDFs created by pdflib. Bug 688216
and 688040 for customer 562.

DETAILS:

The example subset CFF had the "Private" data about 30,000 bytes after
the end of the previous (CharStrings) data. While we try to process the
CFF file sequentially, there is no reason we cannot skip bytes. If we
encounter a CFF where positioning (backwards) is required, we will have
to further change the code to set us a "ResuableStreamDecode" file so
we can replace the "pos sub nextstring pop" with "f fileposition" which
will work forwards or backwards.

A CFF that requires this will get an error when loading the font from the
-string- operator (rangecheck). Since we have not seen one yet, we will
wait until this surfaces.

[lib/gs_cff.ps]

2005-07-15T05:59:18.000000Z Ray Johnston

Remove the arbitrary limit of 256 max_colors from the dci_ macros. This is
related to bug 688204 and allows shadings (gradients) to have more than
256 steps for high precision color devices.

DETAILS:

Note that the default smoothness is set to 0.02 in lib/gs_ll3.ps and unless
this is set smaller with the setsmoothness operator (or the PDF 'SM' op),
the max_error used in src/gxshade.c may still be too large to see REALLY
smooth gradients. The next part of the changes is to modify the setting
of max_error when the device has > 256 levels.

[src/gxdevcli.h]

2005-07-15T05:23:43.000000Z Ralph Giles

Add a 48 bit RGB PNG raster device for testing deep color output code
paths. The new device is called 'png48'. Note that this is a different
naming scheme from the the other PNG devices, which use number of colors
instead of the log of the number of colors to distinguish between the
different output formats. Related to bug 688204.

[src/configure.ac src/devs.mak src/gdevpng.c]

2005-07-15T03:36:03.000000Z Dan Coby

Fix for 688209 Incorrect equiv color for 'Dark Blue' in test file.

DETAILS:

The problem was caused by an error in evaluting a sampled function with
32 bits per component.  The maximum value for a sample was calculated
as being (1 << bps) - 1.  This calculation has a problem on x86 CPUs
when bps is 32.  No shifting is done and the result ends up being 0
instead of 0xffffffff.

The fix involves checking for bps being equal to (or greater than)
the size of an uint.  If so then the max_uint value is used instead.

[src/gsfunc0.c]

2005-07-14T19:56:55.000000Z Alex Cherepanov

Don't use Length value in the stream dictionary when it's incorrect. All
filtered streams are self-terminated. Unfiltered streams are most often occur
as contents streams. Their processing is terminated by execution of endstream
operator. Unfiltered image streams will only read the data required by
the image.
Fix bug 688182.

[lib/pdf_base.ps]

2005-07-14T16:10:43.000000Z Igor Melichev

Fix (ps2write) : Don't replace Encoding for standard fonts.

DETAILS :

This is the third partial fix for the bug 688169 "ps2write : text dissappears".

1. Regarding 093-01.ps :

Before a font is loaded from a font file object,
need to check whether there exists a standard font with same name and
save it for possible use in future from other font resource objects.

2. Regarding 336-01.ps :

The implementation of the operator ' was incomplete.

This patch causes ps2write progressions:

"093-01.ps"
"336-01.ps"
"adesso7.pdf"
"ADOBE1-4.pdf"
"brochurep1.pdf"
"ca.pdf"
"ccc.pdf"
"Jahr2000.pdf"
"js.pdf"
"prfmm.pdf"
"rf1025.pdf"

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-07-14T15:14:39.000000Z Alex Cherepanov

Increade the limit on the .libfile operand length from 200 to the full
gp_file_name_sizeof . The OS also limits the length of the file name,
for instance, on WinNT, NTFS to 252 characters.
Fix bug 688198.

[src/zfile.c]

2005-07-14T13:20:33.000000Z Igor Melichev

Fix (ps2write) : Don't replace Encoding for standard fonts.

DETAILS :

This is the second partial fix for the bug 688169 "ps2write : text dissappears",
related to the file aaon97_p7.pdf .

When a standard font is being loaded, the old code replaced Encoding with StandardEncoding.
However the Dingbats font has a different Encoding.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-07-14T10:27:59.000000Z Igor Melichev

Fix (ps2write) : Embed standard fonts, which use extention glyphs due to encoding conflicts.

DETAILS :

This is a partial fix for the bug 688169 "ps2write : text dissappears",
which is related to the problem with ADOBE1-4.pdf .

When Widths array defines several widths for same glyph,
the PDF interpreter duplicates glyphs inserting extended glyph names.
However if the font name is standard, the font was not embedded and the
extended glyph names were missed. This patch forces embedding
the fonts what have extended glyph names.

This problem doesn't happen with pdfwrite, because it collapses
extended glyph names back to original ones.

Note that there exists a case, in which a font has extended glyphs but
they are not used in the document. In this case the font embedding is not necesary,
but ps2write does embed it. This happens because the current architecture
does not allow to detect such case, because the decision about a font embedding
is being made before a text is processed. Dalaying it until the end of the text would
need to delay object ID assignation for the font descriptor and for the font file.
This change would be too deep, so we don't do it now.

If an user strongly needs to minimise the output when
a standard font uses extended glyph name,
we recommend to perform a 2-pass distillation :
the first pass computes exact font subsets,
and the second pass won't receive unused glyphs.
We believe that such need is pretty rare.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtf.c src/devs.mak]

2005-07-13T21:21:47.000000Z Dan Coby

Fix for 688206 rangecheck in --setcolorspace--.  Actually there is a
problem with the PDF test files.  The 'fix' is to make Ghostscript more
tolerant of errors.

DETAILS:

The problem is an error in the file.  The file contains an Indexed color space:
 [ /Indexed /DeviceGray 255 (\000%Mr\r2[\300\320\303\000\b\f\021\026\034"\)UMB9
\201%Ns\r2[\016\035,:\036-

[src/zcsindex.c]

2005-07-13T18:18:07.000000Z Ray Johnston

Font scanning would miss OpenType fonts (OTTO header).

[lib/gs_ttf.ps]

2005-07-13T17:21:22.000000Z Igor Melichev

Fix (TT grid fitting) : A missed glyph needs cached_fm_pair_s.

DETAILS :

Bug 688164 "segfault after warning for missing required cmap in embedded TT font; pdf".

The embedded TT font missed a glyph, so that a "notdef" (glyph_index = 0)
to be used instead. However when performing a grid fitting,
an cached_fm_pair_s is used to pass an access to the font.
The problem happens due to "notdef" forced no glyph caching
and therefore cached_fm_pair_s was not created.

The fix moves the check for "notdef" for the point after creating an cached_fm_pair_s.

EXPECTED DIFFERENCES :

None.

[src/gxchar.c]

2005-07-13T10:37:10.000000Z Igor Melichev

Fix (ps2write) : EOT marker was missed.

DETAILS :

Bug 688186 "ps2write: EOT is missing".
The old code writes it after the file is closed.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c]

2005-07-13T00:39:50.000000Z Ralph Giles

Cast color components to type gx_color_index before shifting when
composing a chunked index color in gx_default_rgb_map_rgb_color().
Partial fix for bug 688204.

DETAILS:

Without the explicit casts, color components were only promoted to
the default int type before the shifts were applied. On 32 bit machines
this means that 16 bpc output generated nonsense, shifting the high
channel entirely out of the word, and only promoting to a 64 bit type
on assignment. With the explicit casts, the promotion to a 64 bit type
(assuming a 64 bit gx_color_index) happens first so that the shift logic
is correct for deep devices.

With this change the "24 bit RGB" default mapping works for 48 bit
color as well as for other spaces in-between. 24 bits remains special
cased; rough benchmarking showed no significant advantage to special
casing 48 bits as well.

[src/gxcmap.c]

2005-07-12T17:54:55.000000Z Igor Melichev

Fix : MSVC8 Beta 2 doesn't handle the compiler option Gi.

DETAILS :

The new distribution of the MSVC compiler claims the option Gi is depricated.
Since the nmake file uses a single value 8 of the variable MSVC_VERSION
for both Beta 1 and Beta 2, we cannot distinguish these releases,
so now we drip the option Gi fore both releases.
Beta 1 is now obsolete, so users must either upgrade for Beta 2
or live with no incremental compilation. The latter only increases the build time.

EXPECTED DIFFERENCES :

None.

[src/msvccmd.mak]

2005-07-11T22:08:30.000000Z stefan

Fix MSVC compile error

DETAILS:

MSVC prevents dynamic structure initialization
gcc is more liberal.

Final code is simpler using a function call.

[src/gdevpxut.c]

2005-07-08T22:06:30.000000Z Dan Coby

The gdevdsp.c file was missed in the previous commit for the fix for 688192.

[src/gdevdsp.c]

2005-07-08T22:04:31.000000Z Dan Coby

Fix for 688192 Resolution dependant problems with tiffsep.  Note:  The
actual problem is related to garbage collection.

DETAILS:

The names of the separations are being lost when the garbage collection
logic is attempting to relocate the names.

The fix consists of storing the names in a byte array instead of using a
gs_param_string.

[src/gdevpsd.c src/gdevtsep.c src/gdevdevn.c src/gsequivc.c src/gdevdevn.h src/devs.mak]

2005-07-07T16:44:17.000000Z stefan

Add support for manual feed and media source or tray selection
to pxl output devices.  This allows postscript input to use
InputAttributes dictionary selection mechanisms to choose a tray.

The pxl tray numbers in the PXL file are the PS MediaSource numbers
to "map" correctly an input attributes dictionary needs to be present
and needs to match the tray contents/numbering of the pxl printer.

postscript manual feed /ManualFeed is directly mapped to PXL this
will override any tray selection.

[src/gdevpx.c src/gdevlj56.c src/gdevpxut.c src/gdevpxut.h]

2005-07-06T20:54:07.000000Z stefan

Bug fix for 688196.

CCITTFAX decode filter had number of rows limited to 32000.
Test file with 40000 found, limit is now 1,000,000

[src/scfparam.c]

2005-07-05T17:56:55.000000Z Igor Melichev

Fix (ps2write) : Allow .HWMargins in the printer's userdict.

DETAILS :

Testing with HP LazerJet 1320 we found that it defines a PageSize bigger than
the real page. Allowing a method for an user to compensate that.
The method is to define .HWMargins to the printer's userdict.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-07-04T09:03:48.000000Z Igor Melichev

Fix (ps2write) : CIEBased* images must use DecodeABC as Decode (continued).

DETAILS :

The last patch appears incomplete.
Bug 688174 ps2write: black page
CompleteImage was underimplemented.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-06-29T23:46:24.000000Z Dan Coby

Fix for 688144 Overprint problem wtih emitting a single separation from
tiffsep.  The overprint logic assumed that overprinting was never applied
if there is only one component in the output device.  This is true for a
DeviceGray process color model.  However it is possible for there to only
be a single output component in other process color models (like CMYK) if
the SeparationOrder device parameter is used to select a subset of the
device's colorants.  This fix removes the undesired optimization.

[src/gsovrc.c]

2005-06-29T20:46:20.000000Z Igor Melichev

Fix (ps2write) : CIEBased* images must use DecodeABC as Decode.

DETAILS :

Bug 688174 ps2write: black page
CompleteImage was underimplemented.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-06-29T18:21:44.000000Z Igor Melichev

Fix (ps2write) : Imagemask incorrectly synchronized color in the !HaveStrokeColor mode.

DETAILS :

Bug 688171 "ps2write : wrong frame color".
The !HaveStrokeColor mode was underimplemented.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfb.c]

2005-06-29T14:21:27.000000Z Ralph Giles

Remove a duplicate file in the installation target list.

[src/unixinst.mak]

2005-06-29T14:12:14.000000Z Igor Melichev

Fix : A dangling pointer from pdf_image_enum.

DETAILS :

Bug 688156 "Reference to free object : pdfwrite -r72 -Z?$@ 035-07.ps".

After pdf_make_alt_stream pdf_image_enum::writer.binary[1].target left a pointer to
a cos_object_t instance, which is later freed by pdf_choose_comprtession.
Thus it caused a dangling pointer. It was not harmful unless running with -Z? .

EXPECTED DIFFERENCES :

pdfwrite crashed with -Z?$@ :
035-07.ps.
FIG3.eps

[src/gdevpdfj.c]

2005-06-29T10:54:20.000000Z Ralph Giles

Fix some additional typos in the documentation install rules. Closes bug
688158.

[src/unixinst.mak]

2005-06-28T23:00:00.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : A recognition of Type 3 glyph variations was inaccurate.

DETAILS :

Bug 688168 pdfwrite, ps2write : incorrect barcode Bug687472.ps
Bug 687472 barcode wrongly converted to type3 font

1. The condition in pdf_find_same_charproc was not a strong equality.
   When searching in same font, the comparizon of object streams was missed
   (debugged with Bug687472.ps).

2. When creating an alternative font due to glyph wariations,
   the fonmt matrix was equal to one from the scaled font
   instead the original font, causing an imprecise coordinates.
   Replaced with the original font matrix.
   (debugged with Bug687472.ps).

3. pcp->font was not adjusted when desided to start a new font due to
   a new glyph variation obtained. Due to that some glyphs
   were replaced with wrong glyph variations
   (debugged with Bug687660a.ps, page 4, the text
   "et al. [11] Y. Nakamura et al.", the 3d occurance of 'a' was wrong
   (search for "( al)" in the old generated PDF file)).

4. Exiting from a substream, flattness was not restored
   (debugged with muur.eps).

EXPECTED DIFFERENCES :

pdfwrite :

"Bug687472.ps"
"Bug687660a.ps"
"Bug687832.pdf"
"STEUER-RollingMesh 3(Final).ai"

[src/gdevpdfx.h src/gdevpdfg.c src/gdevpdti.c]

2005-06-28T11:44:23.000000Z Ralph Giles

Add two new multiply-included templating files to the exclusion list for
the multiple-inclusion regression check.

[toolbin/tests/check_source.py]

2005-06-28T06:19:27.000000Z Dan Coby

Fix for 687989 PDF to any format raises /invalidfont in /R21.  The test
file was created by an imposition program.

DETAILS:

The given file (the one with the four pages imposed together) has:

1.  A Page dict with form Xobjects and the /R21 font is not in the
    Resources/Font dict.
2.  The Pg3 form XObject has the /R21 font in the Resources/Font dict.
3.  /R19 is a Type3 font.  There is not a Resources entry in the dict.  This
    font uses both the /R13 ExtGState and the /R21 font.

To find the /R13 and the /R21 resources, Ghostscript is first looking in
the /R19 font.  Since it is not present (no Resources in /R19), Ghostscript
then searches the Page dict.  Once again the resources are not found and then
the InvalidFont error is generated.  (Ghostcript is silent about the missing
ExtGState /R13.)

From page 391 of the PDF REference, version 1.6 on the entries in the dict for
a Type3 font:

"Resources  dictionary (Optional but strongly recommended; PDF 1.2) A list of
the named resources, such as fonts and images, required by the glyph
descriptions in this font (see Section 3.7.2, "Resource Dictionaries"). If any
glyph descriptions refer to named resources but this dictionary is absent, the
names are looked up in the resource dictionary of the page on which the font
is used. (See implementation note 64 in Appendix H.)"

This implies that Ghostscript is following the correct path for finding the
resources /R13 and /R21.  (However one can make a case for a 'liberal'
interpretation of the spec. that implies that the form XObject resources
should also be checked.)

This fix checks the current resources when the Resources dictionary is not
present in a type 3 font.

I do not know why Acrobat 6.0 Pro does not find /R13 but does find /R21.  If
Acrobat is not checking the Resources for the Pg3 form XObject then it should
find neither.  If it is checking Pg3 Resources then both should be found.

[lib/pdf_font.ps]

2005-06-23T07:35:30.000000Z Igor Melichev

Fix : A global restore was applied at save level 1.

DETAILS :

Bug 688157 "'invalidrestore' in pkmraw -r72 -Z?$@ tpc2.ps".
Bug 688161 "A dangling pointer with pkmraw -r72 -Z?$@ -c false 0 startjob pop -f - <113-01.ps".

The last patch appears incorrect. This one fixes that.

Bug 688157 happened because
tpc2.ps failed with 'invalidrestore' because
the global restore was applied at the level 1.
This happened because the last but one patch
appears incomplete - after that change the check for 'global'
in alloc_is_since_save become incorrect.
It assumed that mem->saved == save && mem->saved->save_level == 1 implies
save->state.save_level == 0. But with the last but one patch not it doesn't.

Bug 688161 happened due to same check, because alloc_is_since_save
is also used in restore_fix_stack to fix string and file objects,
which exist on stack and which would become invalidated due
to the restore. 'zrestore' do not check such objects on estack
(restore_check_stack is called with 'false'). Such objects appear when
'startjob' is called from a command argument (and establishes
a save level 0), and later another command line argument
is executed with '.runstdin', which executes .subfiledecode
at save level 1 and keeps the filter object on estack while
.runexec works (keeping the file for .runexec2).
So running the file 113-01.ps invoked 'exitserver', which executes a 'restore',
which unwinded the file object, and caused a heap inconsistency
(because restore_check_stack is called with 'false')
due to estack keeps the unwinded file object.

This change replaces it with (as we believe) the correct and simple check :
  save->state.save_level == 0 /* Restoring to save level 0 */
which restores the consistency of restore_fix_stack to restore_check_stack.


EXPECTED DIFFERENCES :

Fixes a crash with 113-01.ps .

[src/isave.c]

2005-06-22T20:15:50.000000Z Igor Melichev

Fix : A global restore was applied at save level 1.

DETAILS :

Bug 688157 "'invalidrestore' in pkmraw -r72 -Z?$@ tpc2.ps".

With the last patch memory problems gone avay,
but tpc2.ps failed with 'invalidrestore'.
We found that the global restore was applied at the level 1 -
a guess as a rudiment of code before NOOUTERSAVE is code.

When tpc2.ps issued a restore, with neither startjob nor NOOUTERSAVE
it appears at level 1 (due to gs_init.ps executes 'save')
but at that moment dstack contains some dictionaries,
created by the document. Those dictionaries cause 'invalidrestore',
because they are created after the 'save' issued by gs_init.ps .

At first time we wonderewd why this problem doesn't happen with
other documents. The answer is : they don't keep dicts
on dstack when execute the outermost 'restore'.

EXPECTED DIFFERENCES :

Fixes 'invalidrestore' in tpc2.ps .
113-01.ps crashes due to another problem, which we'll open another bug for.

[src/isave.c]

2005-06-22T15:36:23.000000Z Igor Melichev

Fix : Dangling pointers due to 'restore' left an internal save level.

DETAILS :

Bug 688153  "Reference to free object : ppmraw -r72 -Z?$@ Bug687489.ps"

Running :
    gs sOutputFile=t.ppm sDEVICE=ppmraw -r72 -Z?$@ Bug687489.ps"
got :
    Reference to free object 0xaf9e40(100), in chunk 0x3eca48!

The reason is that a gs_show_enum instance was created in some 'save' level,
and when it is released the 'save' level appears a higher one and the
memory manager left it unreleased until a further 'restore' does that.
However that instance pointed to a gx_path instance with a bigger 'save' level.
So when the garbager was invoked, the gs_show_enum instance had a 'path' field
pointed to a structure, which was already released by a 'restore'.

Analyzing it so far, we found that 'save' and 'restore' may
leave an extra level on the 'save' stack. More precisely,
alloc_save_state sometimes creates an "invisible" 'save' level,
which appears on the 'save' stack, but it has no save id and
it doesn't add to the 'save' level counter. The problem happened
when 'restore' finds its 'save' stack element. In that case
alloc_find_save returns the second additional 'save' stack element,
rather than the first one created by 'save'. Therefore
a consecutive execution of 'save restore' could add
one element on the 'save' stack (without increasing the save_level counter)
and cause dangling pointers as explained above.

We believe that the bug lived in alloc_save_state.
Really, a comment in alloc_save_state reads :
   /* Do a second, invisible save. */
and in same time the code makes the first 'save' to be invisible,
and moves the id from the first 'save'. Thus the code does not
comply to the comment. We believe that the comment is correct,
and the code is buggy. Therefore we change the code so
that the second (internal) 'save' to be really invisible.

EXPECTED DIFFERENCES :

Fixes memory problems (June 16 regressions) with the following files :

"257-01.ps"
"Bug687396.ps"
"Bug687489.ps"
"Bug687603.ps"
"Bug687698.ps"

[src/isave.c]

2005-06-22T15:24:37.000000Z Ralph Giles

Fix typos in the the jasper makefile. Closes bug 688148.

[src/jasper.mak]

2005-06-22T14:11:01.000000Z stefan

Added documentation note that gc doesn't collect
around a reference to a sub interval in an array.
Rather it gc's arrays as objects.

[doc/Language.htm]

2005-06-21T19:58:38.000000Z Igor Melichev

Fix : Reference count for gx_clip_path::path_list was incorrect.

DETAILS :

Bug 688147 "Wrong reference count with ppmraw -Z?$@ -r72 257-01.ps".

gx_cpath_assign_preserve didn't adjust the reference count.

EXPECTED DIFFERENCES :

May fix some of pkmraw, pgmraw regressions appeared on June 16.

[src/gxcpath.c]

2005-06-21T16:50:51.000000Z Igor Melichev

Fix : Always place the image enumerator into local memory (continued 2).

DETAILS :

The previous patch inserted a 'const' by a mistake.
Removing it.

EXPECTED DIFFERENCES :

None.

[src/gsimage.c src/gsimage.h]

2005-06-21T16:25:50.000000Z Igor Melichev

Fix : A wrong allocator was used to release the glyph cache.

DETAILS :

Bug 688146 "heap corruption with ppmraw -r72 -Z?$@ 055-01.ps".

A structure was allocated in a non-stable memory and
released to a stable memory.

EXPECTED DIFFERENCES :

May fix some of pkmraw, pgmraw regressions appeared on June 16.

[src/gsgcache.c]

2005-06-21T13:12:00.000000Z Igor Melichev

Fix : Always place the image enumerator into local memory (continued).

DETAILS :

Bug 688140 "A heap corruption in imagemask".
Bug 688145 "Segmentation fault : normal 244-01.ps (pkmraw/300/noband)"

The patch
http://ghostscript.com/pipermail/gs-cvs/2005-June/005567.html
appears incomplete.
This ine fixes that.

1. gs_image_common_init must not change penum->memory since it is set by
   gs_image_enum_alloc for a compatibility with gs_image_cleanup_and_free_enum.

2. gs_image_enum_init is removed from the graphics library interface
   because after the change (1) it becomes potentially harmful.
   We noticed that the PCL interpreter never calls it directly,
   so making it be local against a potantial harm.

3. The memory argument of gs_image_common_init has been removed
   because it became unuseful.

4. We notice that gs_image_common_init initializes an instance of gs_image_enum,
   and gs_image_begin_typed initializes gx_image_enum_common_t.
   We wonder with the assymmetry of using the word "common"
   in these identifiers. It appears much confusible.
   For now leave them as they are, rather we'd like to clean them up.

EXPECTED DIFFERENCES :

Should fix pkmraw, pgmraw regressions appeared on June 16.

[src/gsimage.c src/gsimage.h]

2005-06-21T00:58:02.000000Z Dan Coby

Partial fix for 688132 WTS crash with pdf input.  Ghostscript does not
serialize a WTS halftone.  (This is required for clist processing.)  As a
result, an error code is being returned.  The error code was not being
properly returned.  We then seg faulted due to a pointer not being set in
the error case.  This fix corrects the problem with returning the error
code.  The problem with WTS serializaton remains.

[src/gdevp14.c]

2005-06-20T08:59:23.000000Z Igor Melichev

Fix : Factor out any dependence on sizeof(gx_color_index) .

DETAILS :

This change is algorithmically equivalent.
We factor out this dependence because we intend to change the
gx_color_index definition to an array of components.
In that case sizeof(gx_color_index) would give the size of a pointer
rather we need the size of the array.

Minor change : Fixed an unitialized debug-purpose variable prev_count
in 3 device drivers gdevm40.c, gdevm48.c, gdevm64.c .

EXPECTED DIFFERENCES :

None.

[src/gdevm64.c src/gdevpsd.c src/gdevdsp.c src/gxcindex.h src/gsdparam.c src/gdevm48.c src/gxiscale.c src/gxdcolor.c src/gdevtsep.c src/gdevpdfb.c src/gdevpdfv.c src/gdevxcf.c src/gdevm40.c src/gxdevcli.h src/gxoprect.c]

2005-06-19T21:10:58.000000Z Igor Melichev

Fix : zchar.c needs a prototype of z1_set_cache.

DETAILS :

It fixes a cygwin/gcc warning.

EXPECTED DIFFERENCES :

None.

[src/int.mak src/zchar.c]

2005-06-19T21:03:32.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : Type 42 fonts got wrong Width (continued).

DETAILS :

Need a prototype for z1_glyph_info_generic since we call it in zfont42.c .

EXPECTED DIFFERENCES :

None.

[src/ichar1.h src/int.mak src/zfont42.c]

2005-06-19T20:45:57.000000Z Igor Melichev

Fix : Remove an unreasonably big array type definition related to color index.

DETAILS :

This change is algorithmically equivalent.
An array type in gxcht.c was defined with 65536 elements
but actually used the first 32 elements only.
We believe it was an inaccurate coding.

EXPECTED DIFFERENCES :

None.

[src/gxcht.c]

2005-06-16T06:53:15.000000Z Igor Melichev

Fix (Ps2pdf.htm) : ConvertCMYKImagesToRGB was wrongly documented.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm]

2005-06-15T18:40:08.000000Z Igor Melichev

Fix : Always place the image enumerator into local memory.

DETAILS :

Bug 688140 "A heap corruption in imagemask".

The core of the change is in zimage.c :
!     /* Always place the image enumerator into local memory,
!        because pie may have local objects inherited from igs,
!        which may be local when the current allocation mode is global. */

Other changes provide a correct allocator while freing the enumerator.

Note : In gxccache.c the old code did not apply gx_image_cleanup
when exiting on error. The new code does. The new code is more smooth,
but we don't expect a significant difference in behavior.

EXPECTED DIFFERENCES :

None.

[src/gsimage.c src/gsptype1.c src/zimage.c src/gsimage.h src/gxccache.c]

2005-06-15T00:31:29.000000Z Igor Melichev

Fix (ps2write) : A bug while computing an n-argument m-result function type 0.

DETAILS :

FunctionToProc_x0n synthesized a function which applies an extra 'roll' at the end of computation.

Minor change : Improved a debug printing.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-06-14T17:13:09.000000Z Ralph Giles

Link to the relevent section of Use.htm for details about the GS_LIB env
variable. Fixes bug 688051.

[doc/Install.htm]

2005-06-14T17:07:28.000000Z Ralph Giles

Add some newer documentation files to the unix install target.
Fixes bug 688049.

[src/unixinst.mak]

2005-06-14T16:53:31.000000Z Ralph Giles

Fix a documentation typo: NeverEnbed vs NeverEmbed.

[doc/Ps2pdf.htm]

2005-06-14T11:19:58.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : Type 42 fonts got wrong Width.

DETAILS :

Bug 688128 "pdfwrite: imprecise Width".

pdfwrite did not account Metrics, Metrics2 of Type 42 fonts.

EXPECTED DIFFERENCES :

pdfwrite 72dpi :

"01_001.pdf"
"adesso2.pdf"
"adesso7.pdf"
"adesso8.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Technical_1v1_x3.pdf"
"annots.pdf"
"budget2_ai87.pdf"
"Bug687660a.ps"
"Bug687724.pdf"
"bugsample.pdf"
"Faktura.pdf"
"fonts.pdf"
"MagicEye.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"


pdfwrite 300 dpi :

"01_001.pdf"
"159.pdf"
"adesso2.pdf"
"adesso7.pdf"
"adesso8.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Technical_1v1_x3.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug687724.pdf"
"bugsample.pdf"
"Faktura.pdf"
"fonts.pdf"
"MagicEye.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"

[src/zfont42.c]

2005-06-13T18:43:56.000000Z Igor Melichev

Fix : Interleaved images could miss Decode, step 4.

DETAILS :

Adding the new file gxsamplp.h to Develop.htm .


EXPECTED DIFFERENCES :

None.

[doc/Develop.htm]

2005-06-09T19:47:18.000000Z Ray Johnston

Add ManualFeed to the set of keys evaluated for media source matching.
Needed to allow forcing a ManualFeed tray selection even when another
media of the right type exists in another tray.

[lib/gs_setpd.ps]

2005-06-09T07:29:57.000000Z Igor Melichev

ps2write : Implementinmg the ps2write device (continued 3).

DETAILS :

Removed a rudimentary code from gs_pdfwr.ps .

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps]

2005-06-09T07:15:07.000000Z Ralph Giles

Throw an error when JBIG2 decoding fails in the library
instead of segfaulting. Bug 688053.

[src/sjbig2.h]

2005-06-09T07:15:07.000000Z Ralph Giles

Throw an error when JBIG2 decoding fails in the library instead of segfaulting. Bug 688053.

[src/sjbig2.c]

2005-06-09T05:26:48.000000Z Igor Melichev

ps2write : Implementinmg the ps2write device (continued 2).

DETAILS :

Fixing a name in gs_pdfwr.ps .

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps]

2005-06-08T14:38:21.000000Z Igor Melichev

Fix : Interleaved images could miss Decode, step 3.

DETAILS :

Fixes the bug 688127 "CMYK image ignores Decode".

1. The sample unpacking function templates are generalized
   for a case of interleaved samples with different decode maps (gxsamplp.h).

2. Generated functions for the interleaved samples
   using the templates (gxsample.c).

3. Used those function in appropriate cases (gxipixel.c).

4. repack_bit_planes was called with a wrong map
   (0-th instead i-th) (gxidata.c).

EXPECTED DIFFERENCES :

Some images are rendered with a different (correct) color.

The change appears to have no effect to the 'normal' rendering,
because our testbase doesn't include images with "/MultipleDataSources false"
and a non-trivial Decode. But such ones do appear after converting
few files with pdfwrite.

pdfwrite :

"148-01.ps"
"148-05.ps"

[src/lib.mak src/gxsamplp.h src/gxsample.c src/gxidata.c src/gxsample.h src/gxipixel.c]

2005-06-08T14:16:03.000000Z Igor Melichev

Fix : Interleaved images could miss Decode, step 2.

DETAILS :

This change is algorithmically equivalent.

This is a second preparation for fixing the bug 688127 "CMYK image ignores Decode".
It moves bodies of sample unpacking functions to a new file
gxsamplp.h and converts them into templates.
It is just a code restructurization.
We apply it separately in order to simplify the next step.

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxsamplp.h src/gxsample.c]

2005-06-08T14:00:32.000000Z Igor Melichev

Fix : Interleaved images could miss Decode, step 1.

DETAILS :

This change is algorithmically equivalent.

This is a preparation for fixing the bug 688127 "CMYK image ignores Decode".
It changes the SAMPLE_UNPACK_PROC function prototype to provide
an access to a vector of maps in sample decoding functions.
The new argument num_components_per_plane passes the length of the vector.
The argument "const sample_lookup_t * ptab" is replaced with
"const sample_map *smap" to pass the vector.

With this patch only the 0th component of the passed vector is being used
in order to provide the equivalense to the old code.
Dropping this feature will be a next step.

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxi16bit.c src/gxsample.c src/gxidata.c src/gxsample.h src/gximage.h src/gxi12bit.c]

2005-06-08T06:56:05.000000Z Igor Melichev

ps2write : Implementinmg the ps2write device (continued).

DETAILS :

1. Do not copy procsets when pdfwrite is invoked in the ForOPDFRead mode
   with no OPDFReadProcsetPath specified (gdevpdfu.c).
   This is done to simplify debugging with checking the PDF
   generated in the ForOPDFRead mode with a reference PDF viewer.

2. Fixed a Cygwin/gcc warning in gdevpdfu.c .

3. Provided a customization of the procset to be written with ps2write
   using -sOPDFReadProcsetPath=string .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c lib/gs_pdfwr.ps]

2005-06-08T06:42:23.000000Z Dan Coby

Fix for 688116 DeviceN spot colours are corrupt in display device.

DETAILS:

The overprint device is one of the few devices that uses the GB_RETURN_COPY
option to the get_bits procedures without also using the GB_RETURN_POINTER
option.  Thus the overprint device is bringing up problems in this option
combination.  The fix for 687935 "rangecheck in stroke while overprinting
on the display device" brought this problem to the surface.

The problem was that an incorrect buffer pointer was being used for the
source for the data to be copied.

[src/gdevdgbr.c]

2005-06-07T19:24:33.000000Z Ray Johnston

Fix for the BeginPage and EndPage procedures used for N-up processing.

DETAILS:

The BeginPage called the previous BeginPage (stored in .BP) at the wrong
time, so that rotation/translation of individual pages would not work
correctly.

The EndPage incremented the .Pn value even on 'device deactivation' calls
(mode == 2) so the page count was off if the input PS did 'setpagedevice'.

This probably is not widely used since it was broken. It's a little better
now, but still needs improvement (IMHO) such as setting a 'clip' before
the indivual pages. Try running two examples/tiger.eps to see why.

[lib/gsnup.ps]

2005-06-07T18:33:57.000000Z Igor Melichev

ps2write : Implementinmg the ps2write device.

DETAILS :

1. The ps2write device is a clone of the pdfwrite device.
   We define a new file gdevpdfb.h and move the device static data to there
   as a device template (gdevpdf.c, gdevpdfb.h).

2. pdf_open_document now writes out the copy opdfread.ps and few encodings
   (gdevpdfu.c).

3. Propagated a return code from pdf_open_document.

4. A new device parameter OPDFReadProcsetPath handles a list of
   files to be copied in the step (2) (gdevpdfx.h, gdevpdf.c, gdevpdfu.c, gdevpdfp.c).

5. pdf_close writes out the 0x04 character when working in the ForOPDFRead mode
   and OPDFReadProcsetPath is set.

6. A number of makefiles are changed to include the ps2write device.

7. In lib\gs_pdfwr.ps added the handling of distiller parameters with ps2write device.

8. In lib\gs_pdfwr.ps added an automatic setting of the OPDFReadProcsetPath
   device parameter for ps2write.

9. Added a new script ps2ps2.bat, which invokes Ghostscript with the ps2write devices.
   The old script ps2write.bat still invokes the Ghostscript with the pdfwrite device
   in the ForOPDFREad mode. It helps to debug ps2write with generating a PDF file
   in the ForOPDFRead mode.

10. In the documentation added references to the new files lib/ps2ps2.bat, src/gdevpdfb.h .
    (Develop.htm, Psfiles.htm).

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/openvms.mak src/gdevpdf.c src/macosx.mak src/watcw32.mak doc/Develop.htm src/unixansi.mak src/gdevpdfb.h src/devs.mak doc/Psfiles.htm src/os2.mak lib/gs_pdfwr.ps lib/ps2ps2.bat src/bcwin32.mak src/gdevpdfp.c src/unix-gcc.mak src/msvc32.mak src/gdevpdfu.c src/macos-mcp.mak]

2005-06-07T16:41:24.000000Z Igor Melichev

Fix (pdfwrite) : The memory descriptor of gx_device_pdf missed some strings.

DETAILS :

The bug was introduced when implementing the PDF encryption.

Minor change : the string data change the type from gs_const_string to gs_string
to comply with memory management macros.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c]

2005-06-06T19:06:57.000000Z Igor Melichev

ps2write : Handle TT cmap 00030000.

DETAILS :

Not sure why Ghostscript writes it since old wersions.
A comment in lib/ttf_cmap reads :

	% Try another cmap format 3,0 -- Adobe doesn't mention it, but does
	% use it apparently (empirically determined).

For now we do same in opdfread.
Debugged with comparefiles\type42_glyph_index.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-06-06T15:32:22.000000Z Igor Melichev

ps2write : A named resource maintenance.

DETAILS :

Since named resources (such as psdfmarkBP) may be used on any page,
they conflich with the viewer resource management discipline,
which drops resources per page. This patch implements an exception
for that discipline.

1. (opdfread.ps) At page end don't drop resources marked with /.Global .

2. (opdfread.ps) Handlinging Form XObject.

3. Provide the /.Global mark for those resources,
   which are used in a named resource. (dgevpdfj.c, gdevpdfm.c, gdevpdtw.c).

4. The flag pdf_resource_t::global marks resources,
   which are used while accumulating a named resource object stream,
   to provide (3) (gdevpdti.c, gdevpdfx.h).

5. gx_device_pdf::accumulating_a_global_object is added to designate the
   state for (4). It is saved and restored while enterin or exiting a substream
   (gdevpdfx.h, gdevpdfm.c, gdevpdti.c).

6. Removed 'const' from some function pritotypes to allow
   pdf_add_resource to set pdf_resource_t::global (gdevpdfi.c, gdevpdfo.c, gdevpdfx.h).

7. Minor change : improved a condition for writing the /.CleanResources flag (gdevpdf.c).

8. Removed a confusing comment in pdfmark_PS (gdevpdfm.c).

Debugged with pdfmarkPS.ps, Bug687350.ps .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c src/gdevpdfx.h src/gdevpdfo.c src/gdevpdf.c lib/opdfread.ps src/gdevpdtw.c src/gdevpdfu.c src/gdevpdti.c src/gdevpdfi.c src/gdevpdfj.c]

2005-06-04T15:21:04.000000Z Dan Coby

Removed extra && and space from last commit (fix for 687973).

[src/scfd.c]

2005-06-03T20:03:54.000000Z Ray Johnston

Fix to allow CCITT data without EOFB when EndOfBlock is true (the default)
to return normal end-of-file (EOFC) status instead of ioerror (ERRC) as
long as the row count given by Rows is satisfied. Bug 687973.

DETAILS:

This bug was reported by a potential customer. The fix is minimal and
returns EOFC instead of ERRC if the count given by Rows has been read.
This seems to be the closest to what is implied by the Adobe description
about EndOfBlock in that the filter WILL continue to process data past
the Rows value if EndOfBlock is true (the default) as long as no error
is seen. This means that PostScript programs that depend on this action to
consume extra data will still operate correctly.

Expected Differences:

None (I ran all of the comparefiles).

[src/scfd.c src/scfx.h]

2005-05-31T20:42:19.000000Z Igor Melichev

ps2write : Fixed problems with Separation color spaces.

DETAILS :

Allocation mode was incorrect at several points.

Debugged with comparefiles\Altona_Technical_1v1_x3.pdf .

Minor change : Improved a bebug printing.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-05-31T19:25:09.000000Z stefan

Update a few of the paper sizes used in reading/writing PXL.
Fixes bug 688118.

[src/gdevpxen.h]

2005-05-31T13:05:20.000000Z Igor Melichev

Fix : TT interpreter had problems on 64 bit platforms.

DETAILS :

It compiled with wrong integer data sizes.
Patch from Hin-Tak Leung .

EXPECTED DIFFERENCES :

None.

[src/tttype.h src/tttypes.h src/ttfoutl.h]

2005-05-31T11:04:59.000000Z Igor Melichev

ps2write : Implementing the SetPageSize mode (continued).

DETAILS :

With the recent patch opdfread sets a graphic state,
which was saved before setting a page size.
As a consequence the page was erased
when the initial graphic state is set.
This patch recreates PDFR_InitialGS when setpagedevice is invoked to change a page size.

Debugged with comparefiles\012-09.ps .

Minor change : Improved a bebug printing.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-05-31T10:56:57.000000Z Igor Melichev

Fix : A failed pattern color could cause a crash in vector devices.

DETAILS :

When a pattern color was set and was not used,
it was not remapped and causaed a crash in gx_dc_pattern_save_dc.
Detected occasionally when running an incorrect PS file.

EXPECTED DIFFERENCES :

None.

[src/gsptype1.c src/gxhldevc.c]

2005-05-30T21:00:33.000000Z Igor Melichev

ps2write : Implementing the SetPageSize mode.

DETAILS :

1. SetPageSize mode enables changing a page size in the
   target printer. This mode is implemented mainly to simplify testing
   with Ghostscript|ppmraw. We need same page size of 'normal' and
   'ps2write' rasters to simplify the automated comparizon.

2. (A minor change) Apply immediate binding to FitPages, RotatePages.

3. Allow more parameterization in ps2write.bat .

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat lib/opdfread.ps]

2005-05-30T16:41:26.000000Z Igor Melichev

ps2write : Implementing the font type MMType1.

DETAILS :

1. MMType1 to be handled as Type 1 due to the PDF format specifics.
2. Minor change : A comment for 'TrueType' was not good.
3. An implementation for 'sh' is saved for future use,
   rather it was coded in ps2write by an error
   (never usewd with ps2write, will be with ps3write).

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-05-29T19:29:11.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : Skip empty images when converting a shading into a bitmap.

DETAILS :

When converting a shading to a bitmap, a zero size image
could be written due to a typoe in gdev_pdf_fill_path.

Debugged with -r720 "Clarke Tate Manns Chinese-.ai" .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-05-27T05:43:24.000000Z Dan Coby

Fix for 688113 null ptr crash in gdevp14.c.  With the -rXXXxYYY switch
specified and high resolution PDF 1.4 transparency files, GS would crash.

DETAILS:

The logic for deteriming band sizes was being bypassed if the -rXXXxYYY
switch was specified on the command line.

Specifying resolution on the command line was forcing the calculation of
band size.  This occured before the determination that PDF 1.4 transparency
was being made.  The band size was not being recalculated when the
determination was being done.  The fix consists of including the
'page_uses_transparency' as part of the logic for determining when the
band size is recalculated.

[src/gdevprn.c src/gdevprn.h src/gdevijs.c]

2005-05-26T17:22:17.000000Z Igor Melichev

Fix : 'strokepath' could generate wrongly oriented contours (continued 2)

DETAILS :

Bug 688114 "Worse frame rasterizing a distilled Bug687546.ps".

The main change is gxstroke.c ln 853 : the line width rounding
depended on the line direction. Rather the problem is old,
before the patch http://ghostscript.com/pipermail/gs-cvs/2005-May/005519.html
it was not so important because vertical and horizontal lines always had
a positive direction. After the mentioned patch, that it not so.
Thus this patch completes the mentioned patch.

Other (minor) changes inprove visual trace instructions for round caps.

EXPECTED DIFFERENCES :

Normal 72 dpi :

"110-01.ps"
"169-05.ps"
"169-09.ps"
"222-05.ps"
"260-01.ps"
"289-01.ps"
"297-01.ps"
"298-01.ps"
"298-05.ps"
"298-09.ps"
"321-01.ps"
"321-05.ps"
"adesso8.pdf"

normal 300dpi :

pdfwrite 72dpi :

"012-13.ps"
"013-13.ps"
"014-05.ps"
"014-13.ps"
"015-05.ps"
"169-05.ps"
"169-09.ps"
"222-05.ps"
"260-01.ps"
"297-01.ps"
"316-07.ps"
"adesso8.pdf"
fail ppmraw/hdr "Bug687846.ps"
"Bug687846.ps"
fail ppmraw/cur "Bug687894.ps"
fail pdfwrite/hdr "Bug687894.ps"
fail ppmraw/hdr "Bug687894.ps"
"Bug687894.ps"
"file.pdf"


pdfwrite 300dpi :
"012-13.ps"
"013-13.ps"
"015-05.ps"
"027-09.ps"
"169-05.ps"
"222-05.ps"
"298-05.ps"
"307-01.ps"
"320-01.ps"
"ai2.pdf"

[src/lib.mak src/gxstroke.c src/gxpath.c]

2005-05-26T07:35:52.000000Z Igor Melichev

Fix : 'strokepath' could generate wrongly oriented contours (continued)

DETAILS :

The patch
http://ghostscript.com/pipermail/gs-cvs/2005-May/005519.html
brake a debug check.
Bug 688115 "Many new error/warning messages from gxstroke.c".

EXPECTED DIFFERENCES :

None.

[src/gxstroke.c]

2005-05-25T21:58:40.000000Z Ray Johnston

Fix VM space for userparams. Problem and patch courtesy of Paul Vojta.
Bug 688107.

DETAILS:

Also thanks to Alex Cherepanov for a reporducible test case. The original
problem file 'epstest.eps' did not actually show a problem. I tested this
against the comparefiles to validate that there were no unexpected changes,
but generally it was an obvious problem that an array might be created
in a VM space that was not the same local/gloabl as the strings it contained.

[lib/gs_lev2.ps]

2005-05-25T15:57:58.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : Wrong shading coordinates when converting to PDF 1.2 .

DETAILS :

1. Do not write "W n" when cvd->has_background == true,
  because we do not write a clipping path in this case.

2. When a shading is being converted into a bitmap with a downsampling,
   coordinate formulas in gdev_pdf_fill_path were wrong.
   The new logic is :

   sx,sy := the bitmap offset;
   Scale down the color and the CTM;
   Scale down the path to be filled;
   The pdf_lcvd_t instance performs a shift of the shading coverage path with
        path_offset := {sx,sy};
   A sacale up and shift back matrix is written into PDF as a 'cm' argument.
   {m.tx,m.ty} is same as the bitmap offset {sx, sy};

3. gx_dc_pattern2_has_background must account whether the shading
   is instantiated with a shfill. In this case Background is being ignored.

4. In R_tensor_annulus, the assignation of curve[i].straight
   was wrong when the patch boundasries applied a cyclic shift
   with 'inside'.

5. In patch_fill, the computation of the shading contour sign was not correct.
   Rather it gave a right sign for most cases,
   we replaced it with a right general formula
   (assuming a non-self-overlapped patch).

EXPECTED DIFFERENCES :

None.

[src/gsptype2.c src/gdevpdfd.c src/gxshade1.c src/gxshade6.c]

2005-05-23T22:33:22.000000Z Dan Coby

Fix for 688010 Errors in overprint with halftoned output.

DETAILS:

The PDF overprintmode can be used to specify overprinting when the  value
of an input color is zero.  The problem was caused by an error in
determining when an input color was zero.  The problem was only apparent
with a 'binary' halftone.  Ie.e one in which on a single component is
being halftoned.  The earlier logic would overprint all components which
were not being halftoned.  The example case involved 100% black and 50%
cyan.  The black component was treated like it was 0%.

[src/gxht.c]

2005-05-23T18:24:59.000000Z Igor Melichev

Fix (pdfwrite, ps2write) : Shading background was missed in PDF1.2 .

DETAILS :

Bug 688109 "pdfwrite : shading background can erroneusly disappear".

1. A new function gx_dc_pattern2_has_background allows to know whether
   a pattern color has a background.

2. If it has, when converting a shading to a bitmap, entire bitmap
   is being filled, so the shading coverage is trivial,
   and it doesn't need to convert into a masked image or
   into a clipped image. Implemented with defining a new flag
   pdf_lcvd_t::has_background .

3. Minor change : defined the identifier pdf_lcvd_s .

4. In gdevpdfb.c, applied lossles filters to an image,
   if it is not big. The old code did in the
   ForOPDFRead mode only. So now it works for pdfwrite.
   It improves the view of patterns (including shadings),
   rather the compressed iomage size is bigger.
   The old code caused significant distorsions with applying DCT
   to shadings (distorsions appear at patch boundaries and/or
   at the shading coverage boundary).

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gsptype2.c src/gdevpdfb.c src/gsptype2.h src/gdevpdfd.c]

2005-05-23T14:59:28.000000Z Igor Melichev

Fix : 'setcachewdevice' must always clip characters.

DETAILS :

Bug 688096 " setcachedevice must clip characters".

'setcachedevice' establises a clipping box when rendering a glyph to a cache.
In same time, when rendering with no caching, the old code did not clip.
As a result, some glyphs were clipped, and some others were not,
depending on the glyph size.

This patch clips Type 3 and Type 10 charactrers when rendering with no cache,
and behaves as the old code with other font types.
We doing so to optimze the performance using the assumption that
"outline" (FontType != 3 && FontType != 10) fonts must not paint outside FontBBox,
which to be used for clipping in those cases.
Besides that, the patch rounds Type 3 and Type 10 charactrer
coordinates when renderingh with no cache, to provide
an uniform coordinate assignation with the cached mode.

The patch defines a new variant CACHE_DEVICE_NONE_AND_CLIP,
which is defined almost for clarity. Actually the code never
checks for this specific value.

For more details see comments in code.

EXPECTED DIFFERENCES :

Normal 72dpi :

Not detected.

Normal 300dpi :

"027-13.ps"
"032-07.ps"
"205-09.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"264-01.ps"
"289-01.ps"
"298-09.ps"
"321-09.ps"


pdfwrite 72 dpi :

None.

pdfwrite 300dpi :

None.

[src/gxchar.c src/gscpm.h]

2005-05-23T10:49:25.000000Z Igor Melichev

Fix : 'strokepath' could generate wrongly oriented contours.

DETAILS :

Bug 688103 "The dashing direction depends on the initial device CTM determinant".
Bug 688097 "A wrong clipping with 298-01.ps"

The patch computes initial_matrix_reflected = true iff
the initial device CTM has a negative determinant.
Then it is accounted to orient stroke outlines
to a proper direction : they must form positive contours in the user space.
For doing so we properly orient dash caps
in gx_stroke_path_only_aux, and then compensate it in line_join_points.
Several local function prototype were changed to pass
the value of initial_matrix_reflected to line_join_points.

Minor change : moved some visual trace instructions to
a more general function, which is called from several places.

EXPECTED DIFFERENCES :

Normal 72dpi :

"012-13.ps"
"013-13.ps"
"014-05.ps"
"014-13.ps"
"015-05.ps"
"027-09.ps"
"034-10.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"205-13.ps"
"222-05.ps"
"222-13.ps"
"260-01.ps"
"289-01.ps"
"297-01.ps"
"298-01.ps"
"298-05.ps"
"298-09.ps"
"308-04.ps"
"316-07.ps"
"321-01.ps"
"321-05.ps"
"321-13.ps"
"adesso8.pdf"
"file.pdf"
"golfer.eps"


Normal 300dpi :

"014-05.ps"
"015-05.ps"
"027-09.ps"
"034-01.ps"
"159.pdf"
"169-05.ps"
"222-05.ps"
"231-01.ps"
"260-01.ps"
"281-01.ps"
"289-01.ps"
"298-01.ps"
"298-05.ps"
"307-01.ps"
"321-01.ps"
"321-05.ps"
"86554321.pdf"
"adesso7.pdf"
"Bug687546.ps"

pdfwrite 72 dpi :

"012-13.ps"
"013-13.ps"
"014-05.ps"
"014-13.ps"
"015-05.ps"
"034-10.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"260-01.ps"
"297-01.ps"
"316-07.ps"
"adesso8.pdf"
"file.pdf"
"golfer.eps"

pdfwrite 300dpi :

"014-05.ps"
"015-05.ps"
"027-09.ps"
"169-05.ps"
"222-05.ps"
"307-01.ps"
"316-07.ps"
"320-01.ps"

[src/gxstroke.c]

2005-05-19T16:39:06.000000Z Ray Johnston

Fix for yet another broken PDF that Adobe Reader handles without complaint.
Circular references in Resources are now detected and handled (with a
warning). Bug 687946 for customer 580. Thanks to Alex Cherepanov for this fix

DETAILS:

A dictionary is used to detect the looping and if found a pdfformaterror is
emitted and the checking for transparency halts (returning false). This
does mean that a file with this problem may be incorrectly classified and
will be processed as if NOTRANSPARENCY was in effect.

The performance penalty for the extra checking is negligble (tested with
the 1236 page PDF 1.6 Reference Manual.

[lib/pdf_main.ps]

2005-05-18T19:59:10.000000Z Igor Melichev

ps2write : Improving the script with NOOUTERSAVE.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat]

2005-05-18T19:51:38.000000Z Igor Melichev

ps2write : Passing NumCopies to the output.

DETAILS :

1. In the ForOPDFRead mode Page objects will have a NumCopies entry
   iff NumCopies in the input isn't null.
   With ForOPDFREad=false it is being ignored.

2. opdfread.ps applies copypage to provide the requested number of copies.
   Zero and negative values are being ignored.

Thus, if a PS document multiplies specific pages,
they will be printed in the requested number.
In same time, entire document can be copied with setting
the NumCopies device parameter to the printer.
This behavior is some different than pswrite.

Debugged with 268-03.ps .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c lib/opdfread.ps]

2005-05-18T10:21:44.000000Z Igor Melichev

Fix (pdfwrite) : A wrong line join with 'stroke'.

DETAILS :

This patch affects all vector devices.
The old code wrongly recognizes closed rectangular paths,
so that unclosed rectangles were converted into closed ones with 'stroke'.

EXPECTED DIFFERENCES :

pdfwrite :

260-01.ps
adesso1.pdf

[src/gdevvec.c]

2005-05-17T20:56:46.000000Z Ralph Giles

Update a comment to correctly describe the jasper stream object struct.

[src/sjpx.h]

2005-05-17T20:40:03.000000Z Igor Melichev

Fix (ps2write) : Complete supporting vierws which have no stroke color.

DETAILS :

Color was not synchronized when painting with a low level color.
Debugged with 035-01.ps, 148-01.ps, 148-05.ps, 148-11.ps .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-05-17T17:40:17.000000Z Igor Melichev

opdfread : Implementing HalftoneType 3,6,10.

DETAILS :

1. A bug in ComputeFunction_n0 : s/size/length
2. A bug in ComputeFunction_n0 scaled argument must compare with array size rather than with 1.
3. Creating halftone Thresholds from stream with CreateHalftoneThresholds.
4. Resolve SpotFunction independently on IsObjRef.
5. Resolve TransferFunction for some halftone types.
6. Convert HalftoneType 6 into HalftoneType 3.
7. Ignore HalftoneType > 6 (which are not allowed in Postscript level 2) and print a warning.
   We would like to convert them, but it's too complex.

Debugged with 258-01.ps, 476-01.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-05-17T12:04:17.000000Z Igor Melichev

Fix (opdfread) : Some glyphs were substituted with .notdef .

DETAILS :

It was broken when implementing a workaround for broken filters in HP LaserJet 1320 :
endstream was never called, so that definefont_hook was skipped.

1. Moved the processing from 'endstream' to a new procedure HookFont.
2. Imple,mented an 'endobj' daemon with .endobj_daemon,
   which is a property of an object.
3. ReadFontProcs procedures create instances of .endobj_daemon,
   which call HookFont.
4. definefont_hook has been removed forever.
5. 'wendstream' is now an empty procedure,
   which actually is never called due to the HP filter problem.

Debugged with 01_001.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-05-17T08:41:02.000000Z Igor Melichev

ps2write : Improving the script.

DETAILS :

1. Restricted the source line width with inserting temporary variables.
2. Provided the 'jobserver' option with an environment variable to simplify running Genoa tests.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat]

2005-05-17T08:19:44.000000Z Igor Melichev

opdfread : Improving the discipline for function resolving.

DETAILS :

1. Impolemented a general object reference recognizer in IsObjRef.
2. ResolveFunctionSafe is another helper.
3. Used it in function resolving.
4. Replaced ResolveSpotFunction with a general ResolveFunction.
5. Removed an unintended debug printing.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-05-16T23:25:45.000000Z Igor Melichev

opdfread : Implementing n-arguments linear sampled functions in BG, UCR, TR, BG2, UCR2, TR2, HT.

DETAILS :

1. Fixed the stack balanse in ScaleArgN.
2. ComputeFunction_n0 Was not implemented.
3. FunctionToProc_x01 did not properly scale the argument from the Domain.
4. Added the FunctionToProc20 dispatch.
5. Renamed FunctionToProc2 into FunctionToProc12.
6. Renamed FunctionToProc4 into FunctionToProc14.
7. spotfunctions mark copied from pdf_draw.ps
8. ResolveFunction defines an uniform convention for function resolving.
9. Fixed SetTransfer with new convension of function resolving.
10. Implemented BG, UCR, TR, BG2, UCR2, TR2, HT with the new methods for 2-argument functions.

Debugged with 246-01.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-05-13T12:28:26.000000Z Alex Cherepanov

Fix a typo in a comment.

[src/msvc32.mak]

2005-05-12T19:26:17.000000Z Igor Melichev

Fix (ps2write) : Did not write halftone, color transfer, and some other graphic state parameters.

DETAILS :

See comment in code.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfg.c]

2005-05-12T02:01:32.000000Z Alex Cherepanov

Increase the artificial limits in the spot analyzer device
to accomodate Xterra-Regular font.
Fix bug 688077.

[src/gzspotan.c]

2005-05-10T16:19:36.000000Z Igor Melichev

Fix (pdfwrite) : Properly encrypt the document Info values.

DETAILS :

Bug 688076 "encrypted pdf document properties are garbled".

This patch unwinds the part 7 of the patch
http://ghostscript.com/pipermail/gs-cvs/2005-April/005485.html .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c]

2005-05-10T13:22:40.000000Z Ray Johnston

Fix overly agressive xref format checking that was tripped up by double
 instead of . Bug 688082 for customer 580.

DETAILS:

The xref did have 20 character entries, but as mentioned, a double 0x0d
resulted in the second line being read as an empty line. Go back to the
older method of reading 20 character strings, then add format verification
that only allows white space characters after the 'f' or 'n'.

There may be an underlying problem in the rebuild logic, or the file may
be damaged beyond repair although it does now open. There is a warning
issued about stream EOL that may have confused the rebuild logic.

[lib/pdf_main.ps]

2005-05-07T22:56:56.000000Z Ray Johnston

Handle non-integer font size and stop after last page processed.

[lib/gslp.ps]

2005-05-05T05:35:22.000000Z Dan Coby

Partial fix for 687814 dithering artifacts.  The given test file shows
some faint halftone dots in the background when rasterized using the
bmp256 device.

DETAILS:

The problem is caused by a combination of factors that aggravate the
situation plus some things in the color look up logic that cause minor
errors in the calculations.

The aggravating factors:

By default, Ghostscript uses a 16x16 halftone cell for low resolutions,
i.e. below 150 dpi.  (I do not know the reasons why and it seems like a
poor choice to me.  However for now, I am not changing the halftone.)
The bmp256 device utilizes a 6x6x6 RGB color cube.  Thus there are 1281
levels ((16 x 16 x 5) + 1) for each halftoned colorant.  This gives a step
size between each level of 0.00078.  Thus even very small errors in the
calculations become visible as faint halftone dots.

The given test file is using a CalRGB color space.  The WhitePoint is
[ 0.9505 1 1.089 ] which is the standard D65 white point.  However with
the given CalRGB parameters and a pure white RGB input (1 1 1). the
resulting XYZ is [0.9505 0.99999 1.089] which has a very small error in
the Y value.  (However the error is small enough that one would not expect
it to be visible.)

The calculations in Ghostscript's halftoning logic for determining the
halftone level truncate values.  With an RGB process color model, this
means that only a pure white is not halftoned.  Thus the small error
mentioned in the previous paragraph becomes visible.  Note:  The truncation
effects work the other way in a CMYK process color model, which is why
we do not see this problem with shades that are nearly white in CMYK
halftoned output.

The calculation errors:

To save CPU time, the color look up logic did not interpolate table
entries which were closer that 0.01.  Thus output values could have an
error as large as 0.01.

The color look up logic clipped table entries to the specified output
range.  This can cause errors with interpolated values when the interpolation
involves one table entry that is clipped and one entry that is not clipped.


The changes in this fix:

The calculations that determine the halftone levels was modified.  Actually
it was simplified.  Prior to the DeviceN changes (in revision 8.00) there
were three separate calculations for halftone levels.  There was a separate
calculation for Gray, RGB, and CMYK color spaces.  Revision 8.00 changed
the halftoning to be based upon the device's process color model (instead
of the color space) and merged the RGB and CMYK calculations.  The two
separate calculations were kept to minimize regressions during the DeviceN
effort.  This change basically keeps the logic that had been used for Gray
process color models.  This version of the calculation does not have the
truncation problems that were present in the RGB/CMYK calculation.  Another
simplification was removal of some logic that was checking for additive
versus subtractive process color model.  Once again this logic was present
only to minimize regressions compared to pre 8.00 results.  The final
result is that this calculation is much simpler, faster, and gives a better
result.

The 'do not interpolate' criteria was reduced to 0.001.  Once again this
can add to the CPU time.

Changes which are not in this fix:

The clamping of look up table entries was not changed.  Changing this
requires that the we would have to clamp the output after the table lookup.
The errors are small but they are large enough that problems are still
seen with the bmp256 device and a 16x16 halftone cell.  There are several
different paths through this logic and thus the probability of creating
worse errors is relatively high.  This change would add slightly to the
CPU time but is required to get the correct result.


EXPECTED DIFFERENCES:

This change produces small changes in the halftone levels.  The changes in
the 'do not interpolate' value affects many files which use CIE or ICC
color spaces.  Between these two changes, this fix affects 165 files.

[src/gscie.h src/gxcmap.c src/gxdither.h src/gxdevndi.c]

2005-05-03T10:50:48.000000Z Igor Melichev

Speed up shadings : a minor optimization for the monotonity check of a stitching function.

DETAILS :

It returned false (wrong, must be true) if entire interval falls to the end of the domain.
Speeds up ps2write with "Clarke Tate Manns Chinese.ai".

EXPECTED DIFFERENCES :

Not observed in a local testing with arbitrary devices.
May cause a minor difference with some devices.

[src/gsfunc3.c]

2005-05-03T10:41:56.000000Z Igor Melichev

ps2write : Set device parameters to preserve colors.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat]

2005-05-03T09:10:28.000000Z Igor Melichev

ps2write : Fix problems with shadings.

DETAILS :

1. gdev_pdf_fill_rectangle_hl_color did not implement a shading conversion
   when called with a shading color.

2. The "convert_to_image" branch of gdev_pdf_fill_path had a problem with
clipping path when called fron the operator 'fill' (rather than 'shfill').

3. In the "convert_to_image" branch of gdev_pdf_fill_path
   improved the balance of Q/q in case of errors.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-04-29T16:58:04.000000Z Ray Johnston

Handle CIDCount value of 65536 which might be seen with Identity CMap.
Fix for customer 562.

DETAILS:

while a multiple string approach had been previously implemented to allow
CIDCount > 32767, with 65536 a 'rangecheck in --string-- would result
when trying to create a string of 65538 bytes (32769 * 2). I chose a
arbitrary break point of 22000 CID's so that three strings would be
enough for 66000 total.

[lib/gs_cidtt.ps]

2005-04-27T16:40:45.000000Z Igor Melichev

Fix (pdfwrite) : Properly account FontMatrix of a CID font with 'glypshow', 'cshow'.

DETAILS :

Bug 688000 "PDF writer produces misplaced characters".

When a CID font is used with 'glypshow' or with 'show' in a 'cshow' procedure,
pdfwrite creates a Type 0 font for wrapping the CID font according to the PDF standard.
Doing so, the old code created a single type 0 font for all occurances of
the CID font, rather those occurances may have different values of FontMatrix.
The new code creates so many type 0 fonts as many various values of
FontMatrix is used with the CID font.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtc.c src/gsfont.c src/gsfont.h]

2005-04-26T21:36:35.000000Z Dan Coby

Fix for 687883 tiff32nc device and PDF transparency and for 687980
image missing with psdcmyk driver.

DETAILS:

The absence of the images was caused by an error in the handling of PDF 1.4
transparency soft masks (SMask).  The mask data is monochrome.  However it
is saved (like all PDF 1.4 transparency related colors) in the blending
color space.  Currently the process color model of the output device is
being used for the PDF 1.4 blending space.

The fix consists of inverting the image mask data when a subtractive
blending color space is being used.

[src/gdevp14.c]

2005-04-26T21:28:16.000000Z Dan Coby

Fix for 688048 ijs driver broken in 8.51 for ProcessColorModel=Gray versus 8.50

DETAILS:

There were a few minor problems with the gdevijs.c file.

1.  The file has been corrupted with extra ^M's at the end of lines.  (These
cause problems with the MSVC debugger since MSVC gets confused about which
source line is being debugged..  They can also cause problem with the Borland
Compiler.)  This a reoccurring problem and I am getting tired of seeing it.

Unfortunately they are not visible in the diff shown below or in the MSVC
debugger.

2.  The routine gsijs_read_string_malloc has some problems.  The call to
gs_free has str as a parameter when it should have been *str.  (str is a
pointer to a pointer.)  This is the major cause of the reported problem.
The routine only released the old string when the new one needed to be
larger however it always allocated a new string.  Since this is non GC memory,
this causes a leak.

[src/gdevijs.c]

2005-04-25T12:28:49.000000Z Igor Melichev

Fix (pdfwrite) : Uninitialized variable when encrypting a string from a pdfmark.

DETAILS :

Bug 687809 "pdfwrite: A wrong encryption of bookmarks".

This bug may become another classic example,
which demonstrates a bad coding style.
The function s_PSSD_init incompletely performed the action,
which it is designed for. The reason is that the macro
s_PSSD_init_inline was made especially for optimizing
scan_token, and its name doesn't reflect its action.
When coded s_PSSD_init, its action was forgotten.
As a result we've got an indeterministic behavior.

This fix renames s_PSSD_init_inline into s_PSSD_partially_init_inline
for a better reflection of its action, completes s_PSSD_init,
and makes the letter be public for a regular initialization.
Particularly using it gdevpdfr.c to fix another indeterministic bug,
which persists since the repository was created.

EXPECTED DIFFERENCES :

None.

[src/iscan.c src/sstring.h src/gdevpdfr.c src/sstring.c]

2005-04-25T02:23:58.000000Z Igor Melichev

Fix (pdfwrite) : font file objects encryption was broken when worked on ps2write.

DETAILS :

Bug 688045 "gs 8.51 cannot create encrypted pdf file correctly".

1. With CompatibilityLevel == 1.2 did not create an uniquie font name.
   Removing pdf_begin_fontfile and open the data stream
   with reserving the object ID before font name is being computed (gdevpdtb.c).
   Detected occasionally, and it is not related to the bug.
   Fixed to establish a correct order of processing,
   setting a proper context for other changes.

2. pdf_write_embedded_font must not set DATA_STREAM_ENCRYPT
   because the font object is being written into the temporary file pdev->streams.
   It will be encrypted when copyed from the temporary file to the output file.
   See comment in pdf_begin_encrypt.

   The old code actually encrypted it twice, what is equivalent to no encryption.
   We guess it was broken while working on ps2write,
   due to writing font descriptor object before font file object.

3. pdf_write_cmap had same problem as pdf_write_embedded_font.

4. pdf_write_contents_cid2 had same problem with CIDToGIDMap.

5. In pdf_encrypt_encoded_string, the PSSD filter did not move
   the cursor of the underlying stream when closing by EOD.
   We believe that it worked when it was coded,
   and we guess it was broken relatively recently.
   As a workaround, setting close_at_eod = false,
   because this mode appears to move the underlying stream.
   We didn't analyze why PSSD moved it a long ago and doesn't longer move now.

6. pdf_write_cid_system_info_to_stream must not encrypt
   when called from pdf_write_cmap due to (3).

7. Don't encrypt the DocumentInfo dictionary items because Adobe readers
   don't decrypt them.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c src/gdevpdtb.c src/gdevpdfu.c src/gdevpdtw.c src/gdevpdti.c]

2005-04-24T22:01:09.000000Z Ralph Giles

Initial revision

[jasper/src/libjasper/jpc/jpc_cs.c jasper/configure.ac jasper/src/libjasper/bmp/bmp_cod.c jasper/src/libjasper/pgx/pgx_enc.c jasper/src/libjasper/jpc/jpc_cs.h jasper/src/libjasper/include/Makefile.in jasper/src/libjasper/pgx/Makefile.am jasper/src/libjasper/pgx/pgx_enc.h jasper/src/libjasper/include/jasper jasper/src/libjasper/bmp/bmp_cod.h jasper/src/libjasper/Makefile.am jasper/data/images/goldenears_gray.pnm jasper/src/libjasper/jpc/jpc_qmfb.c jasper/configure jasper/src/libjasper/pgx/Makefile.in jasper/src/libjasper/base/jas_seq.c jasper/src/libjasper/ras/ras_cod.c jasper/src/libjasper/Makefile.in jasper/src/libjasper/jpc/jpc_qmfb.h jasper/src/libjasper/jpg/jpg_val.c jasper/src/libjasper/jpc/jpc_fix.h jasper/src/libjasper/ras/ras_cod.h jasper/src/appl/jasper_sdl.c jasper/src/libjasper/pgx/pgx_dec.c jasper/src/libjasper/jp2 jasper/README jasper/src/libjasper/include/jasper/jas_getopt.h jasper/src/libjasper/include/jasper/jas_init.h jasper/src/libjasper/jpc/jpc_enc.c jasper/src/libjasper/base/jas_string.c jasper/src/Makefile.am jasper/data/colorprofiles/greyromm.icm jasper/src/libjasper/include/jasper/jas_malloc.h jasper/data/colorprofiles/esrgb.icm jasper/doc jasper/src/libjasper/jpc/jpc_enc.h jasper/src/libjasper/jpg/jpg_enc.c jasper/src/Makefile.in jasper/src/libjasper/jpg/jpg_enc.h jasper/src/libjasper/mif jasper/acaux/install-sh jasper/src/appl/imgcmp.c jasper/src/libjasper/include jasper/src/libjasper/jpc/jpc_flt.h jasper/src/libjasper/include/jasper/jas_math.h jasper/src/libjasper/jpc/jpc_dec.c jasper/src/libjasper/include/jasper/jas_stream.h jasper/acaux/depcomp jasper/src/libjasper/bmp/Makefile.am jasper/src/libjasper/jpc/jpc_dec.h jasper/src/appl/Makefile.am jasper/src/libjasper/jpg/jpg_dec.c jasper/src/libjasper/jpc/jpc_mqcod.c jasper/src/libjasper/ras/Makefile.am jasper jasper/src/msvc/imgcmp.dsp jasper/src/libjasper/bmp/Makefile.in jasper/src/libjasper/jpc/jpc_mqcod.h jasper/src/appl/Makefile.in jasper/src/libjasper/jpc/jpc_t1cod.c jasper/src/libjasper/jpc/jpc_t2enc.c jasper/src/msvc/Makefile.am jasper/data/colorprofiles/grey.icm jasper/src/libjasper/ras/Makefile.in jasper/src/libjasper/jpc/jpc_t1cod.h jasper/src/libjasper/jpc/jpc_t2enc.h jasper/src/msvc/imginfo.dsp jasper/src/msvc/jiv.dsp jasper/src/libjasper/jpc/jpc_mct.c jasper/src/libjasper/dummy.c jasper/src/libjasper/jpc jasper/src/libjasper/include/jasper/jas_image.h jasper/data/images/goldenears.jpg jasper/src/msvc/Makefile.in jasper/src/libjasper/jpg jasper/jasper.spec.in jasper/src/libjasper/jpc/jpc_mct.h jasper/src/README jasper/src/libjasper/jpc/jpc_math.c jasper/data/images/small_16x1.pgm jasper/src jasper/src/libjasper/jpc/jpc_math.h jasper/src/libjasper/base/jas_cm.c jasper/src/libjasper/include/jasper/jas_icc.h jasper/src/libjasper/include/jasper/jas_cm.h jasper/src/libjasper/pnm/pnm_cod.c jasper/src/libjasper/jpc/jpc_t2dec.c jasper/src/libjasper/jp2/jp2_cod.c jasper/src/libjasper/README jasper/src/libjasper/pnm/pnm_cod.h jasper/src/libjasper/jpc/jpc_t2dec.h jasper/acaux jasper/doc/README jasper/src/libjasper/jp2/jp2_cod.h jasper/data/images/example.mif0 jasper/src/libjasper/bmp/bmp_enc.c jasper/src/libjasper/include/jasper/jas_tvp.h jasper/data/images/feep2.pnm jasper/src/libjasper/bmp/bmp_enc.h jasper/data/images/stawamuschief.pnm jasper/src/libjasper/mif/README jasper/src/libjasper/base/jas_image.c jasper/data/images jasper/src/libjasper/include/jasper/jas_fix.h jasper/src/libjasper/ras/ras_enc.c jasper/LICENSE jasper/src/appl jasper/data/images/goldenears.ras jasper/src/libjasper/ras jasper/data/colorprofiles/sgray.icm jasper/src/libjasper/ras/ras_enc.h jasper/acaux/compile jasper/src/libjasper/bmp/bmp_dec.c jasper/data/colorprofiles jasper/src/msvc/README jasper/acaux/config.sub jasper/src/libjasper/mif/mif_cod.c jasper/src/msvc jasper/data/colorprofiles/srgb.icm jasper/src/libjasper/include/jasper/jas_types.h jasper/src/libjasper/mif/mif_cod.h jasper/src/libjasper/ras/ras_dec.c jasper/Makefile.am jasper/data/images/README jasper/NEWS jasper/src/libjasper/base/jas_version.c jasper/Makefile.in jasper/src/libjasper/base/jas_iccdata.c jasper/data/Makefile.am jasper/src/libjasper/jpc/jpc_tagtree.c jasper/data/images/feep.pnm jasper/src/libjasper/jpc/Makefile.am jasper/src/appl/jasper.c jasper/data/images/goldenears.pnm jasper/src/libjasper/jpg/Makefile.am jasper/data/colorprofiles/esrgbgrey.icm jasper/src/libjasper/jpc/jpc_tagtree.h jasper/src/libjasper/pnm jasper/src/libjasper/base/jas_getopt.c jasper/src/libjasper/jpc/jpc_mqenc.c jasper/src/libjasper/jpg/jpg_dummy.c jasper/src/libjasper/jpc/jpc_bs.c jasper/src/libjasper/jpc/Makefile.in jasper/doc/jasper.pdf jasper/src/libjasper/base/jas_malloc.c jasper/src/libjasper/include/jasper/jas_string.h jasper/src/libjasper/jpc/jpc_mqenc.h jasper/doc/jpeg2000.pdf jasper/src/libjasper/jpg/Makefile.in jasper/src/libjasper/pgx/pgx_cod.c jasper/src/libjasper/jpc/jpc_bs.h jasper/src/libjasper/jpc/jpc_t1enc.c jasper/src/msvc/jasper.dsp jasper/src/libjasper/pgx/pgx_cod.h jasper/src/libjasper/jpc/jpc_t1enc.h jasper/acaux/missing jasper/src/libjasper/base jasper/data/colorprofiles/romm.icm jasper/aclocal.m4 jasper/src/msvc/jasper.dsw jasper/src/libjasper/include/jasper/jas_version.h jasper/src/libjasper/include/jasper/jas_seq.h jasper/src/libjasper/jpc/jpc_mqdec.c jasper/src/libjasper/base/jas_stream.c jasper/data/images/test.pnm jasper/src/libjasper/base/jas_icc.c jasper/src/libjasper/jpc/jpc_mqdec.h jasper/src/libjasper/jpc/jpc_t1dec.c jasper/src/appl/jiv.c jasper/src/libjasper/pnm/pnm_enc.c jasper/src/appl/imginfo.c jasper/acaux/ltmain.sh jasper/src/libjasper/jp2/jp2_enc.c jasper/src/libjasper/pgx jasper/src/libjasper/jpc/jpc_t1dec.h jasper/src/libjasper/pnm/pnm_enc.h jasper/data/images/goldenears_gray.jpg jasper/src/libjasper jasper/data/colorprofiles/sycc.icm jasper/src/libjasper/base/jas_tvp.c jasper/src/libjasper/include/jasper/jas_config_ac.h jasper/src/libjasper/jpc/jpc_cod.h jasper/src/libjasper/jpc/jpc_util.c jasper/data jasper/data/colorprofiles/erimm.icm jasper/jasper.spec jasper/src/libjasper/jpc/jpc_util.h jasper/src/libjasper/jpg/jpg_cod.h jasper/src/libjasper/pnm/pnm_dec.c jasper/src/libjasper/include/jasper/Makefile.am jasper/src/libjasper/include/jasper/jas_debug.h jasper/src/libjasper/include/jasper/jas_config_win32.h jasper/data/images/example.mif jasper/src/libjasper/jp2/jp2_dec.c jasper/src/libjasper/jpg/jpg_jpeglib.h jasper/src/libjasper/jp2/jp2_dec.h jasper/src/libjasper/include/jasper/Makefile.in jasper/data/images/stawamuschief_gray.pnm jasper/src/libjasper/base/jas_init.c jasper/src/libjasper/include/jasper/jas_config.h jasper/data/images/small_1x1.pgm jasper/src/libjasper/pnm/Makefile.am jasper/src/libjasper/jp2/Makefile.am jasper/src/libjasper/jpc/jpc_t2cod.c jasper/INSTALL jasper/data/images/goldenears_gray.ras jasper/COPYRIGHT jasper/src/libjasper/include/jasper/jas_config_ac.h.in jasper/src/libjasper/jpc/jpc_t2cod.h jasper/data/images/goldenears.bmp jasper/src/libjasper/pnm/Makefile.in jasper/src/libjasper/jp2/Makefile.in jasper/src/libjasper/jpg/README jasper/src/libjasper/bmp jasper/src/libjasper/base/jas_debug.c jasper/src/libjasper/include/jasper/jasper.h jasper/src/libjasper/base/Makefile.am jasper/src/libjasper/mif/Makefile.am jasper/data/colorprofiles/README jasper/src/libjasper/jpc/jpc_tsfb.c jasper/acaux/config.guess jasper/src/libjasper/include/Makefile.am jasper/src/libjasper/base/Makefile.in jasper/src/libjasper/jpc/jpc_tsfb.h jasper/src/msvc/libjasper.dsp jasper/src/appl/dummy.c jasper/src/libjasper/mif/Makefile.in]

2005-04-24T21:58:09.000000Z Ralph Giles

Initial revision

[jbig2dec/sha1.c jbig2dec/aclocal.m4 jbig2dec/config_win32.h jbig2dec/jbig2.c jbig2dec/install-sh jbig2dec/jbig2_image_pbm.c jbig2dec/jbig2_metadata.c jbig2dec/config_types.h jbig2dec/jbig2_generic.h jbig2dec/jbig2_image.c jbig2dec/configure jbig2dec/sha1.h jbig2dec/Makefile.in jbig2dec/jbig2_metadata.h jbig2dec/jbig2.h jbig2dec/jbig2_priv.h jbig2dec/getopt.c jbig2dec/jbig2_image_png.c jbig2dec/snprintf.c jbig2dec/jbig2_image.h jbig2dec/depcomp jbig2dec/getopt.h jbig2dec/compile jbig2dec/jbig2dec.c jbig2dec/os_types.h jbig2dec/configure.ac jbig2dec/getopt1.c jbig2dec/jbig2_arith.c jbig2dec/jbig2_symbol_dict.c jbig2dec/COPYING jbig2dec/jbig2_arith.h jbig2dec/jbig2_page.c jbig2dec/jbig2_symbol_dict.h jbig2dec/msvc.mak jbig2dec/jbig2_arith_int.c jbig2dec/jbig2_huffman.c jbig2dec/LICENSE jbig2dec/jbig2_text.c jbig2dec/jbig2_hufftab.h jbig2dec/jbig2_arith_int.h jbig2dec/config_types.h.in jbig2dec/jbig2_huffman.h jbig2dec/jbig2_mmr.c jbig2dec/jbig2_refinement.c jbig2dec/jbig2_arith_iaid.c jbig2dec/README jbig2dec/jbig2_mmr.h jbig2dec/memcmp.c jbig2dec/test_jbig2dec.py jbig2dec/jbig2_arith_iaid.h jbig2dec/jbig2_segment.c jbig2dec jbig2dec/config.h.in jbig2dec/missing jbig2dec/Makefile.am jbig2dec/jbig2_generic.c]

2005-04-24T21:46:26.000000Z Ralph Giles

Initial revision

[libpng/projects/netware.txt libpng/scripts/makefile.gcmmx libpng/contrib/gregbook/writepng.c libpng/contrib/pngminus/makevms.com libpng/contrib/gregbook/readpng2.c libpng/contrib/gregbook/writepng.h libpng/contrib/gregbook/Makefile.unx libpng/scripts/makefile.msc libpng/scripts/makefile.sgi libpng/contrib/gregbook/readpng2.h libpng/projects/beos/x86-shared.txt libpng/contrib/visupng/VisualPng.dsp libpng/KNOWNBUG libpng/projects/cbuilder5/libpng.readme.txt libpng/scripts/makefile.watcom libpng/contrib/visupng/VisualPng.dsw libpng/scripts/makefile.linux libpng/scripts/makefile.acorn libpng/contrib/pngsuite/basn3p01.png libpng/scripts/makefile.elf libpng/projects/visualc71/zlib.vcproj libpng/scripts/pngw32.rc libpng/contrib/gregbook/toucan.png libpng/scripts/makefile.mips libpng/projects/visualc71/libpng.sln libpng/pngrio.c libpng/contrib/gregbook/makevms.com libpng/contrib/gregbook/rpng-win.c libpng/projects/cbuilder5/libpngstat.bpf libpng/projects/visualc6 libpng/contrib/pngsuite/basn0g02.png libpng/README libpng/contrib/gregbook libpng/contrib/pngsuite/basn0g04.png libpng/projects/cbuilder5/libpngstat.bpr libpng libpng/contrib libpng/contrib/pngsuite/basn4a08.png libpng/libpngpf.3 libpng/contrib/pngsuite/basn0g08.png libpng/contrib/pngminus/makefile.tc3 libpng/TODO libpng/scripts/descrip.mms libpng/contrib/visupng/VisualPng.ico libpng/scripts/makefile.solaris libpng/projects/cbuilder5/zlib.readme.txt libpng/pngwtran.c libpng/scripts/makefile.hp64 libpng/contrib/pngminus/png2pnm.sh libpng/contrib/pngminus/pnm2png.sh libpng/contrib/gregbook/wpng.c libpng/pngnow.png libpng/scripts/makefile.bc32 libpng/contrib/gregbook/README libpng/projects/visualc71/pngtest.vcproj libpng/scripts/makefile.vcwin32 libpng/contrib/gregbook/rpng2-win.c libpng/projects/beos/x86-static.proj libpng/scripts/pngw32.def libpng/pngget.c libpng/scripts/makefile.os2 libpng/contrib/pngminus/makefile.std libpng/projects/cbuilder5 libpng/scripts/makefile.sunos libpng/projects/wince.txt libpng/libpng.3 libpng/contrib/visupng/cexcept.h libpng/pngtrans.c libpng/scripts/makefile.ibmc libpng/contrib/gregbook/rpng2-x.c libpng/pngwrite.c libpng/contrib/gregbook/LICENSE libpng/pngset.c libpng/scripts/makefile.dj2 libpng/projects/visualc71/README.txt libpng/LICENSE libpng/projects/visualc71/libpng.vcproj libpng/contrib/visupng/VisualPng.png libpng/png.5 libpng/pngwutil.c libpng/scripts/makefile.openbsd libpng/scripts/makefile.gcc libpng/contrib/visupng/VisualPng.rc libpng/scripts/makevms.com libpng/scripts/libpng.pc.in libpng/contrib/pngminus/pngminus.sh libpng/pngrtran.c libpng/scripts/makefile.freebsd libpng/scripts/makefile.hpgcc libpng/scripts/makefile.sco libpng/scripts libpng/libpng.txt libpng/scripts/pngos2.def libpng/scripts/makefile.tc3 libpng/contrib/pngminus/README libpng/contrib/gregbook/Makefile.sgi libpng/scripts/makefile.vcawin32 libpng/contrib/gregbook/readpng.c libpng/contrib/pngsuite/basn2c16.png libpng/contrib/pngminus libpng/contrib/pngsuite/basn6a16.png libpng/pngmem.c libpng/png.c libpng/contrib/gregbook/readpng.h libpng/scripts/makefile.64sunu libpng/scripts/libpng-config-head.in libpng/contrib/pngsuite/basn3p02.png libpng/projects/beos/x86-static.txt libpng/png.h libpng/contrib/pngsuite/basn3p04.png libpng/contrib/pngsuite/basn3p08.png libpng/Y2KINFO libpng/pngpread.c libpng/scripts/makefile.netbsd libpng/projects/beos/x86-shared.proj libpng/pngwio.c libpng/pngrutil.c libpng/projects/visualc6/libpng.dsp libpng/contrib/pngminus/pnm2png.bat libpng/contrib/pngminus/png2pnm.bat libpng/contrib/gregbook/Makefile.w32 libpng/scripts/makefile.darwin libpng/scripts/makefile.hpux libpng/projects/cbuilder5/libpng.bpf libpng/pngbar.jpg libpng/scripts/makefile.sggcc libpng/projects/cbuilder5/libpng.bpg libpng/projects libpng/contrib/gregbook/rpng-x.c libpng/projects/visualc6/libpng.dsw libpng/contrib/pngsuite/basn0g01.png libpng/scripts/makefile.std libpng/contrib/pngsuite libpng/projects/visualc71/README_zlib.txt libpng/contrib/pngminus/pnm2png.c libpng/contrib/pngminus/png2pnm.c libpng/scripts/makefile.32sunu libpng/projects/cbuilder5/libpng.bpr libpng/contrib/pngminus/pngminus.bat libpng/contrib/visupng/README.txt libpng/projects/visualc71/PRJ0041.mak libpng/pngerror.c libpng/configure libpng/scripts/makefile.aix libpng/contrib/visupng/VisualPng.c libpng/pngvcrd.c libpng/scripts/makefile.bor libpng/scripts/SCOPTIONS.ppc libpng/contrib/visupng libpng/scripts/makefile.beos libpng/contrib/pngsuite/basn4a16.png libpng/projects/visualc6/README.txt libpng/contrib/visupng/PngFile.c libpng/pngread.c libpng/scripts/makefile.ne12bsd libpng/contrib/pngsuite/basn0g16.png libpng/contrib/visupng/PngFile.h libpng/scripts/libpng-config-body.in libpng/INSTALL libpng/pngtest.png libpng/pnggccrd.c libpng/contrib/visupng/resource.h libpng/CHANGES libpng/example.c libpng/scripts/makefile.so9 libpng/scripts/makefile.intel libpng/pngconf.h libpng/projects/beos libpng/scripts/makefile.amiga libpng/contrib/pngsuite/README libpng/pngbar.png libpng/scripts/makefile.knr libpng/projects/visualc6/pngtest.dsp libpng/scripts/makefile.dec libpng/scripts/libpng.icc libpng/contrib/pngsuite/basn2c08.png libpng/scripts/makefile.atari libpng/scripts/makefile.cygwin libpng/projects/cbuilder5/libpng.cpp libpng/contrib/pngsuite/basn6a08.png libpng/pngtest.c libpng/ANNOUNCE libpng/projects/visualc71 libpng/scripts/smakefile.ppc]

2005-04-24T21:39:36.000000Z Ralph Giles

Initial revision

[zlib/contrib/dotzlib/DotZLib/UnitTests.cs zlib/contrib/iostream3/zfstream.h zlib/contrib/minizip/iowin32.c zlib/contrib/vstudio/vc7 zlib/amiga/Makefile.pup zlib/contrib/delphi/ZLibConst.pas zlib/contrib/vstudio/vc7/zlib.rc zlib/contrib/minizip/iowin32.h zlib/contrib/ada/readme.txt zlib zlib/contrib zlib/old/descrip.mms zlib/win32 zlib/contrib/inflate86/inffas86.c zlib/contrib/masmx86/gvmat32.asm zlib/contrib/vstudio/readme.txt zlib/contrib/ada/zlib-thin.adb zlib/adler32.c zlib/amiga zlib/contrib/puff/puff.c zlib/contrib/asm586 zlib/contrib/dotzlib/DotZLib.chm zlib/contrib/ada/read.adb zlib/contrib/iostream3/zfstream.cc zlib/win32/VisualC.txt zlib/zlib.h zlib/contrib/puff/puff.h zlib/qnx/package.qpg zlib/contrib/ada/buffer_demo.adb zlib/contrib/minizip/miniunz.c zlib/contrib/dotzlib/DotZLib/DotZLib.cs zlib/projects zlib/contrib/blast/blast.c zlib/contrib/ada/zlib-thin.ads zlib/as400/compile.clp zlib/win32/Makefile.bor zlib/projects/visualc6/minigzip.dsp zlib/contrib/testzlib zlib/contrib/blast/blast.h zlib/trees.c zlib/algorithm.txt zlib/projects/visualc6/example.dsp zlib/qnx zlib/contrib/dotzlib/DotZLib/Deflater.cs zlib/trees.h zlib/contrib/iostream3/TODO zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs zlib/contrib/puff/Makefile zlib/projects/README.projects zlib/contrib/masmx86/readme.txt zlib/contrib/minizip/minizip.c zlib/contrib/delphi/readme.txt zlib/amiga/Makefile.sas zlib/contrib/asm586/match.S zlib/msdos/Makefile.bor zlib/contrib/iostream zlib/msdos zlib/projects/visualc6 zlib/ChangeLog zlib/contrib/infback9/inffix9.h zlib/contrib/ada/test.adb zlib/contrib/puff/zeros.raw zlib/contrib/testzlib/testzlib.sln zlib/contrib/inflate86/inffast.S zlib/old/Makefile.riscos zlib/contrib/puff/README zlib/win32/zlib.def zlib/contrib/minizip/ioapi.c zlib/contrib/asm686/README.686 zlib/uncompr.c zlib/contrib/iostream2 zlib/contrib/iostream3 zlib/contrib/minizip/ioapi.h zlib/FAQ zlib/contrib/gzappend zlib/contrib/iostream3/test.cc zlib/contrib/masm686/match.asm zlib/Makefile zlib/old zlib/contrib/vstudio/vc7/zlibvc.sln zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs zlib/old/os2 zlib/Makefile.in zlib/contrib/pascal/zlibd32.mak zlib/contrib/asm686 zlib/contrib/delphi/zlibd32.mak zlib/win32/zlib1.rc zlib/contrib/infback9 zlib/contrib/dotzlib/DotZLib/CodecBase.cs zlib/contrib/minizip/ChangeLogUnzip zlib/README zlib/contrib/iostream/zfstream.cpp zlib/old/os2/Makefile.os2 zlib/win32/Makefile.msc zlib/contrib/asm586/README.586 zlib/zconf.h zlib/contrib/minizip/unzip.c zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs zlib/contrib/untgz zlib/INDEX zlib/msdos/Makefile.tc zlib/zconf.in.h zlib/contrib/minizip/unzip.h zlib/contrib/ada/zlib.adb zlib/inffast.c zlib/old/os2/zlib.def zlib/contrib/pascal/readme.txt zlib/inffast.h zlib/contrib/asm686/match.S zlib/inffixed.h zlib/msdos/Makefile.msc zlib/contrib/ada/zlib-streams.adb zlib/gzio.c zlib/contrib/ada/zlib.ads zlib/contrib/README.contrib zlib/old/Make_vms.com zlib/contrib/blast/test.pk zlib/contrib/masmx86/inffas32.asm zlib/contrib/blast/README zlib/contrib/minizip/zip.c zlib/contrib/minizip/crypt.h zlib/contrib/minizip/zip.h zlib/minigzip.c zlib/contrib/ada/zlib-streams.ads zlib/contrib/dotzlib zlib/contrib/dotzlib/DotZLib/GZipStream.cs zlib/contrib/iostream2/zstream_test.cpp zlib/compress.c zlib/contrib/ada/zlib.gpr zlib/infback.c zlib/contrib/pascal/example.pas zlib/contrib/masmx86/mkasm.bat zlib/contrib/testzlib/testzlib.c zlib/old/zlib.html zlib/contrib/dotzlib/readme.txt zlib/contrib/vstudio/vc7/zlibvc.def zlib/contrib/iostream/test.cpp zlib/contrib/untgz/Makefile zlib/contrib/dotzlib/DotZLib/Inflater.cs zlib/contrib/infback9/inflate9.h zlib/as400 zlib/contrib/vstudio/vc7/zlibvc.vcproj zlib/contrib/vstudio/vc7/zlibstat.vcproj zlib/contrib/testzlib/testzlib.vcproj zlib/as400/readme.txt zlib/contrib/masmx86 zlib/contrib/ada/mtest.adb zlib/win32/Makefile.emx zlib/contrib/dotzlib/DotZLib.sln zlib/projects/visualc6/zlib.dsp zlib/contrib/vstudio/vc7/minizip.vcproj zlib/contrib/dotzlib/DotZLib zlib/contrib/minizip zlib/projects/visualc6/zlib.dsw zlib/contrib/blast/Makefile zlib/contrib/dotzlib/DotZLib/DotZLib.csproj zlib/contrib/ada zlib/msdos/Makefile.emx zlib/contrib/infback9/inftree9.c zlib/contrib/infback9/infback9.c zlib/contrib/vstudio zlib/projects/visualc6/README.txt zlib/contrib/infback9/inftree9.h zlib/contrib/infback9/infback9.h zlib/contrib/blast/test.txt zlib/inflate.c zlib/contrib/iostream/zfstream.h zlib/contrib/blast zlib/contrib/minizip/mztools.c zlib/inflate.h zlib/win32/Makefile.gcc zlib/contrib/minizip/mztools.h zlib/contrib/dotzlib/DotZLib.build zlib/msdos/Makefile.dj2 zlib/configure zlib/deflate.c zlib/contrib/vstudio/vc7/miniunz.vcproj zlib/contrib/delphi/ZLib.pas zlib/zutil.c zlib/contrib/pascal/zlibpas.pas zlib/deflate.h zlib/contrib/minizip/Makefile zlib/crc32.c zlib/zutil.h zlib/as400/zlib.inc zlib/contrib/untgz/untgz.c zlib/contrib/inflate86 zlib/contrib/puff zlib/inftrees.c zlib/contrib/gzappend/gzappend.c zlib/contrib/masm686 zlib/zlib.3 zlib/crc32.h zlib/as400/bndsrc zlib/contrib/iostream3/README zlib/contrib/pascal zlib/inftrees.h zlib/contrib/delphi zlib/contrib/untgz/Makefile.msc zlib/contrib/dotzlib/LICENSE_1_0.txt zlib/contrib/masmx86/gvmat32c.c zlib/old/README zlib/example.c zlib/old/visual-basic.txt zlib/contrib/iostream2/zstream.h zlib/win32/DLL_FAQ.txt zlib/contrib/infback9/README]

2005-04-24T21:31:02.000000Z Ralph Giles

Initial revision

[jpeg/jpeglib.h jpeg/makefile.bcc jpeg/rdjpgcom.1 jpeg/jconfig.sas jpeg/rdtarga.c jpeg/testimg.ppm jpeg/jconfig.wat jpeg/install.doc jpeg/djpeg.c jpeg/jdpostct.c jpeg/jmemsys.h jpeg/cdjpeg.c jpeg/makefile.manx jpeg/cdjpeg.h jpeg/makefile.vc jpeg/rdbmp.c jpeg/wrppm.c jpeg/ansi2knr.1 jpeg/cjpeg.1 jpeg/jfdctfst.c jpeg/jcmaster.c jpeg/testimg.bmp jpeg/config.guess jpeg/jdmaster.c jpeg/jidctfst.c jpeg/wrgif.c jpeg/makefile.sas jpeg/jquant2.c jpeg/makefile.wat jpeg/makefile.mms jpeg/jmemname.c jpeg/jdct.h jpeg/jdatasrc.c jpeg/jmemdosa.asm jpeg/jconfig.manx jpeg/jcapistd.c jpeg/jdapistd.c jpeg/jversion.h jpeg/rdjpgcom.c jpeg/README jpeg/jdmerge.c jpeg/makvms.opt jpeg/ansi2knr.c jpeg/cjpeg.c jpeg/jdcolor.c jpeg/install-sh jpeg/testorig.jpg jpeg/jdatadst.c jpeg/jconfig.vms jpeg/jdtrans.c jpeg/wrtarga.c jpeg/structure.doc jpeg/jconfig.st jpeg/change.log jpeg/makefile.ansi jpeg/rdswitch.c jpeg/makelib.ds jpeg/jconfig.dj jpeg/jccolor.c jpeg/jconfig.mac jpeg/jfdctflt.c jpeg/makefile.vms jpeg/jidctflt.c jpeg/jctrans.c jpeg/jcprepct.c jpeg/jutils.c jpeg/testimg.jpg jpeg jpeg/rdppm.c jpeg/jconfig.mc6 jpeg/ckconfig.c jpeg/wizard.doc jpeg/makeproj.mac jpeg/makdjpeg.st jpeg/jcmainct.c jpeg/jpegtran.1 jpeg/jdmainct.c jpeg/jcapimin.c jpeg/testimgp.jpg jpeg/wrrle.c jpeg/rdgif.c jpeg/jdapimin.c jpeg/jconfig.cfg jpeg/jcdctmgr.c jpeg/jddctmgr.c jpeg/makljpeg.st jpeg/configure jpeg/jerror.c jpeg/maktjpeg.st jpeg/jdhuff.c jpeg/jerror.h jpeg/jmemnobs.c jpeg/jdhuff.h jpeg/config.sub jpeg/makefile.mc6 jpeg/jcinit.c jpeg/makcjpeg.st jpeg/wrbmp.c jpeg/usage.doc jpeg/makefile.cfg jpeg/example.c jpeg/jmemdos.c jpeg/libjpeg.doc jpeg/jconfig.vc jpeg/jfdctint.c jpeg/cderror.h jpeg/wrjpgcom.1 jpeg/jidctint.c jpeg/jpegtran.c jpeg/makefile.unix jpeg/jccoefct.c jpeg/jdcoefct.c jpeg/jcomapi.c jpeg/makeapps.ds jpeg/jdphuff.c jpeg/makefile.dj jpeg/jidctred.c jpeg/filelist.doc jpeg/jmemansi.c jpeg/jchuff.c jpeg/djpeg.1 jpeg/coderules.doc jpeg/jmemmac.c jpeg/jchuff.h jpeg/transupp.c jpeg/ltmain.sh jpeg/jcparam.c jpeg/transupp.h jpeg/jquant1.c jpeg/jconfig.bcc jpeg/ltconfig jpeg/jcphuff.c jpeg/wrjpgcom.c jpeg/jmemmgr.c jpeg/jcmarker.c jpeg/jcsample.c jpeg/jdsample.c jpeg/jdmarker.c jpeg/rdcolmap.c jpeg/jmorecfg.h jpeg/jconfig.doc jpeg/jinclude.h jpeg/testprog.jpg jpeg/jpegint.h jpeg/rdrle.c jpeg/jdinput.c]

2005-04-22T10:08:55.000000Z Russell Lang

Correct typo.

[man/ps2ascii.1]

2005-04-21T10:11:12.000000Z Igor Melichev

Speed up shadings : a minor optimization for the color monotonity check.

DETAILS :

Bug 687948 "Performance of shading fill much worse than 8.00" (a 8th partial fix).

The color monotonity has been cached, but was not taken from the cache.
It caused extra calls to is_monotonic.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2005-04-21T09:28:23.000000Z Igor Melichev

Speed up shadings : fixed a crash with unlinear color devices.

DETAILS :

Bug 688050 "C stack overflow with 464-01-fixed.ps (pbmraw/72dpi/noband)".
Bug 687948 "Performance of shading fill much worse than 8.00" (a 7th partial fix).


The C stack overflow happened due to quadrangle_color_change
didn"t account the quadrangle size, causing an infinite
subdivision in case of a non-contiguous color function.
This happened with unlinear color devices only,
because otherwise the quadrangle was mapped to 
a linear color fill device function, which doesn"t
perform a subdivision by color.

1. Passed the quadrangle size information to quadrangle_color_change.

2. Used it with unlinear color devices.

3. Trying to use it with a linear color device doesn`t
   give a speed up. Disabling this branch
   but saving it for historical purpose.

4. Inserted a check against the C stack overflow to
   simplify the debugging and the diagnostics.


EXPECTED DIFFERENCES :

1. Fixes a crash with pkmraw, pbmraw 446-01-fixed.ps.

2. Minor differences in rasters with pkmraw, pbmraw @ 72 dpi :
"446-01-fixed.ps" 
"464-01-fixed.ps" 
"483-05-fixed.ps" 
"BEST8-99-Path.fh7.pdf" 
"chilis_black.pdf" 
"Clarke Tate Manns Chinese.ai" 
"gradmesh.ai" 
"SmoothShading.pdf" 
"STEUER-RollingMesh 3(Final).ai" 
"Testform.v1.0.2.pdf" 

3. Minor differences in rasters with pkmraw, pbmraw @ 300 dpi :

"446-01-fixed.ps" 
"464-01-fixed.ps" 
"483-05-fixed.ps" 
"Altona_Visual_sb_1v1_x3.pdf" 
"BEST8-99-Path.fh7.pdf" 
"Clarke Tate Manns Chinese.ai" 
"gradmesh.ai" 
"SmoothShading.pdf" 
"STEUER-RollingMesh 3(Final).ai"

[src/gxshade6.c]

2005-04-20T20:05:41.000000Z Ray Johnston

Use the OrigFontName from an embedded font's FOntInfo dictionary since this
is where Windows PostScript dirver puts the real font name when embedding
fonts. Bug 688006 for customer 32.

[src/zbfont.c]

2005-04-20T08:44:12.000000Z Igor Melichev

Speed up shadings with optimizing fn_Sd_is_monotonic.

DETAILS :

This change is a fifth partial fix for the bug 687948
"Performance of shading fill much worse than 8.00".

Implemented a new function fn_Sd_1arg_linear_monotonic,
which optimizes fn_Sd_is_monotonic in the case of
1-argument linear sampled function.
It doesn't use the pole cache and the tensor-based algorithm,
saving significant time from the cache allocation,
which otherwise happens once per shfill.

We would like to optimise 1-argument cubic sampled function.
For now delaying it due to the absence of practical cases
which need a high performance.

Minor change : Renamed fn_is_monotonic into fn_Sd_is_monotonic_aux.

EXPECTED DIFFERENCES :

None.

[src/gsfunc0.c]

2005-04-20T06:13:11.000000Z Ray Johnston

Prevent out of range ImageType 4 mask array entries from causing an error
as Adobe Acrobat Reader does. Bug 687611 for customer 870.

DETAILS:

When the Mask array values are beyond the max allowed by the BitsPerComponent,
a rangecheck error must be generated by PostScript, but Adobe Acrobat Reader
ignores the Mask in this case and effectively treats the image as ImageType 1.
This patch generates a pdfformaterror Warning when the problem is seen.

[lib/pdf_draw.ps]

2005-04-19T21:22:54.000000Z stefan

Added dependancies for gdevpdfj.c

[src/devs.mak]

2005-04-19T14:35:12.000000Z Igor Melichev

Speed up shadings with removing fn_domain_is_monotonic.

DETAILS :

1. The function fn_domain_is_monotonic was called when creating any
sampled function object, and its result was not used.
Actually it is a rudiment from the !NEW_SHADINGS code.
This change is a fourth partial fix for the bug 687948  
"Performance of shading fill much worse than 8.00".

2. In gxshade1.c removed few rudiments of the !NEW_SHADINGS code.

EXPECTED DIFFERENCES :

None.

[src/gxfunc.h src/gxshade1.c src/gsfunc.c src/gsfunc0.c src/gsfunc3.c src/gsfunc4.c src/gsfunc.h]

2005-04-19T12:22:08.000000Z Igor Melichev

Removing the !NEW_SHADINGS branch.

DETAILS :

This change is algorithmically equivalent.

1. Removed the obsolete code
NEW_SHADINGS 0 and NEW_RADIAL_SHADINGS 0,
which was disabled a long ago.

2. Removed stacks and few other unused fields from
Fb_fill_state_s, A_fill_state_s, R_fill_state_s.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gsshade.c src/gxshade1.c src/gxshade4.c src/gxshade6.c]

2005-04-19T09:48:27.000000Z Igor Melichev

Faster shadings with dividing some quadrangles into 2 triangles.

DETAILS :

It's a third partial fix for the bug 687948
"Performance of shading fill much worse than 8.00".

When a quadrangle color doesn't depend on one axis,
subdivide the quadrangle into 2 triangles.
The old code did into 4 triangles.

1. Renamed 'triangles' into 'triangles4'.
2. Added 'triangles2'.
3. Added 'color_change_bilinear'.

EXPECTED DIFFERENCES :

"442-01.ps"
"446-01-fixed.ps"
"464-01-fixed.ps"
"483-01.ps"
"483-05-fixed.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"Bug687840.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"self-intersect2.ps"
"shading_prob_800.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"

[src/gxshade6.c]

2005-04-19T08:36:38.000000Z Igor Melichev

Faster shadings with setting a stronger clipping box.

DETAILS :

It's another partial fix for the bug 687948
"Performance of shading fill much worse than 8.00".

The old code computed a shading clipping box
as an transform of the shading BBox
to device coordinates. However with a rotation matrix
it significantly expanded the box,
so that more shading parts appear inside the paint region.
The new code sets clipping box equal to the bbox
of the clipping path, so that the rasterization
covers a smaller part of the shading, and the
shading becomes faster.

SHADING_FILL_RECTANGLE_PROC changes the prototype.
The new prototype adds a clipping rectangle in device coordinates,
which provides a stronger clipping of the paint region.
Probably we could drop the old argument "prect",
but leaving it untill the NEW_SHADINGS cleanup.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gsshade.c src/gsshade.h src/gxshade1.c src/gxshade4.c src/gxshade6.c]

2005-04-19T07:27:32.000000Z Igor Melichev

Faster shadings with a better function monotonity check.

DETAILS :

It's a partial fix for the bug 687948
"Performance of shading fill much worse than 8.00".
If an axial or radial shading use a sampled function
with many samples, the shading speeds up in 1.2 - 2.5 times.

1. The old code returned an unknown monotonity when the
interval covers several cells of a sampled function.
The new code summarizes the monotonity through multiple cells.

Rather shadings need 1- and 2-dimensional functions only,
we developed an N-dimensional algorithm for
a future use with color spaces and color renderings.

1.1. Generalized the function sample cache to linear functions
(the old code cached cubic ones only).

1.2. Made the branch POLE_CACHE to be permanent.

1.3. The new function is_lattice_monotonic
summarizes the monotonity through multiple cells.

1.4. The virtual function is_monotonic
now returns a mask about a monotonity by each coordinate.

2. The shading decomposition is adopted to the new monotonity check.

2.1. When decomposing a patch into stripes,
the color monotonity doesn't matter,
because further decomposition accounts it.

2.2. When decomposing a quadrangle,
the decomposition axis is being chosen according
to the function monotonity along each axis.

3. In the shading decomposition,
cached the monotonity separately from the linearity
with a new flag linear_color.

EXPECTED DIFFERENCES :

A minor difference in shading color with all devices and resolutions :

"442-01.ps"
"446-01-fixed.ps"
"464-01-fixed.ps"
"478-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"Bug687840.pdf"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"Openhuis_pdf_zw.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"

[src/gxshade4.h src/gxshade1.c src/gsfunc.c src/gsfunc0.c src/gsfunc3.c src/gsfunc4.c src/gxshade6.c src/gsfunc.h src/gsfunc0.h]

2005-04-19T04:28:33.000000Z Ralph Giles

Bump the version numbers post-release.

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

2005-04-19T00:29:50.000000Z stefan

Fix for bug 687984.

Incomplete data stream gets artifical data for both DCTE and now
also for PNGPE streams.

Note that it would be nice if all streams either handled missing data
or didn't.

[src/gdevpdfj.c]

2005-04-18T18:38:22.000000Z Ralph Giles

Update changelogs for final 8.51 release.

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

2005-04-18T18:26:32.000000Z Ralph Giles

Update final release date.

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

2005-04-15T06:13:10.000000Z Igor Melichev

Psfiles.htm : Documanting a recently addad lib file.

DETAILS :

Fixes a Apr 11 05:15:10 PDT 2005 regression (which actually appeared some time ago).

EXPECTED DIFFERENCES :

None.

[doc/Psfiles.htm]

2005-04-14T19:10:14.000000Z Raph Levien

Fix: use identity matrix (rather than scaling by font matrix) to prepare
parameters for CDevProc procedure in pdfwrite code path. Fixes bug
#688033.

DETAILS

The problem in the 688033 test file was that the CDevProc procedure
for the font was getting called with values that were already scaled
down by .001, even though the PLRM3 says "all of the numeric values
are expressed in the glyph coordinate system of the font." (5.9.2,
p. 350)

My proposed fix is to pass in the identity matrix, instead of the font
matrix, to the gs_default_glyph_info procedure. This patch was tested
with both the 688033 test file and the test file from 687681, which was
the bug that motivated the changes to pdfwrite CDevProc handling. The
patched code also passed a full local regression.

[src/zchar1.c]

2005-04-13T23:13:04.000000Z Russell Lang

Add additional files to the Windows source distribution.

[doc/Release.htm]

2005-04-13T20:04:46.000000Z Ray Johnston

Fix a SEGV when ImageType 4 has MaskColor values outside the range.
Detected with the PDF file from bug 687611 for customer 870.

DETAILS:

The rangecheck error was being thrown with the gx_image_enum allocated
but with many pointers not initialized so the SEGV happened when the
garbage collector tried to enumerate the image_enum.

The fix is simple and low-risk -- free the penum before returning the
rangecheck error.

[src/gximage4.c]

2005-04-12T22:53:50.000000Z Ralph Giles

Update changelogs for the 8.51 release.

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

2005-04-12T22:21:21.000000Z Ralph Giles

Remove a spurious blockquote.

[doc/News.htm]

2005-04-12T22:11:08.000000Z Ralph Giles

Propagate release date changes to the other documentation files.

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

2005-04-12T22:05:40.000000Z Ralph Giles

Update copyright dates and release notes for 8.15.

[src/dwsetup.rc src/winint.mak doc/News.htm src/gscdef.c src/version.mak]

2005-04-12T21:20:20.000000Z Ray Johnston

Fix for SEGV when PreserveHalftoneInfo=true is given as a pdfwrite
option. Bug 688018.

DETAILS:

The initial problem was that the num_comp was not being looked at
when HalftoneType 5 was written and if num_comp was 3, the 4th
element of ht_ids[] was being used (UMR-wise). The solution to
this was to only write the three halftones and to use the 'Green'
halftone (arbitrarily) for Default.

After fixing the SEGV, another problem surfaced because the object
dictionary was not being terminated with the ">>".

Since I suspected that the threshold_halftone writers were also
broken I tested with 258-01.ps and found more problems. This
code was also quite broken. Since the Threshold array is the
stream data for HalftoneType 6 and 16, I changed this a lot to
emit valid PDF.

EXPECTED DIFFERENCES:

None, since we don't set PreserveHalftoneInfo.

[src/gdevpdfg.c]

2005-04-12T00:43:37.000000Z Russell Lang

Make the OS/2 device list almost match that of Windows, with the only
differences being IJS and the Windows or OS/2 specific devices.

[src/os2.mak]

2005-04-08T23:55:13.000000Z Dan Coby

Fix for 688019  /configurationerror in --setpagedevice--.  The PDF
interpreter was incorrectly determining the size of the page.

DETAILS:

The test file specifies the following media box:

/MediaBox [ 0 1080 1620 0 ]

The PDF 1.6 specification says the following about media box rectangles:

"3.8.4 Rectangles
Rectangles are used to describe locations on a page and bounding boxes for a
variety of objects, such as fonts. A rectangle is written as an array of four
numbers giving the coordinates of a pair of diagonally opposite corners.
Typically, the array takes the form
[llx lly urx ury]
specifying the lower-left x, lower-left y, upper-right x, and upper-right
coordinates of the rectangle, in that order. The other two corners of the
rectangle are then assumed to have coordinates (llx, ury) and (urx, lly).

Note: Although rectangles are conventionally specified by their lower-left and
upperright corners, it is acceptable to specify any two diagonally opposite
corners. Applications that process PDF should be prepared to normalize such
rectangles in situations where specific corners are required."


The PDF interpreter was assuming that the MediaBox and the CropBox were
in the 'typical' form.  This fix consists of creating a pair of procedures
for converting rectangles into the typical form and then using the
procedures.

[lib/pdf_main.ps]

2005-04-08T23:31:24.000000Z Dan Coby

Removed some extra cntl-M at the end of lines.  These caused problems with
the Borland compiler.

[src/gdevtfax.c]

2005-04-07T09:12:15.000000Z Igor Melichev

Fix : An MSVC8 warning.

DETAILS :

MSVC claims an implicit type case introduced by the last patch.

EXPECTED DIFFERENCES :

None.

[src/gdevdjet.c]

2005-04-07T08:44:53.000000Z Igor Melichev

Drivers.htm : Improving the documentation about linear color device virtual functions.

DETAILS :

Bug 688016 "Color(s) that define a gradient fill".

EXPECTED DIFFERENCES :

None.

[doc/Drivers.htm]

2005-04-06T16:45:18.000000Z Raph Levien

Conveys input tray selection info (/ManualFeed and /MediaPosition)
setpagedevice requests to PCL devices. Fixes bug #687899.

DETAILS

1. The behavior of MediaPosition is changed significantly. Previously,
   it was ignored (i.e. omitted altogether from setpd merging). Just
   adding it to setpd merging would not be good - if set at the PS
   level, then it would get checked for equality at the C level (by
   zmatchmedia), and fail horribly if it didn't match. In accordance
   with the PLRM3 text (it will be honored provided it can satisfy the
   normal media matching), in the new version a mismatch simply adds a
   .001 penalty to the matching score.

2. The ljet4 device now contains ManualFeed and MediaPosition fields,
   with appropriate putparams logic to set them.

3. The MediaPosition and ManualFeed strings now create an ESC & l H
   init string, according to the following logic. ManualFeed sends
   ESC & l 2 H; if ManualFeed is false (or not set), then MediaPosition
   0 sends ESC & l 5 H, and MediaPosition1 sends ESC & l 1 H. If none
   of these are set, then no extra init string is generated.

   Obviously, for this feature to be useful, there needs to be an
InputAttributes dictionary in effect, for which the PageSize of
positions 0 and 1 match the PageSize of the setpagedevice request.
[Actually, if only ManualFeed is desired, then there is no need to
fiddle with InputAttributes].

   I think these changes bring our media selection more in line with
what Adobe intended, and could be useful for embedded PS projects as
well. I believe the risk of unwanted changes is small, but considering
the delicacy of the setpagedevice logic, review and testing is
warranted.

[src/gdevdjet.c lib/gs_setpd.ps src/zmedia2.c]

2005-04-05T19:37:22.000000Z Ralph Giles

Disable non-fatal jbig2 debug messages unless JBIG2_DEBUG is defined in the
C preprocessor. Previously, all messages were reported in the general gs
debug build, which was distracting.

Also, initialize the global context pointer to NULL. This isn't necessary
in the standard call order, but is extra insurance against an improper free.

[src/sjbig2.c]

2005-04-05T16:17:15.000000Z Igor Melichev

ps2write : Fix problems with encodings.

DETAILS :

1. Since we don't want to include numerous encodings in the output,
   opdfread.ps needs Differences to be computed against StandardEncoding.
   gdevpdtw.c is changed to provide a compatibility.

2. Fixed a bug in opdfread.ps when invresing an encoding in which
   a glyph name appears multiple times. Debugged with comparefiles\01_001.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps src/gdevpdtw.c]

2005-04-05T15:44:44.000000Z Igor Melichev

pdfwrite : Implementing a viewer's resource memory control, part 3.

DETAILS :

Fixed a memory management problem in pdfwrite :
a reference to a freed object happened due to
font descriptor components are not explicitely released.
Debugged with ps2write comparefiles\01_001.pdf .
This patch provides a minimal change against that,
rather there are other components,
which would be useful to release explicitly.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtd.c src/gdevpdtw.c src/gdevpdfu.c src/gdevpdtd.h src/devs.mak]

2005-04-05T11:29:16.000000Z Igor Melichev

ps2write : Implementing a viewer's resource memory control, part 2.

DETAILS :

1. opdfread.ps :
Defined the new procedure CleanAllResources and called it after each page,
which defines /.ClearResources /All.
Currently it cleans all objects and all non-standard fonts.
Daemons, if they are stored in the Registry, are not cleaned.
(BTW, daemons may contain a reference to an object,
but we believe that currently unresolved daemons never appear
in Registry when ClearAllResources is being called).

2. ps2write.bat : Updated to involve the resource memory control.
See the log message of the previous patch for more information.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat lib/opdfread.ps]

2005-04-05T09:48:46.000000Z Igor Melichev

pdfwrite : Implementing a viewer's resource memory control, part 1.

DETAILS :

This patch implements a primitive viewer's resource memory control.

A new device parameter MaxViewerMemorySize specifies the number of bytes
available for storing resources in the viewer's memory.
This parameter defined almost for future extensions.

Currently we distinguish two cases only : if the parameter is greater
than 10000000 bytes, no resource control is being applied,
i.e. pdfwrite assumes that the viewer can store all resources of entire document.
Othervise pdfwrite assumes that the viewer can store resources of a single page.

In the second case pdfwrite cleans internal resource caches after each page,
so that any new resource usage will generate another resource instance
in the output PDF file.

To inform the viewer that the resources may be cleaned,
we add a new key to a page contents stream dictionary.
This is our extension to the PDF specification in order to control
the resource management in the viewer.
The new key name is /.CleanResources.
Currently we provide only the value /All. It means that resources
may be cleaned *after* ending the contents stream.

In future on necessity we can split a page contents stream into substreams
and provide a finer control by resource types with providing
more values for the key /.CleanResources.

When the viewer is informed with allowing to clean resources,
it is not obliged to do so. Further resource appearences simply replace
old ones, if they have same resource name.
Actually now this happens only with font and CID font resources.
Other resource instances may persist in the viewer's memory until
the viewer's garbager frees them when they are not
referred from resource tree dictionaries.

The resource control is mainly intended for ps2write.
An implementation of the viewer's side (in opdfread.ps) will be a separate patch.

Note that when a resource control is being applied,
the output document size may increase significantly.

Currently we don't add MaxViewerMemorySize to user's documentation,
because it depends on another undocumenmted parameter ForOPDFRead
through the ResourcesBeforeUsage flag. First we need to take a decision
whether ps2write will become a new Ghostscript device or it stays a tool
represented with a script. The latter gives more flexibility to users
about composing the header procsets of the generated Postscript document.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfp.c src/gdevpdtt.c src/gdevpdtf.c src/gdevpdtw.c src/gdevpdfu.c src/gdevpdti.c src/gdevpdtf.h]

2005-04-04T23:00:24.000000Z Igor Melichev

Fix : LZWEncode filtyer template didn't provide a set_defaults method.

DETAILS :

A problem happens when converting comparefiles\PT.ps with ps2write :
an encoded stream could not decode. The reason is that pdf_flate_binary
did not set defaults to LZWE template.

1. Provided a set_defaults method (fixes pdf_flate_binary).

2. Used it instead an old hack in gdevpsdi.c (a minor improvement).

EXPECTED DIFFERENCES :

None.

[src/slzwe.c src/gdevpsdi.c]

2005-04-04T20:33:39.000000Z Igor Melichev

pdfwrite : Improve the font handling options.

DETAILS :

1. Made the ps2write code be permanent with removing the configuration switch PS2WRITE.

2. Renamed OrderResources into ForOPDFRead for a better reflection of its semantics.

3. Defined new flags for a better code readability :

    ResourcesBeforeUsage
    HavePDFWidths
    HaveStrokeColor
    HaveCFF

They are set when ForOPDFRead is true and used to control particular features.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat]

2005-04-04T20:28:27.000000Z Igor Melichev

pdfwrite : Improve the font handling options.

DETAILS :

1. Made the ps2write code be permanent with removing the configuration switch PS2WRITE.

2. Renamed OrderResources into ForOPDFRead for a better reflection of its semantics.

3. Defined new flags for a better code readability :

    ResourcesBeforeUsage
    HavePDFWidths
    HaveStrokeColor
    HaveCFF

They are set when ForOPDFRead is true and used to control particular features.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gsshade.c src/gdevpdf.c src/gdevpdfb.c src/gdevpdtt.c src/gx.h src/gdevpdfd.c src/gdevpdtw.c src/gdevpdfj.c src/gdevpdfg.h src/gdevpdtb.c src/gdevpdfp.c src/gdevpdfu.c src/gdevpsdf.h src/gxshade6.c src/gxdevcli.h]

2005-04-04T16:20:06.000000Z Igor Melichev

ps2write : Improve the font handling options.

DETAILS :

1. The option HaveCIDSystem is propagated from ps2write to pdfwrite.
   It is still not implemented.

2. The option HaveTrueTypes is added for controlling the availability of TrueTypes.

3. The option PSVersion is removed due to low usefullness after (2).

EXPECTED DIFFERENCES :

None.

[src/gdevpdfp.c src/gdevpdtt.c doc/Ps2pdf.htm src/gdevpsdf.h]

2005-04-04T14:38:23.000000Z Igor Melichev

pdfwrite : When generating a PDF 1.2, convert PSLL3 images and shadings into PSLL2 images

DETAILS :

This change propagates recent code from ps2write to pdfwrite.
The old code converts PSLL3 images and shadings into lots of rectangles.
The new code does into an imagemask with a pattern color
(when PatternImagemask == true),
or into a clipped image (when PatternImagemask == false, default).
Note that the latter misses the mask interpolation.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm src/gdevpdfd.c src/gdevpdfi.c src/gdevpdfj.c]

2005-04-04T11:53:10.000000Z Igor Melichev

ps2write : Convert shadings into a clipped image (continued 7).

DETAILS :

1. Check for empty bbox before pdf_setup_masked_image_converter,
   because memory devices with empty bbox fail.

2. Create a copy of a path_intersection before scaling it,
   because it may be shared.

3. Fixed the client name gdev_pdf_fill_path when calling some path functions.

Debugged with 478-01.ps .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-04-04T10:42:16.000000Z Igor Melichev

pdfwrite : Don't use Indexed with a spacial base color space generating a PDF 1.2.

DETAILS :

1. Indexed over a special base color space is a PDF 1.3 feature.

2. Improving the last patch comparing CompatibilityLevel with 1.3 for making
   such checks more uniform through code.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfc.c src/gdevpdfu.c]

2005-04-04T10:14:31.000000Z Igor Melichev

pdfwrite : Don't use FlateDecode generating a PDF 1.2.

DETAILS :

FlateDecode is a PDF 1.3 feature.
The change is important for ps2write.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c]

2005-04-04T10:11:51.000000Z Igor Melichev

ps2write : Improving a debug printing.

DETAILS :

1. The errorhandler should print -mark- to simplify the analysis.

2. Removing an unintended 'pstack' that caused HP LaserJet 1320 to discontinue the interpretation.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-04-04T09:32:26.000000Z Igor Melichev

ps2write : Convert shadings into a clipped image (continued 6).

DETAILS :

Fixed a unitialized variable.
Debugged with 468-01-fixed.ps .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-04-04T08:53:07.000000Z Igor Melichev

ps2write : Dropping the code !PDFW_DELAYED_STREAMS.

DETAILS :

PDFW_DELAYED_STREAMS now becomes a permanent feature.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdtb.c src/gdevpdf.c src/gdevpdtd.c src/gdevpdtf.c src/gdevpdtw.c src/gdevpdfu.c src/gdevpdtb.h src/gdevpdti.c src/gdevpdtw.h]

2005-04-03T18:33:09.000000Z Igor Melichev

ps2write : Convert shadings into a clipped image (continued 5).

DETAILS :

1. Fixed the problem with
<>,
which was mentioned in the last log message.

The shading and masked image conversion now looks complete.

2. Fixed a minor problem with 'const'.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-04-01T17:42:38.000000Z stefan

Fixed null pointer access in pdfwrite.

pdf_put_uncolored_pattern() sets pres to null when it selects a solid color.
It's clients must check for this null as it indicates a
done writing the pattern state.

[src/gdevpdfg.c]

2005-03-31T20:46:30.000000Z Igor Melichev

ps2write : Convert shadings into a clipped image (continued 4).

DETAILS :

Implement a downsampling when converting a shading into bitmap.

1. A new device parameter MaxShadingBitmapSize controls the downsampling.
   Shadings, which give a (uncompressed) bitmap over the specified size,
   will be scaled down.

2. The scaling algorithm goes to gdevpdfd.c .
   It appears pretty tricky because we need to setup a device with a smaller
   resolution than the target device. Due to that we need to scale paths and colors,
   which are represented in the device space. The function scale_path works for it.

3. The scaling creates a local copy of a device color (which handles the shading)
   and scales the color. Since we can't access further spatial transformations of the color,
   we apply some unusual operation : multiply matrices in the reverse order
   than usual 'concat' does. This makes some useful equations to be soluble
   due to the offset is being scaled as well.

4. A code portion was copied from gx_default_fill_path
   (see comment in code).
   We're unhappy about uncomfortable code structurization.

5. path_scale is implemented with floating point for a debug purpose,
   but in production we use only integers being a power of 2.

6. There is a problem with
   <>
   The problem happens when dividing the scaled bitmap in smaller ones
   due to clip path overflow. This mode to be debugged separately.
   For now set either smaller bitmap size of bigger clip path size.
   Default settings work fine for most cases.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/spprint.c src/gdevpdf.c src/gdevpdfp.c src/gdevpdfd.c src/devs.mak]

2005-03-31T06:12:42.000000Z Dan Coby

Fix for 688011 Segment fault with -r150 and the mswindll device.

DETAILS:

The routine gx_image_cached_char creates a mono bit memory device with
the memory structure pointer set to 0.  It then passes this device to
win_render_char which seg faults when it tries to allocate memory for
a bit map.

The fix consists of using the parent device's memory structure for the
mono bit memory device.

[src/gxccache.c]

2005-03-31T02:34:32.000000Z Jack Moffitt

Fix bug where raster lookups failed on new files causing the regression
tool to stop.  Also, skip processing for files without previous rasters
to compare.

[toolbin/tests/gscheck_raster.py toolbin/tests/gscheck_pdfwrite.py]

2005-03-30T16:33:13.000000Z Raph Levien

Add a discussion of the libjpeg6b component id issue to Issues.htm,
pointing people to a patch. Resolves bug #686980.

[doc/Issues.htm]

2005-03-30T14:06:33.000000Z Igor Melichev

ps2write : Convert type 3,4 image into a clipped image (continued 3).

DETAILS :

Apply loseless filters for images smaller than 500 Kbytes
(Useful for images like 468-01-fixed.ps).

We would like to apply the compression chooser.
Dalaying it until users request so.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfb.c]

2005-03-30T13:43:08.000000Z Igor Melichev

ps2write : Convert type 3,4 image into a clipped image (continued 2).

DETAILS :

1. Optimisation: Merge equal lines while converting a mask into clip path.
2. Bug : When the mask has a bigger resolution, scale up the data image and the mask 
   to allow the mask to rasterize in the natural resolution
   (debugged with 468-01-fixed.ps).

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c src/gdevpdfi.c]

2005-03-30T12:48:08.000000Z Igor Melichev

ps2write : Convert type 3,4 image into a clipped image (continued).

DETAILS :

1. Improved the prototype of pdf_setup_masked_image_converter.
2. Renamed 'autorelease' into 'write_on_close' for a better reflection of its meaning.
3. Renamed gx_device_pdf::image_mask_matrix into gx_device_pdf::converting_image_matrix.
3. Type 3 images now convert with no scaling to the device space (int pdf_begin_typed_image).
   The mask image of the typoe 3 image is scaled to the size of the data image.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfd.c src/gdevpdfi.c]

2005-03-29T21:33:17.000000Z Igor Melichev

ps2write : Convert type 4 image into a clipped image.

DETAILS :

Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color,
now we implement an alternative method for type 4 imege representation.
The method creates a clipping path and an image rendered with it.
See http://ghostscript.com/pipermail/gs-cvs/2005-March/005356.html
for additional details.

1. Fixed a typoe in lcvd_get_clipping_box_from_tadget.
   The new correct name is lcvd_get_clipping_box_from_target.
2. Fixed choices of allocators in pdf_setup_masked_image_converter.
3. pdf_image_cvd_enum_procs, pdf_image_end_image_cvd work for cleaning up temporary devices
   after a type 4 image has been processed with pdf_setup_masked_image_converter.
4. Added a branch into pdf_begin_typed_image to work with
   pdf_setup_masked_image_converter when
   pdev->OrderResources && !pdev->PatternImagemask.

We still use OrderResources as a general switch for the ps2write mode.
To be improved later.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c src/gdevpdfi.c]

2005-03-29T17:31:58.000000Z Igor Melichev

ps2write : Convert type 3 image into a clipped image.

DETAILS :

Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color,
now we implement an alternative method for type 3 imege representation.
The method creates a clipping path and an image rendered with it.
See http://ghostscript.com/pipermail/gs-cvs/2005-March/005356.html
for additional details.

1. Moved pdf_lcvd_t to the pdfwrite scope gdevpdfx.h .
2. pdf_lcvd_t::mask is being allocated dymacially for a compatibility to gx_image3_end_image.
3. Made a garbager discriptor for pdf_lcvd_t since it is allocated dynamically
   for a compatibility with gx_image3_end_image.
4. Applied pdf_put_matrix for writing matrices.
5. Renamed dump_image into pdf_dump_converted_image.
6. Replaced gs_point pdf_lcvd_t::p with gs_matrix pdf_lcvd_t::m.
7. Factored out pdf_setup_masked_image_converter and pdf_remove_masked_image_converter.
8. Added branches to pdf_image3_make_mid and pdf_image3_make_mcde
   to work with pdf_setup_masked_image_converter.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfd.c src/devs.mak src/gdevpdfi.c]

2005-03-29T14:26:26.000000Z Igor Melichev

Fix : Propagate return codes truoug gx_image3_end_image.

DETAILS :

The change is important for ps2write.
We don't consider it to te a part of the ps2write project,
because it is generallly useful.

EXPECTED DIFFERENCES :

None.

[src/gximage3.c]

2005-03-28T14:03:31.000000Z Igor Melichev

ps2write : Convert shadings into a clipped image.

DETAILS :

Since HP LaserJet 1320 unsatisfactory handles imagemask with a pattern color,
now we implement an alternative method for shadings representation.
The method creates a clipping path and an image rendered with it.


The new device parameter PatternImagemask specifies whether
imagemask with a pattern color is allowed. Now it defaults to false.
When false, a conversion to a clipped image happens.

The new device parameter MaxClipPathSize specifies a restriction
for clip path segments. When a mask converts into a too big clipping path,
the image and the mask are being subdivided into smaller chunks.

Minor change : Moved the flag OrderResources to gx_device_pdf_s
(it had a too general scope).

A conversion of Type 3 images into clipped images will be a separate patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfp.c src/gdevpdf.c src/gdevpdfd.c src/gdevpsdf.h]

2005-03-25T21:26:33.000000Z Igor Melichev

ps2write : A misprint in option list.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat]

2005-03-25T20:13:54.000000Z Igor Melichev

ps2write : Don't set a pattern space when it is already set (continued 2).

DETAILS :

The previous patch caused a problem with 3d party interpreters.

This patch provides a compatibility to gs3.70 and HP LaserJet 1320.
Since we duplicate color commands for stroking and non-stroking colors,
a dup of 'setpattern' caused a problem, because it tried
to setup a pattern over a pattern.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-25T19:31:07.000000Z Igor Melichev

ps2write : Don't set a pattern space when it is already set (continued).

DETAILS :

The previous patch caused a problem with some files,
which set a non-stroke color first.

This patch provides a compatibility to gs3.70 .
Since we duplicate color commands for stroking and non-stroking colors,
a dup of 'setpattern' caused a problem, because it tried
to setup a pattern over a pattern.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-25T18:00:03.000000Z Igor Melichev

ps2write : Don't set a pattern space when it is already set.

DETAILS :

This patch provides a compatibility to gs3.70 .
Since we duplicate color commands for stroking and non-stroking colors,
a dup of 'setpattern' caused a problem, because it tried
to setup a pattern over a pattern.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-25T17:38:17.000000Z Igor Melichev

ps2write : Implementing the RotatePages and the FitPages options (continued).

DETAILS :

.HWMargins caused a problem with 3d party interpreters.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-25T13:07:56.000000Z Igor Melichev

ps2write : Create contents streams for empty pages.

DETAILS :

opdfread can't handle pages with no contents due to object ordering.

Minor change : propagated return codes from pdf_open_contents in pdf_close_contents.
This minor change also affects pdfwrite.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c src/gdevpdfu.c]

2005-03-25T11:13:25.000000Z Igor Melichev

ps2write : Work around HP LaserJet 1320 bugs (continued).

DETAILS :

A previous patch fails when no filters applied.
This one fixes that.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-25T10:11:29.000000Z Igor Melichev

ps2write : Improve the handling of encodings.

DETAILS :

1. Fixed a bug in GetMacRomanEncodingInverse.
2. Dropped some unused encodings.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat lib/opdfread.ps]

2005-03-25T08:22:06.000000Z Igor Melichev

ps2write : Implementing the RotatePages and the FitPages options.

DETAILS :

This is a further improvement of the last patch.

When RotatePages is defined in the target device,
the opdfread procset rotates pages for a better fitting
into the page size.

When FitPages is defined in the target device,
the opdfread procset scales pages for a better fitting
into the page size.

Note thet if both options are specified,
the procset first rotates and then scales a page.

No rotations happen if a page fits with no rotation or
if a rotation doesn't improve the fitting.

Rather the RotatePages option looks similar to
the distiller parameter AutoRotatePages,
it affects a PS interpreter in the target printer
rather than the distiller in the ps2write host.

Thge implementation accounts /.HWMargins,
which is Ghostscript specific feature.
It is useful when the printer embeds Ghostscript.

Since now the options may appear either in systemdict,
or in userdict, or in globaldict of the printer.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-24T21:37:13.000000Z Igor Melichev

ps2write : Implementing the RotatePages option.

DETAILS :

When RotatePages is defined in the target device,
the opdfread procset rotates pages for a better fitting
into the page size.

Rather the RotatePages option looks similar to
the distiller parameter AutoRotatePages,
it affects a PS interpreter in the target printer
rather than the distiller in the ps2write host.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-24T19:34:32.000000Z Igor Melichev

ps2write : Fixing problems with TrueType fonts.

DETAILS :

1. The old code tried to position a non-positionable file reading cmap subtables.
The new code read cmap subtables in the order of the file.

2. 'sfnts' array got an exctra element 'true' causing 'invalidfont' with 3d party interpreters.

3. Improved the debug printout of a Type 42 font dictionary.
The old code printed too big strings causing a problem with CPSI.

Debugged with comparefiles\Bug687597.ps and HP LaserJet 1320.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-23T19:45:15.000000Z Dan Coby

Fix for 687434, 687835, and 687982.  These reports are  /vmerror in
--eofill-- or --fill--.  They are caused by the pattern accumulation
device trying to allocate excessively large buffers.

DETAILS:

The pattern accumulation device allocates an image buffer for holding
patterns.  The size of the pattern buffer (prior to this fix) is based
upon the bounding box specified with the pattern.  For the problem files,
the pattern bounding boxes are excessively large.  The vmerrors are the
result.

This fix consists of comparing the pattern bounding boxes to the size
of the page to be imaged.  (All of the files have bounding boxes which
are much larger than the page.)  We determine which part of the pattern
will actually be used and limit the pattern accumulation to the area
which is needed.  Most of this fix consists of stepping the pattern to
check the intersection between the pattern and the page.  The major
complication in this process is simply due to the arbitrary transform
matrix which can be applied between the coordinate space used to define
the pattern and the coordinate frame of the output page.

This fix significantly reduces the buffer sizes required for these
test files.  However it is still possible for a pattern buffer to
exceed available memory.  It is possible to create a solution using some
version of a band list.  However my estimate on that task keeps getting
larger as I look at the details.

[src/gsptype1.c]

2005-03-23T18:40:06.000000Z Raph Levien

Set PJL RENDERMODE to GRAYSCALE or COLOR depending on whether device is
pxlmono or pxlcolor, respectively. Fixes bug #687990. Thanks to Jonathan
Kamens for the patch.

[src/gdevpxut.c]

2005-03-23T17:41:48.000000Z Ralph Giles

Add the missing ijs-config.1 manpage so our distributed ijs tree
builds cleanly as a separate package. Include other sync changes
to the 0.35 release. Closes bug 687991.

[ijs/configure.ac ijs/ijs_spec.pdf ijs/ijs-config.1 ijs/Makefile.am ijs/README]

2005-03-18T19:52:31.000000Z Igor Melichev

Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII (continued 2).

DETAILS :

Last two patches are incomplete - font streams were not ASCII encoded.
This one fixes that (All 3 to be applied).

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfu.c src/gdevpdti.c]

2005-03-18T17:48:49.000000Z Ralph Giles

Clean up a remaining link to the New-user documentation.

[doc/Bug-info.htm]

2005-03-18T17:38:24.000000Z Igor Melichev

Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII (continued).

DETAILS :

The last patch was buggy. This one fixes that (both to be applied).

It's a bug introduced when implementing PDFW_DELAYED_STREAMS.
Restoring the old behavior now.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c]

2005-03-18T17:28:47.000000Z Ralph Giles

Link to Commprod for the difference between GPL and AFPL Ghostscript.

[doc/Readme.htm]

2005-03-18T17:26:22.000000Z Ralph Giles

Remove the out-of-date 'new user' documentation. Most of this is covered by
the readme and the website.

[doc/Fonts.htm doc/Use.htm doc/Readme.htm doc/Helpers.htm doc/New-user.htm doc/Install.htm]

2005-03-18T17:15:59.000000Z Ralph Giles

Remove the obsolete Tester.htm documentation file.

[doc/Readme.htm doc/Tester.htm]

2005-03-18T16:15:25.000000Z Igor Melichev

ps2write : Work around HP LaserJet 1320 bugs.

DETAILS :

HP LaserJet 1320 appears to have problems with streams -
see comments in code.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-18T14:48:32.000000Z Igor Melichev

Fix (pdfwrite) : Don't apply ASCII85Encode to page contents streams which appear to be already ASCII.

DETAILS :

It's a bug introduced when implementing PDFW_DELAYED_STREAMS.
Restoring the old behavior now.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c]

2005-03-18T12:15:32.000000Z Igor Melichev

ps2write : Improve the error handler.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-18T11:21:42.000000Z Igor Melichev

ps2write : Add EndOfTask character at the end of a task.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat]

2005-03-18T10:36:43.000000Z Igor Melichev

ps2write : Add EndOfTask character at the end of a task.

EXPECTED DIFFERENCES :

None.

[lib/EndOfTask.ps lib/ps2write.bat]

2005-03-17T15:45:52.000000Z Igor Melichev

ps2write : Don't write empty elements of Subrs.

DETAILS :

gdevpsf1.c created an incorrect Type 1 font file due to
'readstring' causes a rangecheck with empty string.
Skipping empty elements of Subrs against that.

An empty element of Subr isn't a correct code since
it must contain at least a 'ret' instruction.
Thus empty element actually means "no element".

EXPECTED DIFFERENCES :

None,
because normally pdfwrite doesan't call this code portion.

[src/gdevpsf1.c]

2005-03-17T13:08:37.000000Z Igor Melichev

Fix : Building GS with MSVC, use a proper CRTL version (debug|nodebug).

EXPECTED DIFFERENCES :

None.

[src/msvc32.mak]

2005-03-17T13:06:38.000000Z Igor Melichev

ps2write : Write pages in the proper order.

DETAILS :

Bug 687923 "New ps2write inverts the page order".

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfu.c]

2005-03-17T10:52:29.000000Z Igor Melichev

fuzzy.c : Fixing the error message format.

[toolbin/tests/fuzzy.c]

2005-03-17T10:45:49.000000Z Igor Melichev

ps2write : Fixing an initial matrix bug.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-16T23:04:07.000000Z Alex Cherepanov

Keep the operands of knownoget_safe pseudo-operator on the stack to ensure
proper restoration of the operands when it fails. Correctly adjust the stack
in the caller when knownoget_safe fails.
Fix bug 687473 from the customer 780.

[lib/pdf_main.ps]

2005-03-16T14:57:42.000000Z Igor Melichev

Fix : MSVC8 warning.

DETAILS :

This change is algorythmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/sjpx.c src/spdiff.c]

2005-03-16T12:27:42.000000Z Igor Melichev

Fix : Coding style and MSVC8 warning in gsciemap.c .

DETAILS :

This change is algorythmically equivalent.

The old code applies macros to generate 3 expressions like this :

(8 >= ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) :
(10))) ? (((pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))] +
(frac)(((long)((pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) + 1] -
(pcrd->caches.EncodeABC[0].fixeds.ints.values)[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ?
((1 << 2) * 8 - 9 - 2) : (10)))]) * ((int)(tabc[0]) & ((1 << ((((1 << 2) * 8 - 9 - 2) < (10)) ?
((1 << 2) * 8 - 9 - 2) : (10))) - 1))) >> (((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) :
(10))))) << (8 - ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))) :
(((pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))] +
(frac)(((long)((pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))) + 1] -
(pcrd->caches.EncodeABC[0].fixeds.ints.values)
[((tabc[0]) >> ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10)))]) *
((int)(tabc[0]) & ((1 << ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) :
(10))) - 1))) >> -(8 - ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) :
(10))))) >> (((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))))

(the other 2 ones replace "[0]" with "[1]" and "[2]").

We gues that MSVC8 is not enough intelligent to prove that the static (sub)expression
((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))
is always within the interval [0, 10] and therefore it claims a possible error.
This patch replaces it with a dynamic constant 's',
so that the warning doesn't appear.
In any case we believe that the huge expression above isn't a
good coding style since humans need to read the code sometimes.

For ones who wish a further simplification,
we're happy to bring some useful definitions :

XXX = ((((1 << 2) * 8 - 9 - 2) < (10)) ? ((1 << 2) * 8 - 9 - 2) : (10))
YYY = ((int)(tabc[0]) & ((1 << XXX) - 1))
ZZZ = ((tabc[0]) >> XXX)
TTT = (pcrd->caches.EncodeABC[0].fixeds.ints.values)

Using them the expression reduces to :

(8 >= XXX) ? ((TTT[ZZZ] + (frac)(((long)(TTT[ZZZ + 1] - TTT[ZZZ]) * YYY) >> (XXX))) << (8 - XXX))
           : ((TTT[ZZZ] + (frac)(((long)(TTT[ZZZ + 1] - TTT[ZZZ]) * YYY) >> (XXX))) >> -(8 - XXX))


EXPECTED DIFFERENCES :

None.

[src/gsciemap.c]

2005-03-16T09:47:43.000000Z Igor Melichev

ps2write : Don't drop extension glyphs writing an embedded font.

DETAILS :

The pdf interpreter creates glyph copies with unique_name
to resolve glyph name conflicts while converting Widths to Metrics.
Then pdfwrite drops the extended glyph names (made with unique_name),
to aviod font expansion in the output PDF.

We do not wont to port unique_name and related stuff
to opdfread.ps in order to simplify the latter.
Therefore the drop_extension_glyphs and related things must not be called
when pdfwrite works in the ps2write mode.

We still use OrderResources as a general switch for the ps2write mode.
This should be improved later.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtb.c src/gdevpdtw.c]

2005-03-16T09:38:13.000000Z Igor Melichev

ps2write : Improving the processing of True Type encodings.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-15T14:14:46.000000Z Igor Melichev

ps2write : Fit a page with MediaBox.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-15T11:36:37.000000Z Igor Melichev

Fix : Cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c src/gdevpdtc.c src/gstype42.c src/gxshade6.c]

2005-03-15T11:21:08.000000Z Igor Melichev

ps2write : Fixing minor problems with text placing.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-03-14T18:08:39.000000Z Dan Coby

Fix for 687696 PDF 1.4 transparency can use large chunks of memory.
Prior to this fix the handling of PDF 1.4 transparency features used one
or more full size image buffers.  With high resolutions and large images,
these buffers can be multiple gigabytes.  As a result, we were not able
to handle these files.

DETAILS:

PDF 1.4 transparency is handled by a device which is inserted into the
device chain.  Prior to this fix, this device was via the 'device filter'
logic.  With this fix, the PDF 1.4 transparency device is inserted via
the compositor device mechanism.  This change was made since the device
filter logic did not allow other devices to control where the PDF 1.4
transparency device is placed in the device chain.  There is a device
proc which implements the create compositor action.  This allows more
control than the device filter logic.

The first step in this fix was to convert the PDF 1.4 transparency
logic to use the create compositor mechanism.  For situations in which
the clist logic is not being used, the PDF 1.4 transparency device is
created and placed in the same location in the device chain as it was put
by the device filter logic.  In this situation, there is very little
logical difference in the operation of the PDF 1.4 transparency.

For situations in which the clist is used, there are two PDF 1.4
compositing devices created.  There is one device before the clist when the
clist is being written.  There is a second device after the clist when
the clist data is being read.

The device before the clist serves two purposes, it provides a means for
implementing the process color model for the PDF 1.4 compositing.  (The
PDF 1.4 compositing may used a different process color model from the output
device.)  Thus this device has color_info and encode/decode color procs
which match the PDF 1.4 blending color space.  This device also ensures
that the PDF 1.4 blending parameters (blend mode, shape, opacity, etc.)
are passed through the clist to the second PDF 1.4 device.

The second PDF 1.4 device (the one when the clist is being read) is the
same PDF 1.4 compositing device which is used when the clist is not being
used.  This is the device which does the blending operations.  Since the
device is after the clist, the buffers that it needs are the size of a
single band instead of the full page.  This device is placed prior to
the memory device which is used for drawing the raster data.

Two changes were made in the 'create compositor' logic.  The imager state
was being passed as a 'const'.  It is no longer const since the PDF 1.4
transparency compositing changes the cmap procs in the imager state to not
use transfer functions during color calculations.  The transfer functions
are applied later (and the cmap procs restored) when blended image data
is output from the PDF 1.4 compositing buffers.

The second change to the create compositor logic is the addition of two
more procedures to the gs_composite_type_t.procs list.  These procedures
are used by the clist device create compositor routines.  The first
is used to create the PDF 1.4 clist write device.  The second saves and
restores the color_info field for the clist device (see below).

Default versions of the added gs_composite_t.procs were also added for
use by the other compositor devices.  The defaults are no-ops.

The clist logic has a few changes.  Since the PDF 1.4 compositor device
may use a different process color model from the output device, the number
of colorants and the depth (bits per pixel) can be different for the PDF
1.4 compositor and the output device.  Thus changes were needed in parts
of the clist logic which assumed that these items were constant during the
processing of the clist.  An extra field was added to the device halftone
to indicate the number of colorants in effect when the device halftone was
created.  This data is included when the halftone is serialized for the
clist.  (Fortunately the PDF 1.4 compositing does not use halftones or
transfer functions.  So the device halftones and transfer functions do
not need to be changed when the PDF 1.4 compositor is installed.)

As previously mentioned the create compositor procedures for the clist
writer and reader now call a couple of compositor specific routines.  These
allow the compositor to implement actions related to the clist device.
(The PDF 1.4 compositor uses these routines to create the 'write clist'
PDF 1.4 compositor and to save and restore the clist device color info.
The color_info field of the clist device is changed to match the process
color model of the PDF 1.4 compositor while the PDF 1.4 compositor is active.

A additional device parameter (PageUsesTransparency) was added.  This
parameter is sent by the PDF interpreter to indicate if PDF 1.4 transparency
will be used on the page.  The banding/no banding decision and the size
of a band includes an estimate of the size of the PDF 1.4 blending buffers
if this parameter is true.  Note:  The estimate of the size of the
blending buffers is not exact since this calculation is made before the
actual number of buffers, the number of blending colors and alpha channels
is known.  Fixed values are used for the estimated buffer size.  This is
still much better than the pervious situation, in which the only the
output raster size was being used.  The blending buffers can easily be
30 or more times larger than the raster buffer.

This fix also involves the removal of the PDF 1.4 'marking' devices.
The marking devices were used to actually implement the pixel marking.
The marking devices were created at the start of each high level drawing
operation and deleted after the completion of the operation.  The marking
device action has been merged into the primary PDF 1.4 compositing device.
This change eliminates some device creation overhead.  The overhead would
have been worse since most information about high level drawing operations
is not passed through the clist.  As a result it would have been necessary
to create marking devices for each low level operations.



The following issues are not included in this fix but need to be considered.

1)  The device filter logic is no longer used.  It may be desired to remove
this logic.

2)  We currently have a 'create_compositor' device proc.  However there
is not a 'delete_compositor' device proc.  As a result, compositor devices
can stay in the device chain even when they are no longer needed.  The
current fix turns the PDF 1.4 compositor into a 'forwarding' device.  This
is the same method used by the overprint compositor device.  I do not like
leaving these devices since there is some extra overhead and there may be
possible side effects.  (Testing has been done to try to find side effects
and none has been found with the current code.)

3)  This change only affects devices which can use the clist logic.  This
excludes the 'high' level devices.  These include the 'display', 'x11',
and 'pdfwrite' devices.  Thus these device will continue to use a full
image buffer.  It is possible to extend this fix to use a clist device
for the PDF 1.4 device for these devices.

[src/gstparam.h src/gdevmem.c src/gxclrast.c src/gxclimag.c src/zdpnext.c src/lib.mak lib/pdf_main.ps src/gdevdflt.c src/gxcldev.h src/gxdevice.h src/gsovrc.c src/gsht.c lib/pdf_draw.ps src/gxband.h src/gdevp14.c src/gxclist.c src/gxdhtserial.c src/gdevp14.h src/gxcmap.c src/ztrans.c src/gstrans.c src/gxdevmem.h src/gdevpsdu.c src/gxclist.h src/gsalphac.c src/gsistate.c src/gxdht.h src/gstrans.h src/gxclutil.c src/gsropc.c src/gxistate.h src/gdevbbox.c src/gxcomp.h src/gdevnfwd.c src/gdevprn.c src/gxdevcli.h src/gdevprn.h]

2005-03-14T17:46:46.000000Z Igor Melichev

ps2write : Assume same color for stroking and non-stroking operations.

DETAILS :

An improvement to opdfread.ps with maintaining different colors
for stroking and non-stroking operations would too complicated.
So we patch pdfwrite against it.

We still use OrderResources as a general switch for ps2write mode.
It should be improved later.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c]

2005-03-10T16:34:41.000000Z Igor Melichev

Fix (type 1 hinter) : Inconsistent transform coefficients after the dynamic glyph scaling.

DETAILS :

Bug 687939 "Fixed precision problems".

t1_hinter__adjust_matrix_precision did not adjust rational transform coefficients.
Due to that, t1_hinter__align_stem_to_grid caused glyph distortions.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c]

2005-03-10T14:57:23.000000Z Alex Cherepanov

Initialize ColorSpace parameter in ijs driver to DeviceRGB. This
prevents a PostScript error in "currentpagedevice setpagedevice"
and similar code when ColorSpace is not explicitly initialized.
Fix bug 687013.

[src/gdevijs.c]

2005-03-10T13:01:01.000000Z Alex Cherepanov

Add FillOrder device parameter to TIFF fax devices and document the
changes in Devices.htm .
Fix bug 687324

DETAILS :
This fix changes the default from FillOrder = 2 to FillOrder = 1.
According to the TIFF 6.0 specification, Section 8, page 32, support of
FillOrder = 2 is not required in a Baseline TIFF compliant reader.

Support of FillOrder will be addressed to tiffpack and tifflzw devices as
a part of bug 614298 resolution.

EXPECTED DIFFERENCES :
None. TIFF devices are not tested by the regression test.

[doc/Devices.htm src/gdevtfax.c]

2005-03-09T12:21:34.000000Z Igor Melichev

Fix (pdfwrite) : Equal image merging could break the Mask object of a type 3 image.

DETAILS :

Bug 687926 "ps2pdf13 Segfaults on eps figure".

The old code set a reference to a Mask object,
which was freed while the equal image merging.
Delay adding the "Mask" entry into a type 3 image dictionary
until the mask is completed and merged
(maybe replaced with an equal one).

Minor change : fixed a typoe in "pdf_image_useage_t".

EXPECTED DIFFERENCES :

None.

[src/gdevpdfi.c]

2005-03-09T09:01:27.000000Z Igor Melichev

Fix (pdfwrite) : Don't create a CMap resource list.

DETAILS :

Old revisions created an object for CMap resource list.
That object is not required by the PDF specification,
and it was left unreferenced.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtw.c]

2005-03-09T08:43:02.000000Z Igor Melichev

Fix : MSVC 8 debug build was broken.

DETAILS :

Since msvccmd.mak version 1.25 a debug build compiles with no debug info.
This patch restores necessary compiler options.

Particularly msvccmd.mak version 1.25 reads :

     # MSVC 8 does not support debug compile and continue /Gi /ZI.

Don't know where it comes from. My copy of MSVC 8
does support it and I do use it.

EXPECTED DIFFERENCES :

None.

[src/msvccmd.mak]

2005-03-08T07:40:45.000000Z Ralph Giles

Add uncompr.c which supplies the uncompress() zlib utility routine to our
makefile. This routine isn't currently used by ghostscript, but was available
prior to the source re-arrangement in the zlib 1.2.x releases.

[src/zlib.mak]

2005-03-04T22:12:50.000000Z Russell Lang

Correct HTML error in documentation.

[doc/Use.htm]

2005-03-04T22:02:23.000000Z Russell Lang

Set the default paper size with DEFAULTPAPERSIZE in gs_init.ps,
which only affects devices that default to A4 or letter paper.
This avoids inappropriately setting the bbox device to
A4 or letter size.

DETAILS:
Some linux distributions change the default paper size
to A4 by uncommenting the following line in gs_init.ps.
  % Optionally choose a default paper size other than U.S. letter.
  % (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse

Unfortunately this sets the default paper size for all devices,
including the bbox device for which this is not appropriate.
If the bbox device is set to A4 paper and drawing occurs
outside this area, the bbox device will report an incorrect
bounding box.  There may be custom printer devices which don't
support A4 or letter paper.

The default paper size is now set with DEFAULTPAPERSIZE,
which sets PAPERSIZE only if the paper size is not otherwise
set, the device defaulted to A4 or letter.

[doc/Use.htm lib/gs_init.ps]

2005-03-04T22:00:22.000000Z Russell Lang

The display device row alignment must be equal to or greater than
the pointer size, since this is a requirement of the memory devices.
Problem noticed on 64-bit builds.

[src/gdevdsp.c src/gdevdsp.h]

2005-03-04T21:58:55.000000Z Russell Lang

Compile Ghostscript for 64-bit Windows with AMD64 processor.
Change the default install directory to "c:\program files\gs".

DETAILS:
Microsoft Visual Studio .NET 2003 with Windows Server 2003 DDK,
or Microsoft Visual Studio 8 (.NET 2005 beta) are required
to compile for 64-bits.

Dialog boxes return type INT_PTR not BOOL.

Install to the "Program Files" directory as default,
instead of c:\gs.  This allows 32-bit and 64-bit
versions to be installed in separate locations.
For 32-bit GS on 32-bit Windows, "c:\Program Files\gs"
For 32-bit GS on 64-bit Windows, "c:\Program Files (x86)\gs"
For 64-bit GS on 64-bit Windows, "c:\Program Files\gs"
The " (x86)" is added by Windows when a 32-bit program asks
for the "Program Files" folder on 64-bit Windows.
Other languages will translate "Program Files".

The programs still have "32" in their names: gswin32c.exe,
gswin32.exe and gsdll32.dll.  They are distinguished from
the 32-bit versions by their install location.
This avoids changes to many batch files.

The registry entries written by the installer do not
conflict between 32 and 64-bit.
For 32 on 32, or 64 on 64, the location is
  HKLM\Software\AFPL Ghostscript\N.NN
For 32 on 64, Windows adds "WoW6432Node\" to make it
  HKLM\Software\Wow6432Node\AFPL Ghostscript\N.NN

If the "Program Files" folder has a " (x86)" suffix,
this is used as a suffix on the Start Menu items.  This
allows 32-bit and 64-bit GS to be installed without
conflict.  The start menu item for 32-bit GS on 64-bit
Windows is "Ghostscript N.NN (x86)".

Building 64-bit GS on 32-bit Windows can be done
by the usual method - either execute genconf.exe on
a 64-bit platform or hand edit arch.h.

A separate patch will fix the display device DisplayHandle
parameter which is currently truncated to 32-bits.

There is a warning from the linker about exports being
defined multiple ways.  This is not a problem with the
32-bit compile.  This is due to the C code
specifying export and the module definition file
also specifying the export.  Removing the function
names from the module definition file would make the
warning message go away, but may affect 32-bit compiles.

[src/dwsetup.rc src/winint.mak doc/Make.htm src/msvccmd.mak src/gp_mswin.c src/msvc32.mak src/gsdll32.def src/gp_mswin.h src/msvctail.mak src/dwuninst.cpp src/dwsetup.cpp]

2005-03-04T21:56:06.000000Z Russell Lang

Change display device parameter DisplayHandle from an integer
to a string, to add support for 64-bit platforms.

DETAILS:
The display device passes a (void *) handle to callback functions.
The handle is set before the device is opened, and attempting to
change it afterwards is an error.
The handle may be used by the caller to identify an instance of
the display device, for example it may point to the display instance
object in the caller.
This handle was set using a PostScript integer which is 32-bits long,
typically with -dDisplayHandle.
The existing code will not work correctly on 64-bit architectures.

The display device is changed to return a string as the
DisplayHandle parameter.
Previously the handle would be set using -dDisplayHandle=1234.
The changed code allows it to be passed as
 -dDisplayHandle=1234
 -sDisplayHandle=1234
 -sDisplayHandle=10#1234
 -sDisplayHandle=16#04d2
This should be backward compatible, since users of the
display device will most likely only set the DisplayHandle,
not read its value.

The ghostscript example code in dw*.c, dx*.c and dp*.c
does not use DisplayHandle, so is unaffected by this change.
GSview does use DisplayHandle and will require this
change for operation on 64-bit platforms.

It is assumed that size_t is an integer with the same size
as a pointer.

For HEAD, GS_8_1X

[src/gdevdsp.c src/gdevdsp.h]

2005-03-04T14:42:53.000000Z Igor Melichev

Unwinding the last patch, which was erroneusely aplied to a wrong branch.

[src/gdevpdfj.c]

2005-03-04T14:40:07.000000Z Igor Melichev

pdfwrite : ASCII encoding was not applied to some images when requested.

DETAILS :

It fixes a bug, which has been put when implementing the compression chooser.
This is a part of ps2write development, which is also important for pdfwrite.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfj.c]

2005-03-04T14:38:13.000000Z Igor Melichev

pdfwrite : ASCII encoding was not applied to some images when requested.

DETAILS :

It fixes a bug, which has been put when implementing the compression chooser.
This is a part of ps2write development, which is also important for pdfwrite.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfj.c]

2005-03-04T10:27:39.000000Z Russell Lang

Fix bug #687958 gswin32: Assertion fails due to a bug in dwtext.c.
Keep argument to isprint() within 0-255.

[src/dwtext.c]

2005-03-03T19:05:41.000000Z Ray Johnston

Eliminate a performance problem when a TT font has a large 'loca' table.
A fix for 687889 used .sort on the 'loca' table but this takes a long
time if the table is large. Only run the .sort if the table is out of
order which is rare since the TT font spec requires an in-order table.
Bug 687968.

DETAILS:

Apparently our conversion of the 'japan.ps' file creates a TT font with
a loca table that has 20458 entries (even though the original font
in japan.ps didn't have that many). This is needed because there are
many glyphs that are not present, but we need loca table slots that
represent the missing glyphs (same starting offset as next glyph).

The time was being spent doing the '{ lt } .sort' of the array  :-(

I added logic that checked the order as the loca table was converted
to an array so that the .sort could be skipped as long as the table is
in order (which it *should* be for a valid TT font). After this change,
the HEAD time is 1.16 CPU seconds versus 1.08 seconds for gs8.50.
(with the .sort, the time was 257 seconds).

I suppose that we could optimize the .sort (put it into 'C') but
for now I'll just avoid it most of the time.

Note that since the .sort has a procedure callout for the ordering test,
it might not speed up that much in 'C'. That's the other reason that it
is worthwhile to avoid the .sort when possible.

[lib/gs_ttf.ps]

2005-03-03T13:15:55.000000Z Igor Melichev

pdfwrite : Use character codes instead CIDs when creating a ToUnicode CMap.

DETAILS :

Bug 687954 "copy and pasting asian text problems".

The problem depends on what a Postscript printer driver
puts into the GlyphNames2Unicode table.

GlyphNames2Unicode is an undocumented feature, which PScript5.dll uses to
communicate with Adobe Distiller. A long ago from its name
we concluded that it maps character names to Unicode, and it was
confirmed with multiple documents. Now we got a document
(the test case of the bug 687954), which uses character codes instead CIDs,
(CIDs are usually interpreted as "glyph names" in the case of CID fonts).
In the test document CIDs are not equal to character codes due to the embedded CMap
named WinCharSetFFFF-H2. We did not notice this problem before
due to most old documents from PScript5.dll use an identity CMap WinCharSetFFFF-H,

Now we change Ghostscript with using character codes instead CIDs
as keys to GlyphNames2Unicode. We have no technology for a regression test
of the related behavior. We will pass this revision to users in order to study
consequences of this patch from users' responses.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtc.c src/gdevpdte.c]

2005-03-03T07:50:15.000000Z Igor Melichev

ps2write : Write "/Type/CMap" to a CMap resource dictionary.

DETAILS :

Bug 687955 "ghostscript generated pdf causes error in adobe reader"

EXPECTED DIFFERENCES :

None.

[src/gdevpdtw.c]

2005-03-02T18:08:38.000000Z Raph Levien

Fix: Move setting of #copies userdict entry outside restore operation
so it doesn't get clobbered. Fixes bug #687964. Thanks to Leon Sha for
the patch.

[src/gdevpsu.c]

2005-03-01T20:44:01.000000Z Ray Johnston

Fix a problem with .dividesfnts for large Type42 fonts introduced with the
previous commit. Also replace macro with C-Style compliant inline function.

DETAILS:

The previous code constructed a single 'locatable' string of 4 byte entries
from the sorted array of loca entries. This would fail if the original
was 2 byte (u16) offsets, as seen with 'fonts.pdf' in the regression suite.

The new code constructs the "splitarray" list using the sorted array so
that the string is never created (it wasn't used afterwards).

Also, the related file src/gstype42.c was changed to avoid adding another
macro that doesn't follow C-Style. I intentionally left the ACCESS macro
since this would need at least two lines to replace each ACCESS line.

[src/gstype42.c lib/gs_ttf.ps]

2005-02-28T10:00:15.000000Z Igor Melichev

ps2write : Reset the clipping path before starting a page.

DETAILS :

Bug 687952 "Clipping path is ignored on pages after first page of PDF output".
Patch from SaGS.
Actually it resets the clipping path before the first page and after each page.
Resetting it after the last page saves few memory for PDF completion.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c]

2005-02-27T05:56:59.000000Z Ray Johnston

Fix handling of broken TrueType fonts that have a loca table that is not
in order. Bug 687889 for customer 670.

DETAILS:

This is clearly a questionable TT font since the Apple TT font reference
manual clearly states that the length of glyphs can be inferred from
the difference in successive offsets.

Note that the PostScript code only needs to deal with the sorted 'locatable'
in order to decide where to split the glyf strings in the sfnts array
(in the .dividesfnts proc). Otherwise the PostScript code doesn't care.

If the .dividesfnts uses a sorted locatable, but doesn't replace the 'loca'
table written into the sfnts, then the VMerror occurs because the C code
in 'default_get_outline' calculated the glyph_length for the gs_alloc
using loca table entries that might be out of order.

In order to effect the entire fix, I sorted the 'locatable' for the PS
code in .dividesfnts as well as creating a new 'len_glyphs' array in
the gs_type42_data structure that holds the actual glyph lengths.
The glyph lengths are calculated once when the font is initialized in
gs_type42_font_init. If the 'loca' table is in order, then nothing
changes, but if it is out of order, we get the lengths by finding the
next higher glyph offset anywhere in the loca table.

These changes let the file run and show the same glyphs as Adobe Acrobat
Reader.

[src/gxfont42.h src/gstype42.c lib/gs_ttf.ps]

2005-02-26T21:00:04.000000Z Igor Melichev

ps2write : Fixing minor problems with debug printing.

DETAILS :

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-02-26T18:07:43.000000Z Igor Melichev

ps2write : Implementing a conversion of images into ProcessColorModel, step 3 (final).

DETAILS :

1. Attached the "image colors" filter and
provided appropriate color conversions.

2. Changed function prototype to pass filter parameters.

3. Removed all related stubs.

EXPECTED DIFFERENCES :

None.

[src/gdevpsds.c src/gdevpsds.h src/gdevpsdi.c src/devs.mak src/gdevpsdf.h src/gdevpdfi.c]

2005-02-26T13:32:56.000000Z Igor Melichev

ps2write : Implementing a conversion of images into ProcessColorModel, step 2.

DETAILS :

This step generalizes the "image to mask" filter into
a general image color conversion filter.
Also improved return codes from s_image_colors_process
in complience to constraints defined in strimpl.h .

EXPECTED DIFFERENCES :

None.

[src/gdevpsds.c src/gdevpsds.h src/gdevpsdi.c]

2005-02-25T21:08:22.000000Z Igor Melichev

ps2write : Implementing a conversion of images into ProcessColorModel, step 1.

DETAILS :

This patch defines overall logic and data exchange for converting images to
ProcessColorModel color space. For a while, the real convertion is stubbed
with conversion into a bitmask (a 1 bit per sample image).

1. When pdf_begin_typed_image calls pdf_color_space,
a failure means that the image can't represent in the output PDF.
Then we setg up a n image color conversion filter with
psdf_setup_image_colors_filter.

2. The function psdf_setup_image_colors_filter currently is stubbed
with etting up the "image_to_mask" filter instead a general color conversion filter.
Implementing the general filter will be the next step.

3. When conversion happens, pdf_begin_typed_image writes
a ProcessColorModel colore space instead the image color space.
Currently it is stubbed with gs_color_space_index_DeviceGray
to comply with the stub in psdf_setup_image_colors_filter.

4. Multiple bugs (mainly the order of bits in the stream,
and row to tyte alignment) have bin fixed in s_image_to_mask_process.

5. We continue to use pdev->OrderResources as a general switch
for the ps2write mode, rather it's not fully correct.
The new code will be useful for pdfwrite with CompatibilityLevel < 1.3,
so later we'll need to remove the switch from pdf_begin_typed_image.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpsds.c src/gdevpsdi.c src/gdevpsdf.h src/gdevpdfi.c]

2005-02-25T14:02:24.000000Z Igor Melichev

pdfwrite : Simplify data exchange for pdf_color_space.

DETAILS :

1. The old code assumes a constraint explained in the comment :
	/* SRZB 2001-04-25/Bl
	 * Since psdf_setup_image_filters may change the color space
	 * (in case of pdev->params.ConvertCMYKImagesToRGB == true),
	 * we postpone the selection of the PDF color space to here:
	 */
Implement this dependence implicitly with defining a new function
psdf_is_converting_image_to_RGB, in order to cancel the "postpone" constraint.

2. Call pdf_color_space before setting up image filters.
This allows a proper check of the color space compatibility
before image filters are set.
This is important since we'll apply a filter
for the image color space conversion.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdi.c src/gdevpsdf.h src/gdevpdfi.c]

2005-02-25T07:58:50.000000Z Igor Melichev

ps2write : Unwind the last patch (disallow ICCBased color spaces when writing a ps2write output).

DETAILS :

When applied the last patch,
we decided to convert ICC profile into a CIEBased color space.
But ICC profiles (especially ones coming from PDF documents from wild)
may contain a general lookup table, and a general lookup
table can't convert into M1*T*M2 transformation,
where Mi are 3D linear transformations, and and
T is unlinear 3-component transformation.
Since a CIEBased color space is restricted with
M1*T*M2 transformation, in a general ICC profile
can't convert into a CIEBased.

Besides that, the ICC-based method can't apply to DeviceN spaces.

Therefore now we choose another implementation strategy.
Single colors will be converted into low level colors in
the ps2write step, and images will be filtered to convert
into low level color spaces.
Will implement a special filter for that.

Due to all above, the last patch appears wrong.
Unwinding it now.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfk.c]

2005-02-24T19:46:58.000000Z Igor Melichev

ps2write : Allow ICCBased color spaces when writing a ps2write output.

DETAILS :

Since CIEBased is not a PDF 1.2 object, we need to convert it somehow.

One possible way is to write CIEBased into PDF.
We do not choose this way because (1) it will generate an invalid PDF
so that we'll not be able to verify the output with PDF readers;
(2) we have no code for writing a CIEBased color space to PDF or Postscript,
but we do have one for ICCBased.

Another way is to write ICCBased into the ps2write output
and to implement a parsing of ICC profile in opdfread.ps .
We prefer this way since a part of this algorithm (an ICC writer)
already presents in Ghostscript.

Strongly saying, a PDF with ICCBased is not a valid PDF 1.2 document.
But as we noticed before, Adobe PDF viewers simply ignore
pdf level from the document header. So we'll be able to view it
as it is or after a small modification of the header.

We continue to use the flag OrderResources as a general switch for
ps2write mode. Doing so because we still have no
a perfect decision about the list and logics of configuration options.
Later we'll need to bring more order to this field.
Possibly writing a "restricted PDF1.3" would be better that
writing an "extended PDF 1.2".

By the way, pdfwrite appears to have a rudimentary branch
pdf_convert_cie_to_lab, which currently is a stub,
which always fails. We think that this conversion isn't possible
in general due to Lab restricts with a very special class of
transformations. So lakely this branch will never be implemented
and it must always fail.

Please note that with this patch ps2write successfully converts
a smaller class of input files then before it,
because the writer becomes inconsistent with
the reader coded in opdfread.ps . But we do need this step
in the develoipment technology. Actually the files outside the class
were converted into a too long PDF.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfk.c]

2005-02-24T11:26:09.000000Z Igor Melichev

Fix (pdfwrite) : Improving the heap consistensy with compression chooser.

DETAILS :

When a compression chooser is being installed,
s_add_fimter may insert another NullEncode filter to comply the buffering
between the compression chooser and its target.
After the compression chooser is closed, the old code
left the NullEncode filter unreleased in the heap,
so that the heap consistency check claimed a reference
from it to a freed object, which is the target of the
NullEncode. It's not a real bug sisnce NullEncode was never referred,
But running with -Z? got a failure in the heap consistency check.

This patch generalizes the code with closing all filters in the chain
(including the NullEncode) without a dependence on
features of specific filters.

BTW, we're unappy of all this stuff,
becauase actually the compression chooser filter doesn't need any target.
A dummy one was inserted only to work around a crash in
s_add_filter, in the check of the buffer size compliance,
and now we fix a problem with the dummy thing.
Maybe a simpler way would be patching s_add_filter
to allow NULL target (I mean no target at all,
rather than a null filter as the target),
but we don't want to modify that fundamental thing,
which is handled by another engineer.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdi.c src/gdevpdfj.c]

2005-02-23T15:10:39.000000Z Igor Melichev

ps2write : Improving the compatyibility to another PSLL2 interpreter 5D PDF Creator.

DETAILS :

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-02-23T10:48:53.000000Z Igor Melichev

ps2write : A wrong data were set to sfnts defining a Type 42 font.

DETAILS :

It attached an encoded data.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-02-23T10:08:32.000000Z Igor Melichev

Fix : Erase all pointers initializing a font structure.

DETAILS :

Bug 687951 "Inconsistent heap after 'definefont' fails.".

EXPECTED DIFFERENCES :

None.

[src/gsfont.c]

2005-02-23T09:57:45.000000Z Igor Melichev

Fix (pdfdwrite) : Don't apply FlateEncode generating a PDF 1.2.

DETAILS :

FlateEncode is a PDF 1.2 and PSLL3 feature.
This patch is important for ps2write project.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdi.c]

2005-02-22T15:41:42.000000Z Igor Melichev

A new implementation of shadings, step 89.

DETAILS :

This is a partial fix for the bug 687948
"Performance of shading fill much worse than 8.00".

This patch improves the decision how to subdivide a quadrangle patch.

EXPECTED DIFFERENCES :

normal, 72dpi :

"442-01.ps"
"464-01-fixed.ps"
"478-01.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"S2_Digitalproof-Forum_x3k.pdf"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"

normal, 300dpi :

"442-01.ps"
"464-01-fixed.ps"
"478-01.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"S2_Digitalproof-Forum_x3k.pdf"
"SmoothShading.pdf"

[src/gxshade6.c]

2005-02-18T20:38:34.000000Z Russell Lang

Fix conformance problems in ghostpdf.ppd.  Now tested with cupstestppd.

[lib/ghostpdf.ppd]

2005-02-17T21:40:06.000000Z Igor Melichev

ps2write : A compatibility to a PSLL@ interpreter gs3_70.

DETAILS :

1. With  GS HEAD 'makepattern' always returns a local dictionary, but
with gs3_70 it depends on current allocation mode.
Forced the local allocation mode for any case.

2. Fixed the file name in the error handler message.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-02-16T22:05:31.000000Z Igor Melichev

ps2write : Fix problems with hex encodings (continued).

DETAILS :

The old code sometimes corrupted data when pdfwrite applies /ASCII85EncodePages true .
The data corruption happened while applying ASCII85Decode filter
together with another filter for inline images or embedded fonts.
The reason is that two instances of the stream dumper shared same buffer.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2005-02-16T15:29:33.000000Z Igor Melichev

ps2write : Implementing a conversion of type 4 images into an 'imagemask' with a pattern color.

DETAILS :

The mask is being generated with a new 4th alternative stream of pdf_image_writer.
Note it's a completely different way than image type 3.

1. Fixed a typo in 'pdf_image_writer_num_alt_streams'.

2. pdf_image_writer_num_alt_streams is increased to 4,
   and added pdf_image_writer::pres_mask.

3. Garbager methods of pdf_image_writer are updated with (2) in gdevpdfj.c .

4. Factored out pdf_begin_image_data_decoded (an equivalent code change).

5. Factored out pdf_end_and_do_image (an equivalent code change).

6. pdf_begin_write_image now may be called at 2nd time to set up the 4th alternative stream.
   The branches for mask==true work for that.

7. Implenented a new filter image_to_mask for converting a colored
   image with MaskColors into an imagemask (gdevpsds.h, gdevpsds.c).

8. psdf_setup_image_to_mask_filter helps for (7). (gdevpsdf.h, gdevpsdi.c)/

9. pdf_begin_typed_image now creates 4th alternative image stream with
   applying the image_to_mask filter - see the branch
   "if (pic->type->index == 4 && pdev->CompatibilityLevel < 1.3)".
   See comment in there.

10. pdf_image_end_image_data handles the 4th stream
   with the branch "if (pie->writer.alt_writer_count == 2)".

11. pdf_choose_compression_cos preserves the 4th alternative stream (gdevpdfj.c).

EXPECTED DIFFERENCES :

None.

[src/gdevpsds.c src/gdevpsds.h src/gdevpsdi.c src/gdevpsdf.h src/devs.mak src/gdevpdfi.c src/gdevpdfj.c src/gdevpdfg.h]

2005-02-16T11:11:18.000000Z Igor Melichev

Fix (pdfwrite) : Improve garbager methods of pdf_image_writer.

DETAILS :

This change should be algorithmically equivalent,
rather the order of pointer enumeration is changed slightly.
The goal is to simplify the ps2write project.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfj.c src/gdevpdfg.h]

2005-02-16T09:13:06.000000Z Igor Melichev

Fix (pdfwrite) : Implement an explicit initialization of pdf_image_writer.

DETAILS :

This change should be algorithmically equivalent,
rather it initializes more data, which were left uninitiaized
(and hopely unused) by the old code.
The goal is to simplify the ps2write project.

The patch simplifies the logics of pdf_begin_write_image,
and drops its argument, which was added when implementing
the compression chooser.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfb.c src/gdevpdfv.c src/gdevpdfi.c src/gdevpdfj.c src/gdevpdfg.h]

2005-02-16T06:31:10.000000Z Ray Johnston

Add a pdfformaterror Warning for the case where an outline link destination
does not exist (so that the resulting PDF will not have dangling links).

[lib/pdf_main.ps]

2005-02-16T06:28:49.000000Z Ray Johnston

Tolerate non-printing garbage characters prior to the %PDF header of a PDF
file. Bug 687942 for customer 670.

DETAILS:

This is yet another example of PDF's that Acrobat Reader can handle that
don't quite meet the spec. AR has the advantage that they don't have to
'auto-sense' PostScript, EPS and PDF and they can just ignore garbage
before the %PDF header. We don't have that advantage.

We've had previous proposals to operate the way AR does, but this would
require a command line switch to force PDF language mode (akin to the
PJL ENTER LANGUAGE functionality of PCL).

This is a simple enough patch and does solve at least one customer's
issue so I'm committing this patch. We can always improve on it later.

Note that skipping initial non-printing characters doesn't interfere
with PostScript or EPS recognition or processing (and may help).

[lib/pdf_main.ps]

2005-02-16T05:01:17.000000Z Raph Levien

Fix: make sure that transfer functions and spot functions are permuted
to the same order as the other halftoning parameters. Fixes bug #687916.

[src/zht2.c]

2005-02-15T14:47:37.000000Z Igor Melichev

Fix (the filling algorithm) : Drpouts could appear at Y-extremes of the path (continued).

DETAILS :

This is a continuation of the patch
http://ghostscript.com/pipermail/gs-cvs/2005-January/005180.html .

Bug 687940 "Infinite loop in spot_into_scan_lines_fd".

EXPECTED DIFFERENCES :

None.

[src/gxfillsl.h]

2005-02-14T02:37:24.000000Z Ray Johnston

Provide more robust handling of errors in an attempt to prevent badly
formed error handlers defined in the PS file from causing nested errors
(and the infamous dump-like "Unexpected interpreter error").
Refer to bug 687925.

DETAILS:

Note that broken error handlers are fairly common, so running them in a
.internalstopped context makes sense. The .internalstopped is used to
avoid side effects such as modifying the $error dict contents.

Also note that the -dJOBSERVER may often be needed to actually see the
error message since this forces the use of the "standard" error reporting
to stdout.

Expected Differences:

None.

[lib/gs_init.ps]

2005-02-13T21:31:07.000000Z Ray Johnston

Fix a problem with the initial matrix when the InputAttributes has a page
size range (four element array) with the lower bounds greater than 0.
Patch submitted by Till Kamppeter for bug 687902.

DETAILS:

The logic was clearly broken. There was an arbitrary MIN_MEDIA_SIZE #define
that was used to allow setting the media size correctly (to the request
instead of the range maximum). The corrected logic determines that a range
is being used when the medium.p{x|y} is not the same as medium.q{x|y}.

Expected Differences:

Since the default InputAttributes only has a single range page size slot,
and the minimum values are 0, 0, this won't change the default behaviour.

[src/zmedia2.c]

2005-02-12T20:29:56.000000Z Ray Johnston

Fix so that outline links to non-existent pages do not get processed or
included in the outline passed to pdfwrite (via pdfmark). Bug 687917.

DETAILS:

Broken links cause a 'rangecheck in --get--' in the pdfpagenumber proc.
called from 'linkdest'. We now catch errors (any) using stopped and simply
omit the link from the outline that we write.

[lib/pdf_main.ps]

2005-02-10T23:13:04.000000Z Dan Coby

Fix for 687935 rangecheck in stroke while overprinting on the display device.

DETAILS:

This fix corrects a problem in gx_default_get_bits_rectangle.  The fix
forces the 'actual_data' parameter to NULL when the GB_RETURN_POINTER
option is not included in the parameter options.  A value of NULL in the
actual_data parameter forces the get_bits routine to copy data instead of
simply returning a pointer to the data.

The default implementation of overprinting uses the device get_bit_rectangle
proc to retrieve the current pixel data.  This one of the few situations that
only uses the 'GB_RETURN_COPY' option to the get_bits routine.  (Most cases
use both GB_RETURN_COPY and GB_RETURN_POINTER.)

[src/gdevdgbr.c]

2005-02-09T19:42:01.000000Z Igor Melichev

ps2write : Fix problems with heh encodings.

DETAILS :

The old code failed when pdfwrite applies /ASCII85EncodePages true .
This patch fixes that.

When reading the generated PS file with Ghostscript,
we observe a problem with ASCII85Decode filter :
images and fonts appear corrupt,
and embedded fonts cause an access violation on Windows.
In same time Adobe Reader reads them fine.
This secondary problem shouldn't be important for the Postscript generation.
It will be fixed separately.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat lib/opdfread.ps]

2005-02-09T18:30:21.000000Z Ray Johnston

Revert to the redistributable Identity-H and Identity-V CMaps (same as
the CVS revision 1.1). Bug 687933.

[Resource/CMap/Identity-H Resource/CMap/Identity-V]

2005-02-09T16:36:57.000000Z Igor Melichev

ps2write : Implementing a conversion of type 3 images into an 'imagemask' with a pattern color.

DETAILS :

1. The main worker is use_image_as_pattern.

2. pdf_image_end_image_object2 transfers the condition for calling use_image_as_pattern.

3. pdf_image_end_image_data handles more cases, including the new USE_AS_PATTERN.
   See comment in code near it. Other 2 cases are equivalent to old ones.

4. Don't write the Mask key when the image is used as the pattern color.

5. New fields are added into pdf_device_s to provide a data transfer for use_image_as_pattern.

6. pdf_do_image is splitted into 2 functions. A further simplification
   would be useful, but we delay it in order to simplify this patch.
   See new comments in code.

7. A comment is inserted into gdevpdfd.c to provide a reference to a similar
   code fragment. Maybe we should factor out a common function.
   Delaying to simplify this patch.

8. Added a 'const' to a pdf_add_resource argument,
   since this patch calls it with a constant.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfd.c src/gdevpdti.c src/devs.mak src/gdevpdfi.c src/gdevpdfj.c src/gdevpdfg.h]

2005-02-08T16:52:41.000000Z Igor Melichev

Implementing a conversion of a shading to a raster image for high level devices (continued 2).

DETAILS :

1. When a patch possibly is self-overlapping, patch_fill passes an empty path
(instead the patch boundary) to the device. Receiveing an empty path, the device
knows that it must convert the coverage area into a mask.

2. pdfwrite converts self-overlapping patches into an imagemask with a colored pattern color,
which paints the shading image. See the new code and comments in gdevpdfd.c.

3. An auxiliary function is added to gsptype2.c .

4. Probably we'll need to break big patterns into small ones
against the printer RAM overflow. Delaying for a while.

EXPECTED DIFFERENCES :

None.

[src/gsptype2.c src/gsptype2.h src/gdevpdfd.c src/devs.mak src/gxshade6.c]

2005-02-08T15:57:44.000000Z Igor Melichev

ps2write : Allow image compression.

EXPECTED DIFFERENCES :

None.
3

[lib/ps2write.bat]

2005-02-07T06:38:02.000000Z Dan Coby

Fix for 687849 Unrecoverable error, converting PDF to TIF.  Igor determined
that the file has a problem that that causes the XREF rebuilding logic to
be invoked and that object 74 0 was not being found.  With this fix, we are
able to rebuild the file.

DETAILS:

The XREF rebuild logic uses a working string while searching for objects.
Object 74 0 was not being found because it is larger than the working
string.  This fix increases the working string size to 65535 bytes (the
maximum size for a string).

[lib/pdf_rbld.ps]

2005-02-06T21:32:40.000000Z Ray Johnston

Update the currentpoint after processing invisible text. BUg 687860.

DETAILS:

This could be more efficient, but invisible text is not assumed to be
very performance sensitive. I tested the bugs related to this one
(see the bug report) and this patch still works for those.

Expected Differences:

None.

[lib/pdf_ops.ps]

2005-02-03T05:40:50.000000Z Ray Johnston

Fix for miterlimit value that is smaller than PostScript PLRM allows.
Bug 687895. Somewhat based on patch from Alex Cherepanov.

DETAILS:

The patch from Alex issued a pdfformaterror *** Warning but reading the
PDF specification, the minimum value of 1 given in the PostScript ref
manual is NOT stated, so we clamp the value to a lower bound of 1 silently.

[lib/pdf_draw.ps]

2005-01-31T15:39:37.000000Z Ray Johnston

Some dependencies were missing that caused the build to fail when a subset
of DEVICE_DEVS were included. Specifically, zlib and the 'display' device
were problems. Bug 687920 for customer #580.

DETAILS:

Apparently the needed modules for zlib have changed, but when a 'png'
device was included, the crc32 module was included anyway.

The display device didn't include several dependencies for the new DeviceN
and Spot Color support: gdevdevn.obj gsequivc.obj gdevdcrd.obj

[src/zlib.mak src/devs.mak]

2005-01-31T03:08:44.000000Z Igor Melichev

Implementing a conversion of a shading to a raster image for high level devices (continued).

DETAILS :

1. In pdf_copy_color_data, allowed the new value 2 for the parameter for_pattern.
In this case non-lossless filters are allowed.

2. In gdev_pdf_fill_path, fixed the grouping of clip paths for all
meshes|patches of a shading.

3. In gdev_pdf_fill_path, used the shading BBox to minimize
the size of the raster image.

4. In gdevpdfp.c allowed CompatibilityLevel=1.1 .
Now this is done mainly for debug purpose,
but likely we'll use it in ps2write when the target doesn't handle TT fonts.

5. The new function gx_dc_pattern2_get_bbox works for (3).

6. The function shade_bbox_transform2fixed has been renamed into
gx_dc_pattern2_shade_bbox_transform2fixed with making its scope bigger
to work for (5). It has been moved into gsptype2.c,
which is mode fundamental than gxshade.c .
The following changes happened due to that : gsptype2.c, gsptype2.h,
gsshade.c, gxshade.c, gxshade1.c, gxshade4.c.
We would like to do more cleanup with replacing it with
gx_dc_pattern2_get_bbox, but currently we delay that to simplify this patch.

7. Introduced a new field patch_curve_t::straight to know whether a patch
boundary is a straight line. patch_fill uses it when passing the
shading coverage area.

8. mesh_triangle now passes the coverage area.
An auxiliary function mesh_triangle_rec is factored out for that.

9. patch_fill checks for self-overlapoped patches
and prints a warning is the patch appears suspicious.
Comments in patch_fill about that have been improved.

10. patch_fill and mesh_triangle check the sign odf the coverage area,
and change the contour direction for making all contours be positive.
This works for proper clipping.

11. Fixed compressed streams in opdfread.ps .

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/lib.mak src/gsptype2.c src/gsshade.c src/gdevpdfp.c src/gdevpdfb.c src/gsptype2.h src/gxshade.c src/gdevpdfd.c lib/opdfread.ps src/gxshade1.c src/gxshade4.c src/gxshade.h src/gxshade6.c]

2005-01-31T02:02:58.000000Z Igor Melichev

Fix (pdfwrite) : Improving the check for a degenerate curve.

DETAILS :

This is a minor optimization for the case when a curve degenerates to a dot.
The old code converted it into the PDF instruction 'y', which looks uneven.

EXPECTED DIFFERENCES :

pdfwrite :
"Openhuis_pdf_zw.pdf"

[src/gdevpsdu.c]

2005-01-30T23:49:27.000000Z Igor Melichev

A new implementation of shadings, step 88.

DETAILS :

The function is_bended could give a wrong result (false instead true) when
the first vector product is zero. This could cause insufficient subdivision.

EXPECTED DIFFERENCES :

normal, 72dpi :

"442-01.ps"
"446-01-fixed.ps"
"483-05-fixed.ps"

normal, 300dpi :

"442-01.ps"

pdfwrite 72dpi :

"442-01.ps"

normal 300dpi :

"442-01.ps"

[src/gxshade6.c]

2005-01-30T20:59:05.000000Z Igor Melichev

Fix (pdfwrite) : Uninitialized variables when applying LZWEncode.

DETAILS :

Normally pdfwrite doesn't apply LZWEncode since it prefers FlateEncode.
Meanwhile ps2write needs LZWEncode, and we found unitialized variables in there.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdi.c]

2005-01-28T19:11:07.000000Z Igor Melichev

Implementing a convertion of a shading to a raster image for high level devices.

DETAILS :

If a high level device can't handle a shading,
it is being converted to a raster image.

This patch implements it only in OrderResources mode.
A generalization to "normal" mode will be done in a separate patch.

The generated bitmap sometimes appears too big since it
doesn't accout a bbox of a real shading coverage.
An optimization is coming soon.

1.The device virtual function pattern_manage now handles
a new request pattern_manage__shading_area.
If it returns 1, the graphics library will pass
the shading area as a special call to fill_path,
with passing NULL images\r state and NULL clipping path.
Such call immediately follows pattern_manage(...., pattern_manage__shading_area).
Currently it goes only to a special converter device (see below),
other devices and the default implementation return 0
for pattern_manage(...., pattern_manage__shading_area).

2. A new local type pdf_lcvd_t implements a subclass for
memory device, which is used especially for converting shadings
to raster image. It is defined locally in pdfwrite.
The subcalss redefines 4 device methods :

2.1. fill_rectangle with shifting the device space.
It is used to mapo the shading and its paths to the image coordinate system.

2.2. get_clipping_box returns the target clipping box,
to deceive a cut-off condition in the shading algorythm.

2.3. pattern_manage returns 1 for pattern_manage__shading_area.

2.4. fill_path is used only for handling the shading area.
It sets a clipping when instantiating the bitmap.

3. gdev_pdf_fill_path implements the convertion with (2).

4. gs_shading_fill_path doesn't set up a clipper device
when it works with the shading convertion device.
Instead that the clipping path is being passed through (2.4).

5,. patch_fill in gxshade6.c checks if the devices needs the
shading area, and if so, passes the area throuhg the special call to
fill_path.

EXPECTED DIFFERENCES :

None.

[src/gsshade.c src/gdevpdfb.c src/gx.h src/gdevpdfd.c src/devs.mak src/gdevvec.h src/gdevpdfi.c src/gxshade6.c src/gxdevcli.h src/gdevpdfg.h]

2005-01-28T18:51:32.000000Z stefan

fix memory leak for indexed color space data when banding.

In gxclrast.c::clist_playback_band()
color_space.params.indexed.lookup.table.data
leaked on a per band basis.  table.size indicates allocated memory
which is freed at the end of the routine.
The reallocate case when multiple colorspaces are used per band was
correctly handled.

Using a more descriptive client name of "color_space indexed table".

[src/gxclrast.c]

2005-01-28T18:11:05.000000Z Igor Melichev

Fix : gx_forward_pattern_manage missed a return code.

EXPECTED DIFFERENCES :

None.

[src/gdevnfwd.c]

2005-01-26T18:48:58.000000Z Raph Levien

Fix: Resolve indirect object references in Widths array. Fixes bug
#687906.

[lib/pdf_font.ps]

2005-01-26T16:39:57.000000Z Jack Moffitt

Fix update_specific so that it gets the correct parameters for pdfwrite
testing.  It was previously using the superset of raster parameters.

[toolbin/tests/update_specific]

2005-01-25T22:22:28.000000Z Igor Melichev

(pdfwrite) : Don't skip white color while painting a pattern (continued 2).

DETAILS :

This change is important for ps2write only.
It is algorithmically equivalent for other invocations.

1. The patch http://ghostscript.com/pipermail/gs-cvs/2005-January/005163.html
broke the OrderResources mode. Fixed in gdevpdfu.c .
This is another fix to that.

2. Removed the hack about writing non-eexec fonts
because PDF specification doesn't allow it.
Rather ps2write can handle them, we use a PDF viewer
to debug the writer.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtb.c src/gdevpdfu.c]

2005-01-25T21:23:01.000000Z Igor Melichev

Fix (PDF interpreter) : A minor change for fixing the repository consistency.

DETAILS :

A wrong revision of pdf_font.ps was committed by error and then removed.
This minor change in a space provides a right repository synchronization.

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps]

2005-01-25T20:40:38.000000Z Ray Johnston

Fix for an infinite loop in a PDF file that uses Patterns. Bug 687802
for customer #850.

DETAILS:

The problem was that the DefaultQstate used when making a Pattern
was the device *BEFORE* the pdf14 device filter was inserted as
the device. If the underlying device had a different 'depth' than
the PDF14 device, the pattern cache lookup would always fail which
would then cause the fill to return e_RemapColor and perform the
PaintProc again. The 'depth' comparison is in gsptype1.c in the
gx_pattern_cache_lookup	function.

The fix is to set the DefaultQstate *AFTER* the pushpdf14devicefilter
is performed (and of course also reset it after popdevicefilter
is done).

Expected Differences:

None (we didn't have any regression tests that use Patterns in pages
with transparency). In fact, we only had two pages with ANY transparency:
ai2.pdf and dina3_watermark.pdf.

[lib/pdf_main.ps]

2005-01-25T20:28:06.000000Z Igor Melichev

ps2write : Improving the output file structure (continued).

DETAILS :

Removed a debug option that was added unintentionally.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat]

2005-01-25T18:39:18.000000Z Igor Melichev

ps2write : Improving the output file structure (continued).

DETAILS :

Removed a debug option that was added unintentionally.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat]

2005-01-25T18:33:38.000000Z Igor Melichev

ps2write : Improving the output file structure.

DETAILS :

1. Merge opdfread.ps and opdferrh.ps .
2. Fix a header commant in opdfread.
3. Remove opdferrh.ps from ps2write.bat and from documentation.
4. Change the documentation since ps2write is not a "device".

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat lib/opdfread.ps lib/opdfrerh.ps doc/Psfiles.htm]

2005-01-25T18:26:51.000000Z Igor Melichev

(pdfwrite) : Don't skip white color while painting a pattern (continued).

DETAILS :

1. The patch http://ghostscript.com/pipermail/gs-cvs/2005-January/005163.html
broke the OrderResources mode. Fixed in gdevpdfu.c .
2. Error codes were wrongly propagated in gdevpdfd.c .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c src/gdevpdfu.c]

2005-01-25T11:18:42.000000Z Igor Melichev

Fix (the filling algorithm) : Drpouts could appear at Y-extremes of the path.

DETAILS :

Bug 687717 "Dropouts at Y-extremes when filling a path".

EXPECTED DIFFERENCES :

Normal, 72pdi :

"0.pdf"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"036-01.ps"
"039-01.ps"
"045-01.ps"
"083-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"104-01.ps"
"109-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"169-01.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"176-01.ps"
"181-01.ps"
"192-01.ps"
"1_2001.pdf"
"1_pct_50_bang.pdf"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"223-01.ps"
"226-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"258-01.ps"
"260-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"281-01.ps"
"289-01.ps"
"297-01.ps"
"303-01.ps"
"307-01.ps"
"307-07.ps"
"308-04.ps"
"311-03.ps"
"316-07.ps"
"320-01.ps"
"335-01.ps"
"336-01.ps"
"446-01-fixed.ps"
"455690.pdf"
"687572.pdf"
"86554321.pdf"
"a.pdf"
"adesso1.pdf"
"adesso6.pdf"
"adesso8.pdf"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Measure_1v1.pdf"
"Altona_Technical_1v1_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"besttest.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug1344.ps"
"Bug687044.ps"
"Bug687207.ps"
"Bug687396.ps"
"Bug687546.ps"
"Bug687603.pdf"
"Bug687603.ps"
"Bug687660.ps"
"Bug687660a.ps"
"Bug687698.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687828.pdf"
"Bug687840.pdf"
"bugsample.pdf"
"BW0696FOLD1FRONT.pdf"
"ca.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"colorcir.ps"
"DisplayedGood.pdf"
"DisplayedWrong.pdf"
"escher.ps"
"file2.pdf"
"golfer.eps"
"gs.anotherfailure.pdf"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"gslandscape.pdf"
"H00216q.pdf"
"InstandardBuildChar.ps"
"john_clippedimage.pdf"
"knight.pdf"
"LMG-40-7161-RU-DUC-01.pdf"
"messenger.pdf"
"messenger16.pdf"
"motor.pdf"
"muur.eps"
"Openhuis_pdf_zw.pdf"
"Page01.pdf"
"PixelisAd.pdf"
"probe3.pdf"
"PT.ps"
"ridt91.eps"
"RodinCIDEmbed.pdf"
"S2_Digitalproof-Forum_circles.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"shading_prob_800.ps"
"si_tg_brochure.pdf"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
"test.pdf"
"tiger.eps"
"time1.pdf"
"type3xshow.eps"
"unihaken-color.pdf"
"vasarely.ps"
"vsem0093.pdf"


Normal, 300dpi :

"0.pdf"
"001-13.ps"
"002-09.ps"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"01_001.pdf"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"027-13.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"035-07.ps"
"036-01.ps"
"039-01.ps"
"045-01.ps"
"083-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"102-01.ps"
"103-01.ps"
"104-01.ps"
"109-01.ps"
"118-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"149-05.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"169-01.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"175-01.ps"
"176-01.ps"
"181-01.ps"
"192-01.ps"
"1_2001.pdf"
"1_pct_50_bang.pdf"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"223-01.ps"
"226-01.ps"
"231-01.ps"
"237-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"257-01.ps"
"258-01.ps"
"260-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"281-01.ps"
"289-01.ps"
"297-01.ps"
"298-01.ps"
"298-05.ps"
"298-09.ps"
"303-01.ps"
"307-01.ps"
"307-07.ps"
"308-04.ps"
"310-04.ps"
"311-03.ps"
"316-07.ps"
"320-01.ps"
"321-01.ps"
"321-05.ps"
"321-09.ps"
"321-13.ps"
"327-01.ps"
"334-01.ps"
"335-01.ps"
"336-01.ps"
"442-01.ps"
"446-01-fixed.ps"
"687572.pdf"
"86554321.pdf"
"a.pdf"
"adesso8.pdf"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Measure_1v1.pdf"
"Altona_Technical_1v1_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"besttest.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug1344.ps"
"Bug687044.ps"
"Bug687207.ps"
"Bug687396.ps"
"Bug687472.ps"
"Bug687489.ps"
"Bug687546.ps"
"Bug687598.ps"
"Bug687603.pdf"
"Bug687603.ps"
"Bug687660.ps"
"Bug687660a.ps"
"Bug687698.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687828.pdf"
"Bug687832.pdf"
"Bug687840.pdf"
"bugsample.pdf"
"bulletin.pdf"
"BW0696FOLD1FRONT.pdf"
"ca.pdf"
"CAT_LOGO.ps"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"colorcir.ps"
"DisplayedGood.pdf"
"DisplayedWrong.pdf"
"doretree.ps"
"Es001-01.pdf"
"escher.ps"
"file.pdf"
"file2.pdf"
"Fixed_Original.pdf"
"golfer.eps"
"gs.anotherfailure.pdf"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"H00216q.pdf"
"InstandardBuildChar.ps"
"john_clippedimage.pdf"
"knight.pdf"
"LMG-40-7161-RU-DUC-01.pdf"
"messenger.pdf"
"messenger16.pdf"
"motor.pdf"
"mspro.pdf"
"muur.eps"
"non-sepqxd2distiller.pdf"
"Openhuis_pdf_zw.pdf"
"Original.pdf"
"p2b-100.pdf"
"Page01.pdf"
"PixelisAd.pdf"
"probe3.pdf"
"PT.ps"
"QA_Inv.pdf"
"ridt91.eps"
"RodinCIDEmbed.pdf"
"rotate0.pdf"
"rotate180.pdf"
"rotate270.pdf"
"rotate90.pdf"
"S2_Digitalproof-Forum_circles.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"shading_prob_800.ps"
"si_tg_brochure.pdf"
"SmoothShading.pdf"
"Svd.pdf"
"test.pdf"
"tiger.eps"
"time1.pdf"
"Type3stringwidth.ps"
"type3xshow.eps"
"unihaken-color.pdf"
"UnusualFontMatrix.ps"
"vasarely.ps"
"vsem0093.pdf"

pdfwrite,72dpi :

"0.pdf"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"01_001.pdf"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"039-01.ps"
"045-01.ps"
"083-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"093-01.ps"
"103-01.ps"
"104-01.ps"
"109-01.ps"
"118-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"169-01.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"176-01.ps"
"181-01.ps"
"192-01.ps"
"1_2001.pdf"
"1_pct_50_bang.pdf"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"223-01.ps"
"226-01.ps"
"237-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"258-01.ps"
"260-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"281-01.ps"
"297-01.ps"
"303-01.ps"
"307-01.ps"
"307-07.ps"
"308-04.ps"
"311-03.ps"
"316-07.ps"
"320-01.ps"
"335-01.ps"
"336-01.ps"
"446-01-fixed.ps"
"455690.pdf"
"687572.pdf"
"86554321.pdf"
"a.pdf"
"adesso1.pdf"
"adesso6.pdf"
"adesso8.pdf"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Measure_1v1.pdf"
"Altona_Technical_1v1_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"annots.pdf"
"BEST8-99-Path.fh7.pdf"
"besttest.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug1344.ps"
"Bug687044.ps"
"Bug687207.ps"
"Bug687396.ps"
"Bug687546.ps"
"Bug687603.pdf"
"Bug687603.ps"
"Bug687660.ps"
"Bug687660a.ps"
"Bug687698.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687828.pdf"
"Bug687832.pdf"
"Bug687840.pdf"
"bugsample.pdf"
"bulletin.pdf"
"BW0696FOLD1FRONT.pdf"
"ca.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"colorcir.ps"
"DisplayedGood.pdf"
"DisplayedWrong.pdf"
"escher.ps"
"file2.pdf"
"golfer.eps"
"gs.anotherfailure.pdf"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"gslandscape.pdf"
"GS_Stroke_error.pdf"
"H00216q.pdf"
"InstandardBuildChar.ps"
"john_clippedimage.pdf"
"knight.pdf"
"LMG-40-7161-RU-DUC-01.pdf"
"messenger.pdf"
"messenger16.pdf"
"motor.pdf"
"mspro.pdf"
"muur.eps"
"Openhuis_pdf_zw.pdf"
"Page01.pdf"
"PixelisAd.pdf"
"probe3.pdf"
"PT.ps"
"RodinCIDEmbed.pdf"
"rotate180.pdf"
"S2_Digitalproof-Forum_circles.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"shading_prob_800.ps"
"si_tg_brochure.pdf"
"SmoothShading.pdf"
"test.pdf"
"tiger.eps"
"time1.pdf"
"type3xshow.eps"
"unihaken-color.pdf"
"vasarely.ps"
"vsem0093.pdf"

pdfwrite 300dpi:

"0.pdf"
"001-13.ps"
"002-09.ps"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"017-01.ps"
"01_001.pdf"
"020-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"027-13.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"035-07.ps"
"036-01.ps"
"039-01.ps"
"045-01.ps"
"083-01.ps"
"083-05.ps"
"083-09.ps"
"083-13.ps"
"093-01.ps"
"102-01.ps"
"103-01.ps"
"104-01.ps"
"109-01.ps"
"118-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"136-01.ps"
"148-16.ps"
"149-05.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"165-01.ps"
"169-01.ps"
"169-05.ps"
"169-09.ps"
"169-13.ps"
"175-01.ps"
"176-01.ps"
"181-01.ps"
"192-01.ps"
"1_2001.pdf"
"1_pct_50_bang.pdf"
"205-01.ps"
"205-05.ps"
"205-09.ps"
"205-13.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"222-09.ps"
"222-13.ps"
"223-01.ps"
"226-01.ps"
"231-01.ps"
"237-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"257-01.ps"
"258-01.ps"
"260-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"281-01.ps"
"297-01.ps"
"298-01.ps"
"298-05.ps"
"298-09.ps"
"303-01.ps"
"307-01.ps"
"307-07.ps"
"308-04.ps"
"310-04.ps"
"311-03.ps"
"316-07.ps"
"320-01.ps"
"321-01.ps"
"321-05.ps"
"321-09.ps"
"321-13.ps"
"327-01.ps"
"334-01.ps"
"335-01.ps"
"336-01.ps"
"442-01.ps"
"446-01-fixed.ps"
"483-05-fixed.ps"
"687572.pdf"
"86554321.pdf"
"a.pdf"
"adesso1.pdf"
"adesso7.pdf"
"adesso8.pdf"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Measure_1v1.pdf"
"Altona_Technical_1v1_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"besttest.pdf"
"budget2.pdf"
"budget2_ai87.pdf"
"Bug1344.ps"
"Bug687044.ps"
"Bug687207.ps"
"Bug687396.ps"
"Bug687472.ps"
"Bug687489.ps"
"Bug687546.ps"
"Bug687598.ps"
"Bug687603.pdf"
"Bug687603.ps"
"Bug687660.ps"
"Bug687660a.ps"
"Bug687698.ps"
"Bug687724.pdf"
"Bug687812.ps"
"Bug687828.pdf"
"Bug687832.pdf"
"Bug687840.pdf"
"bugsample.pdf"
"bulletin.pdf"
"BW0696FOLD1FRONT.pdf"
"ca.pdf"
"CAT_LOGO.ps"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"colorcir.ps"
"DisplayedGood.pdf"
"DisplayedWrong.pdf"
"doretree.ps"
"Es001-01.pdf"
"escher.ps"
"file.pdf"
"file2.pdf"
"Fixed_Original.pdf"
"golfer.eps"
"gs.anotherfailure.pdf"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"GS_Stroke_error.pdf"
"H00216q.pdf"
"InstandardBuildChar.ps"
"john_clippedimage.pdf"
"knight.pdf"
"LMG-40-7161-RU-DUC-01.pdf"
"messenger.pdf"
"messenger16.pdf"
"motor.pdf"
"mspro.pdf"
"muur.eps"
"ngnews.pdf"
"ngnews1.pdf"
"non-sepqxd2distiller.pdf"
"Openhuis_pdf_zw.pdf"
"Original.pdf"
"p2b-100.pdf"
"Page01.pdf"
"PixelisAd.pdf"
"probe3.pdf"
"PT.ps"
"QA_Inv.pdf"
"RodinCIDEmbed.pdf"
"rotate0.pdf"
"rotate180.pdf"
"rotate270.pdf"
"rotate90.pdf"
"S2_Digitalproof-Forum_circles.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"shading_prob_800.ps"
"si_tg_brochure.pdf"
"SmoothShading.pdf"
"Svd.pdf"
"test.pdf"
"test3.pdf"
"tiger.eps"
"time1.pdf"
"Type3stringwidth.ps"
"type3xshow.eps"
"unihaken-color.pdf"
"UnusualFontMatrix.ps"
"vasarely.ps"
"vsem0093.pdf"
"xngnews.pdf"

[src/gxfilltr.h src/gxfill.c]

2005-01-25T01:19:34.000000Z Ralph Giles

Always rebuild the jasper autoconf header when configure is run to prevent
the persistence of stale versions. Closes bug 687852.

[src/configure.ac]

2005-01-24T16:03:40.000000Z Igor Melichev

Fix (pdfwrite) : Register charproc XObjects with a page (continued);

DETAILS :

Fixing cygwin/gcc warnings in the last patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c src/gdevpdtx.h src/gdevpdfg.h]

2005-01-24T15:37:48.000000Z Igor Melichev

Fix (pdfwrite) : Register charproc XObjects with a page.

DETAILS :

If an XObject is uzed in a charproc,
it has to be added to the page resource list.

Bug 687894 "Wrong handling of Type 3 fonts (?)"

Generalized pdf_font_resource_t::used_fonts, pdf_register_charproc_font and
pdf_used_charproc_fonts for any resource type.

EXPECTED DIFFERENCES :

None.

[src/gdevpdts.c src/gdevpdte.c src/gdevpdtf.c src/gdevpdtf.h src/gdevpdfj.c src/gdevpdtx.h]

2005-01-24T12:19:15.000000Z Igor Melichev

Fix (pdfwrite) : Cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c src/gdevpdte.c]

2005-01-24T12:00:41.000000Z Igor Melichev

Define more CMap resources.

DETAILS :

Adding more 4 redistributable Adobe CMaps.

EXPECTED DIFFERENCES :

None.

[Resource/CMap/Adobe-GB1-4 Resource/CMap/Adobe-Japan1-4 Resource/CMap/Adobe-Korea1-2 Resource/CMap/Adobe-CNS1-3]

2005-01-20T05:10:06.000000Z Dan Coby

Add switch -dNO_TN5044 to disable the TN 5044 pusedo operators.  These
operators are needed from some QuarkXpress files but cause probems with
some Illustrator 88 and Corel 9 files.  Also add documentation to Use.htm.
This is part of bug 687884.

[lib/gs_lev2.ps doc/Use.htm]

2005-01-20T00:26:06.000000Z Ray Johnston

Add the "Identity-" CMaps to the decode list.

[lib/gs_ciddc.ps]

2005-01-20T00:21:59.000000Z Ralph Giles

Correct a comment typo.

[src/sjbig2.h]

2005-01-19T00:24:07.000000Z Dan Coby

Fix for 687897 There are still devices not switched to new API.
This change implements the DeviceN color related changes in the device
API four these four source files.  These devices are not normally part of
the Ghostscript build but they are present in the GS sources.

[src/gdevccr.c src/gdevcp50.c src/gdevifno.c src/gdevmgr.c]

2005-01-17T17:36:24.000000Z Ralph Giles

Add new files to the documentation listing.

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

2005-01-17T14:58:31.000000Z Igor Melichev

(pdfwrite) : Don't skip white color while painting a pattern.

DETAILS :

Bug 687890 "pattern misconverted".

1. Don't skip white color while painting a pattern (gdevpdfd.c).

2. The "%PDF-" file tag was erroneusely written into the pattern stream (gdevpdfu.c).

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c src/gdevpdfu.c]

2005-01-13T17:07:02.000000Z Igor Melichev

(ps2write) : Convert unsupported font types into bitmap fonts (continued).

DETAILS :

This patch is a part of ps2write project.
It has no effect with "usual" invocation of Ghostscript.

1. A code for setting the device parameter HaveCIDSystem was missed from the last patch.
Adding it now.

2. Replace a magic constant with a meanful name psdf_version_ll3.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfp.c src/gdevpsdf.h]

2005-01-13T16:58:07.000000Z Igor Melichev

(ps2write) : Convert unsupported font types into bitmap fonts.

DETAILS :

This patch is a part of ps2write project.
It has no effect with "usual" invocation of Ghostscript.

1. If the target device doesn't support Postscript version 2010,
convert Type 42 fonts into bitmap fonts.

2. Ever convert Type1C into bitmaps since Postscript
level 2 can't handle Type 2 charstrings.

3. Convert CIDFontType0 into bitmap if the target device has no
CID system installed or the font has Type 2 subfonts.

4. Convert CIDFontType2 into bitmap if the target device has no
CID system installed or it doesn't support Postscript version 2010.

5. A new device parameter HaveCIDSystem is defined to the pdfwrite device
to provide information for (3), (4).

A new function gs_cid0_has_type2 is defined to implement (3).

Also fixed a header comment gs_cid0_indexed_font, which was entirely wrong.

EXPECTED DIFFERENCES :

None.

[src/gsfcid.c src/gdevpdtt.c src/gdevpsdf.h src/gxfcid.h]

2005-01-13T12:26:35.000000Z Igor Melichev

(ps2write) : Require lesser encoding resources.

DETAILS :

This patch is a part of ps2write project.
It has no effect with "usual" invocation of Ghostscript.

1. Defined a new device parameter PSVersion to the pdfwrite device.
   It is being ignored without OrderResources.
   Reserved for future development.

2. pdf_refine_encoding_index allows lesser encodings with OrderResources.

3. MacRomanEncoding and MacGlyphEncoding are still needed for True Type fonts.
Their access has been simplified in lib/opdfread.ps, lib/opdfrerh.ps .

4. Created gs/lib/ps2write.bat to simplify the further maintenance
   of the file list to be concatenated.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfp.c src/gdevpdtt.c lib/ps2write.bat lib/opdfread.ps src/gdevpsdf.h lib/opdfrerh.ps]

2005-01-12T18:46:17.000000Z Ralph Giles

Update broken Adobe documentation links. Closes bug 687892.

[doc/Use.htm doc/Readme.htm doc/Ps2pdf.htm doc/Ps2epsi.htm]

2005-01-12T18:02:28.000000Z Ralph Giles

Correct a typo in the installation file list. Closes bug 687891.

[src/unixinst.mak]

2005-01-12T10:23:29.000000Z Igor Melichev

(ps2write) : Provide a compatibility to Adobe CPSI.

DETAILS :

This patch is a part of ps2write project.
It has no effect with "regular" invocation.

1. Defined an error handler and necessary GS-specific operators in a new file opdfrerh.ps .
2. Defined the missed debug switch TTFDEBUG.
3. Defined a debug printing 'printdict', 'printfont'.
4. Fixed an unconformity in FunctionToProc4 with 'run'.
5. Fixed an unconformity: encoding must not be packed arrays ('packedarray' in opdfrerh.ps).

A minor massive change : inserted a space between '=' to
distinguish temporary and permanent debug printing.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps lib/opdfrerh.ps]

2005-01-12T10:09:36.000000Z Igor Melichev

Fix (pdfwrite) : Wrong options were passed to psf_write_type1_font.

DETAILS :

This patch is a part of ps2write project.
It has no effect with "regular" invocation (when OrderResources=false).

EXPECTED DIFFERENCES :

None.

[src/gdevpdtb.c]

2005-01-11T12:34:46.000000Z Igor Melichev

[Log message beg]
Fix : Unimplemented CIDFont feature with a Type 3 font descendent (continued).

DETAILS :

This is a partial fix for the bug 687875
"pdfwrite : Type 0 FMapType 9 font with a Type 3 descendent converts to bitmaps".

The old code created two fonts and duplicated the text.
With this path the font still converts to bitmaps,
but the text duplication is fixed.

EXPECTED DIFFERENCES :

pdfwrite Bug687845.ps

[src/gdevpdtt.c]

2005-01-10T14:54:53.000000Z Alex Cherepanov

Ignore / as a name of BaseEncoding; recover broken PDF files generated 
by J.D.Edwards OneWorld (B7333).
Fix bug 687786 from customer 220.

[lib/pdf_font.ps]

2005-01-10T14:33:54.000000Z Igor Melichev

Fix (the new filling algorithm) : Prevent painting outside the clipping box.

DETAILS :

Bug 687872 "access violation in GS 8.50".

When a trapesoid degenerates to a rectangle,
the old code wrongly truncated it with the clipping box.

Minor change : Moved ybot, ytop definitions closer to their usage.

Due to another known bug 687717, this patch may sometimes cause a regression,
which looks as another missed pixel at a path's Y extreme.
Such regression, when it appears with this patch,
to be considered as a part of the problem 687717.
Expected differences are such cases.

EXPECTED DIFFERENCES :

Normal, 300 dpi :

"Clarke Tate Manns Chinese.ai"
"doretree.ps"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"QA_Inv.pdf"
"shading_prob_800.ps"

pdfwrite 300 dpi :

"doretree.ps"
"gs5.98-dragon.pdf"
"gs6.0-dragon.pdf"
"QA_Inv.pdf"

[src/gxfilltr.h]

2005-01-10T11:32:06.000000Z Igor Melichev

Fix : CDevProc|Metrics|Metrics2 did not work with CIDFontType 0 (continued 2).

DETAILS :

Bug 687832 (PDF interpreter) : CID Font in PDF

The CDevProc output was transformed with w CID font leaf's FontMatrix.
See comment in code.

EXPECTED DIFFERENCES :

None.

[src/gxchar.c]

2005-01-06T17:45:45.000000Z Ray Johnston

Fix for possibly non-compliant PDF where the /DecodeParms for a stream is
an array, but the /F consists of a single filter name. Bug 687861 for
customer 700.

[lib/pdf_base.ps]

2004-12-25T10:49:23.000000Z Alex Cherepanov

Search the whole PDF file for the last occurrence of %%EOF string starting
from the last 1024 bytes. Following Acrobat example, accept invalid PDF files
that have large number of junk bytes at the end.
Fix bug 687474 from customer 580.

[lib/pdf_main.ps]

2004-12-23T23:48:59.000000Z Igor Melichev

Fix : CDevProc|Metrics|Metrics2 did not work with CIDFontType 0 (continued).

DETAILS :

Bug 687846 "parenthesis misplaced and text strings too long with vertical text".
The bug title is mosleading - actually all glyphs were shifted,
but parenthesis were shifted in another direction due to a different WMode.

We didn't pass actual glyph width to CDevProc when
use_FontBBox_as_Metrics2 is true - see the patch.
I reacll that I wrote this portion of code from scratch 3 years ago.
Our test base did not include test cases for it.
Now we got one.

EXPECTED DIFFERENCES :

None.

[src/zchar1.c]

2004-12-22T18:52:23.000000Z Igor Melichev

Fix : Unimplemented CIDFont feature with a Type 3 font descendent.

DETAILS :

Bug 645316 Quark EPS file with CID fonts
Bug 687845 text doesn't appear from embedded japanese font
Bug 687847 text missing from CIDFont

From PLRM3 section 5.11 page 389 :

Under special conditions, a CID can be used when the descendant is a Type 3
base font. The font's BuildGlyph or BuildChar procedure is invoked to render a
character whose code is the last byte originally extracted from the show string.
If this procedure executes setfont to establish a CIDFont as the current font
and then executes a show operation on a string consisting of just that character
code, the code is ignored; instead, the CID determined by the earlier CMap
mapping is used to look up the glyph in the CIDFont. This special case exists
for compatibility with applications that substitute Type 3 fonts for base fonts
in a composite font hierarchy to achieve certain special effects.

This patch fixes the PS interpreter,
but pdfwrite processing needs a separate improvement,
which is described in the new bug 687875.

EXPECTED DIFFERENCES :

None.

[src/gstext.c src/int.mak src/zchar.c src/gxtext.h]

2004-12-21T20:13:41.000000Z Igor Melichev

Fix (TT interpreter) : Provide a tolerance to the FDef array overflow.

DETAILS :

Bug 687858  /invalidfont in --charpath--.
A buggy TT fopnt defines more functions than the max profile specifies.

EXPECTED DIFFERENCES :

None.

[src/ttobjs.c]

2004-12-21T11:27:27.000000Z Igor Melichev

Fix (PDF interpreter) : The interpretation must not depend on the font subset prefix.

DETAILS :

Bug 687856 "PDF interpretation depends on the font subset prefix.".

1. Remaned pdfcachefont into pdffindcachedfont for a better reflection of its function.
2. Defined pdfaddcachedfont.
3. Used it immediately when an embedded font is loaded.
4. Added a comment to code. See it for more details.

EXPECTED DIFFERENCES :

pdfwrite tpc2.ps

[lib/pdf_font.ps]

2004-12-21T08:53:28.000000Z Igor Melichev

Fix (pdfwrite) : Propagate error code from setup_image_compression.

DETAILS :

Bug 687854 "-dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode" doesn't work .

EXPECTED DIFFERENCES :

None.

[src/gdevpsdi.c]

2004-12-20T22:35:07.000000Z Igor Melichev

Fix : Targets gconfxx.h and ld.tr had an incorrect dependence in the makefile.

DETAILS :

Bug 687059 "Re-building a ready gswin32.exe".

The old rule

 $(ld_tr) : $(gconfig_h)

wrongly established a dependence opposite to the file modification order.
Diagnosed with inserting "echo xxxxxxxxxxx" after the rule above.
Made the order of targets to be same as the order of
file modifications when they are created with genconf.exe and echogs.exe .

EXPECTED DIFFERENCES :

None.

[src/gs.mak]

2004-12-20T22:22:44.000000Z Igor Melichev

Fix : Restore missed dependencies on gconfxx.h .

DETAILS :

This is a preparation for fixing the bug
Bug 687059 "Re-building a ready gswin32.exe".

We prefer to commit it separately, since it's definitely an independent bug.

EXPECTED DIFFERENCES :

None.

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

2004-12-20T22:17:39.000000Z Igor Melichev

Fix : Completely remove the platform dependent target lib.tr from makefiles.

DETAILS :

This is a preparation for fixing the bug
Bug 687059 "Re-building a ready gswin32.exe".
The file lib.tr was created for old linkers,
which can't handle objs and libs in a single list file.

This change affects FAPI, which only uses a list of libs,
and only on Windows and OS/2 platforms.
We did not test Borland and Watcom compilers,
but unlikely FAPI is compiled with them.

EXPECTED DIFFERENCES :

None.

[src/bcwin32.mak src/winint.mak src/genconf.c src/gs.mak src/watcw32.mak src/msvccmd.mak src/msvc32.mak src/msvclib.mak src/os2.mak]

2004-12-19T17:24:50.000000Z Igor Melichev

Fix (pdfwrite) : The "NeverEmbed" logics was broken (continued 2).

DETAILS :

Bug 687836 "Crash with -dNeverEmbed".
Fixes a cast in the previous patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtd.c]

2004-12-19T17:19:44.000000Z Igor Melichev

Fix (pdfwrite) : The "NeverEmbed" logics was broken (continued).

DETAILS :

Bug 687836 "Crash with -dNeverEmbed".
Fixes 'const' in the previous patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtd.c]

2004-12-19T17:10:56.000000Z Igor Melichev

Fix (pdfwrite) : The "NeverEmbed" logics was broken.

DETAILS :

Bug 687836 "Crash with -dNeverEmbed".
It was an inaccuracy (incomplete testing) when implementing
PDFW_DELAYED_STREAMS for the ps2write project.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtd.c]

2004-12-17T20:57:05.000000Z Ray Johnston

Fix for invalid (zero width) BBox in PDF Form Xobject or Annotation.
Bug 687862 for customer 770.

[lib/pdf_draw.ps]

2004-12-16T12:34:56.000000Z Igor Melichev

Fix (PDF interpreter) : Prefer 'post' to cmap 1.0, because obsolete PDF writers misuse the latter.

DETAILS :

Bug 687828 "pages retain some of earlier pages displayed/"

The bug title above is misleading.
Real problem is missing characters and rendering .notdef instead.

This patch improves hewristics for choosing an encoding
for True Type fonts. Obsolete versions of Distiller and Ghostscript
wrote a cmap 1.0 (Macintosh Roman) into a PDF, which really uses a
random encoding. For example, the test case of the bug 687828
encodes Arabian characters with cmap 1.0.

Thits patch prefers to use 'post' table instead cmap 1.0,
when a 'post' table presents, and font resource dictionary
doesn't specify Encoding.

Also improved a debug printing.

EXPECTED DIFFERENCES :

None.

[lib/gs_ttf.ps lib/gs_typ42.ps]

2004-12-15T23:21:33.000000Z Igor Melichev

Fix : A hang adding over 256 glyphs for a stable font copy.

DETAILS :

Bug 687816 "Hang in named_glyph_slot_hashed".

1. Added gs_copied_font_data_s::num_glyphs to monitor
the current number of glyphs in a stable font copy (gxfcopy.c).

2. copy_glyph_data maintains gs_copied_font_data_s::num_glyphs (gxfcopy.c).

3. gs_copied_can_copy_glyphs checks whether the preallocated
size of the glyphs array doesn't exceed (gxfcopy.c).

4. copy_glyph_data is fixed to return error code when
trying to add a glyph over the preallocated size of the glyphs array (gxfcopy.c).

5. pdf_obtain_font_resource_encoded is changed to handle the case when
new glyphs overflow the font copy (gdevpdtt.c).

The changes above fix the bug, but we also provide an additional optimization
with GLYPHS_SIZE_IS_PRIME 1 (gxfcopy.c):

6. Preallocate at least 257 ghyphs rather than 256 ones by the old code;
This coners a font of 256 glyphs and 1 .notdef  (gxfcopy.c).
(Well, that could fix the hang in the sample case of the bug 687816,
but generally there exist other cases due to the font merging,
which require the changes 1-5 above.

7. Use primes numbers for the size of glyphs array instead powers of 2
against unprodactive expense of RAM (gxfcopy.c).

When the changes 5 was done, a regression happened with tpc2.ps :
pdfwrite generated an incorrect PDF. To fix that, we forced to do more changes :

8. pdf_register_charproc_font recieved a gs_id of the PS font instead
the PDF object id. It caused a problem with multiple muster fonts,
because MM instances have same id as the MM font.
pdf_encode_string is changed to pass a correct resource id (gdevpdte.c),

9. Since tpc2.ps generates hundreds of MM font instances, the field
pdf_font_resource_s::u.s.used_fonts may not have a staticly defined size.
replaced with a dynamicly allocated array (gdevpdtf.h, gdevpdte.c).

10. Garbager descriptor for pdf_font_resource_s is changed to maintain (9).

11. A new function pdf_find_resource_by_resource_id is defined for
the correct implementation of pdf_used_charproc_fonts (gdevpdfu.c).

After it another tpc2.ps regression persisted : the character 'y'
dissapperaed in some words. The following changes are done to fix that :

12. Improved thge hash function in pdf_add_subset_prefix (gdevpdtb.c).

13. Defined FINE_GLYPH_USAGE 1 for a better precision of the font subset,
in the case when a PS interpreter callout happens fro CDevProc or for a Type 3 BuildChar
(gdevpdfx.h, gdevpdte.c). Currently it works for non-CID fonts only.

14. Improved the diagnistics for the missed glyph in a Type 1 font (gs_type1.ps).

Actually the last regression reflects another problem in the PDF interpreter,
which is described in a new bug 687856.

EXPECTED DIFFERENCES :

pdfwrite :

test-setweightvector.ps
tpc2.ps

The distilled tpc2.ps gets 1 progression and 1 regression.
The progression is the glyph width. The regression is an ununiform
stem width while rendering the PDF due to problem in the PDF interpreter.
We describe that problem in the new bug 687857.

[src/gdevpdfx.h src/gdevpdtb.c src/gxfcopy.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdtf.c src/gdevpdfu.c src/gdevpdtf.h lib/gs_type1.ps]

2004-12-14T12:42:18.000000Z Igor Melichev

Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 5).

DETAILS :

Interval boundaries for subfunctions of a stitching function got an
artithmetic error, which caused the interval to move outside the
subfunction domain. Bug 687840 "/rangecheck in --fill--".
The effect only appeared with MSVC6 release build.

The hunk #2 of this patch fixes the particular problem, but
we prefer to provide a better safety with the hunk #3.

EXPECTED DIFFERENCES :

None.

[src/gsfunc3.c]

2004-12-14T09:32:58.000000Z Igor Melichev

Fix (TT grid fitting) : An assertion failed in the spot analyzer (continued).

DETAILS :

A condition for a stem prolongation was too weak.
Bug 687823 "assert in gzspotan.c with ttcf2cid font".

This re-applies the resent patch, which was reverted before 8.50 release. See
http://ghostscript.com/pipermail/gs-cvs/2004-December/005087.html
http://ghostscript.com/pipermail/gs-cvs/2004-December/005091.html

EXPECTED DIFFERENCES :

The list of differences, which are caused by the patch, is applied below.
Meanwhile the baseline was already upgraded with them :
http://ghostscript.com/pipermail/gs-regression/2004-December/001324.html,
and then the patch was reverted. When the patch was reverted,
the reverse difference should have appeared in the regression report,
but it did not appear for an unclear reason.

72dpi :

01_001.pdf
159.pdf
289-01.ps
adesso7.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf
type42_glyph_index.ps

normal, 300dpi :

01_001.pdf
159.pdf
289-01.ps
adesso2.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf



pdfwrite 300 dpi :


01_001.pdf
159.pdf
adesso2.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
shading_prob_800.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf

[src/gzspotan.c]

2004-12-13T17:54:22.000000Z Ralph Giles

Bump the version after the 8.50 release.

[lib/gs_init.ps src/gscdef.c src/version.mak]

2004-12-11T00:31:31.000000Z Ralph Giles

Update changelogs for release.

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

2004-12-10T23:48:48.000000Z Ralph Giles

Update 3rd party library versions to match the latest releases.

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

2004-12-10T23:29:13.000000Z Ralph Giles

Propagate release date and version changes to the documentation.

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

2004-12-10T23:22:44.000000Z Ralph Giles

Update version and date for the 8.50 release. Also some additions to the
release notes.

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

2004-12-10T23:00:59.000000Z Ralph Giles

Disable JPXDecode support in the default MacOS Codewarrior build, pending
resolution of some functional issues. The autoconf gcc build can be used
as a workaround.

[src/macos-mcp.mak]

2004-12-10T00:34:12.000000Z Ralph Giles

Correct an ambiguous '#if DEBUG' to an '#ifdef DEBUG'. Part of the fix
for bug 687830.

[src/vdtrace.c]

2004-12-09T08:27:30.000000Z Ralph Giles

Additional clean up for the MacOS CodeWarrior build. Adds a dependency
on gconfigd.h so it gets built when the project file is generated, and
include a search path for the jasper library headers.

[src/macgenmcpxml.sh src/macos-mcp.mak]

2004-12-09T08:24:28.000000Z Ralph Giles

Update the MacOS test framework to current code.

[src/dmmain.r src/dmmain.c]

2004-12-09T03:47:52.000000Z Ralph Giles

Use #ifdef DEBUG instead of the ambiguous #if DEBUG.

[src/gp_macio.c]

2004-12-09T02:43:37.000000Z Ralph Giles

Add a missing dependency on the DeviceN code to the tiffsep device.

[src/devs.mak]

2004-12-09T00:59:59.000000Z Ralph Giles

Modify the MacOS polling implementation to use the new libctx accessor
for the callbacks.

[src/gp_macpoll.c]

2004-12-08T22:30:41.000000Z Ralph Giles

Update the jbig2 makefile for the latest release. We now require
jbig2dec 0.7 if you want to compile in the jbig2dec source instead
of linking to the shared library.

[src/jbig2.mak]

2004-12-08T21:35:13.000000Z stefan

Delaying changes for assertions and gzspotan.c till after 8.50 release.

[src/gxcht.c src/gxdhtserial.c src/gdevpsf1.c src/gslibctx.c src/gsfcmap.c src/gxccman.c src/gdevpsft.c src/gdevpdfc.c src/gsmisc.c src/gserror.h src/siinterp.c src/write_t1.c src/write_t2.c src/gxshade1.c src/gsfunc0.c src/gxpflat.c src/gzspotan.c src/gdevddrw.c src/gendev.c src/fapi_ft.c src/gxfdrop.c src/gxshade6.c]

2004-12-08T19:52:23.000000Z Ralph Giles

Mention the need to run autogen.sh to generate the configure script when
building from CVS.

[doc/Make.htm]

2004-12-08T19:47:30.000000Z Ralph Giles

MacOS platform build cleanup.

DETAILS:

Since the libctx changes, stdio hasn't been directly available.
Therefore we no longer support '-' as a special filename in
(the obsolete) gp_open_printer(). We change an fprintf(stderr,...)
to an eprintf() which is more correct in any case.

This change also removes the fprintf() and fputs() implementations
in the MacOS build. Metrowerks CW libc has for some time provided
implementations, but they're even less needed now that we're being
a proper library.

[src/gp_macio.c]

2004-12-08T18:09:38.000000Z Igor Melichev

Fix (TT grid fitting) : An assertion failed in the spot analyzer.

DETAILS :

A condition for a stem prolongation was too weak.
Bug 687823 "assert in gzspotan.c with ttcf2cid font".

EXPECTED DIFFERENCES :

72dpi :

01_001.pdf
159.pdf
289-01.ps
adesso7.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf
type42_glyph_index.ps

normal, 300dpi :

01_001.pdf
159.pdf
289-01.ps
adesso2.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf



pdfwrite 300 dpi :


01_001.pdf
159.pdf
adesso2.pdf
adesso8.pdf
Altona.Page_3.2002-09-27.pdf
Altona_Technical_1v1_x3.pdf
Bug687603.ps
Bug687724.pdf
bugsample.pdf
CAIB_highres_page4.pdf
Faktura.pdf
fonts.pdf
japan.ps
keyboard.pdf
korea.ps
shading_prob_800.ps
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf

[src/gzspotan.c]

2004-12-08T05:04:29.000000Z Ralph Giles

Convert gs_malloc() calls in the MacOS gp_* code to unwrapped libc malloc()
now that gs_malloc() requires a memory pointer, which is not available.

Partial fix for bug 687830.

DETAILS:

Only the call in getenv() is active; the one in gp_init() is not used.

This may have been what the earlier libctx patch was trying to do when
it touched gp_macio.c, changing the function call, but not the arguments,
and breaking the

[src/gp_macio.c src/gp_mac.c]

2004-12-08T01:20:07.000000Z stefan

Pulled silly macro to try to disuade the direct use of assert()

[src/gserror.h]

2004-12-08T00:31:35.000000Z Alex Cherepanov

Provide back-up definitions of /-| /RD /|- /ND /| /NP for the benefit of
embedded PDF fonts that forget to define them. Issue a warning when they are
used. Don't fix PS interpreter because Distiller doesn't accept such fonts
either.
fix bug 687824

[lib/pdf_font.ps]

2004-12-08T00:18:55.000000Z stefan

forgot an #undef to correctly disable assert()

[src/gsmisc.c]

2004-12-08T00:06:14.000000Z stefan

Moved include outside of function body to fix MSVC compile error.

[src/gsmisc.c]

2004-12-07T23:25:04.000000Z stefan

Added macros for assertions:

GS_ASSERT(false)
returns -1 in a release system
asserts in a debug system

GS_DBG_ASSERT(false)
is a NOP in a release system
asserts in a debug system

Both versions will printf to stderr first.

Raw assert() should not be used.
GS_ASSERT will not compile in a void function, as it returns -1.
This means you can not use assertions to change the standard error return
exception handline mechanism in Ghostscript.
You can use them to catch programmer usage errors in a debug build.

gs_misc::gs_assert() is the one place the operating system's assert is called.
This can be modified in a embedded system, again assert is only called in
a debug build.

[src/gxcht.c src/gxdhtserial.c src/gdevpsf1.c src/gslibctx.c src/gsfcmap.c src/gxccman.c src/gdevpsft.c src/gdevpdfc.c src/gsmisc.c src/gserror.h src/siinterp.c src/gdevpx.c src/write_t1.c src/write_t2.c src/gxshade1.c src/gsfunc0.c src/gxpflat.c src/gzspotan.c src/gdevddrw.c src/fapi_ft.c src/gendev.c src/gxfdrop.c src/gxshade6.c]

2004-12-07T10:24:52.000000Z Igor Melichev

Fix : Disable an unuseful warning from MSVC8.

[src/msvccmd.mak]

2004-12-07T05:28:11.000000Z Ralph Giles

Correct an incorrect cast in the jpx filter. Bug 687831.

[src/sjpx.c]

2004-12-07T05:03:37.000000Z Ralph Giles

Add a const qualifier to the jpx filter memory contest. Corrects an error
with Metrowerks CodeWarrior 8.

[src/sjpx.h]

2004-12-07T02:29:49.000000Z Ralph Giles

Remove the calls to set the TEXT filetype for the source files. This
has not been necessary for the last few versions of CodeWarrior, and
doing it correctly for the hierarchical jasper source is tedious.

[src/macos-mcp.mak]

2004-12-07T02:25:16.000000Z Ralph Giles

Add jasper.mak to the MacOS CW build.

[src/macos-mcp.mak]

2004-12-06T18:02:31.000000Z Ralph Giles

Enable compilation of the jasper library source for JPEG 2000 image stream
support in the MacOS Code Warrior build.

[src/macos-mcp.mak]

2004-12-06T13:17:35.000000Z Igor Melichev

Fix : Improvinmg documentation for recently improced algorythms.

DETAILS :

This patch only changes comments in C code.

EXPECTED DIFFERENCES :

None.

[src/gxfilltr.h src/gzspotan.c src/gxfill.c src/gxshade6.c src/gxfillsl.h]

2004-12-03T06:41:15.000000Z Ralph Giles

Decide to run a recursive configure for the jasper source based on
existence of the new jas_config_ac.h instead of the old jas_config.h

We now require the 1.701.0-gs2 (or later) release to build out of the
box. Other versions can still be used by running their configure
manually and touching this file, or by building a separate shared
library.

[src/configure.ac]

2004-12-01T20:02:11.000000Z Ray Johnston

Add JPXDecode filter to the default Windows MSVC build. This is based on
the "jasper" source and must be at least version 26 from the svn repository
using svn co http://svn.ghostscript.com:8080/jasper/trunk jasper

DETAILS:

This is a fairly minor modification to the gs MSVC makefiles, but it did
require changing our jasper version (that had accumulated many changes)
to hook in the correct jas_config***.h file and to avoid using windows.h
(so we can build with /Za). See the jasper svn for details of the changes.

EXPECTED DIFFERENCES:

none. (we didn't have any PDF 1.5 files with JPEG2000 images in the
comparefiles).

[src/msvc32.mak src/winlib.mak]

2004-12-01T17:57:32.000000Z Raph Levien

Fix: in implementation of n operator in clip mode, put pathbbox in stopped
context so that completely empty paths have the same behavior as paths
with empty bbox, rather than causing an error. Fixes bug #687820.

DETAILS

   The test file has a "n W n" sequence, which is a request to clip to
a totally empty path. The error comes from code added to pdf_ops.ps v
1.33 to handle the case where a path is defined but has an empty
bbox. See bug 687136 for more details on this change. Comment #8 of
that bug report suggests that our PDF interpreter always maintains a
currentpoint, which would justify the use of an unprotected
pathbbox. However, that assumption seems to be false. This fix wraps
the pathbbox added in the 1.33 change in a stopped context.

[lib/pdf_ops.ps]

2004-12-01T08:17:20.000000Z Ralph Giles

Add a platform-specific JASPERCFLAGS makefile variable to assist with
proper compilation of the jasper jpeg2k library. Set this variable
correctly in the autoconf build.

DETAILS:

The jasper library natively supports building under both autoconf+cc and
MSVC, but expects a preprocessor define to be set to distinguish the
two. While we do carefully construct a special JAS_CC for compiling the
jasper source into Ghostscript, as with all the other 3rd party
libraries, there is only a facility to set special CFLAGS globally.

This change adds a new top-level makefile variable for passing
platform-specific CFLAGS into gs.mak for addition to that global
set.

Also, set JASPERCFLAGS=-DJAS_CONFIGURE in Makefile.in so that the jasper
sourcr expects the autoconf generated configuration header when
compiling as part of Ghostscript.

[src/gs.mak src/Makefile.in]

2004-11-30T20:31:54.000000Z Russell Lang

Return error code when using -f filename.
Fix bug #687811 strange behavior with -f.

[src/imainarg.c]

2004-11-29T23:18:55.000000Z Russell Lang

When doing a Windows debug build, link against the debug run time libraries.

[src/msvccmd.mak]

2004-11-29T03:25:25.000000Z Russell Lang

Correct the SubfontID values in the example substitutions.

[doc/Use.htm]

2004-11-24T20:09:01.000000Z Russell Lang

Correct errors in .buildnativefontmap procedure.

DETAILS:
The enumeration of fonts returned by .getnativefonts
was being given "array true" which was causing a
typecheck in forall because of a missing exch.
It should have been "true array".

Also, .findfontname was returning a name rather than a
string, so cvn was failing because it was already a name.

[lib/gs_fonts.ps]

2004-11-24T08:12:18.000000Z Russell Lang

When using CJK Windows TrueType fonts, add the Windows fonts
directory to the GS_LIB registry variable to allow access to this
directory when SAFER is used.

[src/dwsetup.cpp]

2004-11-23T12:18:29.000000Z Igor Melichev

Fix (TT interpreter) : The component 'usage' buffer size was wrongly computed.

DETAILS :

Bug 687810 "/invalidfont in --@0x1e36c".

Note that the error message appears some misleading due to sbx, sby is placed in ostack
for type42_finish. Rather we could fix it in this particular case in type42_finish,
a complete fix appears too complicated. So for now leave it as it is.

EXPECTED DIFFERENCES :

None.

[src/ttfmain.c]

2004-11-23T07:44:15.000000Z Igor Melichev

Fix (type 1 hinter) : Bugs in 'flex' with disabled hinting.

DETAILS :

Bug 687812 "Distortion in charpath outline".

1. Wrong poles were exported from the hinter when 'flex' works with disabled hinting.
2. Improved vdtrace commands for a disabled hinting.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c]

2004-11-22T19:36:06.000000Z Ralph Giles

Null the DEVICE_DEVS_EXTRA variable when calling the link line. This
works around env space limitations on some vendor unicies when a large
set of devices are passed from the make command line through this
variable. Bug 687804.

[src/unixlink.mak]

2004-11-22T19:25:57.000000Z Ralph Giles

Cast the gx color index to an int inside the switch argument to
avoid problems with the HP-UX 10 compiler which does not accept
64 bit arguments to switch(). Bug 687804.

[src/gdevstc.c]

2004-11-22T06:47:07.000000Z Ralph Giles

Bump the version number after the 8.33 beta release.

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

2004-11-20T05:14:05.000000Z Ralph Giles

Update changelog for release.

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

2004-11-20T04:44:39.000000Z Ralph Giles

Propagate release date to all documentation.

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

2004-11-20T04:41:02.000000Z Ralph Giles

Correct a typo in the reference to the cmpi script.

[doc/Testing.htm]

2004-11-20T04:40:08.000000Z Ralph Giles

Update release date and product name.

[doc/News.htm src/gscdef.c src/version.mak]

2004-11-20T04:33:53.000000Z Ralph Giles

Define SHARE_JASPER=0 by default in the windows build. This doesn't
enable anything, but makes it easier to get going.

[src/winlib.mak]

2004-11-19T19:56:45.000000Z Ray Johnston

Due to an oversight, JBIG2Decode was omitted from the windows build.
Now it is included in the default FEATURE_DEVS although in the future
this should probably be moved to the pdf.dev

[src/msvc32.mak]

2004-11-19T04:39:11.000000Z Ray Johnston

Add some missing initializers for glyph_data_t->memory. Related to the
687459 fix.

[src/gsfcid.c src/gdevpsf1.c src/zfcid0.c src/gxfcopy.c src/gdevpsf2.c src/zfcid1.c src/gxtype1.c src/gstype42.c src/gdevpsfu.c src/zchar1.c]

2004-11-19T01:44:52.000000Z Raph Levien

Copies over new-style color procs when making a null device with a
target, to avoid inconsistent states. Fixes bug #687770.

DETAILS

The problem was a null device (for implementing stringwidth) with
inconsistent color info; the color_info struct specified 4 components,
but the get_color_mapping_procs was
gx_default_DevGray_get_color_mapping_procs, which is the desired value
for null devices instantiated through gs_copydevice
(i.e. -sDEVICE=null). As a result, cm_comps[1] through [3] were left
uninitialized, and, when negative, would crash the halftone logic.

This patch copies over the new-style color mapping procs (the
old-style were already copied) in the gs_make_null_device routine. A
strong argument could be made for changing the logic in
gx_device_copy_color_procs() instead, but it was felt that this change
was more localized.

Dan reviewed this patch during a phone conversation, so I am going ahead
and committing. I'm also opening a new bug to encourage a closer look
at other uses of gx_device_copy_color_procs() to see whether a change
there is beneficial or harmful.

[src/gsdevice.c]

2004-11-18T17:09:16.000000Z Ray Johnston

Fix regression created by previous patch for bug 687752.

[lib/pdf_draw.ps]

2004-11-18T11:04:44.000000Z Russell Lang

Update Windows installer to use the current name for the license file,
Public.htm not the older PUBLIC.

[src/winint.mak]

2004-11-18T06:48:41.000000Z Russell Lang

Add utility mkcidfm.ps to create a cidfmap file based on fonts
found in a directory.
Change MS-Windows installer to optionally update lib/cidfmap
with the CJK fonts found in the Windows font directory.

DETAILS:
Ghostscript does not ship with CJK fonts.
If support for Chinese, Japanese or Korean is added to MS-Windows,
CJK TrueType fonts and font collections are added to the MS-Windows
fonts directory.  These can be used by ghostscript by specifying
mapping and aliases in the lib/cidfmap file.
This patch looks in the MS-Windows fonts directory for known
CJK fonts, and if present it appends appropriate mappings or
aliases to the lib/cidfmap file.
The font names and aliases are currently fixed, but can
be changed by editing mkcidfm.ps.

A new checkbox is added to the installer dialog
"Use Windows TrueType fonts for Chinese, Japanese and Korean"
Only if the user selects this will lib/cidfmap will be updated.
The default behavior is that lib/cidfmap is unchanged.

[src/dwinst.h src/dwsetup.rc src/dwsetup.h src/dwinst.cpp doc/Psfiles.htm lib/mkcidfm.ps src/dwuninst.cpp src/dwsetup.cpp]

2004-11-18T02:20:25.000000Z Ray Johnston

Fix a missing part of the JOBSERVER implementation that makes the ^D a
self-delimitting token. Fixes bug 687779.

[src/iscan.c]

2004-11-18T01:44:35.000000Z Ray Johnston

Fix for unlimited recursion in 'cs/CS' implementation (actually in a
certain path in 'resolvecolorspace'. Fixes bug 687752 for Artifex
customer 190.

[lib/pdf_draw.ps]

2004-11-17T19:48:01.000000Z Ray Johnston

Fix bug 687777 to remove the makefile dependency of dscparse from the
pdfwrite device. This allows non-PS to include the pdfwrite.dev in the
build. Also updated zdscpars.c to add needed 'mem' pointer.

[src/int.mak src/devs.mak src/zdscpars.c]

2004-11-16T02:53:06.000000Z Igor Melichev

Fix (pdfwrite) : Page context stream was not properly formed when starts with an invisible text.

DETAILS :

Bug 687797 "pdfwrite generates invalid pdf".
The improved condition made consistent with gdevpdte.c ln 501.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c]

2004-11-15T01:12:06.000000Z Ray Johnston

Fix for Bug 687459 (SEGV) addressing several problems: (i) Elements
fetched from a font dictionary have to be dereferenced into a ref
since pointers change if the dictionary is resized (to add entries);
(ii) The glyph_cache used by gs_font_cid2 fonts needs to be in stable
memory since elements might be added after a 'save' and the list will
still be refereced by the font, so cannot be freed by 'restore';
(iii) The gs_glyph_cache__release was never being called so creating
a memory leak -- font notification (called by gs_font_finalize) is
now used to free the cache list; (iv) The gs_glyph_cache__release
did not work (probably was never tested since it was not being used).

DETAILS:

Using stable_memory means that the objects created need to be freed
properly, that's why the font_notify mechanism was used. This fixes
the problem reported by the bug and doesn't seem to have created
any other problems (regression test passed).

A 'memory' element was added to the gs_glyph_data_s structure so
that the 'bits' can be allocated using the desired memory (stable
memory in the case that we are using the cache). This was deemed
preferable to always using the pfont->memory->stable_memory since
changing to this might cause other problems. This did create a
fair number of changes since every place the get_outline was used,
the glyph_data structure needed to have the 'memory' element set.
We could have used 'NULL' to signal pfont->memory, but this might
have masked uninitialized memory issues that can be tracked with
tools such as valgrind.

The gs_glyph_cache__release was totally broken, and since it was
not previously used, fixing and testing it presents no risk of
other clients relying on broken behaviour.

The implementation of the cache is VERY RUDIMENTARY -- a linked
list of elements with a hard-coded number (32767) limit to the
size of the cache. The size is too small to be useful for Asian
fonts, but making it bigger will result in a lot of time spent
finding a 'miss' condition. At least the current logic has LRU
slot re-use behaviour (which should be retained). Fixing this,
and making the cache limit larger are left for a later change
(post 8.50 release).

EXPECTED DIFFERENCES:

None.

[src/gxttfb.c src/gsgdata.h src/zfcid0.c src/gxfcopy.c src/zfcid1.c src/gstype42.c src/zbfont.c src/gdevpsft.c src/gsgcache.c src/gsgcache.h]

2004-11-14T01:41:58.000000Z Russell Lang

Add missing header include for setting the display device callback.

[src/imain.c]

2004-11-13T22:08:14.000000Z Igor Melichev

Fix : toolbin/pdfinflt.ps did not decompress some streams (continued).

DETAILS :

The 2nd Patch from SaGS for the bug 687746
"gs\toolbin\pdfinflt.ps doesn't unpack a stream"

The previous patch contained on over-optimization that leaded to a corrupted
operand stack. "{ [ {proc} {proc} ] }" (note: 2 identical inner procs)
can be optimized:
either as "{ [ {proc} dup    ] }" - use VM for only 1 copy of "{proc}"
or as	  "{ { {proc} {proc} } }" - the 2-element array is allocated
				    only once, by the parser, not at
				    each execution of the enclosing proc
but we cannot apply both these optimizations at the same time.

This error affects PDF files that include a /Filter and/or /DecodeParams
specified as 1-element arrays. PDFs for which these entries are a single
name (for /Filter) or dict (for /DecodeParams) or arrays with 2 or more
elements are not affected.


EXPECTED DIFFERENCES :

None.

[toolbin/pdfinflt.ps]

2004-11-12T21:28:30.000000Z Russell Lang

Spelling corrections.

[doc/Use.htm]

2004-11-08T16:56:10.000000Z Ralph Giles

Add the new image comparison tool to the file index in the documentation.

[doc/Testing.htm]

2004-11-07T21:09:29.000000Z Igor Melichev

Fix : Improve the resource path customization and the related documentation (continued).

DETAILS :

This fixes some minor ambiguities.

[doc/Use.htm]

2004-11-07T19:57:32.000000Z Igor Melichev

fuzzy.c : Implementing multipage image files.

DETAILS:

Report will contain a line per different page.
Thus the report file may contain multiple lines.

The output image file contains only the the first page difference
due to a restricted capability of available viewers.

Bug 687765 "fuzzy.c : multipage documents unsupported.".

[toolbin/tests/fuzzy.c]

2004-11-07T19:25:07.000000Z Igor Melichev

Fix : Cygwin/gcc warnings.

DETAILS :

Cygwin/gcc claims an undefined result in spdiff.c
due to possibly undefined order of evaluation of operands of a binary operation.
The hunk #2 now sets 'ti', rather the old code does not.
But we believe that the change is algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gxdevndi.c src/ttinterp.c src/spdiff.c]

2004-11-06T22:20:10.000000Z Ralph Giles

Remove some obsolete assert calls which caused problems on some
platforms due to incorrect string quoting in assert.h.

[src/gxhintn.c]

2004-11-06T19:30:08.000000Z Ray Johnston

Fix: Python opens files in text mode unless "rb" is needed.

[toolbin/tests/cmpi.py]

2004-11-06T06:38:05.000000Z Ray Johnston

Add an interactive image compare tool written in Python by a Python
neophyte. Not quite ready for prime-time, but an interesting enough start
to commit. Even though there are bugs in the differencing, responsiveness
and memory usage, it is still sometimes useful. If a version # were to be
applied to this, I would call it 0.1 (at least it is a positive number).

[toolbin/tests/cmpi.py]

2004-11-05T17:03:17.000000Z Ralph Giles

Update the MacOS X platform-specific makefile. Remove -traditional-cpp.
This was added to work around bugs in earlier releases of Apple's gcc,
but it is not necessary with more recent releases, and conflicts with
newer cpp features used by more recent Ghostscript code. Partial fix
for bug 687787.

[src/macosx.mak]

2004-11-04T20:32:33.000000Z Russell Lang

Improve documentation for CID fonts.

[doc/Use.htm]

2004-11-03T17:46:16.000000Z Ralph Giles

Include stdio_.h instead of the system header according to C style.

[src/lib.mak src/gslibctx.h]

2004-11-03T08:23:17.000000Z Ray Johnston

Add handling for missing EOL following the %PDF-#.## string in the header.
Yet another bad file that Acrobat Reader handles. Bug 687781.

DETAILS:

If we get an error doing the 'cvr' to get the version #, trim a character
from the end of the string and try again. Stop if the string becomes empty.

[lib/pdf_main.ps]

2004-11-03T07:34:03.000000Z Ralph Giles

Add missing opening quotes to the error printouts. This typo came in
as part of an earlier bug fix and prevented compilation. Bug 687784.

[src/gdevsppr.c]

2004-11-01T21:21:15.000000Z Jack Moffitt

Fixes Bug#687762.  Includes the date specification of the CVS checkout
in the baseline update log.  This then gets propagated to the daily
reports.

[toolbin/tests/update_specific]

2004-11-01T21:09:08.000000Z Igor Melichev

Fix (pdfwrite) : Forget cancelled resources.

DETAILS :

Bug 687749 "PS to PDF generates very large PDF document"

1. An indeterministic bug fixed in gdevpdfi.c, hunk #1.

2. Implemented a recognition of equal patterns in gdevpdfi.c
and provided a PDF pattern substitution.
We caould not provide a substitution in the PS interpreter
because an accumulated pattern instance doesn't point
to the corresponding client color.

3. pdf_forget_resource is applied when a resource is cancelled and
is not longer needed. This applies to all redundant resources except patterns,
because patterns keep the substitution data.
We would like to save memory from substitured patterns with
a special substitution table,
but we have no time for such optimization now.

4. The function pdf_forget_resource is some slow
because the data structure was not designed for
removing resources from lists.
We would like to implement dual linked lists,
but we have no time for such optimization now.

5. Since pdf_forget_resource is not applied to patters,
we need to prevent a big growth of the number of stored patterns.
We implemented pdf_drop_resources for that purpose
and drop all substitured pattrens after 300 ones
have been accumulated, but not frequenter than once per page.
This solution isn't perfect, but should work for most cases.
If a substituted pattern is dropped erroneusely,
it will be accumulated again, maybe causing some slowdown.

6. Implemented a new device parameter PrintStatistics.
The new function pdf_print_resource_statistics
prints a statistics to stdout.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfp.c src/gdevpdf.c src/gdevpdtt.c src/gdevpdfu.c src/gdevpdfv.c src/gdevpdfg.c src/gdevpdti.c src/gdevpdfi.c src/gdevpdfj.c src/gdevpdfg.h]

2004-11-01T18:21:50.000000Z Ralph Giles

Exempt three new files from the multiple-include protect check. Like the
previous exemptions, these are templates that must be instantiated multiple
times to function properly.

[toolbin/tests/check_source.py]

2004-11-01T09:15:40.000000Z Ralph Giles

We now implement job server behavior. This is no longer an open issue.

[doc/Issues.htm]

2004-11-01T09:15:06.000000Z Ralph Giles

Mention the issue with polygon overlap in antialiased rendering.
Closes bug 687742.

[doc/Use.htm]

2004-10-29T01:04:31.000000Z Russell Lang

Documentation update to fix some dead links.

[doc/Readme.htm]

2004-10-29T00:07:16.000000Z Russell Lang

Documentation fixes, due to changes in iapi.h.

[doc/API.htm doc/Lib.htm]

2004-10-28T17:34:34.000000Z Igor Melichev

Fix (pdfwrite) : Font size was wrong when definefont applied to a scaled font.

DETAILS :

Bug 687615 "ps2pdf squeezes glyph strings".

This continues the patch
http://www.ghostscript.com/pipermail/gs-cvs/2003-August/003487.html (igor486).

EXPECTED DIFFERENCES :

None.

[src/gdevpdtd.c]

2004-10-28T11:58:17.000000Z Igor Melichev

Fix (vdtrace.c) : Fix gcc warnings and improve C-style.

DETAILS :

This change is algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/vdtrace.c]

2004-10-28T09:26:11.000000Z Igor Melichev

Fix (gswin32) : Opened a window outside the desctop area.

DETAILS :

When the Tracer window was opened with a clean Registry
(particularly at a first run after the operating system instalaton),
the window placement got big negative coordinates.

EXPECTED DIFFERENCES :

None.

[src/dwimg.c]

2004-10-28T08:39:21.000000Z Igor Melichev

Fix (type 1 interpreter) : Replaced Metrics was missed.

DETAILS :

Bug 687614 "mirrored glyph is rendered at incorrect position".

This patch fixes the problem for raster devices.
Without -dNOCACHE the behavior was indeterministic due to
uninitialized cxs.use_FontBBox_as_Metrics2 in zchar1.c.

We ported the change from gstype1.c to gstype2.c with no special testing
because we have no practical examples of Type 2 with a replaced lsb.
It happens so because Type 2 only appears in PDF, which doesn't replace lsb.

EXPECTED DIFFERENCES :

None.

[src/gstype1.c src/gstype2.c src/zchar1.c]

2004-10-28T07:25:16.000000Z Igor Melichev

Fix (pdfwrite) : Glyph positions were wrong for vertical CID fonts (continued 2).

DETAILS :

Bug 687614 "mirrored glyph is rendered at incorrect position".

The new code implements the improved logics :

    /* With WMode 1 v-vector is (WMode 1 origin) - (WMode 0 origin).
       The glyph shifts in the opposite direction.  */
    /* With WMode 0 v-vector is (Metrics sb) - (native sb).
       The glyph shifts in same direction.  */

Also improved the related comments.

EXPECTED DIFFERENCES :

pdfwrite 093-01.ps .

[src/gdevpdte.c]

2004-10-27T10:56:22.000000Z Igor Melichev

Fix (resource machinery) : Improve the resource path customization and the related documentation (continued).

DETAILS :

A wrong paragraph removed form the documentation.

EXPECTED DIFFERENCES :

None.

[doc/Use.htm]

2004-10-26T17:28:00.000000Z Ralph Giles

Bump the version info after the 8.32 release.

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

2004-10-26T17:07:18.000000Z Igor Melichev

Fix (resource machinery) : Improve the resource path customization and the related documentation.

DETAILS :

1. Explained the resource locator's logics in Use.htm .
Bug 687767 "Adding -Ic:\windows\fonts breaks CJK fonts".

2. The old code missed some directories when the user specifies a non-absolute
path as GenericResourcePath.

EXPECTED DIFFERENCES :

None.

[doc/Use.htm lib/gs_res.ps]

2004-10-26T09:44:54.000000Z Igor Melichev

Fix (PDF interpreter) : Improve the font substitution and the CID font substitution.

DETAILS :

1. A new procedure .remove_font_name_prefix removes the subset font name prefix
   when computing a substitute font name.
2. Improved a warning when substituting a CID font resource.
3. Improved the documentation about CID font substitution if the PDF interpreter

Bug 687747 "PDF tries substituting but throws /undefinedresource in --findresource--".

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps doc/Use.htm]

2004-10-26T05:30:33.000000Z Ralph Giles

correct an documentation link

[doc/History8.htm]

2004-10-26T05:26:04.000000Z Ralph Giles

Update changelogs for release.

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

2004-10-26T04:31:05.000000Z Ralph Giles

Move a dependency out of order so it's available when needed.

[src/lib.mak]

2004-10-26T04:25:47.000000Z Ralph Giles

Update version and release date in the documentation.

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

2004-10-26T04:24:11.000000Z Ralph Giles

Update libpng version to the latest release. There are security
issues with 1.2.5, so upgrading is recommended.

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

2004-10-26T04:08:59.000000Z Ralph Giles

Back out double-include protection for gxfill*.h. Contrary to C-style,
these are templates that are configured and included multiple times.
They should probably be .c files rather than .h.

[src/gxfilltr.h src/gxfillts.h src/gxfillsl.h]

2004-10-26T03:51:16.000000Z Ralph Giles

Add double-include protection to four files that needed it. Also
correct a comment typo in a related file's protection.

[src/gp_os2.h src/gxfilltr.h src/gxfillts.h src/gxfillsl.h src/gxfill.h]

2004-10-26T03:43:35.000000Z Ralph Giles

Add a new-style RCS Id line to the re-instated LZWEncode filter.

[src/slzwe.c]

2004-10-26T03:41:41.000000Z Ralph Giles

Commute a C++ style comment.

[src/main.h]

2004-10-26T03:38:25.000000Z Ralph Giles

Exempt the rinkj CVS directories from the documentation reference check.

[toolbin/tests/check_docrefs.py]

2004-10-26T03:16:33.000000Z Ralph Giles

Revert jbig2 makefile update accidentally included in the last commit.
We want to maintain compatibility with 0.6 for this release.

[src/jbig2.mak]

2004-10-26T03:12:43.000000Z Ralph Giles

Add the new gsutil.py source to the file catalog

[doc/News.htm doc/Testing.htm]

2004-10-26T03:12:43.000000Z Ralph Giles

Update notes and dates for the 8.32 release.

[src/jbig2.mak src/gscdef.c src/version.mak]

2004-10-26T02:50:56.000000Z Ralph Giles

Add libctx memory pointers where required in the compiled-fonts code. This
was missed in the initial commit. Also, add the OBJ directory to the include
path when compiling the font data, since stdpre.h now requires the generate
arch.h header. Closes bug 687758.

[src/cfonts.mak src/iccfont.c]

2004-10-25T15:11:37.000000Z Igor Melichev

Fix : CIDFont-CMap construction didn't work with substituted CID font resources.

DETAILS :

Bug 687766 "CJK cidfmap ignores aliases".

This patch fixes the problem (the change to gs_cidfm.ps)
and provides a debug printing in various modules
related to CID font substitution.

EXPECTED DIFFERENCES :

None.

[lib/gs_resmp.ps lib/gs_fntem.ps lib/gs_cidcm.ps lib/gs_cidfm.ps lib/gs_init.ps]

2004-10-22T08:07:59.000000Z Raph Levien

Fixes copying of paths into clipping path list so that it works even
when the path is allocated with local_segments. Fixes bugs #687401,
#687612, and #687750.

[src/gxcpath.c]

2004-10-21T17:57:17.000000Z Igor Melichev

Fix (TT interpreter) : Subglyphs were positioned wrongly (continued).

DETAILS :

This fixes the log message of the previous patch in the "expected differences" section.
Bug 687589 "A composite glyph renders wrongly".
Bug 687768 "umlauts misplaced in eps file".

EXPECTED DIFFERENCES :

Testform.v1.0.2.pdf"

[src/ttfmain.c]

2004-10-21T17:52:18.000000Z Igor Melichev

Fix (TT interpreter) : Subglyphs were positioned wrongly.

DETAILS :

Bug 687589 "A composite glyph renders wrongly".
Bug 687768 "umlauts misplaced in eps file".

EXPECTED DIFFERENCES :

None.

[src/ttfmain.c]

2004-10-21T15:05:13.000000Z Igor Melichev

Fix (TT interpreter) : A tolerance to bad TT instructions.

DETAILS :

Bug 687764 "/invalidfont in .type42execchar".
Since we met several fonts with bad TT instructions,
we print a warning and continue with ignoring instructions.

EXPECTED DIFFERENCES :

None.

[src/gxttfb.c src/gxfont42.h src/gstype42.c src/ttfmain.c src/ttfoutl.h]

2004-10-20T15:58:56.000000Z Igor Melichev

Fix (pdfwrite) : Glyph positions were wrong for vertical CID fonts (continued).

DETAILS :

Bug 687603 "vertical text misplaced after distilling", reopened.
Bug 687753 "Text not aligned when viewed with Acrobat Reader", re-testing.

Disposition :
D1. The PDF spec requires X-compomenent of v-vector always equals to half glyph width.
D2. AR5 appears to use W|DW to compute the X-component of the v-vector of WMode 1.

The previous patch fixed most problems, but one left unfixed.
When a glyph is used with WMode 0, and later with WMode 1,
the second usage doesn't store Width and V due to the 'used' flag is already set.
This patch introduces 2 separate sets of flags for WNode 0 and WMode 1.

Changes :
1. Defined a new field 'used2' fro WMode 1 in gdevpdtf.h .
2. Allocated the used2 array, provided garbager methods,
   and a resizing on demand in gdevpdtf.c .
3. gdevpdtc.c sets used2.
4. Improved the computation of the v-vector in gdevpdtt.c .
   Now pdf_glyph_widths should be conforming to (D1) and (D2).
5. The coordinate adjustment in gdevpdte.c is not longer useful
   due to (4). Removed.
6. When writing W, W2, glyphs are being enumerated with used, used2
   correspondingly (gdevpdtw.c).
7. The accedd to Widths2 sometimes was incorrect. Now fixed (gdevpdtf.c).
8. gdevpdtc.c misused Widths2 as Widths when storing the WMode 0 width
   as a component of theWMode 1 v-vector. Now fixed.

EXPECTED DIFFERENCES :

Bug687603.ps

[src/gdevpdtc.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdtf.c src/gdevpdtw.c src/gdevpdtf.h]

2004-10-20T02:52:04.000000Z Jack Moffitt

Remove quotes from input filenames.

[toolbin/tests/update_specific]

2004-10-20T01:30:37.000000Z Igor Melichev

Fix (pdfwrite, PDF interpreter) : Glyph positions were wrong for vertical CID fonts.

DETAILS :

Bug 687753 "Text not aligned when viewed with Acrobat Reader".

Disposition :
D1. The PDF spec requires X-compomenent of v-vector always equals to half glyph width.
D2. AR5 appears to use W|DW to compute the X-component of the v-vector of WMode 1.

Changes :
1. With WMode 1, pdf_obtain_cidfont_widths_arrays obtains both Widths and Widths2 arrays
   (gdevpdtf.c, gdevpdtf.h, gdevpdtc.c).
2. For CID fonts gdevpdtc.c computes both WMode 1 and WMode 2 width
   when WMode 1 is requested.
3. Due to (D1), must compensate the half width when computing a glyph position
   in gdevpdte.c (hunk #2).
4. In gdevpdte.c internal data glyph_origin_shift used opposite signs for
   CID and non-CID fonts. Now made uniform.
5. The Type 0 font matrix and the descendent CID font matrix were applied
   in a wrong order in gdevpdte.c .
6. To satisfy (D2) when WMode 1 is only requested,
   write DW 0 when WMode 1 is only requested.
7. After fixing all above, from the test file of the bug 687753 pdfwrite
   generated a PDF, which GS failed interpret due to a curious failure
   with e_dictfull while checking for an absent key /File in the font dictionary.
   Patched zfcid1.c to provide a tolerance.
   Meanwhile we're not sure that it's the best way for fixing that,
   so if someone can bring a better method, feel free to improve.
8. The PDF interpreter is patched to comply with (D2) - pdf_font.ps, hunk #2 .
9. Fixed a bug in .pdfMakeInternalMTXArray : W2 arraytype elements wrongly
   computed the range (debugged with re-distilled Bug687603.ps).

EXPECTED DIFFERENCES :

Bug687603.ps

besides that, it generates an improved PDF for japan-.ps, Type11CDevProc.ps,
but rasters appear same because a change to the PDF interpreter compensates
changes to the PDF writer.

[lib/pdf_font.ps src/zfcid1.c src/gdevpdtc.c src/gdevpdte.c src/gdevpdtf.c src/gdevpdtw.c src/gdevpdtf.h]

2004-10-18T15:23:20.000000Z Igor Melichev

Fix : Degenerate segments must not paint when caps is not round.

DETAILS :

Bug 687720 "Zero length lines must not stroke".
See comment in code.


EXPECTED DIFFERENCES :

Normal 72 dpi :

"012-05.ps"
"013-05.ps"
"014-05.ps"
"015-01.ps"
"015-05.ps"
"027-01.ps"
"027-09.ps"
"032-01.ps"
"034-01.ps"
"034-10.ps"
"083-05.ps"
"123-05.ps"
"169-05.ps"
"192-01.ps"
"222-05.ps"
"298-05.ps"
"307-01.ps"
"321-05.ps"
"file2.pdf"

Normal 300 dpi :

"012-05.ps"
"014-05.ps"
"015-01.ps"
"015-05.ps"
"027-01.ps"
"027-09.ps"
"034-01.ps"
"034-10.ps"
"123-05.ps"
"169-05.ps"
"192-01.ps"
"222-05.ps"
"298-05.ps"
"307-01.ps"
"321-05.ps"
"a.pdf"
"file2.pdf"

pdfwrite 72 dpi :

"012-05.ps"
"013-05.ps"
"014-05.ps"
"015-01.ps"
"015-05.ps"
"027-01.ps"
"027-09.ps"
"032-01.ps"
"034-01.ps"
"034-10.ps"
"083-05.ps"
"123-05.ps"
"169-05.ps"
"192-01.ps"
"222-05.ps"
"298-05.ps"
"307-01.ps"
"321-05.ps"
"ai2.pdf"
"file2.pdf"

pdfwrite 300 dpi :

"012-05.ps"
"014-05.ps"
"015-01.ps"
"015-05.ps"
"027-01.ps"
"027-09.ps"
"034-01.ps"
"034-10.ps"
"083-05.ps"
"123-05.ps"
"169-05.ps"
"192-01.ps"
"222-05.ps"
"298-05.ps"
"307-01.ps"
"321-05.ps"
"a.pdf"
"file2.pdf"

[src/gxpdash.c src/gxstroke.c]

2004-10-18T08:43:43.000000Z Igor Melichev

Fix (Type 1 hinter) : Don't align glyph width to pixels.

DETAILS :

See comment in code.
Bug 687719 "PDFWRITE corrupts letter spacing/placement".

When porting this patch to GS_8_1X please note that the default value
of AlignToPixels is different in HEAD andf GS_8_1X.
Therefore this patch may cause differences witg GS_8_1X.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c]

2004-10-15T18:24:31.000000Z Igor Melichev

(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 9).
Check the Encoding compatibility while merging Type 3 glyph variations.

DETAILS :

Fixes the reopened bug 687660
"incorrect font rendering/missing glyphs from ps2pdf".

pdf_is_same_charproc1 now checks whether we try to replace
a charproc with one taken from a font with a compatible Encoding.
Before now the encoding was ingnored,
causing a subsequent failure (due to an encoding conflict)
when adding glyphs to the font copy, and an infinite loop.
As usual, the encoding compatibility
is being checked within the list of characters of a current text.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdtt.c src/gdevpdti.c src/gdevpdtt.h]

2004-10-15T18:18:32.000000Z Igor Melichev

(pdfwrite) : Implementing a dynamic recongnition for Type 3 charproc variations (continued 8).
Allocate a single character list per text.

DETAILS :

This change is algorithmically equivalent.
It's a preparation for fixing the reopened bug 687660
"incorrect font rendering/missing glyphs from ps2pdf".

For 1-byte fonts now we allocate a singe instance of
pdf_char_glyph_pairs_t for storing the character list for entire text.
Now it is done once per text as an extention to pdf_text_enum_t.
The intention is to provide an access to it from pdf_find_same_charproc.

CID text is still processed in chunks, which
are delimited by font changes or CDevProc callouts.
It may cause a searchability problem with some viewers,
when converting a composefont with a Type 3 descendent.
But unlikely we'll met such case in practice,
due to we have no exmples of composefont with a Type 3 descendent.

We would like to improve the CID text processing sometimes with
with building a complete character list for a text portion
delimited with font changes. The new algorithm for scan_cmap_text
should be like this : first delimit a single font portion,
then construct the character list for the portion,
and then process the portion with possible CDevProc and charproc callouts.

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c src/gdevpdtc.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdtf.c src/gxfcopy.h src/gdevpdtt.h src/gdevpdtf.h]

2004-10-15T08:55:02.000000Z Igor Melichev

Fix : toolbin/pdfinflt.ps did not decompress some streams.

DETAILS :

Patch from SaGS for the bug 687746
"gs\toolbin\pdfinflt.ps doesn't unpack a stream"

Current version of pdfinflt.ps uncompresses only streams that have a single
filter applied, and only if that single filter is /FlateDecode. Proposed
patch (attached) ads support for procesing streams with multiple filters.

However, not all decompressing filters can be removed, and not in all cases
it would be desirable to remove them. The /filterstoremove dictionary lists
filters that are to be processed, and omits filters that are to be preserved
in the output. For streams with multiple filters chained together, the new
version of pdfinflt.ps removes all filters from the first in the
decompressing chain up to, but excluding, the first filter that is to be
preserved. The list of preserved filters, with the reason why these are not
removed, follows:

/RunLengthDecode, /CCITTFaxDecode, /DCTDecode:
These are normaly used for compressing raster images. I assume the main
purpose of this tool is to decompress page streams for debugging, and
decompressing images only adds a huge amount of binary data, making harder
to find and examine content streams. If this is not the case, and getting
raw image data is necessary, simply uncomment the lines corresponding to
these filters.

/JBIG2Decode, /JPXDecode:
There's no (standard) PostScript filter that corresponds to these PDF
filters. (I think) GhostScript implements these filters in the PostScript
interpreter, but not for all platforms, so I added some detection code for
them. The preceding paragraph applies too, so I left the lines corresponding
to these filters commented out.

/Crypt (PDF1.5-specific):
This is a generic interface with decryption plug-ins, and has no PostScript
counterpart (and I don't see how it could have one).

EXPECTED DIFFERENCES :

None.

[toolbin/pdfinflt.ps]

2004-10-14T18:32:44.000000Z Ray Johnston

Add logic to capture the ENTIRE regression report to a rotating log file.
As before the ENTIRE regression report is only emailed on Mondays.

[toolbin/tests/run_nightly]

2004-10-14T17:28:51.000000Z Igor Melichev

Fix (pdfwrite) : Fixing some Type 3 encoding problems.

DETAILS :

We found that Encoding compatibility was insufficiently checked
with Type 3 glyph variations.

It's a preparation for fixing the reopened bug 687660
"incorrect font rendering/missing glyphs from ps2pdf".

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c src/gdevpdti.c]

2004-10-13T15:31:59.000000Z Igor Melichev

Fix (pdfwrite, PDF interpreter) : Correctly handle different widths for same glyph (continued).

DETAILS :

This patch continues a long story about the handling of different widths for same glyph
in a PDF embedded font.
The last patch in this series was
http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004834.html

That patch caused a problem with pdfwrite,
which needs to write an original glyph name
rather than a substituted one.

This change establish a new discipnile for
passing the original glyph name from the PDF interpreter to pdfwrite
inside a substituted glyph name, with using an
implementation specific separator (~GS~).

Before writing a font, we apply copied_drop_extension_glyphs
to remove extended glyph names. We don't like to
modify the font, but choose this minimal solution for now.
A better solution would be to introduce another flag to glyph slots
to mark ones, which to be skipped when writing the embedded font.

Bug 687740 "(pdfwrite) A character dissappeared in ADOBE1-4.pdf".

EXPECTED DIFFERENCES :

pdfwrite :

ADOBE1-4.pdf

[lib/pdf_font.ps src/gdevpdtb.c src/gxfcopy.c src/gxtype1.c src/gxfcopy.h src/gdevpdtw.c src/gxfont.h]

2004-10-12T23:08:30.000000Z Ray Johnston

Fix LZWEncode filter to use the EarlyChange parameter and also correct the
tifflzw device to initialize EarlyChange to the proper value (1).
Bug 687726.

DETAILS:

The LZWEncode filter failed to use the EarlyChange param but the LZWDecode
did honor this setting. The LZWEncode always acted as if EarlyChange = 1
which since that was the default, worked as long as the Decoder wasn't set
for EarlyChange == 0.

Also, now that the Encoder honors EarlyChange = 0, the tifflzw device needed
to have the flag set correctly (it needs EarlyChange == 1).

EXPECTED DIFFERENCES:

430-01.ps

[src/slzwe.c src/gdevtfax.c]

2004-10-08T22:55:16.000000Z Igor Melichev

Fix (pdfwrite) : *bfrange boundaries may differ in the last byte only.

DETAILS :

The PDF specification requires so.
Bug 687737 "can't select text in distilled pdf".

EXPECTED DIFFERENCES :

None.

[src/gsfcmap.c]

2004-10-08T13:27:21.000000Z Igor Melichev

Fix (pdfwrite) : The function same_type42_hinting was indeterministic.

DETAILS :

It compares few TrueType tables for equality,
but didn't work out the case when a table is absent.
In that case the bahavior was indeterministic.

Bug 687736 "pdfwrite hangs (or takes really long) on input file".
It created too many font copies and spent lots of time
for garbage collection.

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c]

2004-10-07T21:12:28.000000Z Alex Cherepanov

Don't overwrite CFLAGS variable if it is already defined.
Bug 687739

[src/msvc32.mak]

2004-10-07T05:18:34.000000Z Ray Johnston

Fix initialization of C stack streams that did not perform s_init().
Bug 687709 that could result in a Segmentation Fault (SEGV)

DETAILS:
The normal s_alloc() streams included s_init() on the allocated stream,
but C stack streams could have uninitialized elements in the stream struct.
Since this was UMR related, and affected the clist mode, the jpeg device
and the pswrite device (and possibly some pdfwrite data), this would be
different on different platforms.

The premature 'CloseTarget' action when the stream->close_strm was not
initialized as 0 (false) would show up as a SEGV when the -Z@ was used.
Other problems that this patch fixes are not linked to a test file at
the current time.

This change also corrects a trivial typo and a NUL character found in
src/gxtype1.c as a header file related warning in src/imain.c

[src/gdevpsu.c src/gdevpsim.c src/gxfcopy.c src/gdevpsf1.c src/gdevpsf2.c src/gdevpsft.c src/gdevpdfc.c src/gdevpdtw.c src/iccfont.c src/gdevlj56.c src/imainarg.c src/gxclrast.c src/gdevps.c src/gxclread.c src/gxclimag.c src/gdevjpeg.c src/stream.c src/gdevpdfm.c src/imain.c src/gdevpdtb.c src/gxtype1.c src/gsfunc4.c src/gxclpath.c]

2004-10-06T14:12:01.000000Z Ralph Giles

Add a missing dependency on version.mak to the generation of gconfigd.h.
Without this the revision number isn't correctly updated in an incremental
build. Closes bug 687733.

[src/gs.mak src/version.mak]

2004-10-06T11:32:17.000000Z Igor Melichev

Fix (TrueType interpreter) : Calls to user defined instructions were not implemented.

DETAILS :

This implements IDEF and user defined instructions calls
according to the TrueType specification by Apple
http://developer.apple.com/fonts/TTRefMan/ .

EXPECTED DIFFERENCES :

None.

[src/ttobjs.c src/ttinterp.c src/ttobjs.h]

2004-10-05T12:45:29.000000Z Igor Melichev

Fix : The 'gslibctx' patch had broken FAPI.

DETAILS :

A memory context pointer was added with no initialization.

EXPECTED DIFFERENCES :

None.

[src/zfapi.c]

2004-10-05T10:24:36.000000Z Igor Melichev

Fix (Type 1 hinter) : 'int32' conflicts with AIX compiler standard types.

DETAILS :

Bug 687723 "type conflicts in gxhintn.h"

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxhintn.c src/gxhintn.h]

2004-10-04T17:28:34.000000Z Igor Melichev

Fix : Optimize gs_c_decode with a binary search.

DETAILS :

Bug 687102 "Optimize gs_c_decode".
Patch from John Desrosiers.

EXPECTED DIFFERENCES :

None.

[toolbin/encs2c.ps src/gscedata.h src/gscencs.c src/gscedata.c]

2004-10-02T01:45:27.000000Z Alex Cherepanov

Add TrivialCMYK color space, which simulates standard PostScript CMYK
to RGB conversion on device-independent level.
Fix bug 687711

[DETAILS]
Recent versions of Adobe Acrobat simulate on screen the appearance
of printed documents when the color of an object is specified
in DeviceCMYK color space. The resulting dark colors can be undesirable
for presentation graphics. TrivialCMYK can help when the user had
RGB colors in mind, but for some reason used CMYK colors instead in the
document.

[Resource/ColorSpace/DefaultCMYK Resource/ColorSpace/TrivialCMYK Resource/ColorSpace/DefaultRGB]

2004-10-01T23:36:53.000000Z Russell Lang

Change OS/2 gx_color_index from 32 to 64 bits to allow better
support for DeviceN.

[src/os2.mak]

2004-10-01T23:35:02.000000Z Russell Lang

Fix for 687706 Display device 8-bit native incorrectly dithers grays.
This is a partial fix and also needs Dan Coby's fixes to the post
DeviceN halftoning.  The DeviceRGBK color model is added.

DETAILS:
Prior to GS 8, the display device 8-bit native format would use 32
gray levels to avoid halftoning, and a 4x4x4 color cube which did use
halftoning.  The halftoning logic was changed with the introduction
of DeviceN and in GS 8 both grays and colors were being halftoned.

The DeviceRGBK color model is added and used by the display device
native 8-bit format.  The RGB color space to RGBK color model
conversion converts pure RGB grays to the K (black/gray additive)
component.  This allows the 32 gray levels to be recognised by the
halftoning logic as being sufficient to avoid halftoning.

[src/gdevdsp.c src/gxcmap.c src/gxcmap.h src/zcolor.c]

2004-10-01T03:40:35.000000Z Dan Coby

Fix for 687718 The tiffsep device fails when the size of gx_color_index is 32 bits

DETAILS:

The comments on bug 687705 "Compile of 8.31 fails on OS/2" point out that the
tiffsep device fails during device initialization if the size of
gx_color_index is 32 bits.

This is due to a recent change which made the default number of components for
this device equal to 8.  This works if the size of gx_color_index is 64 bits.
But it fails with 32 bits.

This fix changes the default number of components for this device to be
based upon the size of gx_color_index.  It also changes the psdcmyk device
to use the same logic for its default number of components.

This fix also includes changes to doc/Devices.htm which explains that the number
of components will differ based upon the size of gx_color_index (and a link
giving more details on gx_color_index).  More information about the parameters
for the tiffsep device is given including an example command line.

[src/gdevpsd.c src/gdevtsep.c doc/Drivers.htm]

2004-09-30T17:31:11.000000Z Igor Melichev

Fix : Moving type1_cis_get_metrics to the graphics library.

DETAILS :

Doing so since copied_type1_glyph_outline calls it.
This change is algorithmically equivalent.
Thanks to Stefan for pointing this out.

EXPECTED DIFFERENCES :

None.

[src/gxtype1.c src/zchar1.c]

2004-09-30T06:37:01.000000Z Dan Coby

This is a partial fix for 687706 Display device 8-bit native incorrectly
dithers grays.  Russell Lang is improving the 8-bit (256 color) display
device to allow more shades of gray.  This change is required for that
effort.

DETAILS:

The pre 8.00 release had more gray levels for the 8-bit display device
but the pre 8.00 release had other related problems in halftoning.  The
fix for those problems eliminated the extra gray levels.

Russell's effort dug up some problems with the handling of halftones
for devices in which the max_color and max_gray values are different
and gray_index is set to an actual component number.  This fix corrects
those problems.

Russell has a patch for the remainder of the effort.  His changes
involve changing the 256 color display device to use a DeviceRGBK process
color model:  red, green, blue and an additive black (gray).  New
device color mapping procs also have been created for this process color
model.  (This is the first example of this process color model in
Ghostscript.)

[src/gxdevice.h src/gxdevndi.c]

2004-09-29T21:36:56.000000Z Igor Melichev

Fix (the filling algorithm) : Unite trapezoids if they have a common side.

DETAILS :

Bug 687716 "Assertion fails in gzspotan.c".
The spot analyzer can't reconstruct the topology when there are
two trapezoids with a common side.

We patched the spot decomposition algorithm with
uniting such trapezoids, because (1) it's too hard to
unite them in the "spotan" device, and (2)
the post-condition of the spot decomposer simplifies.

For more details see a new comment in code.

This patch causes a rendering difference.
We believe that a big part of differences happens due to the bug 687717,
which is currently unfixed due to the QA overload.

If the bug 687717 is fixed before this patch,
a small rendering difference can also appear,
because we unite trapezoids by the equality of x_current, x_next,
which have an arithmetic error. Therefore ununited trapezoids
may have a pixel center between them, which is not painted,
but shifting a boundary to x_current, x_next the pixel center
may fall into a trapezoid, then it is covered by the union and painted.

Besides that, with dropout prevention, a pixel set for the union of
two trapezoids may differ from the union of pixel sets for ununited trapezoids
when at least one of the trapezoids is narrow.
Particularly, two narrow trapezoids may paint 2 pixels,
but its (narrow) union does a single pixel.
Contacting trapesoids are not regular in characters,
which only use a dropout prevention,
but the test file of the bug 687698 (same as for 687667)
demonstrates some ones in a CJK TT font,
which composes hieroglyphs from subglyphs with a deformation and shifting.

EXPECTED DIFFERENCES :

normal 72dpi :

"181-01.ps"
"222-05.ps"
"222-09.ps"
"289-01.ps"
"307-07.ps"
"86554321.pdf"
"bulletin.pdf"
"KozukaB-ILEmbed.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"waterfal.ps"

normal 300dpi :

"012-05.ps"
"012-09.ps"
"013-05.ps"
"013-09.ps"
"123-05.ps"
"123-09.ps"
"222-09.ps"
"289-01.ps"
"307-07.ps"
"86554321.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Technical_1v1_x3.pdf"

pdfwrite 72dpi :

"181-01.ps"
"222-05.ps"
"222-09.ps"
"307-07.ps"
"86554321.pdf"
"Bug687603.ps"
"bulletin.pdf"
"KozukaB-ILEmbed.pdf"
"S2_Digitalproof-Forum_x3k.pdf"

pdfwrite 300dpi :

"012-05.ps"
"012-09.ps"
"013-05.ps"
"013-09.ps"
"123-05.ps"
"123-09.ps"
"222-09.ps"
"307-07.ps"
"86554321.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Technical_1v1_x3.pdf"

[src/gxfilltr.h]

2004-09-29T19:10:27.000000Z Igor Melichev

Fix (pdfwrite) : Handle more than 32 TrueType subglyphs.

DETAILS :

Bug 687698  "Cannot extract the embedded font" error message

1. The old code run out an implementation limit MAX_GLYPH_PIECES.
2. Error code was not propagated.

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c]

2004-09-29T11:34:08.000000Z Igor Melichev

Fix : Don't apply fill adjustment when stroking a character.

DETAILS :

Bug 687667 "Line width in a Type 1 stroked font".


EXPECTED DIFFERENCES :

-r300 CAT_LOGO.ps

[src/zchar1.c]

2004-09-28T21:45:35.000000Z Igor Melichev

Fix : Pattern metrics was imprecize.

DETAILS :

Bug 687581 "A pattern truncated".
This bug is a regression since the December 09 2003 revision.

We still think that we insufficiently understand the Adobe's method,
but now we've got one closer to CPSI than it was before the December 09 2003 revision.
Particularly the pattern step now appears better than on December 09 2003.

This patch includes a change, which is well defined by the math :
the usage of float2fixed_rounded instead float2fixed.
It is a part of the PRECISE_CURRENTPOINT stuff.

The rest of the patch is a kind of hewristic.
We guessed that a pattern size should always round up to allow
a similar logics as for a clipping - "any part of pixel inside".

As before December 09 2003, we improved the case with neither skewing nor rotation.
A further work on the general case may be useful.

At last, some old problems, which existed on December 09 2003,
are still unfixed. An example is -r300 298-09.ps :
a line appears outside the pattern box.
For now living them as they are, because
the primary purpose of this patch is to fix regressions.

EXPECTED DIFFERENCES :

normal 72 dpi :

"176-01.ps"
"255-01.ps"
257-01.ps"  (A dashed line became wider due to a CTM
             coefficient slightly increased,
             and therefore it now looks contiguous.
             It's not a regression.)
"269-01.ps"
"289-01.ps"
"296-01.ps"
"303-01.ps"
"Bug687396.ps"


normal 300 dpi :

"012-09.ps"
"013-09.ps"
"014-09.ps"
"015-09.ps"
"027-13.ps"
"034-10.ps"
"035-07.ps"
"045-01.ps"
"083-09.ps"
"103-01.ps"
"118-01.ps"
"123-09.ps"
"169-09.ps"
"176-01.ps"
"192-01.ps"
"205-09.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"222-09.ps"
"231-01.ps"
"250-01.ps"
"257-01.ps"
"264-01.ps"
"269-01.ps"
"289-01.ps"
"297-01.ps"
"298-09.ps"
"307-07.ps"
"310-04.ps"
"311-03.ps"
"468-01.ps"
"Bug687396.ps"
"mspro.pdf"


pdfwrite 72 dpi :

"176-01.ps"
"212-01.ps"
"214-01.ps"
"257-01.ps" (same as above)
"269-01.ps"
"303-01.ps"
"Bug687396.ps"

pdfwrite 300 dpi :

"012-09.ps"
"013-09.ps"
"014-09.ps"
"015-09.ps"
"017-01.ps"
"027-13.ps"
"034-10.ps"
"035-07.ps"
"045-01.ps"
"083-09.ps"
"103-01.ps"
"118-01.ps"
"123-09.ps"
"169-09.ps"
"176-01.ps"
"192-01.ps"
"205-09.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"222-09.ps"
"231-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"250-01.ps"
"255-01.ps"
"257-01.ps"
"258-01.ps"
"264-01.ps"
"269-01.ps"
"270-01.ps"
"297-01.ps"
"298-09.ps"
"307-07.ps"
"310-04.ps"
"311-03.ps"
"321-09.ps"
"327-01.ps"
"468-01.ps"
"Bug687396.ps"
"mspro.pdf"

[src/gsptype1.c]

2004-09-28T05:34:29.000000Z Ralph Giles

Export the prototype for gcst_get_memory_ptr() which is now used by
ilocate.c as well as igc.c to igc.h so it is available in both files.
Remove the cast that was papering over the warning this causes.
Completes the fix for bug 687617.

[src/ilocate.c src/igc.c src/igc.h]

2004-09-28T02:26:45.000000Z Alex Cherepanov

Remove a comment about LZW-compatible code that is no longer apply.
Bug 687554.

[src/Makefile.in src/openvms.mmk]

2004-09-28T00:45:26.000000Z Ralph Giles

Cast the read standard illuminant to icIlluminant instead of
icStandardFlare inside icmMeasurement_read() inside the icc
library. Not really our code, but resolves an enum mis-match
warning. Bug 687694.

[icclib/icc.c]

2004-09-28T00:35:14.000000Z Ralph Giles

Add string_.h to some files missing prototypes. Bug 687694.

[src/lib.mak src/gxpflat.c src/devs.mak src/gdevps.c]

2004-09-28T00:25:45.000000Z Ralph Giles

Add stdio_.h to the makefile dependencies for gslibctx.c.

[src/lib.mak]

2004-09-28T00:08:21.000000Z Ralph Giles

Properly include the portability version of the stdio error. Corrects
type confict problems on HP-UX. Closes bug 687689.

[src/gslibctx.c]

2004-09-27T21:14:00.000000Z Russell Lang

Fix bug #687705 Compile of 8.31 fails on OS/2.

[src/gdevos2p.c src/gp_os2.c src/os2.mak]

2004-09-27T13:13:02.000000Z Igor Melichev

Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 3.

DETAILS :

Don't reset zone alignment.
Bug 687578 "T1 hinter disturbs stem width", Comment #8.


EXPECTED DIFFERENCES :

normal 72 dpi :

"045-01.ps"     ("s" now aligns with the upper zone).
"Bug687603.ps"


normal 300 dpi :

"CIDembedded.pdf"  ("b", "d" now aligns with the bottom zone).

pdfwrite 72 dpi :

"045-01.ps"

pdfwrite 300 dpi :

"chess.ps" (a sloped line hints better).
"CIDembedded.pdf"

[src/gxhintn.c]

2004-09-27T04:55:00.000000Z Ray Johnston

Fix SEGV caused by premature free of the bbox device with high level
devices that use the bbox_device of the vector high level device.
Bug 687631.

DETAILS:

The vector device allocated a bbox device, but never incremented the
reference count past zero, so any use of the device that added a forwarding
device with that bbox_device as the target would free the bbox device
when that forwarding device closed. This happens with clipped images
or images that use ROP's since a clipping ROP forwarding could be used.

[src/gdevvec.c]

2004-09-26T21:17:45.000000Z Ray Johnston

Add missing source file (it hadn't been 'added', so it did not get included
on the previous LZWEncode commit.

[src/slzwe.c]

2004-09-26T16:19:27.000000Z Ray Johnston

Add the LZWEncode filter that actually compresses using the LZW method,
rather than the dummy encoder in slzwce.c that expanded the input, but
that avoided the patent issues. Bug 687554.

Also fix a long standing issue in filter closing that failed to flush the
target stream after the final s_process_write_buf with 'last' == true.
Bug 224134.

DETAILS:

The LZWEncode filter was moved over from an older version of Ghostscript
that actually had a working LZWEncode.

The s_filter_close logic (discussed at length in bug 224134) was fixed
to be consistent with the specification and with Adobe. While the
target stream is not closed (per the specification unless CloseTarget is
true), the specification *DOES* call for an automatic 'flushfile' which
is supposed to be propagated down the filter chain.

[src/openvms.mak doc/Projects.htm src/macosx.mak src/watcw32.mak src/dvx-gcc.mak doc/Ps2pdf.htm doc/Develop.htm src/unixansi.mak src/msvclib.mak src/os2.mak src/stream.c src/lib.mak src/bcwin32.mak doc/Issues.htm src/zfilter2.c src/msvc32.mak src/unix-gcc.mak src/macos-mcp.mak src/slzwce.c]

2004-09-25T21:48:29.000000Z Jack Moffitt

Fix error with automatic baseline creation for files which contain spaces
in their names.

[toolbin/tests/gscheck_raster.py toolbin/tests/gscheck_pdfwrite.py]

2004-09-25T20:27:25.000000Z Ralph Giles

Remove the 'makegnu' utility. It is out of date, and recent changes to
the documentation structure have rendered its automation more-or-less
unnecessary. The appropriate steps to convert releases are now
documented in doc/Release.htm.

[toolbin/makegnu.tcl]

2004-09-25T20:24:00.000000Z Ralph Giles

Toolbin cleanup. Remove the extensionless shell wrappers for convenience
utilities, except for gsmake where is aesthetically reasonable. Typing
the script extensions for these little-used commands isn't a hardship.

[toolbin/tmake toolbin/cvs2hist toolbin/makehist toolbin/makegnu toolbin/maketars toolbin/makefonts toolbin/makeset toolbin/makemaster toolbin/makewin]

2004-09-25T20:19:01.000000Z Ralph Giles

Update some remaining occurances of 'GNU Ghostscript' to 'GPL
Ghostscript'.

[doc/Readme.htm doc/Make.htm doc/Public.htm doc/Commprod.htm doc/New-user.htm]

2004-09-22T15:35:36.000000Z Igor Melichev

Fix : Cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/zchar1.c]

2004-09-22T15:32:59.000000Z Igor Melichev

Fix (pdfwrite) : Alwasys write the file ID in hexadecimal encoding.

DETAILS :

Bug 687688  "PDF file identifier uses non-alphanumeric characters".
The previous patch was committed by error.
This one fixes that, unwinding the last patch.

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c src/gdevpdfu.c]

2004-09-22T15:23:44.000000Z Igor Melichev

Fix (pdfwrite) : Alwasys write the file ID in hexadecimal encoding.

DETAILS :

Bug 687688  "PDF file identifier uses non-alphanumeric characters".

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c]

2004-09-22T14:15:18.000000Z Igor Melichev

Fix : Cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/ichar1.h]

2004-09-22T13:52:36.000000Z Igor Melichev

CDevProc|Metrics|Metrics2 did not work with CIDFontType 0.

DETAILS :

Bug 687681 "Character spacing incorrect".
The old implementation, which comes from the gs-cjk team,
has a bug accessing the replaced metrics of a CIDFontType 0 font,
which effectively caused the replaced metric to be ignored with CIDFontType 0 fonts.

1. Bug : With CIDFontType 0, CDevProc|Metrics|Metrics2 was searched
   in the descendent type 1 or 2 font rather than in the parent type 9 font.

   1.1. A Type 9 font needs to be accessed via a descendent Type 1|2 font
        in pfont->procs.glyph_info. Added a new field gs_type1_data_s::parent,
        and provided an access through it with a new function gs_font_parent.

   1.2. Metrics|Metrics2 is now accessed through gs_font_parent.

   1.3. To access CDevProc implemented a new function zchar_get_CDevProc,
        which also works through gs_font_parent.

   1.4. gs_type1_data_s::parent needs to reset while a type 9 font finalization,
        due to a reason, which we could not understand for sure.
        Likely descendent fonts appear to have a bigger lifetime than
        their parent type 9 font. Probably the descendents are pointed from
        somewhere besides FDArray (maybe the font registry ?
        or maybe after scaling the type 9 font from a type 9 copy ?),
        and we think it's not good.
        We believe that they should be released together with the type 9 font.
        For now leaving it as it is, working around with a hack notify_remove_font_type9.

   1.5. In stable font copies gs_type1_data_s::parent is set to NULL
        to simplify the finalization. They are not used now.

2. Bug : In some cases the glyph bytecode was used instead the CID
   as a key for searching a Metrics|Metrics2 element (zchar1.c).

3. Bug : The PDF interpreter wrongly scaled W,W2,DW,DW2 for CIDFontTYpe0 (pdf_font.ps).

4. pdfwrite : Improved the generation of W, W2 for CID fonts,
   because after implementing (1) re-distilled 401-01.ps rendered incorrectly.

   4.1. Prefer a non-zero width when computing DW, DW2 (gdevpdtw.c)
        (debugged with 401-01.ps).

   4.2. Don't skip zero W, W2 elements. The old code recognized zeros as
        unused glyphs, but must do with the real glyph set in the font copy
        (debugged with the test file of the bug 687681).

5. zcharstring_outline still ignores CDevProc. We believe that it is correct,
   because it is used to compute font features with no dependence on
   the relaced metrics.

6. pdfwrite : Allowed a CDevProc callout for CIDFontType 0, because
   pdfwrite needs to know replaced widths, as well as it was done a half year ago
   for CIDFontType2. Actually after implementing (1) pdfwrite stopped
   to work correctly when re-distilling a PDF file with CIDFontType0,
   due to now it uses W,W2,DW,DW2.

   6.1. A new function z1_set_cache is defined for this purpose
        similarly to zchar42_set_cache.

   6.2. gs_font_procs::glyph_outline now retrieves the side bearing and width.
        Added a new argument 'sbw' to all implementations.

      6.2.1. Currently this function extension is implemented for charstring fonts only,
          which need to interpret a charstring to retrieve the info :
          type 1,2,9, because we don't want to run the type 1 interpreter 2 times
          for getting sbw and bbox. Other font types retrieve zeros,
          which currently are not used.

      6.2.2. type1_cis_get_metrics has been made public.

7. We believe that the implementation of W,W2,DW,DW2 in the PDF interpreter,
   which was contributed by the gs-cjk team, is unreasonably overcomplicated,
   because it is based on CDevProc, which needs an interpreter callout,
   which appears extremily hard from pdfwrite.
   For now leaving it as it is (except a small improvement in (3)).
   We would like to generate Metrics, Metrics2 instead that.
   Note that a small part of this patch (the part (1)) is necessary
   for generating Metrics, Metrics2 for CIDFontTYpe 0.

EXPECTED DIFFERENCES :

Almost all differences are a single pixel glyph shift.

normal 72dpi :

"Altona.Page_3.2002-09-27.pdf"
"HeiseiMinStd.pdf"
"KozukaB-ILEmbed.pdf"
"Openhuis_pdf_zw.pdf"
"RodinCIDEmbed.pdf"

normal 300dpi :

"289-01.ps"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Technical_1v1_x3.pdf"
"CIDembedded.pdf"
"HeiseiMinStd.pdf"
"KozukaB-ILEmbed.pdf"
"Openhuis_pdf_zw.pdf"
"RodinCIDEmbed.pdf"

pdfwrite 72dpi :

"Altona.Page_3.2002-09-27.pdf"
"HeiseiMinStd.pdf"
"KozukaB-ILEmbed.pdf"
"Openhuis_pdf_zw.pdf"
"RodinCIDEmbed.pdf"

pdfwrite 300dpi :

"CIDembedded.pdf"
"HeiseiMinStd.pdf"
"KozukaB-ILEmbed.pdf"
"Openhuis_pdf_zw.pdf"
"RodinCIDEmbed.pdf"

[src/ichar1.h lib/pdf_font.ps src/gxfcopy.c src/zfcid0.c src/zfcid1.c src/gstype42.c src/zfont1.c src/gdevpdtt.c src/icharout.h src/gdevpdtw.c src/zchar1.c src/gxfont1.h src/zcharout.c src/gsfont.c src/gxtype1.c src/zfont42.c src/gxtype1.h src/zchar.c src/gxfont.h]

2004-09-22T00:37:12.000000Z Dan Coby

Move the definition of gs_overprint_t from gsovrc.c to gsovrc.h.  This
makes this structure definition available to future devices which may
want to define their own overprint compositor.

[src/lib.mak src/gsovrc.c src/gsovrc.h]

2004-09-21T22:30:35.000000Z Dan Coby

Correct some gcc warnings.

[src/gdevdevn.c src/zcolor.c]

2004-09-21T10:00:40.000000Z Igor Melichev

Fix (pdfwrite) : Generate an error message when pdfmark points beyond the last page.

DETAILS :

Fixes the bug 687693 "A dangling reference from DOCVIEW pdfmark".
We want to return error code, but currently we don't due to
bug 687686 "Ghostscript creates bad xref from ADOBE1-4.pdf".


EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c src/gdevpdfx.h src/gdevpdf.c]

2004-09-20T23:28:24.000000Z Dan Coby

Partial fix for 687657 Text in transparency mask yields rangecheck in
discardtransparencymask.

DETAILS:

Three problems have been found with this file.

The rangecheck is actually a secondary effect.  The actual problem
was a typecheck in setrgbcolor.  However that error occurred inside
a stopped context.

1) The file has a mask group.  This group specifies a color space (CS).
The previous code set the current color space to the given value.
However the FillColorSpace and StrokeColorSpace were not set.  As a
result, a DeviceRGB color space was being used instead of the specified
DeviceGray color space.  This resulted in a mismatch in the number
of operands when the color as set (1 versus 3).  The fix consists of
setting both StrokeColorSpace and FillColorSpace when a mask group
contains a CS value.

2) The file uses scn for setting color values for a DeviceGray color
space.  FillColor and StrokeColor can contain wither a single numeric
value (which is common but not required for DeviceGray) or an array
of values for all other color spaces.  The scn and SCN operators were
always assuming that these values always contained arrays.  The fix
consists of checking for the non array cases in the operators.

3) The appearance produced by Ghostscript with the test file does not
match Adobe.  A solid magenta rectangle is produced by Ghostscript.
Adobe shows magenta text.  This problem is NOT fixed by this patch.
Note:  If the test file is opened with Illustrator CS and then saved,
Ghostscript does produced the same appearance as Adobe for the saved
file.  The reason for the differences are not currently known.  However
there are some more details in the bug report on this issue.

[lib/pdf_draw.ps lib/pdf_ops.ps]

2004-09-20T22:14:59.000000Z Dan Coby

Fix for 687403 Poor halftoning for 16 color (4 bit) devices.

DETAILS:

This bug is a brother to bug 687390.  That bug was for 256
color (8 bit) devices.  Russell Lang suggested testing the 4 bit
devices and they were found to have problems caused by the same
logical error.  The halftoning logic assumes that all components
for a device have the same number of shades.  This was not true
for the implementations of the 4 and 8 bit color devices.
This fix converts the 16 color devices to using a 2x2x2 cube.

Note:  A possible future enhancement would be to convert these
devices to using a 4 level gray for shades of pure gray (R = G
= B).

[src/gdevdsp.c src/gdevpccm.h src/gdevpcfb.c src/gdevpcx.c src/gdevpm.c src/gdevbmp.c src/gdevpccm.c src/gdevpng.c src/gdevmswn.c src/gdevmgr.c]

2004-09-20T21:42:12.000000Z Dan Coby

Fix for 687664 tiffsep sometimes producing apparently corrupt files
sometimes.

DETAILS:

The tiffsep device did not properly handle multiple page input files.
This change adds multiple page handling to the tiffsep device.  Most
of the various tiff related routines already properly handled multiple
pages so changes were only required inside the tiffsep device.

The changes consists of:

1.  Moving several variables which were local to tiffsep_print_page
into the tiffsep device structure and adding initialization.  These
variables provide state information to the general tiff handling
routines and the file pointers for the separation files.

2.  Add logic for determining if the output file name includes a
numeric format specification.  If so then we create individual separation
files for each page.  If not then we create a single file for each
separation.

3.  A device close procedure was added to ensure that the separation
files were closed.

[src/gdevtsep.c]

2004-09-20T16:21:28.000000Z Igor Melichev

Fix (pdfwrite) : Could merge fonts with insufficient subrs.

DETAILS :

Bug 687675 "ps2pdf13 gives ERROR -15 closing the device"
happened due to an inaccurate computation of Subrs array inclusion.

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c]

2004-09-20T13:06:10.000000Z Igor Melichev

Fix : Degenerate curves could cause a too big number of flattened curve segnments.

DETAILS :

Bug 687653 "-dNOTRANSPARENCY still allocates large buffers".
Actually the problem happens due to the bbox device
sets a high resolution, and degenerate curves with zero X or Y variation
use "the conservative method" in gx_curve_log2_samples.
With this change degenerate curves will render as line segments.

EXPECTED DIFFERENCES :

golfer.eps At 72dpi (a 2 pixels difference).

[src/gxpcopy.c]

2004-09-20T10:50:54.000000Z Russell Lang

Fixes bug #687690 MSVC6 warning in dwimg.c.

[src/dwimg.c]

2004-09-20T09:59:29.000000Z Igor Melichev

Fix : vd_save caused a yntax error in a release build.

DETAILS :

See the comment added to vdtrace.h :
   /* NOTE :
  	    Use vd_save at end of the definition group of a  block,
  	    because in release build it compiles to the empty operator. */

EXPECTED DIFFERENCES :

None.

[src/vdtrace.h src/gxshade6.c]

2004-09-20T06:48:29.000000Z Raph Levien

Changes bbox device forwarding logic so that get_page_device requests
are always forwarded to the target. Fixes bug #687421. Note: this change
backs out a change made to gdevnfwd.c between GS 4.70 and 4.80, with a
confusing explanation in the change notes. Changes to the page device
behavior in forwarding devices would not be surprising. See the code
review notes linked from the bug for more details.

[src/gdevbbox.c src/gsovrc.c src/gdevnfwd.c]

2004-09-20T06:13:03.000000Z Ray Johnston

Fix handling of CMaps to be able to handle large number of CMap entries
seen with some (Adobe) CMap files. Also fix name of a CMap file and
remove garbage at the end of one of our CMap files. Bug 687555.
Thanks to Alex Cherepanov for the changes to allow large CMaps.

[Resource/CMap/Adobe-Korea1-H-Mac src/zfcmap.c Resource/CMap/Adobe-CNS1-ETenms-B5 lib/gs_cmap.ps Resource/CMap/Adobe-CNS1-ETen-B5]

2004-09-20T00:19:14.000000Z Jack Moffitt

Sets explicit umask for nightly regression run.  Fixes Bug #687648.

[toolbin/tests/run_nightly]

2004-09-19T23:56:53.000000Z Jack Moffitt

Fix support for filenames that include spaces.  Also add '.ai' as a PDF
type extension.

[toolbin/tests/gstestgs.py]

2004-09-19T23:55:08.000000Z Jack Moffitt

Fix a typo made by someone's previous commit.

[toolbin/tests/gscheck_pdfwrite.py]

2004-09-19T17:05:21.000000Z Jack Moffitt

Added new gsutil module for utility functions.  Changed all file extension
checks to use new gsutil.check_extension().  Added support for '.ai' as
a file extension.  This should fix the problem of several files in
comparefiles not making it into the nightly runs.

[toolbin/tests/gsutil.py toolbin/tests/update_pdfbaseline toolbin/tests/gscheck_raster.py toolbin/tests/make_testdb toolbin/tests/gscheck_pdfwrite.py toolbin/tests/revert_pdfbaseline toolbin/tests/update_baseline toolbin/tests/revert_baseline]

2004-09-19T16:32:28.000000Z Jack Moffitt

Add log rotation for the Ghostscript stdout and stderr logs.  Fixes
Bug #687574.

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

2004-09-18T22:00:38.000000Z Russell Lang

Fixes bug #687683 "gswin32c : Ctrl+C doesn't stop the application".
Make Ctrl+C in the image window act the same as Ctrl+C in the
console window, which generates a signal to exit the process.

[src/dwimg.c]

2004-09-17T06:14:16.000000Z Dan Coby

Fix for 687625 Incorrect spot color behavior in tiffsep.  Garbage
text was being printed for the spot color names.

DETAILS:

The problem was with the allocation and GC enumeration logic for the
storage for the storage for the spot color names.  Thus the problem
was only apparent after the GC relocation logic had executed.

The fix involves adding enumeration logic for the gs_param_string
structure and correcting the allocation of storage for the data.

Note:  The file src/gdevdevn.c was missed in the previous commit on
this topic.

[src/gdevdevn.c]

2004-09-17T05:55:57.000000Z Dan Coby

Fix for 687625 Incorrect spot color behavior in tiffsep.  Garbage
text was being printed for the spot color names.

DETAILS:

The problem was with the allocation and GC enumeration logic for the
storage for the storage for the spot color names.  Thus the problem
was only apparent after the GC relocation logic had executed.

The fix involves adding enumeration logic for the gs_param_string
structure and correcting the allocation of storage for the data.

[src/gsparam.h]

2004-09-17T05:42:19.000000Z Ralph Giles

Use PSOBJDIR as a staging area for the name-rewritten scripts at unix
install time. We previously used 'sed -i' to modify the installed file
in place, but this option is a recent extension and insufficiently
portable. The install script also isn't capable enough to accept files
through pipes, so we much have an intermediate staging area. PSOBJDIR
should be a safe place to write to for this purpose. Fix for 686863.

[src/unixinst.mak]

2004-09-16T15:14:53.000000Z Igor Melichev

Fix (PDF interpreter) : Correctly handle different widths for same glyph.

DETAILS :

Bug 687672  "incorrect font rendering".

An Encoding may specify various character codes for same glyph, and
Widths may specify different widths for those codes.
Thus same glyph may be used with different widths.

This patch continues a long story about the handling of different widths for same glyph,
which includes my old hacks (pdf_font.ps Revision 1.22 and 1.26)
and Alex's change pdf_font.ps Revision 1.57 .
Alex defines new glyph names for same glyph to resolve the widths conflict.
After the Alex's change my old hacks appear low useful, and can be removed.

This patch
1. Removes the hacks;
2. Improves the Alex's change with the case when CharStrings has no referred glyph
   (debugged with 1_2001.pdf)
3. Improves the Alex's change with minimizing a number of newly generated names,
   because the test file of the bug 687672 maps many charcodes to .notdef with various widths.

Here is a list of bugs related to this change :

687672
623292
467492
517474
444366

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps lib/pdf_ops.ps]

2004-09-16T08:03:56.000000Z Igor Melichev

Fix : A library context was not provided for bbox device.

DETAILS :

BBox device needs a library context for gs_next_id called from gx_image_enum_common_init.
It was not provided when the bbox device has no target.

We assume that the bbox device behavior doesn't depend on availability of a memory pointer -
likely it is so from reading the code.

Bug 687671 "epswriter it's not working at all."

EXPECTED DIFFERENCES :

None.

[src/gslib.c src/gdevbbox.c src/gdevvec.c src/gdevbbox.h src/gximag3x.c]

2004-09-16T07:46:14.000000Z Ralph Giles

Fix a typo in and earlier commit.

[src/unixinst.mak]

2004-09-16T06:57:43.000000Z Igor Melichev

Fix : A syntax error in a recent patch.

EXPECTED DIFFERENCES :

None.

[src/gdevbbox.c]

2004-09-15T19:41:01.000000Z Ray Johnston

Remove trailing ^M on lines in several commits by alexcher.

[src/dwimg.h src/iscannum.c src/dwtrace.h src/dwmain.c src/gdevbbox.c src/dwmainc.c src/zdevice.c src/gs.c src/unistd_.h src/gdevwdib.c src/stream.c]

2004-09-15T11:46:41.000000Z Alex Cherepanov

Fix the problems reported by HP aC++/C compiler but unrelated to the crash.
Partial fix for 687643

[DETAILS]
gs.c, int.mak - include the prototype of gs_malloc_init()
ttfmain.c - fix partly initialized FixMatrix m;
gdevpsd.c - allocate 4 elements for CMYK, not 3

[src/gdevpsd.c src/int.mak src/ttfmain.c src/gs.c]

2004-09-15T07:59:18.000000Z Igor Melichev

A new implementation of shadings, step 87.

DETAILS :

Contrary to PLRM3 page 689, Background was not ignored with shfill.
Adding gs_pattern2_instance_s::shfill for that.
Bug 687673 "Axial shadings differ from Adobe".

EXPECTED DIFFERENCES :

Background isn't painted with 'shfill' (a progression) :
"464-01.ps"
"483-01.ps"
"483-05-fixed.ps"

[src/lib.mak src/gsptype2.c src/gsptype2.h src/gscolor3.c]

2004-09-15T07:21:01.000000Z Igor Melichev

A new implementation of shadings, step 86.

DETAILS :

1. Implemented gx_shade_background with a compatible INTERPATCH_PADDING logic
   for filling a background.
2. The clipping logic in gdevdsha.c must be "any ppart of pixel inside",
   as it is in other places.
3. Dont need adjust_swapped_boundary for clipping rectangles (gxshade6.c).
4. INTERPATCH_PADDING is enlarged to half pixel. See comment in code.
5. Optimized with a better clipping in gx_shade_trapezoid.

Completes the fix for 687585 "A shading renders narrower than its background".

EXPECTED DIFFERENCES :

Shadings render slightly different :

"442-01.ps" 
"446-01-fixed.ps" 
"464-01.ps" 
"478-01.ps" 
"483-01.ps" 
"483-05-fixed.ps" 
"Altona-Testsuite_p2_S_x3.pdf" 
"BEST8-99-Path.fh7.pdf" 
"chilis_black.pdf" 
"chilis_red.pdf" 
"Clarke Tate Manns Chinese.ai" 
"gradmesh.ai" 
"Openhuis_pdf_zw.pdf" 
"S2_Digitalproof-Forum_x3k.pdf" 
"self-intersect2.ps" 
"shading_prob_800.ps" 
"SmoothShading.pdf" 
"STEUER-RollingMesh 1(linear).ai" 
"STEUER-RollingMesh 2(radial).ai" 
"STEUER-RollingMesh 3(Final).ai" 
"Testform.v1.0.2.pdf"

[src/gxshade4.h src/gsshade.c src/gdevdsha.c src/gxshade6.c]

2004-09-14T21:38:41.000000Z Russell Lang

Add custom page size to PostScript Printer Description file.

[lib/ghostpdf.ppd]

2004-09-14T06:45:55.000000Z Russell Lang

Fixes bug 687542 Print with pswrite gives 'Could not open the
file \\spool\yourprinter'. Add a %printer% IODevice for OS/2,
which opens to a temporary file then later copies it to the
print spooler.  This will need "%printer%yourprinter",
not "\\spool\yourprinter".
This is needed to make pswrite write to a printer queue.

[src/gp_os2.h doc/Develop.htm src/gp_os2.c src/os2.mak src/gp_os2pr.c]

2004-09-14T06:42:32.000000Z Russell Lang

Add support for 4-bit/pixel CMYK to the display device clients for
Windows and gtk+.

[src/gdevdsp.c src/dxmain.c src/dwimg.c]

2004-09-13T22:33:15.000000Z 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]

2004-09-13T22:08:16.000000Z Ray Johnston

Handle CS/cs PDF operators that have a colorspace array as an operand
instead of a name as the specification requires (yet another broken PDF
that Acrobat Reader handles without complaint). Issue pdfformaterror when
bad CS operands are seen. Bug 687610 for customer 770.

[lib/pdf_draw.ps]

2004-09-13T18:32:23.000000Z Igor Melichev

A new implementation of shadings, step 85.

DETAILS :

Propagate error codes from shade_bbox_transform2fixed.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade1.c src/gxshade4.c src/gxshade6.c]

2004-09-13T16:01:16.000000Z Igor Melichev

A new implementation of shadings, step 84.

DETAILS :

Fixed a Cygwin/gcc warning.

EXPECTED DIFFERENCES :

None.

[src/gsshade.c]

2004-09-13T15:52:49.000000Z Igor Melichev

A new implementation of shadings, step 83.

DETAILS :

This is a partial fix for the bug
687585 "A shading renders narrower than its background".
It fixes various secondary problems :

1. gx_default_fill_linear_color_scanline could miss pixels at the end of the scanline
   (bug 687585 "A shading renders narrower than its background", the right boundary).

2. decompose_linear_color could miss pixels when swapping axes of the clip rectangle.
   (bug 687585 "A shading renders narrower than its background", the top boundary).
   Defined adjust_swapped_boundary and applied for this purpose.

3. mesh_padding cauld miss pixels  when swapping axes of the padding.
   Defined adjust_swapped_boundary and applied for this purpose.

4. Moved the fill adjustment from gx_dc_pattern2_fill_path to gsshade.c
   and disabled it in the NEW_SHADINGS build, because NEW_SHADINGS build never
   needs it. Instead that it applies mesh_padding.
   The new function gx_dc_pattern2_fill_path_adjusted access the new functionality
   from outside gsshade6.c .
   Also renamed gx_dc_pattern2_fill_path_adjusted with gx_dc_pattern2_fill_path
   for a better reflection of its new purpose.

5. Implemented VD_TRACE_DOWN in try_device_linear_color.
   The old code did a misleading drawing.

6. Fixed a conflict of the 's' flag in the -T argument.
   Changed the documentation to reflect that.

EXPECTED DIFFERENCES :

Shading render slightly different :

72 dpi :
"446-01-fixed.ps"
"483-01.ps"
"483-05-fixed.ps"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"  (a strong progression)
"SmoothShading.pdf"
"STEUER-RollingMesh 3(Final).ai"

300dpi :

"442-01.ps"
"446-01-fixed.ps"
"464-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"BEST8-99-Path.fh7.pdf"  (a strong progression)
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai" (a strong progression)

[src/lib.mak src/gsptype2.c src/gsshade.c doc/Use.htm src/gsptype2.h src/gsshade.h src/gdevdsha.c src/gxfill.c src/gxstroke.c src/gxshade6.c]

2004-09-13T07:13:35.000000Z Igor Melichev

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]

2004-09-12T19:12:16.000000Z Igor Melichev

A new implementation of shadings, step 82.

DETAILS :

The preceeding patch was incorrect in the point (1)
"constant_color_quadrangle painted a triangle when the quadrangle is degenerate.".
There exist cases when quadrangle degenerates to a triangle, and
the patched code skipped it. This putch fixes that.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-09-09T21:01:31.000000Z Igor Melichev

Fix : Type 3 charproc must inherit flattnes from the text context.

DETAILS :

Bug 687582 "Flatness in a Type 3 font".
The feature has been tested with Adobe CPSI.

EXPECTED DIFFERENCES :

"012-09.ps"
"013-09.ps"
"014-09.ps"
"015-09.ps"
"020-01.ps"
"027-05.ps"
"032-07.ps"
"045-01.ps"
"083-09.ps"
"093-01.ps"
"103-01.ps"
"118-01.ps"
"136-01.ps"
"165-01.ps"
"192-01.ps"
"205-09.ps"
"231-01.ps"
"233-01.ps"
"238-01.ps"
"251-01.ps"
"281-01.ps"
"289-01.ps"
"298-09.ps"
"308-04.ps"
"311-03.ps"
"321-09.ps"
"409-01.ps"
"a.pdf"
"Altona.Page_3.2002-09-27.pdf"
"Altona_Technical_1v1_x3.pdf"
"Bug687207.ps"
"Type3stringwidth.ps"

[src/lib.mak src/gxpaint.c]

2004-09-09T20:52:51.000000Z 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.

[lib/gs_lev2.ps]

2004-09-09T17:47:06.000000Z Igor Melichev

A new implementation of shadings, step 81.

DETAILS :

1. constant_color_quadrangle painted a triangle when the quadrangle is degenerate.
2. rangecheck happened if the path lies entirely within an Extend area of an axial shading.
3. Due to a poor precision of t0, t1, Extend areas were painted when they have a zero width.
Bug 687646  .

EXPECTED DIFFERENCES :

"442-01.ps"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"

[src/gxshade1.c src/gxshade6.c]

2004-09-09T12:44:37.000000Z Igor Melichev

fuzzy.c : Improving the return codes.

DETAILS:

Return 2 on "out of window",
return 1 with a difference within the window,
return 0 otherwize (files equal).

[toolbin/tests/fuzzy.c]

2004-09-09T11:33:13.000000Z Igor Melichev

(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]

2004-09-09T11:24:02.000000Z Igor Melichev

Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 2.

DETAILS :

Switch on the new code in gxhintn.h, gxhintn.c .
See the preceeding log message about the configuration flags :
http://www.ghostscript.com/pipermail/gs-cvs/2004-September/004792.html .
Fixes bugs
687578 "T1 hinter disturbs stem width"
687579 "Type 1 hinter disturbs glyph height"
687588  "A CJK TT rendering worse"


EXPECTED DIFFERENCES :

A massive glyph rendering difference :
about 50% of files at 72dpi, and about 95% of files at 300dpi.

[src/gxhintn.h]

2004-09-08T10:13:39.000000Z Igor Melichev

Fix (Type 1 hinter) : A further improvement of the glyph rendering quality, step 1.

DETAILS :

This change is algorithmically equivalent,
because new code is disabled wirth configuration switches
listed below.

1. FINE_STEM_COMPLEXES
   1.1. Stem complex could miss a common boundary.
   1.2. Stem width could be distorsed due to a common boundary missing
        (Bug 687578 "T1 hinter disturbs stem width".).
   1.3. Overall hint (if presents) should have a bigger priority.
2. ALIGN_BY_STEM_MIDDLE
   2.1. A stem middle could be shifted too much due to
        independent grid-fitting of boundaries and the change 1.2 -
        see 'i' in ccc-.pdf attached to Bug 687578.
        Fixed with an improved alignment with t1_hinter__align_stem_to_grid.
   2.2. This isn't applicable for top|bottom zones from the TT stem recognizer,
        because we want to force outer boundaries to keep the glyph height.
   2.3. 033-52-5873.pdf defines "pseodo-stem" hints,
        which have only one boundary corresponding to real poles.
        recognize them with t1_hinter__mark_existing_stems,
        and don't apply the improved alignment,
        because those stems designate outer glyph boundaries,
        which we want to force the uniform glyph height.
        Apparently fixes Bug 687579 "Type 1 hinter disturbs glyph height".
3. OPPOSITE_STEM_COORD_BUG_FIX
   Aligning a stem width, the resolutions by X and Y were exchenged.
4. TT_AUTOHINT_TOPZONE_BUG_FIX
   topzone and botzone were mixed when come from the TT stem recognizer.

Also improved general comments in gxhintn.c .

EXPECTED DIFFERENCES :

None (the new code disabled).

[src/gxhintn.c src/gxhintn.h]

2004-09-08T09:36:16.000000Z Igor Melichev

fuzzy.c : Improving the report message.

DETAILS:

Print report message if any difference found.
Before now it was printed only if out of window.
Return error code only if out of window,
as it was before.

[toolbin/tests/fuzzy.c]

2004-09-08T07:00:15.000000Z Ralph Giles

Translate the name of the gs executable stored in the utility scripts at
install-time on unix. Closes bug 686863.

DETAILS:

The autoconf build supports a --with-gs= option for setting the
name of the Ghostscript executable, which is stored in the makefiles as
'$(GS)', but scripts such at ps2pdf that expect to make invoke
Ghostscript made no use of this variable, causing version skew at best,
complete failure of that popular utility at worst. We therefore now
rewrite the hard-coded name each time we install the utility scripts.

[src/unixinst.mak]

2004-09-08T06:28:04.000000Z Ralph Giles

Propagate autotools build system changes from the GS_8_1X branch. Use
the proper macro for the 'rm' function, and a more specific test for
locating the local libpng library source.

[src/Makefile.in src/configure.ac]

2004-09-06T21:23:39.000000Z Ray Johnston

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

[toolbin/tests/gstestgs.py]

2004-09-06T07:26:41.000000Z 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

[lib/gs_lev2.ps doc/Use.htm src/scantab.c lib/gs_init.ps]

2004-09-03T20:23:10.000000Z Ray Johnston

Add missing memory argument in 'I' interp debug printing. Also remove
local prototype for debug_print_ref in favor of using idebug.h. Fixes
SEGV when using -ZI or (I) true .setdebug.

[src/int.mak src/interp.c]

2004-09-02T21:49:05.000000Z 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]

2004-09-02T21:30:53.000000Z Ralph Giles

Propagate memory pointer gs_malloc() changes to the optional lj3100sw
device. Patch from Harald Koenig. Closes bug 687636.

[src/gdevl31s.c]

2004-09-02T08:26:30.000000Z Igor Melichev

Fix : Unwind an unintentional change to setup_image_compression.

DETAILS :

I guess that gdevpsdi.c revision 1.30 was unintentionally modified with the patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-August/004681.html

EXPECTED DIFFERENCES :

None.

[src/gdevpsdi.c]

2004-08-31T22:07:39.000000Z 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]

2004-08-31T20:36:40.000000Z 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]

2004-08-31T20:05:12.000000Z Ralph Giles

Bump version after the 8.31 beta release.

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

2004-08-31T19:23:14.000000Z Alex Cherepanov

Trap C stack overflow exception on Borland C and MSVC. Without the
trap the application silently terminates when C stack overflows.
Fix bug 687461

[DETAILS]
Watcom C 1.2 doesn't need the trap. It is also the only compiler tested 
that converts trailing recursion to iteration. GCC 3.2 on Windows still 
generates programs that fail silently but I don't know how to fix this. 
GCC 2.95 on Linux reports the stack overflow.

[src/winint.mak src/windows_.h src/dwmain.c src/dwmainc.c]

2004-08-31T13:49:33.000000Z Igor Melichev

Fix : Arcs were imprecise (continued).

DETAILS :

A previous patch had a minor portability defect :
PRECISE_CURRENTPOINT was used before defined.

EXPECTED DIFFERENCES :

None.

[src/gxmatrix.h]

2004-08-31T13:23:16.000000Z Igor Melichev

Fix : Arcs were imprecise.

DETAILS :

Bug 687584 "An extra element painting a circle.".

The problem happened due to the PRECISE_CURRENTPOINT patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-March/004333.html
appears incomplete : arcs were not improved.
This patch fixes that.

1. Applied gs_point_transform2fixed_rounding in arc_add
to be consistent with the precise current point.

2. Renamed float2fixed_rounding with float2fixed_rounded
and made it global.

3. Moved the definition of PRECISE_CURRENTPOINT
to the appropriate scope.

We leave many places in code, in which
the unrounded transform is still applied,
but those places do not deal with the current point.

EXPECTED DIFFERENCES :

Massive difference with acrs :

normal, 72 dpi :
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"027-05.ps"
"031-01.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"035-07.ps"
"103-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"148-16.ps"
"149-05.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"192-01.ps"
"237-01.ps"
"244-01.ps"
"289-01.ps"
"298-09.ps"
"308-04.ps"
"311-03.ps"
"321-09.ps"
"Bug687207.ps"
"vasarely.ps"

normal 300 dpi :

"213-01.ps"
"214-01.ps"
"244-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"258-01.ps"
"270-01.ps"
"289-01.ps"
"014-01.ps"
"014-01.ps"
"014-13.ps"
"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"027-05.ps"
"031-01.ps"
"032-01.ps"
"034-01.ps"
"034-10.ps"
"035-07.ps"
"103-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"148-16.ps"
"149-05.ps"
"150-01.ps"
"154-01.ps"
"158-01.ps"
"192-01.ps"
"237-01.ps"
"244-01.ps"
"298-09.ps"
"308-04.ps"
"311-03.ps"
"321-09.ps"
"Bug687207.ps"
"vasarely.ps"

pdfwrite, 72 dpi :

"012-01.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"032-01.ps"
"034-10.ps"
"123-01.ps"
"123-05.ps"
"192-01.ps"
"298-09.ps"
"321-09.ps"
"vasarely.ps"

pdfwrite 300 dpi :

"012-01.ps"
"012-05.ps"
"012-09.ps"
"012-13.ps"
"013-01.ps"
"013-05.ps"
"013-09.ps"
"013-13.ps"
"014-01.ps"
"014-05.ps"
"014-09.ps"
"014-13.ps"
"015-01.ps"
"015-05.ps"
"015-09.ps"
"027-05.ps"
"032-01.ps"
"032-07.ps"
"034-01.ps"
"034-10.ps"
"109-01.ps"
"123-01.ps"
"123-05.ps"
"123-09.ps"
"192-01.ps"
"220-01.ps"
"237-01.ps"
"245-17.ps"
"251-01.ps"
"255-01.ps"
"258-01.ps"
"269-01.ps"
"270-01.ps"
"298-09.ps"
"308-04.ps"
"321-09.ps"
"442-01.ps"
"446-01.ps"
"Bug687207.ps"
"vasarely.ps"

[src/gsmatrix.c src/gxfixed.h src/gxstate.h src/gspath.c src/gspath1.c src/gxmatrix.h]

2004-08-31T09:07:56.000000Z Igor Melichev

Implementing Visual Trace for 'stroke'.

DETAILS :

It is necessary for analyzing the Bug 687584,
and it is useful in general.

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/vdtrace.h doc/Use.htm src/gxfill.c src/gxstroke.c]

2004-08-30T21:45:48.000000Z Dan Coby

Fix for 687607   Text missing with TextALphaBits=2 and tiffsep device.

DETAILS:

The TextAlphaBits and GraphicsAlphaBits device parameters were not working
for devices with a depth of more than 32 bits.  The fix involves replacing
the copy_alpha device procs in the 40, 48, 56, and 64 bit memory devices
with the gx_default_copy_alpha routine.  These devices previously had a
copy_alpha routine which did nothing.  This was a mistake from when these
devices were created as part of the DeviceN work.

[src/gdevm64.c src/gdevm56.c src/gdevm48.c src/gdevm40.c]

2004-08-30T16:45:04.000000Z 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]

2004-08-29T02:07:29.000000Z Ralph Giles

Update changelogs for release.

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

2004-08-28T22:10:59.000000Z Ralph Giles

Update the version and date on the VMS help file.

[doc/gs-vms.hlp]

2004-08-28T21:54:16.000000Z Ralph Giles

Update release date on documentation.

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

2004-08-28T21:47:47.000000Z Ralph Giles

Change the product name to BETA RELEASE

[src/gscdef.c]

2004-08-28T21:47:01.000000Z Ralph Giles

Add recent new files to the listings in the documentation.

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

2004-08-28T21:28:16.000000Z Ralph Giles

Update release notes and open bug list for the 8.31 beta release. Bump
the release date as well.

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

2004-08-26T09:13:08.000000Z Russell Lang

Fix half-toning for display device, bug 687629.

DETAILS:
Prior to DeviceN, dither_gray/max_gray were used if ncomp==1.
With DeviceN, dither_gray/max_gray are used if gray_index >= 0.
The display device was not correctly setting gray_index for
native 1-bit/pixel format.

[src/gdevdsp.c]

2004-08-26T00:15:19.000000Z Ray Johnston

Fix for image matrix having negative values.  Thanks to Len Sorenson
for submitting this patch (author unknown).  Bug #687411.

DETAILS:

The error is using floor to round a value without checking if it might
be negative first. There were actually two places that did this even
though the patch that was originally submitted only was for one of them.

[src/gximag3x.c]

2004-08-26T00:04:48.000000Z Ray Johnston

Close the font file after the font has been processed (loaded into VM).
This prevents a problem with using up too many file handles detected on
Solaris. Thanks to Alex Cherepanov for the patch. Bug #687066.

DETAILS:

The patch has no effect on the cache. There is no point of not closing
the file after the content has been copied to memory.

On GNU/Linux GS has 250K VMThreshold and 1024 handles. That's enough.
On Windows GS has 1M VNThreshold and 512 handles. This is still OK.
On Solaris GS has 1M VMThreshold and 256 handles. Handles can be used up
before garbage collection starts. The following program fails on Solaris.

(a)(w) file closefile
1000 { (a)(r) file pop } repeat

Dependence on VMThreshold indicates that GC is not activated by
open(2) failing with EMFILE . This is a real bug, the patch is
just a work around that we may need to fix later, but not likely to
be a problem.

[lib/gs_type1.ps]

2004-08-25T23:52:37.000000Z Ray Johnston

Fix to close streams at EOF (not only filter streams), as required by
the PLRM. Thanks to Alex Cherepanov for this patch. Bug #687505.

DETAILS:

This is similar to a patch that I had developed and tested prior to
Alex's patch. I had tested my patch, then Alex's against the regression
suite and determined that it does not cause any differences.

Alex's patch conforms to my analysis of the problem and the fix.

[src/stream.c]

2004-08-25T15:56:29.000000Z Alex Cherepanov

Bind all operators in DefaultGray, DefaultRGB, DefaultCMYK color spaces.
Partial fix for the bug 687608

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

2004-08-24T17:51:31.000000Z Igor Melichev

Fix (pdfwrite) : A page compression type change could cause a crash.

DETAILS :

Bug 687626 "A crash in pdfwrite".
It crashed after the compression is changed from none to Flate
with setdevparams inside a page.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c src/gdevpdfu.c]

2004-08-24T15:36:19.000000Z Igor Melichev

Fix : gs_lib_ctx was wrongly accessed while looking up a dictionary stack extension.

DETAILS :

Bug 687623  A crash in the interp.c

EXPECTED DIFFERENCES :

Fixes crash with re-distilled files :
251-01.ps
Bug687044.ps
Bug687489.ps
test-setweightvector.ps,
tpc2.ps

[src/idstack.c]

2004-08-24T15:36:08.000000Z Igor Melichev

Fix : gs_lib_ctx was not accessible while clist_playback_band.

DETAILS :

Bug 687624 "A crash in gp_check_interrupts".


EXPECTED DIFFERENCES :

Fixes crash with re-distilled files :
Svd.pdf
test.pdf

[src/gxclread.c]

2004-08-24T12:52:38.000000Z Igor Melichev

Fix (TT interpreter) : Provide a tolerance to an inconsistent cvt length.

DETAILS :

Bug 687604 "/invalidfont in --show-- error".

We analyzed UFST and Free Type 2.
UFST has same problem.
FreeType 2 provides a tolerance, which we port now.
Note that now we don't port a tolerance for other CVT commands.

EXPECTED DIFFERENCES :

None.

[src/ttinterp.c]

2004-08-24T10:58:38.000000Z Igor Melichev

Fix (TT interpreter) : A minor portability problem.

DETAILS :

A preprocessor statement didn't start in the first column.
Occasionally discovered readin the code.
Some time ago it was claimed as non-portable.

EXPECTED DIFFERENCES :

None.

[src/ttload.c]

2004-08-24T09:10:22.000000Z Igor Melichev

Fix : Makefiles missed a dependency.

DETAILS :

After rebuilding the last revision got a crash due to gp_mspol.c
was not recompiled. Found out that gslibctx_h was
wrongly defined in lib.mak .
Also changed the including of stdio.h in gslibctx.h to
a C library file (IMO it should be so).

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gslibctx.h]

2004-08-23T09:57:21.000000Z Russell Lang

Allow the display device row alignment to be changed from the
default 4 bytes to 8, 16, 32 or 64 bytes.

DETAILS:
If the image is allocated in video display memory, an alignment
such as 16 bytes (128-bit memory) may be required.
This is implemented by making the underlying memory device
use a larger width than the display device.

[src/gdevdsp.c src/gdevdsp.h]

2004-08-19T21:52:20.000000Z Russell Lang

Changed iapi to use a void* instead of a gs_main_instance pointer.

[src/dxmain.c src/dwmainc.c src/dxmainc.c src/dmmain.c src/dpmain.c]

2004-08-19T19:33:09.000000Z stefan

Changed iapi to use a void* instead of a gs_main_instance pointer.
Cleaned up warning related to function pointer signature miss-matches.

DETAILS:

iapi.h no longer defines a type for gs_main_instance *
This will likely need to be put back in for backward compatibility.

The iapi interface now uses a void * instance handle reflecting
that it is an opaque type to the outside world.

Note that function pointer argument miss-matches generate warnings in
msvc but not in gcc.  These have been fixed.

[src/zchar32.c src/gsccode.h src/gxfcache.h src/gscpixel.c src/gslibctx.c src/dwmain.c src/ilocate.c src/gxccman.c src/zpacked.c src/iapi.c src/gscpixel.h src/gdevpdtw.c src/gslibctx.h src/gsalloc.c src/iutil.c src/iapi.h src/gscspace.c src/gsdevice.c src/zcssepr.c src/iutil.h src/idict.c src/zfont.c src/sdctc.c src/gdevpsf.h src/gdevpsfm.c]

2004-08-19T10:50:17.000000Z Russell Lang

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

[lib/ghostpdf.ppd doc/Ps2pdf.htm doc/Develop.htm lib/ghostpdf.inf]

2004-08-19T07:38:05.000000Z Russell Lang

Enable progressive updates for the image window of
the MS-Windows ghostscript command line program.
Change update method to use a Windows timer.

DETAILS:
In the MS-Windows GUI executable (i.e. text window managed by
ghostscript rather than using a system console window), the image
window is progressively updated every second or so as each page
is drawn.  The console executable did not do this.

The update code for both GUI and console executables is changed to
use a timer.  The display update code is called whenever particular
device drawing operations happen, and if a timer is not already
running, it starts an update timer.  The minimum update interval
is shortened from 1s to 100ms. The time to refresh the window is
measured, and the update interval may be increased to make sure
that updates account for no more than 10% of processing.
The update interval is decreased if subsequent updates are
much quicker.  The timer is stopped by any sync.

[src/dwimg.h src/dwmainc.c src/dwimg.c]

2004-08-18T22:25:54.000000Z stefan

Fixed dependancies for gslibctx.h

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

2004-08-18T22:24:47.000000Z stefan

Removed redundant include.

[src/gsmalloc.c]

2004-08-18T20:44:46.000000Z Igor Melichev

Fix (pdfwrite) : Check for glyph name conflicts while font merging.

DETAILS :

Bug 687597  pdf created by pdfwrite has garbled text (spr 3994)

1. When a document embeds 2 fonts with same name, same hinting
and same glyph names but different charstrings, the old code
didn't compare charstrings and erroneusely merged fonts.

2. pdf_obtain_font_resource_encoded didn't compare the hinting
because same_type1_hinting computed a too strong condition
(this change is not strongly neccessary for the bug).

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c src/gdevpdtt.c]

2004-08-18T14:40:52.000000Z Igor Melichev

Fix (pdfwrite) : Wrong glyph positions with CIDFontType2 with no vmtx.

DETAILS :

Bug 687603  vertical text misplaced after distilling .

1. When computing the glyph position, must account that we write
DW2[0 0] when there is no vmtx.

2. Computing a DW2, the advance got a wrong sign.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c]

2004-08-18T04:48:56.000000Z Dan Coby

Implementation of 687496 transparency and CMYK support.

DETAILS:

This change extends our current implementation of the PDF 1.4
transparency to include blending in a DeviceCMYK color space.
There is also a partial implementation of a DeviceGray blending
space.  However I do not have a method of generating test data
for a DeviceGray blending space.  Currently the choice of a
blending color space is based upon the process color model of
the output device.

Note:  There two differences expected in the regression testing.
These are with ai2.pdf and dina3_watermark.pdf.

[src/lib.mak src/gxblend.c src/gdevp14.c]

2004-08-17T20:21:16.000000Z Ray Johnston

Add PDFSTEP debug aid. Prints a step number at end of PDFDEBUG line, and
sync's the display, then reads a number of steps to skip ( == single
step). This is rudimentary but somewhat useful. Invoked with -dPDFSTEP.

[lib/pdf_base.ps]

2004-08-17T19:56:04.000000Z Ralph Giles

Bump the version number after the last beta release.

[src/gscdef.c src/version.mak lib/gs_init.ps]

2004-08-17T19:39:34.000000Z Ralph Giles

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

[doc/FTL.txt LICENSE]

2004-08-17T18:59:35.000000Z Ray Johnston

Add support for PDF single stepping debug aid (PDFSTEP). Actual interpreter
changes made separately.

[lib/gs_init.ps]

2004-08-17T17:53:13.000000Z Ray Johnston

Handle invalid PDF's that use 0.0 font scaling (Tf operator). Fixes bug
687606 for customer number 780.

DETAILS:

If the font scale is 0.0, then just use a very small value. This may result
in a small unwanted dot, but that is probably not an issue since it is
an invalid value. The better approach for 'invisible' text is to use
TextRenderingMode 3. The 'pdfformaterror' function is used to complain
about this so the problem might get fixed by the PDF Creator.

[lib/pdf_ops.ps]

2004-08-14T02:06:18.000000Z Russell Lang

Correct the previous MSVC 8 updates to allow compilation with debugging.

[src/msvccmd.mak src/msvc32.mak]

2004-08-13T12:59:03.000000Z stefan

Added missing parameter types to prototype.

[src/gpcheck.h]

2004-08-13T04:57:17.000000Z Russell Lang

Detect the version of Microsoft Visual C++ from the version of nmake.

[doc/Make.htm src/msvc32.mak]

2004-08-13T00:16:09.000000Z Russell Lang

Add support for compiling with the beta of Microsoft Visual
Studio 2005, also known as MSVC 8.

DETAILS:
Add new MSVC_MINOR_VERSION=1 to distinguish Microsoft Visual
Studio .NET 2003 (MSVC 7.1) from Microsoft Visual Studio .NET
(MSVC 7.0)
Add new MSVC_VERSION=8 for Microsoft Visual Studio 2005
Ignore deprecated warnings from MSVC 8 with /wd4996, because
insecure CRTL functions like strcpy and sprintf are now
marked as deprecated.
Remove /Ze which is always the default and is unknown to MSVC 8.
Replace /O with /O2.  The former is not documented for MSVC 5 - 8
and is unknown to MSVC 8.
Remove /Gs and /Ge for MSVC 8.  Stack checking is now always done.

[doc/Make.htm src/msvccmd.mak src/msvc32.mak]

2004-08-11T14:33:02.000000Z stefan

Added memory pointers to gsmalloc use by jpg2000 interface.

DETAILS:

Added jpx_memory to the stream state since the memory pointer
in a normal stream object in often NULL indicating a stack object.

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

2004-08-11T13:36:58.000000Z Ray Johnston

When scaling factors of /ImageMatrix in a image mask for ImageType3 are
negative, translation offset values for image mask rendering are
incorrect and it makes abnormal output (eg. white lines).
This patch fixes this bug #686843. Thanks to Len Sorensen for the analysis.

[src/gximage3.c src/gximag3x.c]

2004-08-11T12:58:06.000000Z Ray Johnston

Fix bug 687038 that resulted in a crash if the initial device was not
pdfwrite.

DETAILS:

This was almost fixed by recent changes to gs_pdfwr.ps and
gs_setpd.ps for bugs 687325, 687436 and 687458.

Unfourtunately, the initialization of parameters only occurred
if the initial device was pdfwrite. A second patch removing
the initial device constraint on the '1010' .schedule_init
process was committed and fixes the problem.

Note that there was a work-around that if -dPDFSETTINGS=... was
given on the command line, it also worked.

EXPECTED DIFFERENCES:

none, since we don't test for this usage.

[lib/gs_pdfwr.ps]

2004-08-10T13:02:36.000000Z stefan

Added memory_t pointers to gs_malloc() gs_free() calls in
devices that aren't normally built.

[src/gdevccr.c src/gdevcp50.c src/gp_macio.c src/gdevcslw.c src/gdevlp8k.c src/gdevwddb.c src/gdevadmp.c src/gdevsgi.c src/gdevhl7x.c src/gdevos2p.c src/gdevsppr.c src/gdev3b1.c src/gdevmgr.c src/gdevwprn.c src/gdevsunr.c src/gdevsj48.c src/gdevn533.c src/gdevo182.c src/gdevimgn.c src/gdevokii.c src/gdevpsdi.c src/gdevlxm.c src/gdevcif.c src/gdevphex.c src/gdevp14.c]

2004-08-10T12:59:53.000000Z stefan

fixed bug with iapi, removed gs_lib_finit()'s call of gs_malloc_release.

DETAILS:

The problem is that single instance and multi instance interfaces
both call gs_to_exit() with different meanings.

If gs_lib_init0 was called then it should malloc_release
single instance exit library means free all.

If the iapi interface was used then the memory
should not be freed since gs_lib_finit() and gs_to_exit()
are called when the interpreter is exited but there is a
seperate delete_instance call that should free the memory

[src/gsinit.c]

2004-08-09T17:02:44.000000Z stefan

Fixed uninitialized fstdio2 pointer.

[src/gslibctx.c]

2004-08-05T20:17:17.000000Z stefan

Fixed incorrect function pointer prototype,
const gs_memory_t *  argument was missing.

[src/gxfcache.h src/gxfcopy.c]

2004-08-05T20:15:09.000000Z stefan

Valid memory pointer used create a tile_clip device instead of NULL.

Details :

This needs to be leak checked.

[src/gxp1fill.c]

2004-08-05T17:02:36.000000Z stefan

Windows only:
check_interrupts() with a mem pointer to access the poll function.

DETAILS :

This is windows specific since only windows uses the polling
function in check_interrupts() macros.  If the gs_dll interface
is used then a single instance is forced since the design of that
interface forces one thread per process.  The iapi interface can not
but enabled for more than one thread until the stream calling check_interrupts()
calls are fixed.

process_interrupts(NULL) calls are currently hacked to access a global memory
pointer intended for access to stderr.  This is a place holder until the
stream object changed that guarantee a valid memory pointer in process_stream
calls are committed.  Basically it is common to allocate a stream object on the
stack and use it in a functional manor with an uninitialized memory pointer in the
object.

[src/gp_mslib.c src/gdevwprn.c src/gp_macpoll.c src/gdevwpr2.c src/gp_mspol.c src/gxdtfill.h src/gp_mswin.c src/sfxstdio.c src/gdevddrw.c src/gxclrast.c src/gdevdbit.c src/gxclread.c src/sfxfd.c src/gxclutil.c]

2004-08-04T23:40:41.000000Z stefan

fixed typo in last commit.

[src/gpcheck.h]

2004-08-04T23:33:29.000000Z stefan

gs_memory_t pointer additions for msvc build.

DETAILS :

Mostly gs_malloc() and gs_free() additions of a gs_memory_t argument.

Not gsdll.c forces a single instance.

[src/gdevdm24.c src/gp_mspol.c src/gdevmsxf.c src/gsmisc.c src/gsargs.c src/main.h src/gdevmswn.c src/gxclutil.c src/gdevdsp.c src/gdevwpr2.c src/gdevescp.c src/interp.c src/gdev4081.c src/imain.h src/sfxstdio.c src/gdev8510.c src/msvc32.mak src/gsdll.c src/gxccache.c src/gdevpjet.c src/gpcheck.h src/gdev4693.c]

2004-08-04T19:36:13.000000Z stefan

Addition of a Library Context to start the process of removing globals.

DETAILS :

The goals is to remove globals from the system, this includes static
globals that would hinder multiple threads from running at once.

gs_lib_ctx is intended to be used as the opaque "handle" object
that a client would use to associate with a thread running through
the library.  Independent of a gs or a language switch build, this
needs a new iapi2.h that allows the use of better job control from the
client side.

gs_lib_ctx is stashed under the gs_memory_t object and all memory objects
used by a thread refer to the same gs_lib_ctx.  This storage location was
choosen as a convenence since a memory_t pointer is common throughout the
system.  Most of the turmoil is adding memory_t pointers to functions that
used global variables but didn't have a memory pointer.

FILE stdin, stdout, stderr are one per process by default.
stdin and stdout may be changed but stderr may not.
FILE stderr is one per process and shouldn't be changed.
Note the stderr_fn is also one per process, changing this function pointer
will not help as most users of stderr printing do not have a thread handle.
Changing to a thread local storage mechanism can solve this.

gs_id's  are currently per thread with each thread starting over at  1.
This can be moved to per process with mutexes if so desired.

A library context has a pointer to the top_of_system the intent is that this
a void handle avaliable to make top of the system calls without knowing the
data type.  In a postscript only  build this would be gs_main_instance but
in a language switched build this would be an object above that main_universe.

Other members of gs_lib_ctx_t are nothing more than global objects relocated
to this "bag".  gs_name_table, dict_autoexpand  are examples of this.  There
are a few more globals that will be moved.

At the moment iapi is still constrained to one thread, since some of the
globals haven't been removed yet.

The display device's callback function setting is supported for now
but this interface should be changed to a sDEVICE style call.

gs_memory_t is the base type the abstract type gs_raw_memory_t is gone,
this means that all memory types must derive from gs_memory_t.
In addition to a pointer to the gs_lib_ctx there is a pointer to a
non_gc_memory this will always point to a non garbage collected memory,
it maybe the current object or an object below the current gargabe
collected memory space.  This can be used were the previous code
used the global gs_malloc_memory.  gs_malloc() now takes a memory pointer,
it finds the non-gc memory from a valid memory pointer and allocates from it.

The gdevbit device has an improved algorthym for converting from cmyk to rgb,
this is never used by postscript but for pcl rops it puts the k plane into rgb.

[src/iplugin.h src/zshade.c src/zfont1.c src/idstack.c src/gdevvec.c src/zicc.c src/zchar1.c src/gscdevn.c src/iscan.c src/gxalloc.h src/zvmem.c src/igcref.c src/gxacpath.c src/zcharx.c src/gslib.c src/gsfcmap1.c src/icstate.h src/gsovrc.c src/ifont1.h src/gslib.h src/gxccache.c src/gdevpsdi.c src/zmisc3.c src/zfapi.c src/zfunc4.c src/gsstate.c src/zcsdevn.c src/bfont.h src/idparam.c src/icie.h src/gxdhtserial.c src/gscpixel.c src/zcontext.c src/idparam.h src/gscpixel.h src/gsiodevs.c src/gsmemret.c src/zmisc.c src/iscanbin.c src/devs.mak src/gdevplnx.c src/gscolor3.c src/zmedia2.c src/gsinit.c src/gxttfb.c src/iname.h src/gxpcmap.c src/gdevstc.c src/zfont.c src/ialloc.c src/gscsepr.c src/ialloc.h src/iminst.h src/zarray.c src/gxdevcli.h src/ibnum.c src/zcontrol.c src/gsimage.c src/gdevxcmp.c src/ibnum.h src/gscscie.c src/gsfcmap.c src/ilocate.c src/zfont2.c src/gdevpxen.h src/gdevpxat.h src/zpcolor.c src/gdevpdfi.c src/zdevice.c src/zcssepr.c src/ifont42.h src/imain.c src/ifapi.h src/idebug.c src/zdps1.c src/zusparam.c src/idebug.h src/gsht.c src/zfont42.c src/gdevprna.c src/zchar.c src/zcolor.c src/gdevp14.c src/zupath.c src/gsccode.h src/dstack.h src/ztrans.c src/zpacked.c src/ifont.h src/iutil.c src/szlibc.c src/zcsindex.c src/gsmemraw.h src/iutil.h src/gdevijs.c src/gscrd.c src/gs_dll_call.h src/zgeneric.c src/gsio.h src/gscrd.h src/gs.c src/zdevice2.c src/gxclrect.c src/gslibctx.c src/zdps.c src/gdevpdfb.c src/gdevdcrd.c src/gslibctx.h src/ziodevsc.c src/zht2.c src/imainarg.c src/gxclrast.c src/zfrsd.c src/zcid.c src/ichar.h src/lib.mak src/zht2.h src/zmatrix.c src/zimage3.c src/sdctc.c src/zfileio.c src/zcspixel.c src/zbfont.c src/igc.c src/gdevpdfv.c src/gdevpdti.c src/igc.h src/zfile.c src/gdevepsn.c src/gsptype1.c src/gsmemlok.c src/gxfcopy.c src/gxclbits.c src/zfcid0.c src/gximage.c src/gsfcid2.c src/zgstate.c src/gsstruct.h src/icharout.h src/ziodevs.c src/gsalloc.c src/gsmisc.c src/zfontenum.c src/gximag3x.c src/ttload.c src/gscspace.c src/gscolor1.c src/gxclread.c src/gsalloc.h src/gxfcmap.h src/gscspace.h src/gxcpath.c src/gsfont.c src/gxcspace.h src/gsstype.h src/gdevprn.c src/gsutil.c src/isave.c src/gsexit.h src/gsutil.h src/isave.h src/zimage.c src/zdict.c src/zfont0.c src/zfcmap.c src/iapi.c src/gdevpdfc.c src/gsht1.c src/gsequivc.c src/gp_mac.c src/gdevpdfg.c src/gspcolor.c src/gsdevice.c src/gdevpdfk.c src/zcie.c src/gdevpdfg.h src/gscparam.c src/gshtx.c src/zcharout.c src/std.h src/gdevepsc.c src/iimage.h src/gsmemory.c src/gxdevice.h src/gdevcdj.c src/gsmemory.h src/files.h src/zmisc2.c src/gscolor.c src/zfunc3.c src/iparam.c src/gxht.c src/ztoken.c src/zrelbit.c src/iinit.c src/gxcht.c src/icid.h src/gxht.h src/gxccman.c src/zfcid1.c src/gzht.h src/gsalphac.c src/gsistate.c src/zfunc.c src/idict.c src/gdevupd.c src/zstring.c src/idict.h src/gsmalloc.c src/interp.c src/gdevbj10.c src/zcrd.c src/zfont32.c src/gsmalloc.h src/iplugin.c src/gdevxxf.c src/ztype.c]

2004-08-04T01:00:11.000000Z Ralph Giles

add a .cvsignore list for generated files

[contrib/pscolor/.cvsignore contrib/pscolor]

2004-08-04T00:55:46.000000Z Ralph Giles

Add variable declaration for the path to the ghostscript executable to
the unix wrapper scripts. This simplifies changing the invocation name.
Partial fix for bug 686863.

[lib/eps2eps lib/ps2epsi lib/gsbj lib/pdf2dsc lib/unix-lpr.sh lib/gsdj lib/dumphint lib/gsnd lib/font2c lib/pdfopt lib/pdf2ps lib/pv.sh lib/gslj lib/bdftops lib/pfbtopfa lib/gslp lib/wftopfa lib/ps2pdfwr lib/ps2ps lib/pphs lib/pf2afm lib/dvipdf lib/gsdj500 lib/ps2ascii]

2004-08-02T03:33:45.000000Z 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]

2004-07-30T21:32:36.000000Z Dan Coby

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

DETAILS:

We received a posting against 687551.  This posting indicated that some
files in arXiv.org were failing with the current version of Ghostscript
but worked with older versions.  The files were all created by a package
called Canvas by Deneba Systems.  They failed because setcmykoverprint
was not defined.

Evidently the people at Deneba Systems did not read the following comment
from page 15 of TN 5044:

"Note The setcmykoverprint operator has not been adopted by the industry.
It remains on the list of color convention operators because it has some
perceived usefulness, but it is not supported by any shipping host-based
separation applications today."

The even stranger detail is that the Deneba Systems people have a
dummy version of this procedure that does not implement overprinting.
Thus if they do not need overprinting, they have no need to use this
procedure.

The files also fail with Distiller 6.0, Illustrator CS, and Photoshop 6.0.
However this change allows these files to work with current Ghostscript.

The change consists of putting in a dummy version of the setcmykoverprint
procedure.  This version does not actually implement overprinting.

[lib/gs_lev2.ps]

2004-07-29T19:19:07.000000Z 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]

2004-07-29T17:46:38.000000Z 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 src/zchar.c src/gslparam.h]

2004-07-28T19:46:59.000000Z Ralph Giles

test commit; verifying the cvs announcement list is working.

[src/Makefile.in]

2004-07-28T10:09:20.000000Z Igor Melichev

Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 4).

DETAILS :

FunctionType 3 did not account stitches with reversed interval boundaries : lower > upper.
Also added a tolerance to a small noise.
687573 Error: /rangecheck in --.shfill--

EXPECTED DIFFERENCES :

None.

[src/gsfunc3.c]

2004-07-26T23:33:22.000000Z Dan Coby

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

DETAILS:

The given file uses the scn operator inside of a form.  The scn
operator is used for defining a color with DeviceN color spaces.
The scn operator uses .pdfcount (inside of scresolve) to determine
the number of parameters.  However inside a form, there is an extra
dictionary on the stack.

The fix consists of adjusting pdfemptycount (which is used by .pdfcount)
to match the stack depth while executing a form.  After the form is
executed, pdfemptycount is returned to its previous value.

[lib/pdf_draw.ps]

2004-07-26T23:21:31.000000Z Dan Coby

Fix for 687591 Overprint Preview is not documented.  This change adds
documentaion for how Ghostscript handles overprinting and spot colors
to Use.htm.

[doc/Use.htm]

2004-07-24T08:12:30.000000Z Igor Melichev

ps2write step 39 : Implementing embedded TrueType fonts (continued).

DETAILS :

This fixes the problem with True Type encoding :
account 'post' when 'cmap' can't give a character mapping.
Debugged wit 159.pdf , the character /registered.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps,
148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps,
UnusualFontMatrix.ps, 159.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-23T19:11:04.000000Z Igor Melichev

ps2write step 39 : Implementing embedded TrueType fonts.

DETAILS :

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps,
148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps,
UnusualFontMatrix.ps, 159.pdf .

Embedded fonts work, but there exist an encoding problem with 159.pdf .
The PS reader must have AdobeGlyphList and MacRomanEncoding.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-22T17:35:40.000000Z Igor Melichev

ps2write step 38 : Implementing embedded Type 1 fonts.

DETAILS :

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps,
148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps,
UnusualFontMatrix.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-22T13:04:20.000000Z Igor Melichev

ps2write step 38 : Write font data after the font descriptor.

DETAILS :

opdfread.ps will use this constraint to provide
a proper context for interpreting font data.
Rather we need this constraint with ps2write only,
we always implement it to simplify the code.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtb.c src/gdevpdtd.c src/gdevpdtb.h]

2004-07-22T11:08:25.000000Z Igor Melichev

ps2write step 37 : Don't convert Type 1 into CFF when generating ps2write output.

DETAILS :

1. Applied the Type 1 font writer.
2. Rather Type1C is a PDF 1.2 feature, we can't write it into a ps2write output.
   We use the OrderResources parameter to decide about (not)converting Type 1
   into Type1C (i.e. into CFF), because we want to write some PDF1.2 objects
   into a ps2write output (for example - function objects,
   because we don't want to convert them in C code).
3. The parameter OrderResources isn't a good switch for deciding about CFF
   due to the parameter name, but currently we don't want to define one more parameter.
   Maybe will improve it later.
4. Fixed a bug, which wrote "/Length1 -1" with Type1C.
5. CONVERT_CFF_TO_TYPE1 is reserved for further development.
6. Fixed Cygwin/gcc warnings in gdevpdfg.c .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdtb.c src/gdevpdfg.c]

2004-07-22T07:56:48.000000Z Igor Melichev

ps2write step 36 : Switching on the new code DELAYED_STREAMS, PS2WRITE.

DETAILS :

See log messages of previous patches.

EXPECTED DIFFERENCES :

None.

[src/gdevvec.h]

2004-07-20T07:08:20.000000Z Ray Johnston

Fix to make sure that device deactivation is invoked before final close
of the device when exit. Bug #687557.

DETAILS:

It is not known whether or not this ever worked, but this change does
make sure that the .uninstalldevice gets invoked before the final
closedevice on exit.

EXPECTED DIFFERENCES.

None detected with regression suite.

[src/imain.c]

2004-07-17T18:44:35.000000Z Ray Johnston

Fix so that compiled fonts have the dictionary permissions set correctly.
Bug 687444 for customer #531.

DETAILS:

Previously the 'dict_attrs' parameter was ignored. I compared the attrs
of the compiled font to a font loaded from a PFB file using:

%! -------------------------------------------------------------------------
% Procedure to check attributes of all elements of a dictionary
% used to check Font dict contents.

/dumpattrs {    % object dumpattrs -
  dup { rcheck } stopped { pop (?) } { { (r) } { (-) } ifelse } ifelse print
  dup { wcheck } stopped { pop (?) } { { (w) } { (-) } ifelse } ifelse print
  dup { xcheck } stopped { pop (?) } { { (x) } { (-) } ifelse } ifelse print
  (    ) print type = flush
} bind def

/chkattrs {     % dict chkattrs -       and lots of formatted output
  (Dictionary:     ) print dup dumpattrs
  { exch
    (    /                    ) dup dup 4 -1 roll
    20 string cvs
    5 exch putinterval print
    (    /                    ) 0 exch putinterval
    dumpattrs
  } forall
} bind def

/Helvetica findfont chkattrs
quit

%--------------------------------------------------------------------------

[src/iccfont.c]

2004-07-16T22:14:26.000000Z Igor Melichev

Fix (pdfwrite) : Provide a delayed stream writing.

DETAILS :

The ps2write requires length of streams to be written before the stream.
This implements pdf_begin_data_stream with opening a stream object in a temporary file,
using a methgod similar to pdf_enter_substream.
With the new mechanizm the output file doesn't need to be positionable,
and the generated PDF appears more effective because the number of objects is smaller.

Also fixed a bug in gdevpdfu.c : crashed when encrypted with no page compression.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdtb.c src/gdevpdf.c src/gdevpdtf.c src/gdevpdtw.c src/gdevpdfu.c src/gdevpdti.c src/gdevpdtw.h]

2004-07-15T16:39:08.000000Z Igor Melichev

Fix (pdfwrite) : Discard the output file seekability requirement in the /PS pdfmark implementation.

DETAILS :

The ps2write requires length of streams to be written before the stream.
The implementation of /PS pdfmark wrote a length in a separate object after the stream.
Now /PS pdfmark is implemented with pdf_enter_substream,
which writes the length directly into the object dictionary.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c]

2004-07-15T12:37:49.000000Z 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 src/gdevpdte.c]

2004-07-14T18:21:24.000000Z Ray Johnston

Sort the output in filename order to make comparison of daily db's easier.

[toolbin/tests/dump_testdb]

2004-07-14T17:57:35.000000Z Igor Melichev

ps2write step 35 : Fixing more problems with color spaces.

DETAILS :

The alternative space of [/Indexed [/Separation ...] ...] was not resolved.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps,
148-01.ps, 245-01.ps, 415-01.ps, 473-01.ps, 477-03.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-14T17:57:23.000000Z Igor Melichev

Fix (pdfwrite) : Don't write DeviceN, DevicePixel colors with CompatibilityLevel<=1.2 .

DETAILS :

PDF 1.2 doesn't define DeviceN, DevicePixel.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfc.c src/gdevpdfg.c]

2004-07-14T15:59:51.000000Z Ralph Giles

Include string_.h for missing prototypes of strlen() &c. Bug 687541.

[src/lib.mak src/gsfcmap.c src/int.mak src/gsht1.c src/gscdevn.c src/zfile1.c]

2004-07-14T15:38:24.000000Z Ralph Giles

Cast pointer type to avoid a warning. Bug 687541.

[src/sjpx.c]

2004-07-14T15:34:25.000000Z Ralph Giles

Correct some types to unsigned to match the gp_file_name_combine() prototype.
Partial fix for bug 687541.

[src/gp_unix_cache.c]

2004-07-14T14:24:46.000000Z Ray Johnston

Fix to pdfwrite initialization to make sure initial distiller params are
incorporated into the device. Also add collection of distillerparams when
building currentpagedevice. Fixes bugs 687325, 687436 and 687458.

DETAILS:

Earlier change to use .putdeviceparamsonly in gs_pdfwr.ps so that the
use of setdistillerparams does not reinitialize the device caused the
initial parameter settings to not be set in the device. The change to
gs_pdfwr.ps accomplishes this.

Part of the investigation by Igor Melichev discovered that the values of
disillerparams would not be correctly reflected in the pagedevice. The
change to gs_setpd.ps collects the currentdistillerparams when the device
is pdfwrite and merges new values into the pagedevice dictionary. The
method is similar to that used for the dynamicppkeys such as PageCount
that can be changed by the device. For the distillerparams, the values
are changed dynamically by setdistillerparams.

EXPECTED DIFFERENCES.

Rotation of several files is restored to the correct value given by
gs8.11:

541.pdf
mspro.pdf
new_rect_nr.pdf
pstopdf.pdf
xes2ps-problem.pdf

[lib/gs_setpd.ps lib/gs_pdfwr.ps]

2004-07-13T19:52:37.000000Z Igor Melichev

ps2write step 34 : Applying filters to the page contents stream.

DETAILS :

Due to the device parameter problem in the PS interpreter,
the distilled PT.ps had a filtered contents stream in spite of we disabled filters.
Fixing it now to avoid the dependence on another project.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps,
148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf, PT.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-13T19:31:51.000000Z Igor Melichev

ps2write step 33 : Fixing problems with color spaces in image XObjects.

DETAILS :

1. The Separation color space needs to resolve and substitute the alternative color space.
2. The Pattern color space needs to resolve and substitute the base color space.
3. Removed an obsolete temporary debug printing.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps,
148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf, bulletin.pdf, test.pdf .

EXPECTED DIFFERENCES :

None.
`

[lib/opdfread.ps]

2004-07-13T18:58:36.000000Z Igor Melichev

ps2write step 32 : Fixing problems with color spaces in inline images.

DETAILS :

Inline images use local allocation mode for image data.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps,
148-01.ps, 245-01.ps, 415-01.ps, 477-03.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-13T15:58:32.000000Z Igor Melichev

ps2write step 31 : Implementing DecodeParms for filters.

DETAILS :

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 245-01.ps, 415-01.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-13T15:13:19.000000Z Igor Melichev

ps2write step 30 : Continue the implementation of color spaces.

DETAILS :

1. Implemented Lab.
2. A pattern color space specification can contain an indirect reference.
3. Moved the StreamDumperBuffer definition to the proper place.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 245-01.ps,
0.pdf, 000040cf.000_60.pdf acrobat.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-13T13:44:38.000000Z Igor Melichev

ps2write step 29 : The inplementation of FunctionType 4 was wrong.

DETAILS :

The test case 245-01.ps .
Also implemented a debug printing of the uncompressed data steram.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf,
000040cf.000_60.pdf acrobat.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-13T12:38:57.000000Z Igor Melichev

Fix (pdfwrite) : Don't write shadings with CompatibilityLevel<=1.2 .

DETAILS :

Bug 687567 "pdfwrite : Shadings are written with CompatibilityLevel=1.2" :
Shadings are not allowed in PDF 1.2 .
This patch simply forwards to the default implementation,
causing a shading to decompose into thousands of constant color areas.

Probably a convertion to an image would be a better solution -
delaying it for a while, because our current goal is to make
ps2write working somehow.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfd.c src/gdevpdfg.c]

2004-07-13T12:02:36.000000Z Igor Melichev

Fix (pdfwrite) : Wrong /Matrix from /BP pdfmark (continued).

DETAILS :

Fixing a misprint in the patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004502.html
Thanks to SaGS for pointing it out.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c]

2004-07-13T11:09:02.000000Z Igor Melichev

Fix (pdfwrite) : Dont create the alternative image compression if a loseless compression is only allowed.

DETAILS :

It is an optimization.
The problem was occasionally found when working on the bug 687325,
rather that bug is irrelevant. It created 2 alternative streams with same filters.
This change rejects the creation of the second stream in such cases.

EXPECTED DIFFERENCES :

None.

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

2004-07-10T08:55:39.000000Z Igor Melichev

ps2write step 28 : Fixing tab characters in the source code (continued).

DETAILS :

This change is syntactically equivalent.
Also removed an unuseful comment.
Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf,
000040cf.000_60.pdf acrobat.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-10T08:04:50.000000Z Igor Melichev

ps2write step 27 : Implemented FunctionType 4.

DETAILS :

245-01.ps contains one.
Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf,
000040cf.000_60.pdf acrobat.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-09T20:54:02.000000Z Igor Melichev

ps2write step 26 : Fixing tab characters in the source code.

DETAILS :

This change is syntactically equivalent.
Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf,
000040cf.000_60.pdf acrobat.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-09T20:28:37.000000Z Igor Melichev

ps2write step 25 : Fixing various problems in functions and color spaces.

DETAILS :

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf,
000040cf.000_60.pdf acrobat.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-09T16:52:06.000000Z Igor Melichev

ps2write step 24 : An initial implementation of functions.

DETAILS :

1-argument FunctionType 0 is converted to a Postscript procedure.
The Order is ignored. 3d order functions interpolate as 1st order.
Maybe we'll convert them in C in pdfwrite.
N-argument FunctionType 0 are coded but not tested yet.
Other function types are not coded.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-08T17:15:17.000000Z Igor Melichev

ps2write step 23 : Implementing Indexed and Separation (continued).

DETAILS :

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-08T15:28:31.000000Z Igor Melichev

ps2write step 22 : Implementing Indexed and Separation.

DETAILS :

SubstitutePDFColorSpace factored out from ResolveColorSpace.
Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps, 0.pdf, 000040cf.000_60.pdf .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-08T14:00:42.000000Z Igor Melichev

ps2write step 20 : Implementing CalGray, CalRGB.

DETAILS :

- implemented the color space cache PDFColorSpaces;
- improved the procedure 'error';
- a bug in Register : s|gt|ge;
- moved color procedures before image procedures;
- a bug in the CompleteOutlineImage comment.
- ResolveColorSpace now converts CalGray, CalRGB.

Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps 148-01.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-08T11:12:25.000000Z Igor Melichev

ps2write step 20 : The implementations of Q,q,CharProc were incomplete.

DETAILS :

Minor change : collected work data definitions in a single place.
Tested with Bug687546.ps, 017-01.ps, 035-01.ps, 035-07.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-08T10:06:54.000000Z Igor Melichev

ps2write step 17 : Implementing Patterns.

DETAILS :

Tested with Bug687546.ps, 035-01.ps, 035-07.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-08T08:03:22.000000Z Igor Melichev

ps2write step 18 : Fix : Length was written to a wrong file position.

DETAILS :

Fixes a bug in the patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-July/004607.html .
Thanks to Ray Johnston for pointing it out.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c]

2004-07-07T15:19:45.000000Z Igor Melichev

ps2write step 17 : Image XForm implementation.

DETAILS :

Tested with Bug687546.ps, 035-01.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-07T14:24:43.000000Z Igor Melichev

ps2write step 16 : Inline image implementation.

DETAILS :

Tested with Bug687546.ps, TESTIMG.PS .
The interpretation completes, but some images render wrongly.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-07T11:42:07.000000Z Igor Melichev

ps2write step 15 : Fix : ObjectRegistry expansion code was wrong.

DETAILS :

Tested with Bug687546.ps, 148-01.ps .
148-01.ps still fails due to unimplemented images.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-07T11:00:57.000000Z Igor Melichev

ps2write step 14 : Fix : fonts may have no Encoding.

DETAILS :

Tested with Bug687546.ps, 148-01.ps .
148-01.ps still fails due to unimplemented images.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-07T10:40:56.000000Z Igor Melichev

ps2write step 13 : Implementing Type 3 fonts.

DETAILS :

A minor restructurization of the code and a debug printout improvement.
Tested with Bug687546.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-07T10:19:37.000000Z Igor Melichev

ps2write step 12 : Implementing Type 3 fonts.

DETAILS :

1. Implemented a delayed stream interpretation.
2. Implemented Type 3 fonts.
3. Renamed UnRefD with ResolveD.
4. Debug switches are bound.

Tested with Bug687546.ps - now it renders fine.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-07T09:33:19.000000Z Russell Lang

Fixes bug 687451 "default resolution for display device"
Set the display resolution from the MS-Windows display resolution,
using a device parameter -dDisplayResolution=DPI.

DETAILS:
The initial resolution must be set in display_put_params.
Setting it in display_open is too late because this leaves
the device resolution and currentpagedevice reporting
different values.  Callbacks can't be used in display_put_params
because the callback structure is not yet initialized.
This leaves a device parameter on the command line as
the cleanest implementation.
If HWResolution is set (e.g. from -r72), then use that.
Otherwise, if DisplayResolution is set, use that in the
initial display_put_params.  After that, ignore all further
use of DisplayResolution.
The Windows client adds -dDisplayResolution=DPI to the
command lines, similar to the existing -dDisplayFormat.
The Windows client gets the resolution from the GDI.
The default Windows display resolution is 96dpi (the same
as the display device).  This can be changed to 120dpi by
selecting "large fonts", or other values in recent versions
of Windows.

[src/gdevdsp.c src/dwmain.c src/gdevdsp.h src/dwmainc.c src/gdevdsp2.h doc/Devices.htm]

2004-07-07T09:09:27.000000Z 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]

2004-07-07T09:07:35.000000Z 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]

2004-07-06T22:15:09.000000Z Dan Coby

Fix for 687565 Incorrect equiv color for Orange in Altona test file.
The altona test file Altona_Visual_bb_1v1_x3.pdf contains a spot color
called Orange.  An incorrect equivalent CMYK color is being determined for
this spot color.  The result is that the spot color is being displayed as
black for the devices which handle spot colors and attempt to determine
equivalent CMYK colors for the spot colors.  These are the psdcmyk,
tiffsep, and display (with -dDisplayFormat=16#a0800) devices.

DETAILS:

The Orange spot color is used in two different DeviceN color spaces.  The
first color space has components named 'None'.  These components are used
as part of a special feature described in section 4.5 of the PDF 1.5 spec.
This feature uses the None components as a means for passing values to
the color space's alternate tint transform function.  In the example in
the spec., these values are an equivalent color in the alternate color
space.

Our logic for determining an equivalent CMYK color for a spot colorant
sets all color components except for the desired spot color to zero and
then uses the tint transform function to form an alternate color.  This
results in the equivalent CMYK color being black since the None values
contain the real information for the tint transform function.

This change consists of check for the presence of DeviceN color space
components named None.  If any are detected then the equivalent CMYK
color logic exits rather than determine an invalid color.  This is
sufficient for this case since the second color space which contains
the Orange spot color does not have the None components.  For the
general case, a solution needs to be found which samples colors given
actual values for the None components.

[src/gsequivc.c]

2004-07-06T19:27:30.000000Z Igor Melichev

ps2write step 11 : Implementing Metrics for Type 1,2,42 fonts (continued).

DETAILS :

The previous patch appeares incomplete due to MissingWidth. Now fixing.
CID fonts and Type 3 fonts are still stubbed.
Tested with Bug687546.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-06T19:04:18.000000Z Igor Melichev

ps2write step 10 : Implementing Metrics for Type 1,2,42 fonts.

DETAILS :

CID fonts and Type 3 fonts are still stubbed.
Tested with Bug687546.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-06T17:44:01.000000Z Igor Melichev

ps2write step 9 : Implementing Encoding for Type 1,2,42 fonts.

DETAILS :

CID fonts and Type 3 fonts are still stubbed.
Tested with Bug687546.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-06T13:48:03.000000Z Igor Melichev

ps2write step 8 : Implementing ExtGState.

DETAILS :

Function objects are subbed yet.
Debugged with Bug687546.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-06T12:05:41.000000Z Igor Melichev

ps2write step 7 : Implementing text rendering operastors.

DETAILS :

Font loading is stubbed yet.
Debugged with Bug687546.ps .
TextRenderingMode!=0 isn't debugged yet.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-05T21:16:26.000000Z Igor Melichev

ps2write step 6 : :Providing a page stream execution context.

DETAILS :

Most operators are eother stubbed or unimplemented,
but the interpretation runs and prints a trace.
Debugged wioth Bug687546.ps .

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-05T17:03:39.000000Z Igor Melichev

ps2write step 5 : Page streams must interpret immediately.

DETAILS :

This works against a huge memory consumption.
Also improved comments, the module structurization and error processing.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-05T17:03:28.000000Z Igor Melichev

ps2write step 4 : Stream data length must preceed the stream.

DETAILS :

The new code is disabled with PS2WRITE 0 in gdevvec.h .

pdf_begin_data_stream, pdfmark_PS wrote a stream data length after the stream object.
With OrderResources true we write a direct object instead that.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c src/gdevpdfx.h src/gdevpdfu.c]

2004-07-05T12:55:20.000000Z Igor Melichev

ps2write step 3 : Initial commit for the Ordered PDF Reader.

DETAILS :

This revision only reads PDF objects into VM.

EXPECTED DIFFERENCES :

None.

[lib/opdfread.ps]

2004-07-03T10:51:14.000000Z Russell Lang

Log Message:
Fixes bug 686956 Display device does not support separations.
Add support for separations to display device.
This requires a change to the display callback structure.
Support is maintained for clients using version 1 of the structure.

DETAILS:
Add support for a new color format, DISPLAY_COLORS_SEPARATION,
which supports CMYK and spot colors.  A new callback
display_separation() is used to tell the client about
the names and CMYK equivalents of each separation.
The callback structure version number is incremented to 2
to show that has changed.  The display devices checks
whether it is passed the older v1 structure or the newer
v2 structure, and only calls the new separation callback
if it was given a v2 structure.
Only 8-bit/pixel, up to 8 components and 64-bit depth are supported.
In the Windows and gtk+ clients, a subset of these 8 separations
can be selected for display.
The new code is based on the tiffsep device.

[src/dwimg.h src/gdevdsp.c doc/API.htm src/dwmain.c src/dxmain.c src/gdevdsp.h src/dwmainc.c src/gdevdsp2.h doc/Devices.htm src/dwimg.c src/idisp.c]

2004-07-01T19:23:15.000000Z 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]

2004-07-01T18:27:14.000000Z Dan Coby

Correct some warnings from the MSVC compiler.

[src/gzht.h src/gsht.c src/gscsepr.c src/gscdevn.c]

2004-07-01T04:41:38.000000Z Dan Coby

This change creates common routines for handling the DeviceN related
device parameters (SeparationColorNames, SeparationOrder, and
MaxSeparations).  The change also splits up some common routines that
were assuming that the device was a 'printer' device.

[src/gdevpsd.c src/gxcmap.c src/gdevtsep.c src/gdevdevn.c src/gdevnfwd.c src/gxcmap.h src/gdevxcf.c src/devs.mak src/gdevdevn.h]

2004-06-30T17:37:41.000000Z Raph Levien

Fixes nonportable code in the vasarely.ps example file so that keeps
to reasonable page size values even when default clippath is very
large (as is the case with the bbox device). Fixes bug #687549.

[examples/vasarely.ps]

2004-06-30T14:55:25.000000Z Igor Melichev

Fix (pdsfwrite) : Compression of XObjects implicitely depended on CompressFonts (continued).

DETAILS :

Fixing a compiler error with PS2WRITE 1.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfu.c]

2004-06-30T14:50:52.000000Z Igor Melichev

Fix (pdsfwrite) : Compression of XObjects implicitely depended on CompressFonts.

DETAILS :

This patch makes the dependence explicit.
Have no idea which distiller parameter must controll patterns and forms,
so keeping the old dependence.
With OrderResources=true pages now depend on CompressPages.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c src/gdevpdfx.h src/gdevpdfu.c src/gdevpdti.c src/gdevpdfi.c]

2004-06-30T14:35:37.000000Z Igor Melichev

ps2write part 2 : Delay writing pages.

DETAILS :

The new code is disabled with PS2WRITE 0 in gdevvec.h .

With OrderResources=true it writes pages at the end of the document,
after all resources are written to PDF.
Before that pages are accumulated in a temporary file.

OrderResources has been moved from distiller parameters to device parameters.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpsdp.c src/gdevpdfp.c src/gdevpdf.c src/gdevpdfu.c src/gdevpdfg.c src/gdevpsdf.h]

2004-06-30T11:54:51.000000Z Igor Melichev

ps2write part 1 : starting the project.

DETAILS :

Define a new temporary configuration switch PS2WRITE.
The new code is disabled with PS2WRITE 0 in gdevvec.h .

Our development strategy is to make pdfwrite to generate an output,
which a PS interpreter can handle with a special procset.
For a while we'll not define a new ps2write device,
but enhance the pdfwrite device with a new feature.

A new temporary distiller parameter OrderResources will make pdfwrite
to keep a proper resource ordering for generating a PS output.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdp.c src/gdevpsdf.h src/gdevvec.h]

2004-06-30T08:15:21.000000Z Igor Melichev

Fix : MSVC compiler warning.

EXPECTED DIFFERENCES :

None.

[src/gdevtsep.c]

2004-06-29T22:46:20.000000Z Dan Coby

Fix for 687553 rangecheck in .sethalftone5 and SeparationOrder.

DETAILS:

If a file specifies a type 5 halftone and the SeparationOrder device
parameter is specified then a rangecheck can occur.  This happens when
the halftone includes two or more colorants that are not in the
SeparationOrder parameter or one colorant and a 'Default' value.

The problem occurs because the get_color_comp_index device procs use
GX_DEVICE_COLOR_MAX_COMPONENTS to indicate colorants which are not
being imaged due to the colorant not be included in the list for the
SeparationOrder device parameter.  However the
gs_color_name_component_number routine was using the same value to
indicate 'Default' halftones.

The fix consists of modifying gs_color_name_component_number to look
for GX_DEVICE_COLOR_MAX_COMPONENTS from the get_color_comp_index
device proc.  If found then the component is treated the same as
a component that is not present in the device.  The halftoning
logic is only concerned with the colorants which are actually being
used by the device.

[src/gsht.c]

2004-06-29T22:27:14.000000Z Dan Coby

Correct spelling in a comment.

[src/gxcmap.h]

2004-06-29T21:01:41.000000Z Dan Coby

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.

[src/gsdparam.c]

2004-06-29T01:05:50.000000Z Ralph Giles

Add contributed pscolor utility by Carsten Hammer. This splits a ps
document into two, one consisting only of black and white pages, and
one of color pages. Useful for printing on separate devices.

Submitted under bug 602263.

The Makefile needs updating for the new location.

[contrib/pscolor/Makefile contrib contrib/pscolor contrib/pscolor/test.c contrib/pscolor/instream.yy]

2004-06-28T17:13:16.000000Z 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/lib.mak src/gxccman.c]

2004-06-24T10:10:17.000000Z 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 src/ttobjs.c src/ttinterp.c]

2004-06-24T09:51:02.000000Z Igor Melichev

Fix: Unwinding the recent change to gsdparam.c becauase it breaks the PDF interpreter.

DETAILS :

All comparefiles/*.pdf failed with -sDEVICE=ppmraw after the change
http://www.ghostscript.com/pipermail/gs-cvs/2004-June/004575.html .

EXPECTED DIFFERENCES :

See DETAILS.

[src/gsdparam.c]

2004-06-24T07:20:57.000000Z Dan Coby

Add source file src/gdevtsep.c.  This file is part of the implementation
687440 and 542629.

[src/gdevtsep.c]

2004-06-24T06:54:49.000000Z Dan Coby

Add the src/gdevtsep.c file.  This contains the tiffgray, tiff32nc, and
tiffsep devices.

[doc/Develop.htm]

2004-06-24T06:51:22.000000Z Igor Melichev

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

DETAILS :

Bug 687526 /invalidfont in --show--
See http://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html#INSTCTRL
The old implementation comes from FreeType.

EXPECTED DIFFERENCES :

None.

[src/ttinterp.c]

2004-06-24T06:48:27.000000Z Dan Coby

This change implements the enhancements described in 542629 CMYK
tiff driver and 687440 Support for outputting PDF separations
separately.  This change implements three devices:  tiffgray
which produces an 8 bit gray output with uncompressed data,
tiff32nc which produces 32 bit CMYK with uncompressed data, and
tiffsep which produces a tiffgray file for each separation
(CMYK and spot colors) and it also produces a CMYK output file
which is created using the CMYK image data plus the spot
colors image data.  The spot colors are converted to CMYK using
the logic in 687431.

DETAILS:

This change requires that 687504 be included in the sources.

The tiffgray and tiff32nc devices are logically similar to the
tiff24nc device except for the use of gray and CMYK process
color models.

The tiffsep device uses much of the logic which has been created
for the psdcmyk and spotcmyk devices.  These include logic for
implementing the SeparationOrder setpagedevice parameter 687423,
logic for determining an equivalent CMYK color to spot colors
687431, and automatically detecting spot colors (without requiring
that they be specified via the SeparationColorNames setpagedevice
parameter 687504.

The tiffsep device also prints the names of any spot colors
detected within a document to stderr.  (stderr is also use for the
output from the bbox device.)  For each spot color the name of
the color is printed preceded by '%%SeparationName:  '.  This
provides a mechanism for external applications to be informed about
the names of spot colors with a document.

Due to the 64 bit pixel size limitation, the tiffsep can handle
a maximum of 8 colorants per pass.  However it is possible to
handle more than 8 colorants by doing multiple passes.  For each
pass after the first one, the names of all of the separations need
to be specified via the SeparationColorNames parameter and the
names of the desired separations need to be specified via the
SeparationOrder parameter.  When colorants are selected via the
SeparationOrder parameter, the composite CMYK output contains
the equivalent CMYK data only from the selected colorants.  It is
possible to create an overall CMYK composite for more than 8
colorants by then adding together (via an external application like
imagemagick) the composite CMYK output files from the individual
Ghostscript passes.

Internally each spot color is assigned a spot color number.  These
numbers start with 0 for the first spot color.  The spot color
numbers are assigned in the same order as the names are printed to
stderr (see above).  This order also matches the ordering in the
SeparationColorNames list, if this parameter is specified.  The
spot color numbers are not affected by the SeparationOrder parameter.

This device creates multiple output files.  The file specified
via the OutputFile command line parameter is used to contain the
composite CMYK equivalent.  File names for the separations for the
CMYK planes are created by appending '.Cyan.tif', '.Magenta.tif'
'.Yellow.tif' or '.Black.tif' to the to the end of the file name
specified via the OutputFile parameter.  File names for the spot
color separation files are created by appending '.sn.tif' (where n
is the spot color number) to the end of the file name specified via
the OutputFile parameter.

The src/gdevtsep.c source file does have a compile time option for
including/not the '.tif' at the end of the created file name.  It
also has a compile time option for using the name of the spot color
as part of the file name.  However this is not enabled since there
may be conflicts with spot color names (in which Adobe allows almost
anything) and the operating system's conventions on file naming.

This change consists of the new source module src/gdevtsep.c,
changes to devs.mak for defining the new devices, changes to the
various top level make files for including these devices in their
DEVICE_DEVS definitions, and changes to the documentation files.

[src/openvms.mak src/gsdparam.c src/watcw32.mak src/Makefile.in src/dvx-gcc.mak src/unix-gcc.mak src/msvc32.mak src/unixansi.mak src/macos-mcp.mak doc/Devices.htm src/devs.mak src/gdevdevn.h src/os2.mak]

2004-06-24T06:47:36.000000Z Igor Melichev

A new implementation of shadings, step 80.

DETAILS :

A stronger prevention of a tiny decomposition of a color.
It works against glitches in function|color monotonity|linearity checks.

EXPECTED DIFFERENCES :

72dpi :
Altona-Testsuite_p2_S_x3.pdf
Clarke Tate Manns Chinese.ai
S2_Digitalproof-Forum_x3k.pdf


300dpi :
Clarke Tate Manns Chinese.ai
S2_Digitalproof-Forum_x3k.pdf

[src/gxshade6.c]

2004-06-24T05:03:36.000000Z Dan Coby

Fix for 687534 Unable to determine equivalent CMYK for spot colors
that are only used with overprint.

DETAILS:

The given test file uses spot colors.  However the psdcmyk device
was creating output files which did not contain equivalent CMYK
colors for the spot colors.  The cause was that the previous
version of the logic was capturing the equivalent CMYK colors
when the psdcmyk device's high drawing procs were called.  However
if overprinting is enabled, then the overprint device was inserting
its own versions of these routines.  Since it only took one call
to a high level drawing handler, the previous logic would capture
the equivalent CMYK colors if there were any drawing operations
with a spot color that did not have overprinting enabled.

The fix consists of moving the capturing of the equivalent CMYK
colors to a new device proc.  This new device proc is called
update_spot_equivalent_colors.  This device proc is called whenever
a Separation or a DeviceN color space is installed.

The default version of the proc does nothing.  Thus there is only
a small amount of overhead added for the installation of Separation
and DeviceN color spaces for devices which do not need the equivalent
CMYK colors for spot colors.

Most of the change consists of the standard details of adding a
new device proc.  There are several places that have to be updated
when this is done.  The documentation in doc/Drivers.htm was updated
to include this new proc.  The high level drawing handlers in the
psdcmyk devices were removed and a new psd_update_spot_equivalent_colors
procedure was added.  Some minor changes were made in the logic in
gsequivc.c since it is no longer necessary to scan through base and
alternate color spaces looking for Separation and DeviceN color spaces.
The comments at the beginning of gsequivc.c was changed to reflect
the changes in the logic for capturing equivalent CMYK colors for
spot colors.

[src/gxclist.c src/gxclip.c src/gsequivc.c src/gdevrops.c src/gscdevn.c src/gsequivc.h src/gdevpsd.c src/gdevdflt.c src/gdevbbox.c doc/Drivers.htm src/gxclipm.c src/gxdevice.h src/gdevnfwd.c src/gdevprn.c src/gscsepr.c src/gxclip2.c src/gxdevcli.h]

2004-06-24T03:17:45.000000Z Ray Johnston

Minor change to avoid a spurious compiler warning about 't' used before
initialized. Fixes bug #687412.

DETAILS:

This is an invalid warning, since 't' is always initialized before use,
however the extensive use of macros confuses some compilers. IMO, this
is an abuse of macros, but this is endemic in the older GS code.

[src/spdiff.c]

2004-06-23T20:37:51.000000Z Alex Cherepanov

Disable idiom recognition feature during execution of .bindnow
because it has no effect except burning a few seconds of CPU time.
Fix bug 687521

[lib/gs_init.ps]

2004-06-23T18:57:15.000000Z stefan

Fixed CMYK to RGB conversion.

Used in rop code where RGB -> CMYK -> RGB needs to work correctly
in the black and white cases.

[src/gdevbit.c]

2004-06-23T18:50:19.000000Z stefan

Fix macro to use it's arguments.  Platform specific, under exersized code.

[src/gxfarith.h]

2004-06-23T09:04:17.000000Z Igor Melichev

Fix (ps2ascii) : Provide a tolerance to old versions of dvips output.

DETAILS :

Bug 531300  "ps2ascii chokes on ch-xoff and ch-* routines".
Patch from Mike attached to the bug.

EXPECTED DIFFERENCES :

None.

[lib/ps2ascii.ps]

2004-06-19T04:01:27.000000Z Ray Johnston

Add new CMaps and update older ones to latest. Bug #687470. Thanks to
A. Cherepanov for providing part of the newer files.

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

2004-06-18T17:46:50.000000Z Igor Melichev

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

DETAILS :

pdf_set_charproc_attrs went out the pw array range,
and caused an indeterministic behavior with Bug687044.ps .

EXPECTED DIFFERENCES :

Not detected on Windows, but the old revision was indeterministic.

[src/gdevpdfx.h src/gdevpdtt.c src/gdevpdti.c]

2004-06-18T07:00:47.000000Z Dan Coby

687504 Enhancement: Imaging spot colors without using the
SeparationColorNames parameter.

DETAILS:

The purpose of this enhancement is to provide an example of how
to implement imaging spot colors without requiring that they be
specified in advance via the SeparationColorNames setpagedevice
parameter.  Note:  Spot colors are only supported on a few devices
which have output file formats which allow for spot colors.  These
are currently the psdcmyk, spotcmyk, and xcfcmyk devices.

This commit only implements this feature on the psdcmyk, spotcmyk
and devicen devices.

In order to implement this feature, a device needs to be able to
allocate image buffer memory for each colorant and to detect when
a new colorant is being used inside of a color space.  The
implementation has the following pieces:

1.  The handling of the MaxSeparation setpagedevice parameter was
extended.  Previously this parameter was always set to one.  For
most devices it now indicates the number of colorants being used
by the device.  For most devices this is a fixed quantity, however
for the psdcmyk device, this parameter can be used to tell the
device to allocate image buffer memory for up to eight colorants.
(The eight colorant limit is due to the fact that the psdcmyk
device uses 8 bits per colorant and we currently have a 64 bit
maximum pixel size.)

2.  The devices already have a 'get_color_comp_index' routine which
is used to query if a colorant is supported by the device.  However
this routine is used for both real components in color spaces and also
for some special cases.  For instance, the same halftone may be used
either for a cyan or a red colorant.  To handle this case, the halftoning
setup logic will query the get_color_comp_index routine to check if
cyan is supported by the device.  If not then a query is made to see
if the device supports red.  By monitoring the names of the components
passed to get_color_comp_index routine, a device can detect when a new spot
color is being used.  However it is necessary to be able to detect
the special cases so that the device does not believe that it has a
'red' spot color.  To do this the third parameter of the
get_color_comp_index device proc was logically modified to indicate
if a name represents a name actually in a color space or one of the
special case situations.  Previously this parameter was not being used.

3.  The get_color_comp_index routine for the psdcmyk device was
modified to look for new spot colors and to add then to its list of
colorants if there was space available.  Note:  This also required
that the psdcmyk device have its own structure descriptor, pointer
enumeration and relocation procedures.  The macro which was used to
define the psdcmyk and psdrgb devices needed to be changed since the
previous macro used the st_device_printer structure descriptor instead
of the new structure descriptor for the psd devices.

[src/gdevpsd.c src/gsdparam.c src/gxcmap.c src/gdevdevn.c src/gdevnfwd.c src/gxcmap.h src/gsht.c src/gscsepr.c src/gdevxcf.c src/gdevdevn.h src/gscspace.c src/gdevperm.c src/gscdevn.c]

2004-06-17T21:42:53.000000Z Ralph Giles

Protect genarch's test for sizeof(long long) with and #ifdef HAVE_LONG_LONG
since a number of platforms (particularly MSVC) do not support this type.

[src/genarch.c src/stdint_.h]

2004-06-17T13:05:16.000000Z Alex Cherepanov

Round elements of Mask array to the nearest integer following implementation
of AR4, AR5, AR6.
Fix bug 687494 from customer 580.

[lib/pdf_draw.ps]

2004-06-17T11:14:31.000000Z Igor Melichev

Fix : Arithmetic errors could cause a function monotonity misrecongition.

DETAILS :

Bug 687511 "shadinds: infinite recursion".

EXPECTED DIFFERENCES :

Not detected on Windows.
On Linux expecting a difference with :
Altona-Testsuite_p2_S_x3.pdf
S2_Digitalproof-Forum_x3k.pdf

[src/gsfunc0.c]

2004-06-16T20:01:59.000000Z Alex Cherepanov

Fix parsing of -2147483648.5, min_int followed by a fractional part.
Fix bug 687500

[src/iscannum.c]

2004-06-16T11:22:08.000000Z Igor Melichev

Fix (pdfwrite) : Allow named object reference in the Action key of /ANN pdfmark.

DETAILS :

Bug 687386  "-dEmbedAllFonts does not work".

It's a PDF 1.5 feature. We still incompletely support PDF 1.5 .

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c]

2004-06-16T09:27:10.000000Z Ralph Giles

Try to use long long as a 64 bit type in the genarch fallback stdint definitions. Fix for bug 687514.

[src/genarch.c src/stdint_.h]

2004-06-16T09:27:10.000000Z Ralph Giles

Protect against cache values containing spaces. This shouldn't be a problem, the change is more for consistency.

[src/configure.ac]

2004-06-15T20:28:48.000000Z Igor Melichev

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

DETAILS :

Bug 687507 "pdfwrite device closes with -15".

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

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

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gdevpdtb.c src/gdevpsf2.c]

2004-06-15T15:27:57.000000Z Alex Cherepanov

Make pdf_dominant_rotation() return unknown text rotation for the file
without text. It returned 0 rotation before, which excluded consideration
of DSC comments later on.
Fix bug 687515

[src/gdevpdf.c]

2004-06-10T19:09:50.000000Z Igor Melichev

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

DETAILS :

Recent changes about charproc variations caused an appearence of idle entries
in the xref table. Those entries pointed to zero length objects
and were never referred.

Idle entries appeared due to the substream accumulator reserved an object id
before entering a substream, but later the object (a charproc) was cancelled.

This patch delays the reservation of an object id until we decide
that the object won't be cancelled. Added a new argument of pdf_enter_substream
for this purpose.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c src/gdevpdfx.h src/gdevpdti.c src/gdevpdfi.c]

2004-06-10T16:41:59.000000Z Igor Melichev

A new implementation of shadings, step 80.

DETAILS :

Propagated error codes from is_color_monotonic, is_color_linear.
Should fix the bug 687511 "shadinds: infitite recursion".

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-06-09T20:47:50.000000Z 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]

2004-06-09T12:09:20.000000Z Igor Melichev

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

DETAILS :

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

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

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

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

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

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

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

6. gxhintn_h was defined in lib.mak after it is used at once.

EXPECTED DIFFERENCES :

Almost all comparefiles render differently.

[src/gxchar.c src/lib.mak src/gxhintn.c src/gxhintn.h]

2004-06-08T11:43:04.000000Z Igor Melichev

Fix (pdfwrite) : Merge equal ExtGState objects.

DETAILS :

Bug 687487 "(pdfwrite) redundant ExtGState objects".

Now we represent ExtGState objects as cos_dict_t instances,
and perform a full comparizon before writing them into the output PDF.
Redundant equal objects are being substituted and skipped.

This patch consists of 4 parts :

1. Creting an ExtGstate object, replaced old calls to stream functions
with calls to cos_dict_t functions.

2. Implemented the comparizon/substitution logic in pdf_end_gstate.

3. pdf_prepare_drawing now doesn't pass keys to
pdf_update_halftone, pdf_update_transfer, pdf_write_transfer_map,
because we don't want them to become a part of a value.
Instead that we made them to be keys of the cos_dict_t instance.

4. Defined new functions cos_dict_put_c_key_bool and cos_dict_put_string_copy
to simplify the new code.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c src/gdevpdfo.h src/gdevpdfg.c]

2004-06-03T17:12:07.000000Z Igor Melichev

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

DETAILS :

Must check FontMatrix when deciding about same charproc.

EXPECTED DIFFERENCES :

None.

[src/gdevpdti.c]

2004-06-02T17:45:30.000000Z Igor Melichev

Fix (pdfwrite) : 1. After used a process color, continue using it for same client color space.
2. A bug in pdf_set_initial_color could miss some color commands.

DETAILS :

1. Bug 687197 "ps2pdf creates incorrect PDF".
Defined nad maintained new flags pdev->fill_used_process_color and pdev->stroke_used_process_color
for vector devices. The function pdf_reset_color use them when the cclient color space
isn't embeddable.

2. Occasionally found that pdf_set_initial_color set saved colors to pdev->vg_initial
rather than to argument pointers. This could loose some color commands with a small probability,
so that some objects could get a wrong color.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdfp.c src/gdevpdfb.c src/gdevpdtt.c src/gdevpdfd.c src/gdevpdfg.c src/gdevvec.h src/gdevpdfg.h]

2004-06-02T13:19:15.000000Z Igor Melichev

Fix (pdfwrite) : ConvertCMYKImagesToRGB crashed.

DETAILS :

Bug 687428 "ConvertCMYKImagesToRGB does not produce a PDF-File".
It made a pointer from global memory to C stack.
Fixed with allocating the structure dinamically.
It produces a small garbage, which is not critical in pdfwrite.

EXPECTED DIFFERENCES :

None.

[src/gdevpsdi.c]

2004-06-02T12:14:43.000000Z Igor Melichev

Fix : 'midpoint' formula was wrong.

DETAILS :

Bug 687463 "The 'midpoint' formula is wrong".

EXPECTED DIFFERENCES :

I didn't detect any on Windows.
After recent changes this stuff works only with curves,
which can't flatten with 2^12 segments,
and which are not a part of a shading,
so likely the probability of a difference is small.

[src/gxpflat.c src/gxshade6.c]

2004-06-02T00:37:02.000000Z Ralph Giles

Correct a typo. Thanks to Russell for catching this one.

[doc/Make.htm]

2004-06-01T21:13:04.000000Z Dan Coby

Fix for 687477 Bad incremental update to a PDF file.

DETAILS:

The given test file had a bad incremental update.  This update
has two problems:

1.  The trailer dict only had a Prev entry.  None of the required
entries were present.  To fix this problem, entries from previous
trailer dicts are placed into the initial trailer dict if there is
no entry with the same key in the initial trailer dict.

2.  The update had an xref table with two entries.  One of them
was bad.  (Not a very good percentage.)  To fix this problem,
all entries in the composite xref table are scanned to verify that
they point to a valid objects.  If not then the rebuild logic is
used to attempt to recover the xref data.  This can be disabled
by adding -dNoVerifyXref to the command line.  In most cases,
the verification time is not noticeable but I did find a file with
104,000 xref entries and it took about 2 seconds to verify the
xref table.

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

2004-06-01T17:20:44.000000Z Igor Melichev

Fix : A Cygwin/gcc warning.

DETAILS :

The prefious patch appeared incomplete. Now fixing.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h]

2004-06-01T17:06:25.000000Z Igor Melichev

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

DETAILS :

This is a final step of fixing the bug 687489
"pdfwrite creates invalid Type3 font -- missing characters".

This patch provides a check whether a color was changed while
a PS charproc interpretation. A color command is written
into the PDF charproc if and only if the PS charproc changed the color.

This patch discovers a bug in Adobe Acrobat Reader 5 :
with the test document of the bug 687489 it paints an "invisible" text in the 4th page.
That text isn't visible when viewing with Adobe reader 6 and with GS.
The text is painted with a white color, but AR 5 erroneusly paints it with black.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c src/gdevpdfd.c src/gdevpdfg.c src/gdevpdfg.h]

2004-06-01T17:03:48.000000Z Igor Melichev

High level devices may need a device color while executing stringwidth.

DETAILS :

This is second step of fixing the bug 687489
"pdfwrite creates invalid Type3 font -- missing characters".
The problem happens due to the old code could run a charproc while
executing a stringwidth, when device color is not evaluated.

This patch provides the device color loading with no dependence
on the text operation.
dev_proc(dev, text_begin) now receives a device color in any case.
THIS IS AN INCOMPATIBLE CHANGE : if an old device depends on
a device color ability, it will malfunction.

EXPECTED DIFFERENCES :

None.

[src/gstext.c]

2004-06-01T13:42:44.000000Z Igor Melichev

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

DETAILS :

This is a preparation for fixing the bug 687489
"pdfwrite creates invalid Type3 font -- missing characters".
The problem happens due to the old code could run a charproc while
executing a stringwidth, when the PDF viewer state isn't syncronized
with the PS graphic state.
We don't synchronize in this case because stringwidth doesn't paint.

Our intention is to know whether a charproc changes graphic state parameters :
current color, line width, etc. For doing so we need
(1) to save the viewer state in the viewer state stack,
and then (2) synchronize with the PS graphic state without
writing commands to the PDF. This patch does provide (1)
but does not implement (2) because we want to check
the change (1) for no regressions.
The change (2) will be a separate step.

Saving a viewer state in a stack when entering a charproc
was contributed with the recent patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-May/004507.html
as an improvement of pdf_enter_substream, which was called from
pdf_install_charproc_accum called from pdf_text_set_cache.
In other words, the viewer state saving was deferred until setcachedevice/setcharwidth.
However we need to save the viewer state in the beginning of a PS charproc.

This patch moves the call to pdf_enter_substream from pdf_install_charproc_accum
to the TEXT_PROCESS_RENDER branch of pdf_text_process.
We believe that the new logic is more straight :
we start the charproc stream accumulation immediately before the PS interpreter
enters a charproc interpretation.

Minor changes :

1. Defined pdf_start_charproc_accum as a symmetric one for pdf_end_charproc_accum.
2. Renamed pdf_install_charproc_accum into pdf_set_charproc_attrs.
3. Improved the argument list of pdf_prepare_text_drawing.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdtt.c src/gdevpdti.c]

2004-06-01T02:37:04.000000Z Alex Cherepanov

Aviod a PostScript error in ps2ascii when the source file uses composite fonts.
For now, dump the strings in the unmodified encoding when the corresponding
font is composite.
Fix bug 687466.

[lib/ps2ascii.ps]

2004-05-31T06:20:24.000000Z Ralph Giles

Add a last commit to the changelogs.

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

2004-05-31T06:09:16.000000Z Ralph Giles

Update the changelogs for the 8.30 release.

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

2004-05-31T06:02:00.000000Z Dan Coby

Correct various compiler warnings from MSVC and gcc.  Fix for 687441.

[src/gdevpsd.c src/gdevdevn.c src/gsequivc.c src/gdevdevn.h]

2004-05-31T05:34:16.000000Z Ralph Giles

JPXDecode support is only enabled for the autoconf build. Mention this
in the release notes, and add some brief notes to the MSVC makefile
about how to make it build.

[doc/News.htm src/msvc32.mak]

2004-05-31T05:08:26.000000Z Ralph Giles

Update the open bug list in the release notes.

[doc/News.htm]

2004-05-30T09:50:05.000000Z Russell Lang

Enable separable_and_linear and separable for the display device.
Fixes bug #687442.

DETAILS:
Enable separable_and_linear for gray, RGB and CMYK formats.
The display device needs to explicitly call check_device_separable
because it is closed and reopened when the callback is set,
which causes linear_and_separable to be reset.
Set the gray_index which is not set by check_device_separable.
Prevent the unimplemented DISPLAY_ALPHA_FIRST and
DISPLAY_ALPHA_LAST from being used.
Make it clear that the display_map_rgb_color_rgb and
display_map_color_rgb_rgb functions only work with 8bits/pixel.

[src/gdevdsp.c]

2004-05-29T21:07:48.000000Z Raph Levien

Added more news items, in preparation for 8.30 release.

[doc/News.htm]

2004-05-29T02:19:36.000000Z Ralph Giles

Relocate the gxhldevc_h macro out of order so all its dependencies are
available.

[src/lib.mak]

2004-05-29T02:10:44.000000Z Ralph Giles

Correct a dependency typo.

[src/lib.mak]

2004-05-29T01:22:08.000000Z Ralph Giles

Update documenation dates and version category for release.

[doc/History7.htm doc/History8.htm doc/Projects.htm man/dvipdf.1 man/ps2ascii.1 doc/Use.htm doc/Readme.htm doc/Source.htm doc/Maintain.htm doc/Deprecated.htm man/ps2epsi.1 doc/Install.htm src/gscdef.c doc/Copying.htm doc/API.htm doc/DLL.htm doc/Issues.htm doc/Drivers.htm doc/Bug-form.htm man/pfbtopfa.1 doc/Commprod.htm doc/Release.htm doc/Xfonts.htm doc/Devices.htm doc/Language.htm src/version.mak man/gs.1 man/pf2afm.1 doc/Fonts.htm man/printafm.1 doc/Develop.htm doc/Ps2pdf.htm doc/Helpers.htm man/pdf2dsc.1 doc/Psfiles.htm doc/New-user.htm doc/Bug-info.htm doc/Lib.htm doc/Tester.htm doc/Htmstyle.htm man/gsnd.1 man/font2c.1 man/pdfopt.1 doc/News.htm man/pdf2ps.1 man/ps2pdf.1 doc/Make.htm doc/Details8.htm doc/Testing.htm doc/Unix-lpr.htm doc/C-style.htm doc/Ps-style.htm doc/History1.htm doc/History2.htm man/gslp.1 doc/History3.htm man/wftopfa.1 doc/History4.htm doc/Ps2epsi.htm man/ps2pdfwr.1 man/ps2ps.1 doc/History5.htm doc/History6.htm]

2004-05-29T01:11:48.000000Z Ralph Giles

Add new rinkj driver files to the index in Develop.htm.

[doc/Develop.htm]

2004-05-28T23:58:53.000000Z Raph Levien

Add sample setup file for Rinkj driver, more documentation.

[doc/Devices.htm lib/rinkj-2200-setup]

2004-05-28T23:50:38.000000Z Raph Levien

Adds basic documentation for Rinkj driver, update copyright banners.

[src/rinkj/rinkj-dither.h src/rinkj/rinkj-device.h src/rinkj/evenbetter-rll.h src/rinkj/rinkj-config.c src/rinkj/rinkj-epson870.h src/rinkj/rinkj-screen-eb.h src/rinkj/rinkj-config.h src/rinkj/rinkj-byte-stream.c doc/Devices.htm src/rinkj/rinkj-dither.c src/rinkj/rinkj-device.c src/rinkj/evenbetter-rll.c src/rinkj/rinkj-byte-stream.h src/rinkj/rinkj-epson870.c src/rinkj/rinkj-screen-eb.c]

2004-05-28T23:26:28.000000Z Dan Coby

This change implements "687431 Add determining equivalent CMYK
colors for spot colors".  This change currently only affects the
psdcmyk device.

DETAILS:

For a description of the implementation see the comments at
the beginning of gsequivc.c.

In addition to the comments in gsequivc.c, the gs_separation
structure was changed to simplify it.  The gs_separation_info
structure was removed and the names filed moved into the
gs_separations structure.

[src/gdevpsd.c src/gdevdevn.c src/gdevprn.c src/gsequivc.c src/gdevdevn.h src/devs.mak src/gsequivc.h]

2004-05-28T23:09:55.000000Z Ralph Giles

Use ST_MTIME instead of the ctime to determine the date of the last
baseline update. Partial fix for bug 687481.

[toolbin/tests/gscheck_raster.py]

2004-05-28T23:02:59.000000Z Raph Levien

Initial commit of rinkj (resplendent inkjet) drivers, using ETS screening.

[src/rinkj/rinkj-dither.h src/rinkj/evenbetter-rll.h src/rinkj/rinkj-epson870.h src/gdevrinkj.c src/rinkj/rinkj-byte-stream.c src/devs.mak src/rinkj/rinkj-device.c src/rinkj/rinkj-byte-stream.h src/rinkj/rinkj-screen-eb.c src/rinkj src/rinkj/rinkj-device.h src/rinkj/rinkj-config.c src/rinkj/rinkj-screen-eb.h src/rinkj/rinkj-config.h src/rinkj/rinkj-dither.c src/rinkj/evenbetter-rll.c src/rinkj/rinkj-epson870.c]

2004-05-28T07:08:53.000000Z Igor Melichev

Fix (PDF interpreter) : Wrong processing of a big CIDToGIDMap.

DETAILS :

Bug 687471 problem with japanese fonts

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps]

2004-05-27T19:05:37.000000Z Igor Melichev

(pdfwrite) : 1. Implementing a dynamic recongnition for Type 3 charproc variations;
2. Bug : Viewer state could desynchronize when entering a charproc accumulation.

DETAILS :

Bug 687472 "barcode wrongly converted to type3 font".

Type 3 glyph variations may appear if BuildChar uses setcharwidth.
If a charproc uses setcharwidth, we perform the charproc accumulation
for each character occurance, and compare the accumulated stream with older
ones if they exist. In the case of exact equality
(including the character name and character code),
the old charproc is used. Othervise we embed a new one.

If the character code was used with another charproc,
we create another PDF font to resolve the conflict.
Thus a single PS Type 3 font may convert into several
PDF Type 3 fonts, and the text may be broken into smaller pieces.
Particularly this happens with the test file of the bug 687472.
Viewers must account that implementing the text serchability.

A new array pdfont->u.simple.s.type3.cached is used to remember whether
a charproc uses setcachedevice[2]. If a character used it at ones,
we assume that all further its occurances to do same.
We think that this assumption is implied by PLRM.

Viewer state was not saved when entering a charproc accumulation,
and was not restored after exiting it (a bug).
This could cause wrong object attributes
and excessive commands written into PDF.
This patch fixes that.

Some PDFs become longer due to excessive ExtGState objects
generated for dropped copies of charprocs.
Opened a new bug 687487 for tracking this issue.

EXPECTED DIFFERENCES :

An unimportant difference with pdfwrite -r72 :
136-01.ps
prob1.pdf
tpc2.ps
xes2ps-problem.pdf

An unimportant difference with pdfwrite -r300 :
260-01.ps
tpc2.ps
xes2ps-problem.pdf

[src/gdevpdfx.h src/gdevpdf.c src/gdevpdtt.c src/gdevpdte.c src/gdevpdtf.c src/gdevpdfu.c src/gdevpdfg.c src/gdevpdtt.h src/gdevpdti.c src/devs.mak src/gdevpdtf.h src/gdevpdfj.c src/gdevpdfg.h]

2004-05-27T10:28:31.000000Z Igor Melichev

(pdfwrite) : Delaying the charproc insertion until it is accumulated.

DETAILS :

This change is a part of the work on the bug 687472 "barcode wrongly converted to type3 font".
Our intention is to recognize Type 3 glyph variations,
which may appear if BuildChar uses setcharwidth.

For the case of no error while charproc accumulation
this change should be algorithmically equivalent.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfx.h src/gdevpdf.c src/gdevpdtt.c src/gdevpdti.c]

2004-05-27T03:22:12.000000Z 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 toolbin/tests/gssum.py]

2004-05-26T15:49:08.000000Z Ray Johnston

Fix reference count of overprint compositor so that it doesn't get freed
too early. Fixes SEGV of bug #687425 for customer #1110.

DETAILS:

This only showed up when banding was being used.

This only showed up when a high level image was being rendered from the
clist since this installed a 'clipper' device on top of the overprint
compositor. When the clipper device was closed, the finalization proc
decremented the reference count for the 'target' device of the clipper
which was the overprint compositor. When the overprint reference count
was decremented to 0, it was freed even though it was being used by
the clist renderer.

EXPECTED DIFFERENCES:

None.

[src/gxclrast.c]

2004-05-26T08:44:26.000000Z Igor Melichev

Fix (pdfwrite) : Wrong /Matrix from /BP pdfmark.

DETAILS :

Bug 687430 "Wrong transformation matrix with Form XObjects".
Patch from sags5495 at hotmail dot com (SaGS), adopted by igorm.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c]

2004-05-26T04:11:01.000000Z Dan Coby

Log message:

Revised fix for 687418 WTS does not work with bitcmyk driver.

DETAILS:

The changes in this revised fix are pretty extensive.  Note:  This
patch includes several items from Russell Lang.  I am including these
since they are required for the proper execution of the patch and
it does not seem reasonable to require possible testers or reviewers
to have to track down and install these patches separately.

The list of changes includes:

1.  Added logic to check_device_separable to also set the gray_index
value.  This suggestion came from Russell Lang.

2.  Add verification that a colorants bits are consecutive.  (from
Russell Lang in:
http://www.ghostscript.com/pipermail/gs-code-review/2004-May/004501.html

3.  Changes to gx_default_encode_color and gx_default_decode_color
to use position and bit count info from the device's color_info data.
(Also from Russell Lang in the previously mentioned submission.)
(See the comments in item 21 below about the gx_default_decode_color
routine.)

4.  Included test routines. (Also from Russell Lang in the previously
mentioned submission.)

5.  Added calls to check_device_separable prior to calls to the
various 'fill_in_procs' routines (gx_device_fill_in_procs,
gx_forward_fill_in_procs, fill_in_procs).  The fill_in_procs routines
use the separable information in choosing default routines for
the encode_color and decode_color routines.  Thus we have a chicken
and egg problem since check_device_separable also uses the device's
encode_color routine.  The test routines from Russell were a great
help in debugging

Also various changes that were found while testing this patch:

6.  The various color deskjet drivers (gdevcdj.c) was incorrectly setting
the dither_grays and dither_colors values to 5 instead of 256.  (I
have no idea why.)  The max_gray and max_color values were set to
being set correctly to 255.

7.  The color deskjet devices (gdevcdj.c) were doing BG and UCR
removal inside of the encode_color routines.  These devices use the
default color_mapping_procs which also do these tasks.  The code in
the encode_color_routine was removed since it could cause conflicts
with the overprint routines.  The code in the encode_color routine
was also using a fixed BG/UCR logic (from PS level 2).

8.  Corrected a problem in the color desk jet decode_color routine
which was always returning zero for the black value.

9.  Changed the casting for values assigned to the std_colorant_names
field.  Note:  MSVC and gcc complain about different conditions.
There does not seem to be a combination that will keep both happy.
This set produces no complaints from gcc.

10.  Corrected the setting of dither_grays and dither_colors for the
devicen device.  Previously this was being set to 1 when it should have
been set to 256.  Found by Russell Lang.

11.  Modified check_device_separable to only check for appropriate
values of the max_gray/dither_grays and max_color/dither_colors
pairs only for gray/color devices.

12.  Added check for encode_color routines which encode zero
bits for a colorant.  Previously this condition would have caused
an infinitely in check_device_separable.  Change suggested by
Russell Lang.

13.  Removed a previous call to set_linear_color_bits_mask_shift
in gx_default_fill_in_procs.  This has been logically replaced by
the calls to check_device_separable which have been added.

14.  Corrected a problem in the ppm_map_rgb_color in gdevpbm.c.
This routine was calling gx_default_encode_color which requires

15.  Corrected problem in pcx256 device which incorrectly setting
the dither_grays and dither_colors values.

16.  Removed the check_process_color_names routine from gdevpsd.c
since it not used.

17.  Modified the dci_alpha_values macro in gxdevcli.h.  This
macro was setting some devices as 'separable' but was not setting
the related color_info fields (comp_shift, comp_bits, comp_mask).
Now this macro sets a devices as 'unknown'.  The check_device_separable
routine will change this for devices which are separable.  Devices
which want to change their process color model need to either set
themselves as 'unknown' and let check_device_separable handle things
or else the device needs to setup its own values for separable
color_info fields.

18.  Added a call to check_device_separable into gdev_x_open in
gdevxini.c.  With this addition, the x11 device is detected as being
sperable.  This is need since the x11 device sets up a color map in
gdev_x_open.  Prior to this, the encode_color routine for he x11 device
returns 0 regardless of its input.

19.  Modified the uniprint device (gdevupd.c) and color laser jet
devices (gdevcljc.) to use 256 instead of 5 for its dither_gray and
dither_color values with devices that have 8 bits per colorant.  This
is appropriate since the the max_gray and max_color values are 255.
(I do not know why these values were being set to 5.  This same error
was found in gdevcdj.c.  My only guess is that it was a typo in gdevcdj.c.
Since this device is recommended as an example of how to code a color
raster device (in Devices.htm), the error was propogated into the
other devices.

20.  Added more comments to gxdevcli.h explaining the use of the
gray_index, max_gray, dither_grays, max_color, and dither_colors
fields in the device color_info structure.

21.  Changed the gx_default_decode_color routine (again).  Russell
Lang created two revisions to this routine as part of his efforts on
this task.  However one version was slow but produced the desired
results.  The second version was faster but its output was slightly
different.  This revision produces the same output as the first
version but does so without the while loops that slowed its operation.




Note:  There is another related submission from Russell Lang that is
not included in this patch.  This consists of changes to the display
device for making it 'separable'.  This change is needed for Igor's
linear shading work.
http://www.ghostscript.com/pipermail/gs-code-review/2004-May/004500.html

[src/gdevxini.c src/gdevxalt.c src/gxcmap.c src/gdevcljc.c src/gdevpbm.c src/gdevmem.c src/gdevxcf.c src/gdevcmap.c src/gdevplnx.c src/gximag3x.c src/gdevrops.c src/gsdevice.c src/gdevpnga.c src/gdevpsd.c src/gdevp2up.c src/gdevdsp.c src/gdevupd.c src/gxpcmap.c src/gdevdflt.c src/gslib.c src/gdevpcx.c src/gdevdevn.c src/gximage3.c src/gdevprn.c src/gdevcdj.c src/gdevdevn.h doc/Language.htm src/zcolor.c src/gxdevcli.h src/gdevp14.c]

2004-05-25T10:41:10.000000Z 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]

2004-05-25T09:20:49.000000Z Igor Melichev

Fix an MSVC compiler warning.

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c]

2004-05-24T23:35:20.000000Z Ralph Giles

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

[src/gdevpdte.c src/devs.mak]

2004-05-24T17:56:39.000000Z Dan Coby

Fix for 687453 Problem with overprinting and shading.

DETAILS:

The given test file is a PDF file.  PDF allows for separate overprint
parameters for stroke and fill operations.  (There are also separate
parameters for other conditions in PDF.)  Usually this is handled by
the PDF interpreter by calling either setfillstate or setstrokestate
at the start of the handler for each operator.  However this call
was missing from the sh (shfill) handler.

[lib/pdf_draw.ps]

2004-05-24T12:21:09.000000Z Alex Cherepanov

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

[src/gdevbbox.c doc/Devices.htm]

2004-05-20T17:06:54.000000Z Igor Melichev

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

DETAILS :

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

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

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c]

2004-05-20T07:41:23.000000Z Ralph Giles

Apply a recursive 'configure' step to the autoconf build to generate
required code for the jasper library.

DETAILS:

The jasper library also ships with an autoconf build framework for POSIX
systems. Unfortunately, it relies on this framework to generate a header
file with defines describing the local system. This header, located in
jasper/src/libjasper/include/jas_config.h can be generated by hand from
the jas_config.h.in template, but it must be available when we're directly
compiling the source as part of Ghostscript.

We could attempt to construct one of our own, but within the confines
of an autoconf build, using jasper's native configure is more robust.
We could also go ahead and use recursive make to build the library
natively, but we would need a static makefile for non-autoconf builds.

Jasper provides an alternate header, jas_config2.h for use with MSVC.

[src/configure.ac]

2004-05-20T07:34:10.000000Z Ralph Giles

Add the jasper include path when compiling the JPXDecode filter so the
headers can be found if they're not already installed on the system.
Required to compile in the jasper library source from a fresh distribution
of the third-party library.

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

2004-05-19T11:09:47.000000Z Igor Melichev

Documenting the new implementation of shadings.

[doc/News.htm]

2004-05-18T13:42:30.000000Z Igor Melichev

A new implementation of shadings, step 79.

DETAILS :

Removed unused variables.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-05-18T11:07:29.000000Z Igor Melichev

A new implementation of shadings, step 78.

DETAILS :

Implementing gx_color_map_procs::is_halftoned and use it in shadings
to know whether linear color functions are applicable.

EXPECTED DIFFERENCES :

None.

[src/gxcmap.c src/gxcmap.h src/gdevplnx.c src/gxshade6.c src/gdevp14.c]

2004-05-18T10:36:59.000000Z Igor Melichev

A new implementation of shadings, step 78.

DETAILS :

Implementing gx_color_map_procs::is_halftoned and use it in shadings
to know whether linear color functions are applicable.

EXPECTED DIFFERENCES :

None.

[src/gdevp14.c]

2004-05-18T09:57:49.000000Z Igor Melichev

Documenting the new implementation of shadings.

[doc/Drivers.htm]

2004-05-17T17:27:17.000000Z Ralph Giles

Reword the description of the new shading implementation.

[doc/News.htm]

2004-05-17T12:24:55.000000Z Igor Melichev

A new implementation of shadings, step 77 (release candidate).

DETAILS :

1. A bug in is_quadrangle_color_linear caused an indeterministic choice of subdivision.
2. Provided a better order of filling wedges.
3. Mesh padding now stronger follows the V-boundary of a patch.

EXPECTED DIFFERENCES :

"442-01.ps"
"446-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"self-intersect2.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"

[src/gxshade6.c]

2004-05-13T15:24:42.000000Z Alex Cherepanov

Remove unused label.
Partial fix for bug 687441.

[src/gdevwpr2.c]

2004-05-13T13:03:50.000000Z Igor Melichev

Documenting the new implementation of shadings, step 76.

[doc/News.htm]

2004-05-13T12:52:18.000000Z Igor Melichev

A new implementation of shadings, step 76.
Switching new radial shadings on.
Radial shadings render in 3...10 times faster.
Radial shadings are not longer restricted with 8bpc.

EXPECTED DIFFERENCES :

"442-01.ps"
"483-01.ps"
"Clarke Tate Manns Chinese.ai"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"

[src/gxshade4.h]

2004-05-13T12:46:41.000000Z Igor Melichev

A new implementation of shadings, step 75.

DETAILS :

This is a continuation to the previous patch :
  4. Optimized for constant color :
    Fix : pfs->monotonic_color was not properly restored.

EXPECTED DIFFERENCES :

"442-01.ps"
"464-01.ps"
"483-01.ps"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"STEUER-RollingMesh 1(linear).ai"

[src/gxshade6.c]

2004-05-13T11:40:18.000000Z Igor Melichev

A new implementation of shadings, step 74.

DETAILS :

In the enabled code :

1. Non-linear color quadrangles are subdivided into quadrangles.
   This complies the color approximation with the specified smoothness.
2. Skipped quadrangles and triangles outside the clipping area.
3. Fixed the 'midpoint' formula. It was wrong and coused excessive subdivision.

In the disabled code (NEW_RADIAL_SHADINGS 0 in gxshade4.h) :

1. Debugged Extensions.
2. mesh_padding and wedges with zero length sides were tested.
3. Skipped painting outside the clipping area.
4. Optimized for constant color.

Known problems left :
1. With self-intersecting patches, outer wedges may paint in a wrong order.
This can cause such dropout that a lower part of the patch penetrates
through the upper part in single pixels.

EXPECTED DIFFERENCES :

"442-01.ps"
"446-01.ps"
"464-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"self-intersect2.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"

[src/gxshade4.h src/gxshade1.c src/gxshade6.c]

2004-05-12T21:33:40.000000Z Igor Melichev

A new implementation of shadings, step 73.

DETAILS :

The new code is disabled with NEW_RADIAL_SHADINGS in gxshade4.h .

The old implementation of the radial shading extensions appears
incompatible with the tensor representation of the radial shading
due to different spatial subdivision. Collisions at extension
boundaries caused dropouts.

Besides that, the old implementation
can't handle the case in which circles contact each another and one
circle is inside another. Also we suspect that with the old implementation
the trailing extension can overlap the shading when represented as "triangles".

This patch implements extensions with tensor patches.
Rather they have a constant color, we need the wedge logics
to work with them. Also we reworked the analyzis of
special cases of mutual placement of the base circles.

The new code works, but there are known problems :

1. Extensions to be tested systematically.
2. Debug mesh_padding and wedges with zero length sides.
3. Skip painting outside the clipping area.
4. Optimize for constant color.
5. Why "STEUER-RollingMesh 2(radial).ai-.pdf" generates so many triangles ?
6. Outer wedges may break the order of painting.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade1.c src/gxshade6.c]

2004-05-12T20:12:34.000000Z Igor Melichev

A new implementation of shadings, step 72.

DETAILS :

1. Another continuation for the bug in LAZY_WEDGES of the step 65 :
"color was desynchronized with vertices when filling a wedge."
Previous attempts to fix it appear wrong.
This one implements entirely different logics.
The division count is now a property of a division point.

2. Fixed the wrong order of colors in ln 2800 in the function "triangles".

EXPECTED DIFFERENCES :

"442-01.ps"
"483-01.ps"

[src/gxshade4.h src/gxdtfill.h src/gxshade6.c]

2004-05-12T18:08:05.000000Z Jack Moffitt

Fix regression reports (the previous commit accidentally did the exact
opposite of what we wanted).  Also, cleaned up the way the report is built
so that it is much less confusing.

[toolbin/tests/run_nightly]

2004-05-12T15:37:07.000000Z Alex Cherepanov

Avoid a numeric exception; throw /rangecheck when .getbitsrect operator is
invoked with raster width = 0.
Fix bug 687223.

[src/zdevice.c]

2004-05-12T11:33:03.000000Z Igor Melichev

A new implementation of shadings, step 72.

DETAILS :

1. A continuation for the bug in LAZY_WEDGES of the step 65 :
"color was desynchronized with vertices when filling a wedge." :
open_wedge_median did not set l->from_last_side.

2. A bug : Color linearity check missed the shading function linearity check.
Debugged with "MLC2\PROB322-shadings\Clarke Tate Manns Chinese-1.ai.pdf"
(the big yellow radial gradient) and NEW_RADIAL_SHADINGS 1.

EXPECTED DIFFERENCES :

"442-01.ps"
"464-01.ps"
"483-01.ps"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"STEUER-RollingMesh 1(linear).ai"

[src/gxshade6.c]

2004-05-12T00:04:49.000000Z Alex Cherepanov

Fix some warnings about unused variables and undeclared functions
generated by MSVC with warning level 3. Move the definition of WARNOPT
and add ifdef's.                      
Partial fix for bug 687441.

[DETAILS]
Although nmake overrides internal definitions when called from command line,
it doesn't do so when the makefile is invoked from Development Studio.

[src/dwimg.h src/gdevm64.c src/dwtrace.h src/dwmain.c src/dwmainc.c src/msvccmd.mak src/msvc32.mak src/dwimg.c src/unistd_.h src/gdevwdib.c]

2004-05-11T20:48:41.000000Z Alex Cherepanov

GCC with -ffast-math compiles ang/90. as ang*(1/90.), losing precission.
This doesn't happen when the numeral is replaced with a non-const variable.
So we define the variable to work around the GCC problem.
Fix bug 687420.

[src/gsmisc.c]

2004-05-11T20:26:15.000000Z Alex Cherepanov

Ignore 0-length tables that occur in PDF files generated by Crystal.
Fix bug 687457.

[lib/gs_ttf.ps]

2004-05-11T11:13:52.000000Z Igor Melichev

A new implementation of shadings, step 70.

DETAILS :

Fixing a bug in fill_wedge_from_list_rec :
wedge vertices can't identify by their coordinates,
because dividing a short bar could get same coordinates as one of its end.
wedge_vertex_list_elem_t::level now works for the identification.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade6.c]

2004-05-11T10:41:55.000000Z Igor Melichev

A new implementation of shadings, step 69.

DETAILS :

Implementing radial shading with tensor shadings.

The new code is disabled with NEW_RADIAL_SHADINGS in gxshade4.h .
The new code works but it discovered a problem in fill_wedge_from_list_rec :
wedge vertices can't identify by their coordinates.
The problem appears an important bug to be fixed separately.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade1.c src/gspath1.c src/gspath.h]

2004-05-06T19:06:26.000000Z Dan Coby

Correct a problem in the fix for 687418 detected by Russell Lang.  Also
make the routine check_device_separable public for use by the display
device.  The prototype is in gxdevice.h.

[src/gdevdflt.c src/gxdevice.h]

2004-05-06T17:19:15.000000Z Dan Coby

Disable the fix for 687418.  This is causing many errors in the regression
tests.  These need to be investigated.

[src/gdevdflt.c]

2004-05-06T16:26:39.000000Z Jack Moffitt

Repress the full report except on Mondays.

[toolbin/tests/run_nightly]

2004-05-06T14:01:10.000000Z Igor Melichev

A new implementation of shadings, step 68.
Switching linear color device fucntions on.

EXPECTED DIFFERENCES :

"442-01.ps"
"446-01.ps"
"464-01.ps"
"478-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"BEST8-99-Path.fh7.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"self-intersect2.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"

[src/gxshade4.h]

2004-05-06T13:25:54.000000Z Igor Melichev

A new implementation of shadings, step 67.

DETAILS :

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
Provided a consistency of 'unlenear' to 'is_color_linear'

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-05-06T13:03:34.000000Z Igor Melichev

A new implementation of shadings, step 66.

DETAILS :

Improving the recognition of linear devices with a hack for a halftone check.
The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
Debugged with pkmraw.
This to be rivised by the color team.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-05-06T12:34:40.000000Z Igor Melichev

A new implementation of shadings, step 65.

DETAILS :

A bug in LAZY_WEDGES :
color was desynchronized with vertices when filling a wedge.

The bug was not detected because
the color difference appears small due to small wedges.
It appears big with USE_LINEAR_COLOR_PROCS 1 with -r300 483-01.ps.

EXPECTED DIFFERENCES :

300dpi :

"442-01.ps"
"446-01.ps"
"464-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"gradmesh.ai"
"SmoothShading.pdf"
"STEUER-RollingMesh 3(Final).ai"
"442-01.ps"

72dpi:

"442-01.ps"
"446-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"gradmesh.ai"
"SmoothShading.pdf"
"STEUER-RollingMesh 3(Final).ai"

[src/gxshade4.h src/gxshade6.c]

2004-05-06T08:41:40.000000Z Igor Melichev

A new implementation of shadings, step 64.

DETAILS :

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .

Fixing various problems with linear color :
1. Clipping didn't work with linear color.
2. gx_default_fill_linear_color_scanline missed some clipping by X.
3. Zero smoothness caused an infinite recursion.
4. The number of device color components was wrong.

EXPECTED DIFFERENCES :

None.

[src/gdevdsha.c src/gxclip.c src/gxshade6.c]

2004-05-06T07:46:32.000000Z 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. 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]

2004-05-06T06:20:50.000000Z Dan Coby

Make check_device_separable private to avoid a warning from gcc.

[src/gdevdflt.c]

2004-05-06T05:49:10.000000Z Dan Coby

Fix for 687455.  The overprint logic creates a temporary device which is
used to initialize a set of procedures.  This temp device is only paritally
initialized.  The partially initialized device is being set up as a
forwarding device but the target device is not yet present.  This created
a problem when check_device_separable executed.  This change sets the temp
device to 'not separable' so check_device_separable does not try to do
anything.

[src/gsovrc.c]

2004-05-06T05:19:15.000000Z Igor Melichev

A new implementation of shadings, step 63.

DETAILS :

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .

Fixing various problems with linear color :
1. Applyed compiler independent data types int32_t.
2. Implemented ends_from_fa with X-independent gradients,
   because the decomposiotion by color linearity breaks
   at coordinates which are not trapezoid corners.
   Added a comment to gxdevcli.h to document it.
3. X-gradient denominator was wrong.
4. X-gradient numerator left wrong from the step 58.
5. gx_default_fill_linear_color_scanline ignored the clipping by X.
6. A_fill_region missed the path bbox.
7. Implemented is_color_linear for a proper subdivision by color.
8. decompose_linear_color now applies a linear color
   instead fill_triangle_wedge. See a comment in fill_triangle_wedge.
   Also for mesh_padding.

EXPECTED DIFFERENCES :

None.

[src/gxdtfill.h src/gxshade1.c src/gdevnfwd.c src/gdevdsha.c src/gdevddrw.c src/gxshade6.c src/gxdevcli.h]

2004-05-06T05:17:52.000000Z Igor Melichev

Implementing is_monotonic for cubic interpolation functions (continued 2).

DETAILS :

Some monotonic functions were not recognized.
1. Fix : A bug (identifier conflict) in clamp_poles, dimension_monotonity.
2. Fix : Allow the reversed order of boundaries (gsfunc0.c ln 980-983).

EXPECTED DIFFERENCES :

464-01.ps

[src/gsfunc0.c]

2004-05-05T23:55:05.000000Z Dan Coby

Fix for 687418 WTS does not work with bitcmyk driver.  This fix
is applicable to most devices.

DETAILS:

WTS screening, overprinting, halftoning for more than five colorants
and the fast halftoning logic need to be able to create gx_color_index
values without using the encode_color routine.  This only works if a
device is 'separable'.  However, by default, most devices indicate
'unknown'.  This change implements a heuristic for checking if a
device is separable.  If so then it also determines the various
related parameter values (comp_shift, comp_bits, comp_mask).

[src/gdevdflt.c]

2004-05-05T22:52:45.000000Z Ralph Giles

Document that we no longer support loading truetype CJK fonts directly from
/Resources/CIDFont as worked in 7.0x for Japanese fonts. This has been replaced
by the more general, if less convenience, cidfmap mechanism. Closes bug 686949.

[doc/Fonts.htm doc/Use.htm]

2004-05-05T09:45:08.000000Z Igor Melichev

A new implementation of shadings, step 62.

DETAILS :

1. Implemented gx_cspace_is_linear_in_line and applied it for
checking the stripe transversal color lnearity.
2. Generalized 'is_halftoned' to 'unlinear'.
3. is_color_span_v_linear must not apply when 'unlinear'.

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gscspace.c src/gxshade6.c]

2004-05-05T09:02:36.000000Z Igor Melichev

A new implementation of shadings, step 61.

DETAILS :

1. is_color_span_v_linear allows wider stripes.
2. quadrangle_color_change doesn't yield color_change_gradient with USE_LINEAR_COLOR_PROCS.
   Thus it prefers color_change_linear, allowing bigger quadrangles.
Both changes improve the performance.

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
In the enabled code removed redundant computations from quadrangle_color_change.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-05-05T09:01:22.000000Z Igor Melichev

Implementing is_monotonic for cubic interpolation functions (continued 1).

DETAILS :

1. Fix : subcurve expression applied wrong signs to t01, t11.
2. Suppress small noize while computing a subcurve.
Both changes recognize more monotonic curves.

EXPECTED DIFFERENCES :

464-01.ps

[src/gsfunc0.c]

2004-05-05T06:35:44.000000Z Igor Melichev

A new implementation of shadings, step 60.

DETAILS :

Define frac31 with int32_t to minimize compiler dependence.

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxdevcli.h]

2004-05-04T21:31:43.000000Z Ralph Giles

Replace locally-defined (u)int32 typedefs with the stdint_.h types now
that they're universally available. This avoids conflict with typedefs
that are pulled in from sys/types.h on some systems. Bug 687404.

[src/gdevupd.c]

2004-05-04T18:14:46.000000Z Igor Melichev

A new implementation of shadings, step 59.

DETAILS :

Moved the device pointer from gs_fill_attributes to a separate argument
in order to simplify the implementation of forwarding devices.
A farwarding device 'clipper' works for almost all shadings.

Also fixed a bug in middle_frac31_color from the previous patch.
It was not detected because normally this function isn't called.

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .

EXPECTED DIFFERENCES :

None.

[src/gxdtfill.h src/gdevnfwd.c src/gdevdsha.c src/gdevddrw.c src/gxshade6.c src/gxdevcli.h]

2004-05-04T17:53:26.000000Z Igor Melichev

A new implementation of shadings, step 58.

DETAILS :

Replaced frac32 with frac31 to represent negative color difference.
We could do with frac32 and with additional arguments about the
ending color, but we don't want the performance flaw.
31 bits should be enough precise.
Also removed hacks about fitting negative differences into int32_t.

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .

EXPECTED DIFFERENCES :

None.

[src/gxdtfill.h src/gdevnfwd.c src/gdevdsha.c src/gdevddrw.c src/gxshade6.c src/gxdevcli.h]

2004-05-02T21:24:55.000000Z Ralph Giles

Add recent new files to the listing in the developer documentation.

[doc/Develop.htm]

2004-05-02T20:30:11.000000Z Ralph Giles

Add the JPXDecode implementation to the list of files in the documentation.

[doc/Develop.htm]

2004-05-02T19:37:03.000000Z Ralph Giles

Add a missing file to the testsuite documentation.

[doc/Testing.htm]

2004-05-02T19:26:11.000000Z Ralph Giles

Return the number of failures on exit so an external program can take action on the results. Previously, our tests always returned 0.
----------------------------------------------------------------------

[toolbin/tests/gstestutils.py]

2004-05-02T19:23:01.000000Z Ray Johnston

Remove dependency on python2.2. Tested with python 2.3.3. Primary problem
was that calendar module no longer has a localtime member, used time instead.

[toolbin/tests/gscheck_raster.py toolbin/tests/update_pdfbaseline toolbin/tests/make_testdb toolbin/tests/check_source.py toolbin/tests/update_baseline toolbin/tests/check_dirs.py toolbin/tests/gscheck_all.py toolbin/tests/make_two_pdfversions toolbin/tests/check_all.py toolbin/tests/make_two_versions toolbin/tests/gscheck_fuzzypdf.py toolbin/tests/gscheck_pdfwrite.py toolbin/tests/run_nightly toolbin/tests/revert_pdfbaseline toolbin/tests/run_regression toolbin/tests/get_baselines toolbin/tests/testdiff toolbin/tests/check_comments.py toolbin/tests/revert_baseline toolbin/tests/check_docrefs.py toolbin/tests/dump_testdb]

2004-05-02T19:00:18.000000Z Ralph Giles

Avoid failing when testing.cfg isn't available. This allows check_all.py to be run on a fresh checkout just by passing --gsroot=. on the commandline. Previously this option could only be used to override a required version in testing.cfg

[toolbin/tests/gstestutils.py]

2004-04-30T22:31:58.000000Z Ralph Giles

Provide a dummy 'make check' target in the autoconf build. Some users have requested this,
and it's available on the GPL 7.0x releases.

[src/Makefile.in]

2004-04-29T18:51:28.000000Z Dan Coby

Remove some more compiler warnings.  Found by Igor.  687441.

[src/gdevpsd.c]

2004-04-29T16:18:01.000000Z Igor Melichev

A new implementation of shadings, step 57.

DETAILS :

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
1. Likely QUADRANGLES 1 appears unusefil. Documenting that.
2. Implementing mesh_padding with linear color.
3. Minor improvements to conmments.
4. Stronger conditions against color stairs in triangle_by_4, color_change_small.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade6.c src/gxdevcli.h]

2004-04-29T13:47:22.000000Z Igor Melichev

A new implementation of shadings, step 56.

DETAILS :

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
The previous patch appears incomplete. Now fixed.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h]

2004-04-29T13:40:27.000000Z Igor Melichev

A new implementation of shadings, step 55.

DETAILS :

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
Implemented a check whether the device halftones.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-04-29T12:38:48.000000Z Igor Melichev

A new implementation of shadings, step 54.

DETAILS :

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .

1. Color computations were wrong.
2. clist didn't implement linear color functions.
   This patch stubs them, but fill_linear_color_trapesoid should write
   into clist.
3. The clipping rectangle was missed for shading Type 0, 5.

It still has problems with clipping with 446-01.ps .
Also likely we should replace frac32 with frac31 to provide signed values.

EXPECTED DIFFERENCES :

None.

[src/gxclist.c src/gxdtfill.h src/gxshade1.c src/gdevnfwd.c src/gdevdsha.c src/gdevddrw.c src/gxshade4.c src/gxdevcli.h]

2004-04-29T06:14:17.000000Z Igor Melichev

A new implementation of shadings, step 53.

DETAILS :

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
This patch implements wedges with a linear color.
USE_LINEAR_COLOR_PROCS 1 passed a simple test with ppmraw.
Other devices are not yet supported due to problems with
checking for a halftoning.

EXPECTED DIFFERENCES :

None.

[src/gxdtfill.h src/gdevddrw.c src/gxshade6.c]

2004-04-29T04:37:55.000000Z Igor Melichev

A new implementation of shadings, step 52.

DETAILS :

Linear color passed a simple test with ppmraw, except wedges.
The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
This patch fixes numerows errors in the desabled code.

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxdtfill.h src/gdevdsha.c src/gdevddrw.c src/gscspace.c src/gxshade6.c]

2004-04-28T16:41:44.000000Z Dan Coby

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

[src/gdevpsd.c src/gdevdevn.c src/devs.mak src/gdevdevn.h]

2004-04-28T15:24:25.000000Z Igor Melichev

A new implementation of shadings, step 51.

DETAILS :
Colors were wrongly converted to frac32. Should do through device color.

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
The new code is not debugged yet.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-04-28T09:39:50.000000Z Igor Melichev

A new implementation of shadings, step 50.

DETAILS :

1. gx_default_fill_linear_color_triangle wrongly checked for a large color span.
2. fill_linear_color_* procs were not set for clip devices.
3. cs_is_linear were defined with a wrong argument list.
4. Optimized the prototype of cs_proc_is_linear.
5. Gradient buffers were not allocated in gxdtfill.h .
6. Attaching fill_linear_color_triangle to triangle_by_4 in shadings.

The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
The new code is not debugged yet.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxcspace.h src/gxdtfill.h src/gxclipm.c src/gxclip.c src/gdevddrw.c src/gxclip2.c src/gscspace.c src/gdevrops.c src/gxshade6.c]

2004-04-28T05:39:56.000000Z Dan Coby

Implement 687423  Implement SeparationOrder for psdcmyk device.

DETAILS:

The following changes are for implementing the SeparationOrder
parameter for the psdcmyk device.

The change consists of the following:

1.  Several routines which were duplicated in the spotcmyk
and psdcmyk devices were restructured to allow the use of
common subroutines.  As part of this effort the various
common DeviceN related parameters were separated into a
substructure (call devn_params).  This allows the use of
common routines even though the devices do not have the
same overall device description structure.

2.  Changes to the src/gdevpsd.c module for actually collecting
the SeparationOrder parameter data and then using it.  Note:
The treatment of separations is different for the process
color model colorants versus the spot colors.  The colorants for
the process color model do not have their order changed.  The
output file always starts with information for the CMYK channels.
If one of these colorants is not specified in the SeparationOrder,
then the output channel data in the file will simply be 'blank'.
Spot colors follow CMYK data.  They are rearranged.  Only the
spot colors specified are output.

3.  Several checks in src/gdevdflt.c and src/gxcmap.c had to
be removed or modified.  These checks were assuming that a
device with a single component uses a gray process color
model and a device with three components used RGB.

[src/gdevpsd.c src/gsdparam.c src/gdevdflt.c src/gdevdevn.c src/gdevdevn.h]

2004-04-28T04:06:25.000000Z Igor Melichev

A new implementation of shadings, step 49.

DETAILS :

1. gx_default_fill_linear_color_trapezoid wrongly subdivided big areas :
   the edge height was not reduced. It could cause an infinite loop.

2. Removed c_prec, x_prec.

The new code is never called and never tested.

EXPECTED DIFFERENCES :

None.

[src/gxdtfill.h src/gdevddrw.c]

2004-04-28T02:35:12.000000Z Igor Melichev

A new implementation of shadings, step 48a.

DETAILS :

Removing the unused gdevdsha.h .

EXPECTED DIFFERENCES :

None.

[src/gdevdsha.h]

2004-04-28T02:26:44.000000Z Igor Melichev

A new implementation of shadings, step 48.

DETAILS :

Removing a code of dead development branches.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade6.c]

2004-04-27T08:26:43.000000Z Igor Melichev

A new implementation of shadings, step 47.

DETAILS :

Implementing gx_default_fill_linear_color_triangle, step 2 :
fixing interface problems.
The new code is never called and never tested.

EXPECTED DIFFERENCES :

None.

[src/gdevddrw.c src/gxdevcli.h]

2004-04-27T08:12:50.000000Z Igor Melichev

A new implementation of shadings, step 46.

DETAILS :

Implementing gx_default_fill_linear_color_triangle.
The new code is never called and never tested.

EXPECTED DIFFERENCES :

None.

[src/gdevddrw.c src/gxdevcli.h]

2004-04-27T06:04:03.000000Z Ralph Giles

Add makefile support for compiling in the jasper JPEG 2000 library,
needed to support the JPXDecode filter in PDF 1.5. Currently only
enabled in the autoconf build, but porting the changes to other top-level
makefiles should now work.

[src/lib.mak src/gs.mak src/Makefile.in src/configure.ac src/jasper.mak]

2004-04-27T06:01:21.000000Z Ralph Giles

Correct two typos in the jasper local source directory detection. It was
erroneously resetting the jbig2dec local source directory and not reporting
the found location correctly.

[src/configure.ac]

2004-04-27T05:43:29.000000Z Igor Melichev

A new implementation of shadings, step 45.

DETAILS :

Implementing a linear color for filling a trapezoid.
This patch provides necessary data exchange.
The new code is never called and never tested.

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxdtfill.h src/gdevnfwd.c src/gdevdsha.c src/gdevddrw.c src/gxdevcli.h]

2004-04-23T12:30:53.000000Z Alex Cherepanov

Keep calculation in signed types to avoid conversion of the negative
int to the big positive long, which caused infinite loop on Alpha in
t1_hinter__adjust_matrix_precision() inline function.
Fix bug 687417.

[src/gxhintn.c]

2004-04-22T06:38:19.000000Z Ralph Giles

Document the use of .setpdfwrite and the relation of vmthreshold to the
accumulation of shared object data in the pdfwrite device. Closes bug
687409.

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

2004-04-17T18:30:00.000000Z Igor Melichev

A new implementation of shadings, step 44.

DETAILS :

The function fill_pixel appears unuseful.
Now it is replaced with fill_linear_color_scanline.
This patch also defines a default implementation.

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gdevdflt.c src/gxdevice.h src/gdevnfwd.c src/gdevdsha.c src/gxdevcli.h]

2004-04-15T22:50:24.000000Z Igor Melichev

Implementing color mapping linearity checks, step 2.

DETAILS :

Fix the color index decomposition in gx_cspace_is_linear_in_triangle.

EXPECTED DIFFERENCES :

None.

[src/gscspace.c]

2004-04-15T17:26:36.000000Z Ray Johnston

Fix to make sure that both stroke (CA) and non-stroke (ca) opacity is set.
Support for customer #32 that wants to create transparent effects in PDF
from PostScript input.

DETAILS:

Previously the opacity was set for one or the other (whichever was first)
and only updated when the value changed. Since the 'state' only retained
a single value, the following PS snippet would not set the CA value as it
should to 0.5. Since we never use the 'b/B' fill + stroke painting methods
(our graphics library currently has no device function for this), a PDF
that contains a 'b' method will be decomposed into a 'f' followed by 's'
operation, setting the opacity from the PDF interpreter's retained ca/CA
between the operations.

PostScript snippet to test this:

<< /CompatibilityLevel 1.4 >> setpagedevice
	% work around rectfill mapping directly to device fill_rectangle
/rectfill { gsave 4 2 roll moveto 1 index 0 rlineto
  0 exch rlineto neg 0 rlineto closepath fill grestore
} bind def
	% Do some background -- not transparent painting mode
0 0 0 setrgbcolor 0 0 600 700 rectfill
.7 .7 .7 setrgbcolor 200 0 400 700 rectfill
1 1 1 setrgbcolor 400 0 200 700 rectfill
	% Go to a transparent painting mode
/Normal .setblendmode .5 .setshapealpha
	% paint some shapes transparently
.9 .8 .1 setrgbcolor 100 100 450 450 rectfill
	% The next stroke is non-transparent w/o the patch
.2 .2 .9 setrgbcolor 50 setlinewidth 50 700 moveto 450 -650 rlineto stroke
.7 .setshapealpha
.9 .3 .3 setrgbcolor 50 setlinewidth 50 50 moveto 450 650 rlineto stroke
showpage quit

[src/gdevpdfg.c]

2004-04-15T16:47:15.000000Z Ray Johnston

Correction to previous commit that caused Subtype value to be consumed
if it was not a null name. Valid files would fail.

[lib/pdf_font.ps]

2004-04-14T00:02:20.000000Z Dan Coby

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

DETAILS:

The problem was due to the bounding box device creating
more and more bounding box devices in the device chain
when the overprint compositor was being used.  The x11alpha
device uses the bounding box device.  The overprint logic
uses the 'create compositor' logic when a change is made
in the status of the overprint or overprint mode parameters.
However a new compositor is not created each time.  Instead
the overprint device simply updates its parameters.  The
bounding box device has its own create compositor.  This
routine would call its target device's create compositor
routine and then wraps a new bounding box device around the
target's compositor.  The combination of many create
compositor calls from the overprint logic and the fact that
the bounding box device adds a new bounding box device
could result in hundreds of bounding devices in the chain.

The fix consists of checking if the bounding box's target
device actually created a new compositor device.  Only when
a new compositor was added is a new bounding box also added
to the chain.

[src/gdevbbox.c]

2004-04-13T23:25:28.000000Z Dan Coby

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

DETAILS:

To prevent confusion, the following two paragraphs of explanation
were added to the first page of the examples/annots.pdf example file.

"IMPORTANT NOTE ABOUT THIS PAGE: This page was created for the testing
 the display of link annotation parameters. The file was created using
 Adobe Acrobat 5.0 (and modified using Acrobat 6.0). The displaying of
 each annotation is specified in the annotation. By default, Acrobat sets
 link annotations so that they are normally displayed by 'viewer'
 applications. They are not normally displayed in printed output. That is
 the case with these annotations.

 Ghostscript checks the display specifications for each annotation. By
 default, Ghostscript assumes that the output is 'printed' if the
 'OutputFile' parameter is defined. Adding '-dPrinted=false' to the command
 line will force Ghostscript to display 'viewer' annotations in all output.
 Adding '-dPrinted=true' will disable the displaying of these annotations."

[examples/annots.pdf]

2004-04-13T16:32:07.000000Z Ray Johnston

Handle (yet another) invalid PDF that Adobe Acrobat can open. If the
Font /Subtype is / then assume Type1. Also issue a **** WARNING message.
Bug #687422 for Artifex customer #670.

DETAILS:

This is a simple patch, with known limitations if the actual font type
cannot be handled by the buildType1 procedure. Only Type1 and MMfonts
will work correctly. Since the PDF is invalid, we will leave more vigorous
handling until another different PDF file surfaces.

[lib/pdf_font.ps]

2004-04-10T17:14:54.000000Z Alex Cherepanov

Use ld_length instead of length because RMap is a long dictionary.
Fix bug 687363.

[toolbin/pdfinflt.ps]

2004-04-09T06:20:25.000000Z Igor Melichev

A new implementation of shadings, step 44.

DETAILS :

Propagate return codes frpom patch_color_to_device_color.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-04-08T16:18:25.000000Z Ralph Giles

Correct DOS line endings accidentally committed to the repository.
Bug 687415.

[src/math_.h src/windows_.h src/errors.h src/dwnodll.c src/gp_dosfs.c src/dwdll.c src/zfont42.c lib/dumphint.ps src/dwimg.c src/gscolor.c toolbin/tests/fuzzy.c src/gscolor1.c src/gp_vms.c]

2004-04-08T07:59:19.000000Z Igor Melichev

Implementing color mapping linearity checks, step 1.

DETAILS :

Color mapping linearity check rutines will be used to improve
the performance and quality of shadings. They check
whether a color mapping is quazi-linear within a subdomain.
The subdomain is specified as a convex hull of a set of colors.

This patch defines prototypes and the default implemetation.
They are not called and not debugged.
The purpose of this commit is a codebase synchronization before a project switch.

EXPECTED DIFFERENCES :

None.

[src/gscpixel.c src/gscscie.c src/gxcspace.h src/gscsepr.c src/gscspace.c src/gspcolor.c src/gsicc.c src/gscdevn.c src/gscolor2.c]

2004-04-07T15:10:40.000000Z Raph Levien

Fix: Disables platfonts when antialiasing is in effect. Improves rendering
quality, and fixes bug 687368.

[src/gxchar.c]

2004-04-02T14:21:39.000000Z Igor Melichev

Fix (pdfwrite) : /XObject <<-1 0 R>> was written to a pattern dictionary.

DETAILS :

Bug 687396 "PDF Conversion of PS doc fails with large image"
happened to a delayed object ID assignment.
Delay adding the resource until an ID is assigned.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfj.c]

2004-04-02T07:06:02.000000Z Igor Melichev

Fix : Restoring the non-cache-device constraint in setcolor.

DETAILS :

It was removed by a recent patch, but PLRM3 page 215 requires it.

EXPECTED DIFFERENCES :

None.

[src/gscolor2.c]

2004-04-02T02:19:18.000000Z Ray Johnston

Dump output from 'attrib -H dosdefault' to the bit bucket (nul:) to
eliminate a potentially confusing warning.

[src/msvccmd.mak]

2004-04-01T20:39:44.000000Z Igor Melichev

Fix (Type 1 hinter) : Skip empty hint ranges, improved.

DETAILS :

The previous patch caused a regression with 86554321.pdf .
This one fixes that.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c]

2004-04-01T19:58:42.000000Z Igor Melichev

Fix (Type 1 hinter) : Skip empty hint ranges.

DETAILS :

Bug 687393 "Hang with 8.14 from command line".
The test document embeds a font with a hint mask,
which defines a stem range with 'closepath' only.
t1_hinter__skip_stem couldn't handle this case,
because we exclude 'closepath' from the pole list.
We believe that the font is buggy, but provide a tolerance.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c]

2004-04-01T13:35:07.000000Z Igor Melichev

Fix : Cygwin/gcc compiler warnings.

DETAILS :

./src/gstext.c:83: warning: suggest explicit braces to avoid ambiguous `else'

EXPECTED DIFFERENCES :

None.

[src/gstext.c]

2004-04-01T13:23:06.000000Z Igor Melichev

Fix : MSVC6 compiler warnings.

DETAILS :

An "initialized data" warning appeared when MSVC6 performs a release build
with inline optimizations on (The inline optimization inlines small function bodies,
being not marked with the inline keyword).

1. The "uninitialized data" warning in alloc_name_index_is_since_save
in isave.c was a real bug with an indeterministic behavior :
nref.tas.rsize was accessed by names_index_inline from names_string_inline
from alloc_name_is_since_save from alloc_name_index_is_since_save
with no advance initialization.
This bug was not detected because this function is only
invoked when a 'save' unwinds glyph names added to an incremental font,
but doesn't unwind the font - we have no such examples.
IMO existing PS drivers never cvreate such documents.

2. The "uninitialized data" warning in cos_array_add_object appears due to
cos_copy_element_value copies entire 'value' when another variant of an union
has a bigger size and was uninitialized.
The copying of the uninitialized data looks not harmful due to the 'int' type,
but generally it could cause an interrupt on platforms with a tagged memory.
We prefer to suppress the warning with an unuseful initialization,
because the processor time consumption is pretty small and happens not frequently.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfo.c src/isave.c]

2004-04-01T11:43:33.000000Z Igor Melichev

A new implementation of shadings, step 43.

DETAILS :

Defining new device virtual functions for filling with a linear color.
This only defines but never uses them.

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gdevdflt.c src/gxdevice.h src/gdevnfwd.c src/gdevdsha.c src/gdevdsha.h src/gxdevcli.h]

2004-04-01T11:30:47.000000Z Igor Melichev

Fix : setcachedevice must not depend on a BuildChar color and on gx_show_text_retry.

DETAILS :

1. The bug 687391 "assert src/gxccman.c:557 again" happened
   because BuildChar changed the current color before
   setcachedevice calls compute_glyph_raster_params,
   and the raster params computed differently than
   during the advance glyph raster cache lookup.

2. Removed
     if (pgs->in_cachedevice)
 	return_error(gs_error_undefined);
   from gs_setcolor,
   because I can't guess it's reason/purpose.
   It looks as a rudiment from a pre-repository versions.

3. The assertion also failed with
   "-dTextAlphaBits=4 -dLastPage=1 comparefiles\xgfddg.pdf".
   In gx_add_cached_char added the case "cc->pair == NULL" :
	    /* gx_show_text_retry could reset it when bbox_draw
	       discovered an insufficient FontBBox and enlarged it.
	       Glyph raster params could change then. */

4. gx_show_text_retry must reset penum->pair due to possible FontBBox change,
   see (3).

5. The cc_set_pair macro to be applied for changing cc->pair
   to provide consistent data for font_dir_reloc_ptrs.


EXPECTED DIFFERENCES :

None with regular regression test.

Normal with -r72 -dTextAlphaBits=4 -dAlignToPixels=0 :

"213-01.ps"
"214-01.ps"
"244-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"258-01.ps"
"270-01.ps"

Normal with -r300 -dTextAlphaBits=4 -dAlignToPixels=0 :

"245-07.ps"
"270-01.ps"

-dTextAlphaBits=2 : not tested.
-dAlignToPixels=1 : not tested.

[src/gxchar.c src/gxccman.c src/gxccache.c src/gxtext.h src/gscolor2.c]

2004-04-01T06:46:17.000000Z Ray Johnston

Fix for premature freeing of a 'image' device (makeimagedevice or the
similar makewordimagedevice). Bug #687227. Thanks to Alex Cherepanov for
the patch.

[src/gsdevmem.c]

2004-04-01T06:14:00.000000Z Ray Johnston

Fix for inherited MediaBox for the page Group dictionary (transparency).
Bug #687293. Thanks to Felix Pahl for the analysis and fix.

[lib/pdf_main.ps]

2004-04-01T04:51:42.000000Z Dan Coby

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

DETAILS

The halftoning logic assumes that there are the same number
of shades of each color.  However the 256 color palette
devices were using a 7x7x5 color cube.  I.e. there were 7
shades of red and green, however there were only 5 shades of
blue.  The data in the device's color_info (max_color, max_gray,
dither_colors, and dither_grays) indicated that there were
7 shades.  The halftoning logic, using this information, was
attempting to display the given pale yellow color by dithering
between 6/7ths and 7/7ths of each component.  However the
encode_color routine returned colors which include solid blue
for all cases.  This biased the resulting halftoned color
toward blue.

The fix involves changing the 256 color palette devices to
use a 6x6x6 color cube.  The same routine pc_8bit_map_rgb_color
is used for all of the 256 color palette devices.  Thus the
change consists of modifying this routine and the associated
pc_8bit_map_color_rgb routine.  The specification of each of
the devices has to be changed to represent the change in the
cube size.

[src/gdevp2up.c src/gdevcgm.c src/gdevpccm.h src/gdevpcx.c src/gdevbmp.c src/gdevsvga.c src/gdevpccm.c src/gdevpng.c]

2004-03-25T17:35:11.000000Z Igor Melichev

Fix (PDF interpreter) : Stack balance was broken when a CID font is not embedded.

DETAILS :

It was broken since pdf_font.ps rev.1.59.
Bug 687384 "/invalid font in -dict-".

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps]

2004-03-25T14:46:59.000000Z Igor Melichev

Fix (Type 1 hinter) : Use a weaker condition for horizontal stem recognition.

DETAILS :

Alignment zones were not applied due to a quazy horizontal segment
was not considered as a hiorizontal one. We think that the font
has an inaccurate glyph design, but we provide more tolerance.
Likely Adobe does the same.

Bug 687385 "fonts different heights with 75 dpi".

EXPECTED DIFFERENCES :

72 dpi :

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

300 dpi :

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

[src/gxhintn.c]

2004-03-24T23:46:35.000000Z Ralph Giles

Remove an empty '#' line. Closes bug 687377.

[src/stdint_.h]

2004-03-24T08:56:07.000000Z Ray Johnston

Fix for unnecessary re-link when building on Windows. Bug #687059.

DETAILS:

Since 'dosdefault' was not being made, make always did the link. Create
a dummy "result" being a file named dosdefault and make works as Igor
wants.

[src/msvccmd.mak]

2004-03-24T07:30:29.000000Z 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]

2004-03-24T07:29:38.000000Z Ralph Giles

Make use of the SYS_TYPES_HAS_STDINT_TYPES define we set in the configure script. After a patch
from Alex Cherepanov. Bug 687377.

Also, adopt elif, since we've been using it elsewhere to no ill effect.

[src/stdint_.h]

2004-03-24T06:38:48.000000Z Ray Johnston

Fix for incorrect Annotation scaling when an Appearance (/AP) had
scaling that was not unity (1) and the Subtype was not /Stamp.
Fixes Bug #687288 for customer #32.

DETAILS:

The scaling difference in the annotation (object 14 0) was due to
Ghostscript not recognizing the bsiTextStamp annotation Subtype.

Careful reading of the Adobe PDF specification says that if there
is an Appearace stream (/AP dict), then the Form XObject should be
scaled using the method that we perviously only used for /Stamp
Subtype annotations (calcstampscale). The section of the PDF 1.5
Reference Manual is 8.4.4.

The patch is fairly simple, but testing of the regression suite
showed one file, foo.pdf, that was missing the require /Rect entry
in the Annot dict. The patch includes a check and warning for this
problem.

EXPECTED DIFFERENCES:

With this patch, some of the regression files will have slightly
different scaling for some of the annotations, but the differences
are all too small to compare to Adobe. The largest variations are
seen with annots.pdf (our test file) where the scaling ranges from
a low of 0.979191 to a high of 1.01636. The files are:

filename                        scaling range (was 1)
01_001.PDF                      1.0
SyscoCorrugatedprintcard.pdf    1.0 .. 1.00268
annots.pdf                      0.979191 .. 1.01636
rf1025.PDF                      0.998471

IMO, these are all close enough to be considered progressions.

[lib/pdf_draw.ps]

2004-03-24T06:20:50.000000Z Ralph Giles

Adobe no longer provides a public link to DistillerParameters.pdf. Link to a hopefully somewhat
stable directory from which the inspired user can register and download the documentation.

[doc/Ps2pdf.htm]

2004-03-24T06:12:52.000000Z Dan Coby

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

DETAILS:

Ray found that the error message was due to an invalid shading
dictionary being given to shfill.  The dictionary has a function
which has a single input and a single output.  The numbers are
determined from the sizes of the Domain and Range arrays.  Since
the shading dictionary is using a DeviceCMYK color space, Ghostscript
is generating a rangecheck since the function does not have four
outputs.

The file is generating an invalid shading dictionary.  Specifically
it generates:

sh:  << /Coords [0 0 0 1] /ColorSpace [/DeviceCMYK] /Function <<
/BitsPerSample 8 /Ra
nge [0 1] /FunctionType 0 /Domain [0 1] /DataSource
(\200\200\200\201\201\202\202\203
\203\204\204\205\205\206\206\207\207\210\210\211\211\212\212\213\213\214\214
\215\215\
216\216\217\217\220\220\221\221\222\222\223\223\224\224\225\225\226\226\227\
227\230\2
30\231\231\232\232\233\233\234\234\235\235\236\236\237\237\240\240\241\241\2
42\242\24
3\243\244\244\245\245\246\246\247\247\250\250\251\251\252\252\253\253\254\25
4\255\255
\256\256\257\257\260\260\261\261\262\262\263\263\264\264\265\265\266\266\267
\267\270\
270\271\271\272\272\273\273\274\274\275\275\276\276\277\277\300\300\301\301\
302\302\3
03\303\304\304\305\305\306\306\307\307\310\310\311\311\312\312\313\313\314\3
14\315\31
5\316\316\317\317\320\320\321\321\322\322\323\323\324\324\325\325\326\326\32
7\327\330
\330\331\331\332\332\333\333\334\334\335\335\336\336\337\337\340\340\341\341
\342\342\
343\343\344\344\345\345\346\346\347\347\350\350\351\351\352\352\353\353\354\
354\355\3
55\356\356\357\357\360\360\361\361\362\362\363\363\364\364\365\365\366\366\3
67\367\37
0\370\371\371\372\372\373\373\374\374\375\375\376\376\377) /Order 1 /Size
[256] >> /S
hadingType 2 >>

The file was sent into Adobe Distiller 6.0.  Inside the resulting
PDF file there is a very different shading dictionary:  Specifically:

/sh: << /ColorSpace [/Separation /MEZZO__1 /DeviceCMYK -array-] /Coords [0 0
0 1] /Function << /Decode [0 1] /FilePosition 460412 /Range [0 1] /Filter
/FlateDecode /BitsPerSample 8 /Encode [0 255] /Length 255 /FunctionType 0
/File -file- /Domain [0 1] /DataSource
(\200\200\200\201\201\202\202\203\203\204\204\205\205\206\206\207\207\210\21
0\211\211\212\212\213\213\214\214\215\215\216\216\217\217\220\220\221\221\22
2\222\223\223\224\224\225\225\226\226\227\227\230\230\231\231\232\232\233\23
3\234\234\235\235\236\236\237\237\240\240\241\241\242\242\243\243\244\244\24
5\245\246\246\247\247\250\250\251\251\252\252\253\253\254\254\255\255\256\25
6\257\257\260\260\261\261\262\262\263\263\264\264\265\265\266\266\267\267\27
0\270\271\271\272\272\273\273\274\274\275\275\276\276\277\277\300\300\301\30
1\302\302\303\303\304\304\305\305\306\306\307\307\310\310\311\311\312\312\31
3\313\314\314\315\315\316\316\317\317\320\320\321\321\322\322\323\323\324\32
4\325\325\326\326\327\327\330\330\331\331\332\332\333\333\334\334\335\335\33
6\336\337\337\340\340\341\341\342\342\343\343\344\344\345\345\346\346\347\34
7\350\350\351\351\352\352\353\353\354\354\355\355\356\356\357\357\360\360\36
1\361\362\362\363\363\364\364\365\365\366\366\367\367\370\370\371\371\372\37
2\373\373\374\374\375\375\376\376\377) /Size [256] >> /ShadingType 2 >>

This dictionary has a Separation color space.  The given function
is a reasonable function to use with the Separation color space.
As Ray mentioned, it is not correct for a DeviceCMYK color space.

The file is generating a different dictionary for the two interpreters.
In the case of Ghostscript, the dictionary is invalid,

Backtracking through the various procsets inside of the given file
shows that is a mess of function definitions, followed by replacement
of the functions with new definitions.  Some of it may be Quarks.
Some of it is labeled:

%%BeginResource: file Jaws_custom_colour_blend_level3_emulation 2.1 0

The results of the search are:

1.  Ghostscript does not define 'setcustomcolor' but Adobe Distiller
6.0 does define it.

2.  The procsets in the file do provide a definition for
setcustomcolor.  Actually the file provides about 16 versions of
setcustomcolor.  However the versions provided in the file do
not work.

The PLRM does not mention setcustomcolor.  However it is
described in Adobe's "Technical Note #5044 Color Separation
Conventions for PostScript Language Programs".  TN 5044 says:

"The following "operators" are not defined in the PostScript
Language Reference Manual, but should be used as pseudo-operators
in your PostScript language output. Separation applications from
Adobe Systems and other vendors will redefine these convention
operators to separate your documents.  Your application should
conditionally define procedures with these special names, as shown
later in this document."

The fix to the problem is to provide the functions:
findcmykcustomcolor and setcustomcolor.  These are placed at the
end of the lib/gs_lev2.ps.  They are placed there because the
implementation requires Separation color spaces which is a level
2 feature.

[lib/gs_lev2.ps]

2004-03-23T12:30:40.000000Z Igor Melichev

Fix : GenericResourceDir was not listed in PermitFileReading.

DETAILS :

Problems happened when gs/lib is specified with -I, and gs/Resource is not.
Bug 687381 "pdfwrite can't start with -dSAFER -Id:/path/lib".

EXPECTED DIFFERENCES :

None.

[lib/gs_init.ps]

2004-03-23T06:59:09.000000Z Ralph Giles

Correct a number of warnings.

DETAILS:

Apply const appropriately so gcc doesn't warn about assignment of string
literals.

Remove an inappropriate const in a function argument.

ifdef out the debug printout function since it's not called without
JPX_DEBUG.

[src/sjpx.c]

2004-03-22T01:23:24.000000Z Ralph Giles

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

[autogen.sh]

2004-03-21T22:35:28.000000Z Ray Johnston

Fix for a long standing problem that could cause characters to be dropped
when reading a file with the 'read' operator. Bug #687374 for customer #310.

DETAILS:

This was caused by the zread function reading the character (sgetc)
prior to invoking the 'push' macro which could return with
e_stackoverflow (discarding the character). The stackoverflow can
happen more frequently than at MaxOpStack level since the stack
is allocated as blocks, using the e_stackoverflow to signal the
need to add more stack blocks, then retrying the operation.
Fix for characters dropped from a file when using the 'read' operator.
Bug #687374 for customer #310.

DETAILS:

This was caused by the zread function reading the character (sgetc)
prior to invoking the 'push' macro which could return with
e_stackoverflow (discarding the character). The stackoverflow can
happen more frequently than at MaxOpStack level since the stack
is allocated as blocks, using the e_stackoverflow to signal the
need to add more stack blocks, then retrying the operation.

[src/zfileio.c]

2004-03-19T10:08:10.000000Z Igor Melichev

Fix (TT interpreter) : Subglyphs could be placed to wrong coordinates.

DETAILS :

1. When a subglyph position is specified with a reference to an outline point,
the index of the point was interpreted wrongly and could use an
undefined data with an indeterministic result.

Bug 687366 "Font missing umlaut".

2. Shifting a subglyph, matrices like [xx 0 0 1 0 0] were misinterpreted as identity.

EXPECTED DIFFERENCES :

Testform.v1.0.2.pdf - a progression with umlaut over 'u'in the word "Dr�mmer".

[src/ttfmain.c]

2004-03-19T09:52:25.000000Z Igor Melichev

Fix (pdfwrite) : Zero text length caused an access to an uninitialized data.

DETAILS :

Detected by Dan with MSVC .NET 2003.
Rather the result did not depend on the data,
the access could cause a floating point interrupt.

EXPECTED DIFFERENCES :

None.

[src/gdevpdte.c]

2004-03-19T08:30:16.000000Z Ray Johnston

Fix to implement PDF specification for '/' as a valid name as opposed to
the PS token scanning. Previously //name would be incorrectly scanned as
an immediately evaluated name rather than two names '/' and '/name' which
is correct. Fixes Bug #687277 for customer #440.

DETAILS:

Care is taken to reset the scanner behaviour after a PDF file is finished
and also after an invalid number is scanned. Note that to reset the flag,
the parameter must be set to 'null', not 'false' due to the implementation
in the ztoken.c. Caveat impelementor.

Previously the PDFScanRules was set when an invalid number was found and
was never reset, so this may result is *LOTS* of pdfformaterror messages
for files that have lots of invalid format numbers, but that's what they
get. If this is ever a problem, reseting the PDFScanInvNum can be moved
to pdf_main.ps where PDFScanRules is set to null.

No expected differences.

[lib/pdf_main.ps src/iscan.c src/iscannum.c lib/pdf_base.ps src/iscan.h src/ztoken.c]

2004-03-19T05:37:53.000000Z Ralph Giles

Rename the DEBUG_JPX symbol to JPX_DEBUG to match the others we've
defined for the JPXDecode source.

[src/sjpx.c]

2004-03-19T05:36:28.000000Z Ralph Giles

Correct our YCrCb to RGB conversion code. Subtract the proper bias to
center the chromaticity channels around zero if they are returned
unsigned. Move the clamp routines to after the conversion to RGB where
it does some good. Thanks to Raph Levien for his help with this code.

We now use our conversion code by default, since there are some problems
with the jasper library's conversion on big-endian platforms. The jasper
conversion can be reenabled by defining JPX_USE_JASPER_CM in the
preprocessor.

[src/sjpx.c]

2004-03-18T17:56:38.000000Z Ray Johnston

Fix name of file in raster directory so that update_pdfbaseline will be
run when needed (when new files are added).

[toolbin/tests/gscheck_pdfwrite.py]

2004-03-18T16:59:20.000000Z Igor Melichev

A new implementation of shadings, step 43.

DETAILS :

1. An optimization :

If an area has a monotonic color,
each subarea has a monotonic color as well,
so the color monotonity doesn't need to recompute.
Doing so because the color monotonity function is not fast
when appied to a ShadingType 1 with a bicubic color interpolation.

2. Bug: is_color_monotonic returned 'true' when the intrval
has zero width by the 1st coordinate.
This is wrong for with ShadingType 1, which uses a 2-argument function.
( The check was a rudiment from a 1 month old implementation of fn_Sd_is_monotonic,
  which returned 'false' when the low boundary is at the end of some cell,
  and the upper boundary is at the beginning of the next cell.
  Actually this case is a zero width interval and the function must return true.
)


EXPECTED DIFFERENCES :

A minor difference in colors :

442-01.ps
464-01.ps
Clarke Tate Manns Chinese.ai
STEUER-RollingMesh 1(linear).ai

[src/gxshade4.h src/gxshade6.c]

2004-03-18T12:33:14.000000Z Igor Melichev

Implementing is_monotonic for cubic interpolation functions.

DETAILS :

The old code ignores extremes of a cubic interpolation function
(except ones at a cell boundary).
It could cause a wrong rendering of shadings with replacing a
randomly big part of the shading near an extremum with a constant color.
The new code fixes that.

The new code caches the interpolation coefficients.
This may cause problems if the function data stream is
modified after the function is build. Likely this must not cause
problems due to gs/lib caches the stream with ReusableStreamDecode.
Also we don't know practical cases.
POLE_CACHE_IGNORE 1 avoids this problem with some slowdown,
(the slowdown exponentially grows with >=3 arguments,
but again we don't know practical examples with >=3 arguments).

The configuration flag POLE_CACHE allows to revert to the old code.

Bug 687352 "is_monotonic isn't implemented for 3d order sampled function".

EXPECTED DIFFERENCES :

464-01.ps - A minor difference in color.

[src/gsfunc0.c src/gsfunc0.h]

2004-03-17T23:06:03.000000Z Ralph Giles

Clamp and origin shift the chromaticity values in our JPXDecode filter's
YUV to RGB conversion code. This still does not produce correct output
with libjasper's output, but is an improvement. This change affects
disabled code only.

[src/sjpx.c]

2004-03-16T11:39:30.000000Z Igor Melichev

Fix (pdfwrite) : A floating point interrupt.

DETAILS :

MSVC7 applies a floating point (FP) operations to copy FP data.
This may cause interrupts if the data is not initialized and represent an invalid FP number.

gdev_vector_dopath_segment passed an unitialized data as an argument.
Rather the callee never use them, an interrupt happens while building the argument list.

EXPECTED DIFFERENCES :

None.

[src/gdevvec.c]

2004-03-16T03:00:11.000000Z Ralph Giles

Use the jasper library's internal color conversion function to convert
non-rgb multicomponent images to sRGB.

DETAILS:

As of jasper 1.701.0 this function does not work correctly on powerpc.
However, it's better than our own routine, which I've had trouble
getting working with the Y(')CbCr samples returned from the library.

[src/sjpx.c]

2004-03-16T02:16:20.000000Z Dan Coby

Fix for 687337 Zerodivide in cie_cache_mult.  Note:  There
was a typo in the previous fix.

DETAILS:

The direct cause of the problem, and also the reason that we
have not seen this problem in real world files is that the
050-01.ps test file contains the following color rendering
dictionary.

/RenderDict2
12 dict begin
  /BlackPoint [ 0 0 0 ] def
  /ColorRenderingType 1 def
  /EncodeABC [ {} {} {} ] def
  /EncodeLMN [ {} {} {} ] def
  /MatrixABC [ 0 0 0  0 0 0  0 0 0 ] def
  /MatrixLMN [ 0 0 0  0 0 0  0 0 0 ] def
  /RangeABC [ 0 1  0 1  0 1 ] def
  /RangeLMN [ 0 1  0 1  0 1 ] def
  /RangePQR [ 0 1  0 1  0 1 ] def
  /TransformPQR [ {} {} {} ] def
  /WhitePoint [ 1 1 1 ] def

Note:  The matrices full of zeroes do not represent real
world data.  The zero matrices will result in all output
component values being zero no matter what the inputs.

Using this data, Ghostscript uses the given ranges and
matrices to calculate values for DomainABC and DomainLMN.
The results are [0, 0] for each domain.  The domain values
are later used to calculate a scaling factors which is
also 0.  Calculations, which use one of these values as
a divisor, then generate a divide by zero exception.

One option to fix this problem would be to check for zero
before doing any calculations with the scaling factors.
However another and simpler option is to check for the zero
factors when they are crated and set the value to a value
which will not cause the divide problem.  Note:  Even though
we are using a dummy factor (1.0), the zero matrices still
result in zero output values from the calculations.

[src/gscie.c]

2004-03-16T02:07:21.000000Z Dan Coby

Fix for 687337 Zerodivide in cie_cache_mult.

DETAILS:

The direct cause of the problem, and also the reason that we
have not seen this problem in real world files is that the
050-01.ps test file contains the following color rendering
dictionary.

/RenderDict2
12 dict begin
  /BlackPoint [ 0 0 0 ] def
  /ColorRenderingType 1 def
  /EncodeABC [ {} {} {} ] def
  /EncodeLMN [ {} {} {} ] def
  /MatrixABC [ 0 0 0  0 0 0  0 0 0 ] def
  /MatrixLMN [ 0 0 0  0 0 0  0 0 0 ] def
  /RangeABC [ 0 1  0 1  0 1 ] def
  /RangeLMN [ 0 1  0 1  0 1 ] def
  /RangePQR [ 0 1  0 1  0 1 ] def
  /TransformPQR [ {} {} {} ] def
  /WhitePoint [ 1 1 1 ] def

Note:  The matrices full of zeroes do not represent real
world data.  The zero matrices will result in all output
component values being zero no matter what the inputs.

Using this data, Ghostscript uses the given ranges and
matrices to calculate values for DomainABC and DomainLMN.
The results are [0, 0] for each domain.  The domain values
are later used to calculate a scaling factors which is
also 0.  Calculations, which use one of these values as
a divisor, then generate a divide by zero exception.

One option to fix this problem would be to check for zero
before doing any calculations with the scaling factors.
However another and simpler option is to check for the zero
factors when they are crated and set the value to a value
which will not cause the divide problem.  Note:  Even though
we are using a dummy factor (1.0), the zero matrices still
result in zero output values from the calculations.

[src/gscie.c]

2004-03-16T01:25:19.000000Z Dan Coby

Fix for 687349 A wrong comment for gx_device_color_s.  This change
modifies the comment on ccolor and the related variable ccolor_valid.

[src/gsdcolor.h]

2004-03-15T20:47:44.000000Z Ralph Giles

Correctly calculate row offsets for copying JPXDecode filter results so
multi-component images are indexed correctly. Also split the jpxd
process code into several helper functions for readability.

Support subsampled YUV images properly. Subsampled pixels are
replicated, not interpolated. Colorspace conversion from YCrCb to RGB is
still incorrect.

[src/sjpx.c src/sjpx.h]

2004-03-15T09:54:44.000000Z Igor Melichev

MSVC compiler: allowing Precompiled Headers, Incremental Compilation, Edit & Continue.

DETAILS :

These options are applied to debug build only.
They dramatically improve the development technology.

Automated Precompiled Header speeds up the compilation slightly.
For best results should reorganize gs header files.

Incremental Compilation speeds up the rebuilding after editing source code.

Edit&Continue is a powerful tool for debugging. Together with incremental compilation
it allows to regenerate the object code during a debug session,
and continue the debugging with the new code without restarting the program.
Press F10 after you changes source code and enjoy.
F7 resets the session - forget it.
Another related tool is the "Set instruction pointer" debugger command,
which is available only from Tools/Customize/Commands/Debug.
It looks as an yellow arrow with a blue thin curved arrow.
Move it to your toolbar and enjoy.

Also enabled the incremental linking.

YOU NEED TO REBUILD ALL AT ONCE to activate these tools.

Tested with MSVC 6, should also work wirth MSVC 7.
Had no chance to test MSVC 5. A help wanted.

EXPECTED DIFFERENCES :

None.

[src/msvccmd.mak]

2004-03-14T22:10:53.000000Z Igor Melichev

Fix : A Cygwin/gcc warning.

EXPECTED DIFFERENCES :

None.

[src/zpcolor.c]

2004-03-14T22:02:44.000000Z Igor Melichev

Fix (PDF interpreter) : CIDMap was wrongly created from CIDToGIDMap.

DETAILS :

CIDMap size was equal to CIDCount, which gs_ttf.ps sets to the number of glyphs.
With a non-Identity CIDToGIDMap it appears wrong,
causing some valid CIDs to be out of range and to print as a notdef character.

Bug 687351 "Embedded TTF font in PDF incorrectly displayed.".

EXPECTED DIFFERENCES :

Bug687351.pdf

[lib/pdf_font.ps lib/gs_ttf.ps]

2004-03-14T22:01:26.000000Z Igor Melichev

Fix (pdfwrite) : Crash after adding a glyph over a preallocated limit of a CIDFontType 2.

DETAILS :

Working on bug 687351 with CAIB_highres_page4.pdf, we detected a set of old bugs.
They caused a heap corruption and crash.
To reproduce the crash apply the patch of the bug 687351 to lib/pdf_font.ps
(that patch will be committed AFTER this one).

1. pdf_resize_resource_arrays was called with a wrong array size (gdevpdtc.c).
2. pdf_resize_resource_arrays did not expand CIDToGIDMap (gdevpdtf.c).
3. gs_type42_glyph_info accepted a wrong type of the return value of get_glyph_index.
4. Copying a CIDFontType 2, CIDCount was wrong (gxfcopy.c).
5. pdf_obtain_cidfont_resource wrongly processed the case of shared font descendents :
   font compatibility was not checked, rather they may have different Metrics,
   Metrics2, CDevProc, CIDMap (gdevpdtt.c).
6. Implemented a dynamic expansion of CIDMap for copied fonts.
7. In font copies CIDMap used the code 0xFFFF for representing unmapped glyphs.
8. Inserted the comment into gdevpdtf.c :
    /* fixme : Likely pdfont->u.cidfont.CIDToGIDMap duplicates
       pdfont->FontDescriptor->base_font->copied->client_data->CIDMap.
       Only difference is 0xFFFF designates unmapped CIDs.
     */
9. same_cid0_hinting must not check FDBytes (gxfcopy.c).

EXPECTED DIFFERENCES :

None.

[src/gxfcopy.c src/gdevpdtc.c src/gdevpdtt.c src/gstype42.c src/gdevpdtf.c]

2004-03-14T11:26:29.000000Z Igor Melichev

Fix (pdfwrite) : XObject's resources were placed wrongly.

DETAILS :

Bug 687350 "Wrong placement for Form XObjects' resources"

For Form XObjects created using /BP pdfmarks, the resources dictionary entries
are placed into the dict part of the XObject itself, instead of being placed
into a dictionary referenced by the /Resources key.

Patch from SaGS (See the bug report).
Thanks to SaGS (Sorry, never got his/her name.).

EXPECTED DIFFERENCES :

Bug687350.ps

[src/gdevpdfm.c]

2004-03-13T22:31:19.000000Z Ray Johnston

Add support for 16 bit deep images that is part of PDF 1.5.

Expected Differences:

None.

[src/zimage.c src/lib.mak src/gxino16b.c src/gxi16bit.c src/int.mak src/zfdecode.c src/gximage.h src/spdiffx.h src/gxipixel.c src/spdiff.c]

2004-03-13T18:28:52.000000Z Igor Melichev

Implementing current point with double precision.

DETAILS :

The old code stores the current point in pgs->ppath->position
with the 'fixed' representation in the device space coordinates.
This appears insufficiently precise if a document constructs a path
with multiple 'rlineto' or 'rcurveto'. A significant to error accumulation happens.

We implement the current point with 'double', duplicating pgs->ppath->position
with the new field gs_imager_state::current_point.
We can't replace pgs->ppath->position with the new one due to several reasons :

- Sometimes (in the text processing, in arc processing and in reversepath)
  a new current point is computed when imager state is not accessible.
- Don't want to spend processor time for conversion double to fixed,
  whenever a fixed is needed.
- Don't want to modify many of low level modules;

Text operation always round the current point to 'fixed'.
Note that the convertion from fixed to double is always precise,
therefore we widely use it with text operations.

Thus this improves the precision of moveto, lineto, curveto,
rmoveto, rlineto, rcurveto, but the precision of other operators
left as it was. Likely there is no strong need to improve text operations
due to pixel rounding, but it would be useful to improve arc, arcn, arct, arcto.
However an improvement of arc operations isn't a high priority,
and after this patch becomes a local change.

We removed ppath->outside_position, because
pgs->current_point now effectively handles this feature.
Due to that the rounded pgs->current_point may be unequal to pgs->ppath->position
when the current point is outside the range.

The configuration flag PRECISE_CURRENTPOINT defined in gxstate.h
helps to debug the new code with raster comparizon with the old code.
PRECISE_CURRENTPOINT 0 works same as the old code except the
coordinate clamping. Therefore once tested with the comparison,
the further validation reduced to a validation of the code
swtched by the flag - this part pof code is pretty small.

The mode (PRECISE_CURRENTPOINT 0) **MUST**NOT** go to production
due to the dropped clamping. PRECISE_CURRENTPOINT 1 handles the clamping.

Bug 687359 "Current point is inprecise".

EXPECTED DIFFERENCES :

Almost all comparefiles render differently.

[src/gxchar.c src/gstype42.c src/gxstate.h src/gzstate.h src/gspath.c src/gdevpdtt.h src/gspath.h src/gxpath.c src/lib.mak src/gstype1.c src/gstype2.c src/gxistate.h src/gdevpdtc.c src/gscoord.c src/gxpath.h src/gzpath.h src/gdevpdte.c src/gspaint.c src/gspath1.c src/gxmatrix.h src/zupath.c]

2004-03-13T00:33:49.000000Z Igor Melichev

Fix (TT grid fitting) : Hints could be lost.

DETAILS :

When passing hints from the stem recognizer to the hinter,
glyph origin was not properly initialized, causing an occasional shift of hints.
This bug appeared with gxttfb.c revision 1.32.

EXPECTED DIFFERENCES :

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

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

[src/gxttfb.c]

2004-03-12T06:53:32.000000Z Igor Melichev

Fix (pdfwrite) : Fall back to the default implementation when the output document can't handle current color.

DETAILS :

This case is important when the output PDF uses a low PDF level.
Particularly if the source file is a PDF 1.4 with a transparency,
and the output is PDF 1.3, which can't represent a transparency.

Bug 687338 "/rangecheck in --fill--".

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c src/gdevpdfd.c]

2004-03-12T01:58:34.000000Z Dan Coby

Fix for 687349 A wrong comment for gx_device_color_s.  This change
modifies the comment on ccolor and the related variable ccolor_valid.

[src/gsdcolor.h]

2004-03-12T01:55:58.000000Z Dan Coby

Log message:

Implement 687347: Implementation of the PDF encryption feature:
EncryptMetadata.  Past versions of the PDF encryption have always
encrypted metadata.  With this feature it is possible to NOT encrypt
metadata streams.  I.e. By adding '/EncryptMetadata false' to the
encryption dictionary.

DETAILS:

There are two pieces to the implementation:

1.  The calculation of the user password key includes an additional
step of feeding 0xffffffff to the md5 input if EncryptMetadata is
false.  (Ask Adobe, not me.)  The PDF 1.5 spec. says that
EncryptMetadata is an undocumented feature of PDF 1.4.  This
implies that this action needs to be done for values of R in the
Encrypt dictionary of 3 or higher.  However testing with Acrobat
5.0 and Acrobat 6.0 shows that this is not done for R = 3.  Thus
we check for R >= 4.

2.  Testing with Acrobat 5.0 and 6.0 has verified that the encryption
of metadata streams is controlled by EncryptMetadata in both versions.
Thus we check for PDF 1.4 and higher (R >= 3) and if so then we check
the stream type and the EncryptMetadata flag to determine if a stream
needs to be decrypted.

[lib/pdf_sec.ps]

2004-03-11T14:58:31.000000Z Igor Melichev

Fix : Some Cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/devs.mak src/gdevpdfi.c]

2004-03-11T14:50:50.000000Z Igor Melichev

Fix : Some Sun ONE Studio 7 compiler warnings (Solaris 8).

DETAILS :

Bug 687355 "warnings on Solaris (ghostscript-8.14)".

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

EXPECTED DIFFERENCES :

None.

[src/gsdfilt.c src/gdevpdfx.h src/gdevpsd.c src/gdevpsu.c src/gscpixel.c src/gdevpsdu.c src/gdevdevn.c src/ttfmain.c src/gdevnfwd.c src/gdevxcf.c src/gximag3x.c src/szlibd.c src/gdevpng.c src/gdevijs.c]

2004-03-11T07:01:08.000000Z Igor Melichev

Fix : Changing the default value of AlignToPixels to 0.
THIS IS INCOMPATIBLE CHANGE.

DETAILS :

AlignToPixels=0 produces a better results with antialiased text.
This is especially important after the True Type grid fitting is on.

EXPECTED DIFFERENCES :

None.

[src/gsfont.c doc/Use.htm]

2004-03-11T05:36:07.000000Z Ralph Giles

Some systems require a longer link line with the default static jasper.

[toolbin/jpxtopdf.c]

2004-03-11T05:22:06.000000Z Ralph Giles

Add a simple C program that uses the jasper library to parse JPX (jpeg2k) image files and embed
them in a PDF 1.5 document. Useful for testing as there are few producers available at the moment.

DETAILS:

We make no attempt to parse the required metadata (resolution and so on) ourselves. It would be
simple to add this so that the program can stand alone. On the other hand, jasper is capable of
opening a number of other image formats and encoding them to jpx streams. We don't do that either,
but it would also be easy to add support for so that JPXDecode versions of arbitrary images could
be embedded.

Because of this, it's possible to embed e.g. baseline jpeg data instead of a jpx stream if you
feed the program the wrong file. Caveat executor.

Based on the jpegtopdf program by Tor Andersson.

[toolbin/jpxtopdf.c]

2004-03-10T19:06:43.000000Z Ralph Giles

Revert documentation change. Apparenlty the problem was that the user
specified an ICC colorspace and it does have an effect with pswrite if
one uses the usual RGB, etc. colorspaces. Bug 687357.

[doc/Use.htm]

2004-03-10T19:01:15.000000Z Ralph Giles

Clarify that -dNOSUBSTDEVICECOLORS has no effect on the pswrite device.
Bug 687357.

[doc/Use.htm]

2004-03-10T05:49:24.000000Z Ralph Giles

Correct yet another typo that was preventing the regression from
running.

[toolbin/tests/run_nightly]

2004-03-10T04:52:48.000000Z Raph Levien

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

[src/gdevijs.c]

2004-03-09T21:31:50.000000Z Ralph Giles

Check for jpeg, zlib, and libpng headers as well as libraries before
using the shared versions. Bug 687261.

[src/configure.ac]

2004-03-09T13:30:26.000000Z Igor Melichev

Fix (PDF interpreter) : Wrong metrics when 2 font resources for same embeded font.

DETAILS :

Bug 687308 "Text in PDF Form field renders incorrectly".

The document contains 2 font resources for same embedded font.
PDF interpreter first creates a copy of the font, replacing the metrics with Widths.
Then it creates another copy of the with no replaced metrics. But
it used the first copy (through findfont) instead the original font,
and the Metrics in the second copy appears wrong.

This patch applies pdfcachefont for embedded fonts,
to allow retrieving original fonts for subsequeent font resources.

EXPECTED DIFFERENCES :

None.

[lib/pdf_font.ps]

2004-03-09T10:38:59.000000Z Igor Melichev

Fix (pdfwrite) : Annotations encrypted with a wrong object id.

DETAILS :

Bug 687333 "pdfwrite: A wrong encryption of bookmarks".

EXPECTED DIFFERENCES :

None.

[src/gdevpdfm.c]

2004-03-09T09:31:57.000000Z Igor Melichev

Fix (Type 2 charstrings) : More tolerance and conformity.

DETAILS :

1. Some Type 2 charstrings omit the vstemhm operator before rmoveto,
   even though this is only allowed before hintmask and cntrmask.
   Bug 687311 "could make more sense of invalid stem hints".

2. Subglyph offset was not crrect.

3. Removing an outdated comment.

Thanks to Felix Pahl for these improvements.

EXPECTED DIFFERENCES :

None.

[src/gstype2.c]

2004-03-09T05:42:07.000000Z Dan Coby

Remove some extra carriage returns (^M) at the ends of lines.  These
keep sneaking into the sources.  Presumably the cause has to do with
copying files from unix to windows or vice versa.

[lib/pdf_base.ps]

2004-03-08T16:45:03.000000Z Ralph Giles

Correct a typo in the whitelist keyword changes.

[toolbin/tests/run_nightly]

2004-03-07T12:26:02.000000Z Igor Melichev

Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 3).

DETAILS :

Remove unused variables.

EXPECTED DIFFERENCES :

None.

[src/gsfunc3.c]

2004-03-07T12:06:11.000000Z Igor Melichev

Fix : gs_function_is_monotonic computed an unused auxiliary result (continued 2).

DETAILS :

1. Remove gs_function_effort_t because it is not longer useful.
2. Update the documentation in comments.

EXPECTED DIFFERENCES :

None.

[src/gxfunc.h src/gxshade1.c src/gsfunc.c src/gsfunc0.c src/gsfunc3.c src/gsfunc4.c src/gxshade6.c src/gsfunc.h]

2004-03-07T12:04:11.000000Z Igor Melichev

Fix : gs_function_is_monotonic computed an unused auxiliary result (continued).

DETAILS :

Bug 687328 fn_is_monotonic_proc_t slows down ShadingType 1 in 3 times

Actually the result appears used while checking the monotonity of
a stiching function. But we believe that it doesn't worth
the processor time expence. I simpler way is to
consider the stitches as a monotonity breaks.

EXPECTED DIFFERENCES :

None

[src/gsfunc3.c]

2004-03-07T00:02:22.000000Z Igor Melichev

Fix (dropout prevention) : extra pixels at small serifs.

DETAILS :

It appears a long standing bug. It caused a section was not cleaned before reusage.
The reason was an interval to clean was added to the list of a another margin_set.
This bug frequently caused a missed serif suppression (i.e. extra pixels at small serifs).

EXPECTED DIFFERENCES :

A massive rendering difference at small resolutions :

72dpi :

"000040cf.000_60.pdf"
"001-01.ps"
"001-13.ps"
"001-25.ps"
"002-09.ps"
"002-21.ps"
"002-33.ps"
"003-01.ps"
"012-01.ps"
"012-05.ps"
"013-01.ps"
"013-05.ps"
"014-01.ps"
"014-05.ps"
"015-01.ps"
"015-05.ps"
"018-01.ps"
"01_001.pdf"
"021-01.ps"
"023-01.ps"
"027-01.ps"
"027-05.ps"
"027-09.ps"
"032-01.ps"
"033-01.ps"
"034-01.ps"
"036-01.ps"
"040-01.ps"
"045-01.ps"
"046-01.ps"
"050-01.ps"
"055-01.ps"
"061-01.ps"
"070-01.ps"
"076-01.ps"
"083-01.ps"
"083-05.ps"
"084-01.ps"
"091-01.ps"
"093-01.ps"
"094-01.ps"
"096-01.ps"
"103-01.ps"
"104-01.ps"
"109-01.ps"
"110-01.ps"
"113-01.ps"
"118-01.ps"
"119-01.ps"
"119-10.ps"
"119-16.ps"
"119-47.ps"
"120-01.ps"
"123-01.ps"
"123-05.ps"
"124-01.ps"
"129-01.ps"
"141-01.ps"
"148-05.ps"
"148-11.ps"
"149-01.ps"
"154-01.ps"
"158-01.ps"
"159.pdf"
"162-01.ps"
"166-01.ps"
"169-01.ps"
"169-05.ps"
"170-01.ps"
"176-01.ps"
"177-01.ps"
"181-01.ps"
"184-01.ps"
"192-01.ps"
"200-01.ps"
"205-01.ps"
"205-05.ps"
"206-01.ps"
"212-01.ps"
"213-01.ps"
"214-01.ps"
"215-01.ps"
"219-01.ps"
"220-01.ps"
"220-07.ps"
"222-01.ps"
"222-05.ps"
"226-01.ps"
"227-01.ps"
"231-01.ps"
"233-01.ps"
"244-01.ps"
"245-01.ps"
"245-07.ps"
"245-13.ps"
"245-17.ps"
"246-01.ps"
"250-01.ps"
"251-01.ps"
"255-01.ps"
"257-01.ps"
"258-01.ps"
"260-01.ps"
"263-01.ps"
"269-01.ps"
"270-01.ps"
"272-01.ps"
"276-01.ps"
"282-01.ps"
"297-01.ps"
"298-01.ps"
"298-05.ps"
"299-01.ps"
"303-01.ps"
"304-01.ps"
"307-01.ps"
"308-04.ps"
"311-03.ps"
"313-01.ps"
"316-07.ps"
"321-01.ps"
"321-05.ps"
"322-01.ps"
"327-01.ps"
"328-01.ps"
"330-01.ps"
"334-01.ps"
"335-01.ps"
"336-01.ps"
"401-01.ps"
"405-01.ps"
"409-01.ps"
"415-01.ps"
"421-01.ps"
"430-01.ps"
"438-01.ps"
"450-01.ps"
"455690.pdf"
"460-01.ps"
"463-01.ps"
"477-01.ps"
"477-03.ps"
"477-04.ps"
"477-05.ps"
"478-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"86554321.pdf"
"a.pdf"
"aaon97_p7.pdf"
"acrobat.pdf"
"adesso1.pdf"
"adesso5.pdf"
"adesso7.pdf"
"adesso8.pdf"
"AdobeLic.pdf"
"alphabet.ps"
"besttest.pdf"
"brochurep1.pdf"
"bulletin.pdf"
"CAIB_highres_page4.pdf"
"chess.ps"
"CIDembedded.pdf"
"Faktura.pdf"
"Fixed_Original.pdf"
"HeiseiMinStd.pdf"
"japan.ps"
"korea.ps"
"KozukaB-ILEmbed.pdf"
"loremIpsum.pdf"
"mbb-with-space.ps"
"ngnews1.pdf"
"Original.pdf"
"pdftops.pdf"
"prfmm.pdf"
"prob.pdf"
"RealCities.pdf"
"rf1025.pdf"
"RodinCIDEmbed.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"Svd.pdf"
"textsavematrix.pdf"
"tpc2.ps"
"type1-ce1_setcurrentpoint.ps"
"type42_glyph_index.ps"
"waterfal.ps"
"womanface.pdf"

300 dpi :
"000040cf.000_60.pdf"
"001-01.ps"
"093-01.ps"
"a.pdf"
"aaon97_p7.pdf"
"alphabet.ps"
"bug-gstest.pdf"
"chess.ps"
"Fixed_Original.pdf"
"fonttest.pdf"
"HeiseiMinStd.pdf"
"japan-.ps"
"japan.ps"
"KozukaB-ILEmbed.pdf"
"mbb-with-space.ps"
"Original.pdf"
"RodinCIDEmbed.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"tpc2.ps"
"Type11CDevProc.ps"

[src/gxfdrop.c]

2004-03-06T15:15:53.000000Z Alex Cherepanov

Immediately return the success for 0-length read from a string array.
Don't seek to the offset because it may be invalid in some broken fonts.
Fix bug 687340

[src/zfont42.c]

2004-03-05T23:25:40.000000Z Igor Melichev

Fix : Cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c src/ttfmain.c src/gdevpdfv.c src/gsfunc0.c src/devs.mak src/gsfunc3.c]

2004-03-05T22:26:38.000000Z Igor Melichev

Fix : Raster depended on bands, step 4, final.

DETAILS :

This change is algorithmically equivalent.

1. Removed the old code BAND_INDEPENDENT 0.
2. Simplified fill_slant_adjust with removing low useful variables.
3. Optimized the gxfilltr.h template with excluding some branches from the scope of le, re.
4. Renamed function templates with a (new) regular convention.

EXPECTED DIFFERENCES :

None.

[src/gxfilltr.h src/gxfillts.h src/gxfill.c src/gxfillsl.h]

2004-03-05T15:35:40.000000Z Igor Melichev

Fix : Raster depended on bands, step 3.

DETAILS :

Bug 687222 "Raster depends on bands".

Switching to the new code.
Now trapezoid sides are independent on bands, clipping and scans.
Any trapesoid side is equal to some flattened piece of an outline segment.

A massive difference happens due to the old code recognized low trapezoids as rectangles.
The new code does not because it checks the verticality with longer bars.

EXPECTED DIFFERENCES :

Almost all comparefiles render differently.,
but mist differences are single pixels.
A dozen of files give dual pixel differences.

[src/gxfill.c]

2004-03-05T14:39:07.000000Z Ralph Giles

correct a typo in the recent comment revision

[doc/Make.htm]

2004-03-05T14:36:58.000000Z Ralph Giles

add a missing '.' to a comment

[src/msvc32.mak]

2004-03-05T14:16:04.000000Z Igor Melichev

Fix : Raster depended on bands, step 2.

DETAILS :

Bug 687222 "Raster depends on bands".

For the enabled code this change is algorithmically equivalent.
It fixes rectangle coordinates in the disabled code.

EXPECTED DIFFERENCES :

None.

[src/gxfilltr.h]

2004-03-05T13:17:38.000000Z Igor Melichev

Fix : Raster depended on bands, step 1.

DETAILS :

Bug 687222 "Raster depends on bands".
This is a continuation for
http://www.ghostscript.com/pipermail/gs-cvs/2004-January/003986.html

This patch defines a configuration flag BAND_INDEPENDENT.
The enabled code should be equivalent to the old one.
The disabled code passes band-independent data for low level functions.
The disabled code is not debugged yet.

EXPECTED DIFFERENCES :

None.

[src/gxfilltr.h src/gxfillts.h src/gxfill.c]

2004-03-05T05:37:32.000000Z Ralph Giles

Remove a debug tracing message.

[src/sjpx.c]

2004-03-04T22:50:39.000000Z Ralph Giles

Add support for our whitelist keyword filter to the regression run.

[toolbin/tests/run_nightly]

2004-03-04T22:34:56.000000Z Ralph Giles

Improve wording in the MSVC debug flag descriptions.

[doc/Make.htm]

2004-03-04T22:28:09.000000Z Ralph Giles

Improve wording in a comment.

[src/msvc32.mak]

2004-03-04T16:41:06.000000Z Igor Melichev

Fix : gs_function_is_monotonic computed an unused auxiliary result.

DETAILS :

Bug 687328 fn_is_monotonic_proc_t slows down ShadingType 1 in 3 times

The function fn_is_monotonic_proc_t computes a result consisting of 2 things :
(1) whether the function is monotonic, (2) if so, whether it is encreesing or
decreesing. The part (2) consumes a huge time and never used. Intending to
cancel it. On necessity clients can compute (2) by calling 'evaluate'.


EXPECTED DIFFERENCES :

Clarke Tate Manns Chinese.ai
STEUER-RollingMesh 1(linear).ai

[src/gsfunc0.c src/gsfunc3.c src/gsfunc.h]

2004-03-04T16:27:26.000000Z Igor Melichev

Fix (pdfwrite) : Reject encryption options if no password is specified, improved.

DETAILS :

Bug 687334 "pdfwrite: Encryption with no password".

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c]

2004-03-04T16:13:26.000000Z Igor Melichev

Fix : "KeyLength" option name was misspelled in the documentation.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm]

2004-03-04T16:13:15.000000Z Igor Melichev

Fix (pdfwrite) : Reject encryption options if no password is specified.

DETAILS :

Bug 687334 "pdfwrite: Encryption with no password".

EXPECTED DIFFERENCES :

None.

[src/gdevpdf.c]

2004-03-04T15:50:11.000000Z Igor Melichev

Fix (pdfwrite) : Floating point aritmetic applied to uninitialized data.

DETAILS :

Rather the result was not used, the oprtation could cause floating point interrupts.
Debugged with test-setweightvector.ps .

EXPECTED DIFFERENCES :

None.

[src/gdevpdtt.c src/gdevpdte.c]

2004-03-04T14:34:15.000000Z Igor Melichev

Fix (TT grid fitting) : The glyph trailing moveto got wrong coordinates.

DETAILS :

Advance width was scaled wrongly.

EXPECTED DIFFERENCES :

japan.ps
S2_Digitalproof-Forum_x3k.pdf
Testform.v1.0.2.pdf

[src/gxttfb.c src/ttfmain.c]

2004-03-04T05:06:38.000000Z Dan Coby

Implementation of 687326 Enhancement: Handling of PDF 1.5encryption.

DETAILS:

The PDF 1.5 specification has added several some features for
encryption of PDF documents.

1.  The new encryption changes are indicated by a /R value of
4 in the Encryption dictionary.  Note:  The encryption algorithm
is the same as /R = 3.

2.  The encryption handling for strings and streams may now be
specified independently.  Current possibilities are 'Identity'
and the standard handler.

Note:  There are more encryption features in the PDF 1.5 specification.
HowevertThe only means that I have for generating test files for these
new encryption features is Acrobat 6.0.  This patch will decode files
which are encrypted using Acrobat 6.0.  There is one more feature
(EncryptMetaData) which will be the subject of a separate patch.
Between the features covered by the current patch and the EncryptMetaData
patch, this includes all of the capabilities that are available to a user
of Acrobat 6.0.  Since Acrobat 6.0 is the major producer of files with
these new encryption features, Ghostscript will have the ability to
decrypt files which we are likely to see in the near future.

[lib/pdf_sec.ps]

2004-03-03T13:53:11.000000Z Igor Melichev

Fix : Shading could cause a floating point exception.

DETAILS :

It caused an a floating point interrupts if they are unmasked.
The problem in gxshade6.c apeared with NEW_SHADINGS with ppmraw -r72 050-01.ps .
The problem in gxshade1.c ln 638 apeared with NEW_SHADINGS with ppmraw -r72 "STEUER-RollingMesh 2*.ai" .
Another one looks as a long standing bug with ppmraw -r72 442-01.ps

EXPECTED DIFFERENCES :

None.

[src/gxshade1.c src/gxshade6.c]

2004-03-03T10:10:50.000000Z Igor Melichev

Fix (TT grid fitting) : AlignToPixels=0 aligned to pixels.

DETAILS :

Bug 687318 'A poor TT grid fitting with TextAlphaBits>1".
This patch doesn't close the bug.
An StdHW, StdVW reconstruction is necesseary for perfect result.
AlignToPixels=0 still gives a varying stem width.

EXPECTED DIFFERENCES :
None.

[src/gxttfb.c]

2004-03-03T08:16:35.000000Z Igor Melichev

Fix (type 1 hinter) : small resolutions caused a rangecheck.

DETAILS :

Bug 687301 "/limitcheck in --.type42execchar-- at 13 dpi".
When CTM is too small, its rational representation
appears degenerate, and we pass the character with no hinting.

EXPECTED DIFFERENCES :
None.

[src/gxhintn.c]

2004-03-03T05:14:53.000000Z Dan Coby

Fix for 687274 White areas appear shaded.

DETAILS:

This 'problem' is caused by a 'feature'.  The high resolution transfer
function  deliberately has a piece of logic that forces any shade of gray
that is not pure white (i.e. greater than 0.998) to halftone with at
least one pixel being set in the output.  This keeps nearly white shades
from being washed out.

We have seen several instances in which this 'feature' causes a problem.
The fax output format tiffg4 has been bitten by this problem since it is
commonly used at 204 dpi.

This change removes this feature.

[lib/gs_init.ps]

2004-03-02T11:47:27.000000Z Igor Melichev

Improving the MSVC debug build options.

DETAILS :

1. The implementation of switches DEBUG and TDEBUG
   in msvc32.mak did not comply to their explanation in comments.
   Bug 687276 "mscv32.mak : DEBUG and TDEBUG don't comply to documentation"

2. Defined a new switch DEBUGSYM :
+ # Setting DEBUGSYM=1 is only useful with TDEBUG=0 for advanced developers.
+ # It includes symbol table information for the debugger to the release build.

3. Updated doc\Make.htm about that.

EXPECTED DIFFERENCES :
None.

[doc/Make.htm src/msvccmd.mak src/msvc32.mak]

2004-03-02T10:14:46.000000Z Igor Melichev

Fix (pdfwrite) : Errors were missed processing a shading data stream.

DETAILS :

Bug 687307 "A ShadingType 7 differs from Adobe."
shade_next_flag interpreted a wrong data as End-Of-Data,
so that some wrong documents were passed with no error.

Now pdfwrite handles the bad shading data exception separately from
other errors:  the shading is fully written and the error is signaled
to the PS interpreter after that. Note that other errors terminate immediately
with inconsistent data written to the PDF output. We did the special
processing to provide a better conformity to some buggy Genoa tests,
which paint a shading with a wrong data in a stopped context.

Besides that, we cancelled the default implementation fallback
when pdf_setfillcolor fails. The old implementation caused
shadings to convert into a huge set of rectangles written to PDF.
We believe that signalling an error is the right reaction for this case.

EXPECTED DIFFERENCES :

pdfwrite :
446-01.ps now prints error message to the raster. This is a progression.
483-05.ps now prints error message to stdout. This is a progression.

[src/gdevpdfd.c src/gdevpdfv.c src/gdevpdfg.c]

2004-03-02T08:34:47.000000Z Igor Melichev

Fix : Errors were missed processing a shading data stream.

DETAILS :

Bug 687307 "A ShadingType 7 differs from Adobe."
shade_next_flag interpreted a wrong data as End-Of-Data,
so that some wrong documents were passed with no error.

With pdfwrite the logic is different, and we didn't fix it.

EXPECTED DIFFERENCES :

446-01.ps now prints error message to the raster. This is a progression.
483-05.ps now prints error message to stdout. This is a progression.

[src/gxshade.c src/gxshade4.c src/gxshade.h src/gxshade6.c]

2004-03-01T23:59:01.000000Z Igor Melichev

A new implementation of shadings, step 42.

DETAILS :

Big triangle meshes could overflow wedge_vertex_list_elem_buffer.
See comment in code.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-03-01T12:39:22.000000Z Igor Melichev

A new implementation of shadings, step 41, release candidate 2.

DETAILS :

Implemented intersection_of_small_bars with int64_t,
and improved the documentation about it.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-03-01T10:44:37.000000Z Igor Melichev

A new implementation of shadings, step 40.

DETAILS :

1. Improved various constraints for patch size,
   which are caused by the arithmetic precision.
   Now all them are collected in curve_samples.

2. Improved the documentation about secondary branches.

3. Fixed minor bugs in secondary branches.

3. Improved the formatting with easier distinguishing
   a multiplication " * x" from dereferencing " *x".
   It was important for finding arithmetic constraints.

EXPECTED DIFFERENCES :

SmoothShading.pdf at 300dpi.

[src/gxshade4.h src/gxshade6.c]

2004-02-29T16:59:14.000000Z Igor Melichev

A new implementation of shadings, step 39.

DETAILS :

The previous patch appears wrong. This one replaces it.

Fixed the order of painting pixels : U and V were exchanged.
Debugged with examples attached to the bug 687307.

Besides that, the smoothness condition is changed :
the case with strong equality must not decompose.
A special test for this is 478-01.ps -
now it is decomposed with monotonic intervals only.


EXPECTED DIFFERENCES :

Since the previous patch appears wrong,
here is a difference from a revision before it :

446-01.ps
478-01.ps
483-05.ps
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 3(Final).ai

[src/gxshade1.c src/gxshade6.c]

2004-02-29T14:47:32.000000Z Igor Melichev

A new implementation of shadings, step 38.

DETAILS :

Fixed the order of painting pixels : U and V were exchanged.
Debugged with examples attached to the bug 687307.

EXPECTED DIFFERENCES :

72dpi :

442-01.ps
446-01.ps
464-01.ps
478-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
chilis_red.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf

300dpi:

289-01.ps
442-01.ps
446-01.ps
464-01.ps
478-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
chilis_red.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
Openhuis_pdf_zw.pdf
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf

[src/gxshade6.c]

2004-02-29T13:03:51.000000Z Igor Melichev

A new implementation of shadings, step 37.

DETAILS :

Fixed a bug in LAZY_WEDGES 1 :
fill_wedge_from_list_rec missed non-leaf triangles.

Also defined dbg_wedge_triangle_cnt for debug purpose.

EXPECTED DIFFERENCES :

72dpi :

446-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 3(Final).ai

300dpi:

442-01.ps
446-01.ps
464-01.ps
478-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai

[src/gxshade6.c]

2004-02-28T12:30:05.000000Z Igor Melichev

A new implementation of shadings, step 36.

DETAILS :

Implemented lazy wedges : do not create a wedge,
if both neighbours of a line were divided at same point.
It reduces the number of constant color triangles to fill.

Since this algorithm consumes an exponential RAM of the wedge nesting,
we restrict the wedge nesting with 9. For doing that we enforce
subdivision of large patches into chunks with <=512 pixels length sides
- see LAZY_WEDGES_MAX_LEVEL.

EXPECTED DIFFERENCES :

72dpi :
289-01.ps
442-01.ps
446-01.ps
464-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai

300dpi:
442-01.ps
446-01.ps
464-01.ps
478-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf

[src/gxshade4.h src/gxshade1.c src/gxshade4.c src/gxshade6.c]

2004-02-27T09:24:23.000000Z Igor Melichev

A new implementation of shadings, step 35.

DETAILS :

1. Improving the filling order for self-overlapping patches.
The old code filled them wrongly (a bug).
This patches fixes that.
With self-overlapping patches the new code is slower.

2. Improved the numeric error processing in intersection_of_big_bars.
With negative bars the old code could give a bias in fixed_1,
rather negative bars probably never come here.

EXPECTED DIFFERENCES :

442-01.ps
446-01.ps
464-01.ps
478-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
chilis_red.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf

[src/gxshade6.c]

2004-02-26T20:55:56.000000Z Igor Melichev

A new implementation of shadings, step 34.

DETAILS :

Improving the ShadingType 1 with applying the generic algorithm.
The generic algorithm is extended for 2-argument functions.

Also fixing the configuration switch DIVIDE_BY_PARALLELS,
which was unintentionally set to 1 by the previous patch.

EXPECTED DIFFERENCES :

289-01.ps
442-01.ps
446-01.ps
464-01.ps
478-01.ps
483-01.ps
483-05.ps
gradmesh.ai

[src/lib.mak src/gxshade4.h src/gxshade.c src/gxshade1.c src/gxshade4.c src/gxshade6.c]

2004-02-26T20:10:04.000000Z Ray Johnston

Revert to the correct version of gs_setpd.ps and Use.htm.

DETAILS:

A local CVS problem resulted in an update from a directory that did not
have the changes, causing me to think that the files needed to be
updated, but instead removed the previous update. What a mess!

[doc/Use.htm lib/gs_setpd.ps]

2004-02-26T19:55:16.000000Z Igor Melichev

Fix : A bug in fn_Sd_is_monotonic.

DETAILS :

Monotonic intervals were computed wrongly due to
a wrong cell boundary condition. With no Encode
it overestimated the number of cells in 1.

This patch also extends fn_Sd_is_monotonic for multi-argument functions.
Actually it checks whether both points are within same cell.
This is fine with linear functions,
but for 3d order we would like to check for zero derivatives
within the interval specified by 2 vectors.

EXPECTED DIFFERENCES :

300dpi:

442-01.ps
483-01.ps

[src/gsfunc0.c]

2004-02-26T07:18:57.000000Z Igor Melichev

A new implementation of shadings, step 33.

DETAILS :

Improves the performance of radial shadings :

For a faster painting, we apply fill adjustment to outer annula only.
Inner annula are painted with no fill adjustment.
It can't cause a dropout, because the outer side of an annulus
gets same flattening as the inner side of the neighbour outer annulus.

For other shadings this chande is algorithmically equivalent.

EXPECTED DIFFERENCES :

A minor difference with axial shadings :
442-01.ps
446-01.ps
483-01.ps
483-05.ps
Altona-Testsuite_p2_S_x3.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
S2_Digitalproof-Forum_x3k.pdf
shading_prob_800.ps
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai

[src/gxshade4.h src/gxshade.c src/gxshade1.c src/gxshade4.c src/gxshade.h]

2004-02-25T20:38:06.000000Z 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]

2004-02-25T20:37:33.000000Z Ray Johnston

Clean up dict stack after loading an embedded Type1 font from a PDF file.
While the font is buggy, Adobe doesn't complain. Bug #687315.

[lib/pdf_font.ps]

2004-02-25T20:35:20.000000Z Ray Johnston

Add an option to prevent the 'range' type PageSize from being added to the
InputAttribute dictionary. This option is useful for printers that want the
requested pages to be rotated to fit one of the available page sizes.
Option is -dNORANGEPAGESIZE. Fix for bug #629335.

[doc/Use.htm lib/gs_setpd.ps]

2004-02-25T16:21:36.000000Z Igor Melichev

A new implementation of shadings, step 32.

DETAILS :

1. Implemented axial shading with a Coons patch.
   It gives more regularity with area decomposition and trapping.

2. Optimized tensor shadings for the case when the gradient is
   parallel to the quadrangle sides.

Note that the old code applies 1/2 pixels fill adjustment when
painting stripes of the shading, generating overlapped stripes.
Instead that the new code generates non-overlapping stripes,
and applies a trapping emulation at the shading boundaries with 1/8 pixels.

EXPECTED DIFFERENCES :

A minor difference with axial shadings :
442-01.ps
446-01.ps
464-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
chilis_red.pdf
gradmesh.ai
Openhuis_pdf_zw.pdf
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf

An area shift in Testform.v1.0.2.pdf at 72dpi appears due to
the fill adjustment is replaced with the trapping emulation.

[src/lib.mak src/gxshade4.h src/gxshade1.c src/gxshade6.c]

2004-02-24T22:27:06.000000Z Jack Moffitt

Add support for specifying CVS repository location, which requires a
new configuration key, 'gsconf.repodir'.

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

2004-02-24T22:20:20.000000Z Jack Moffitt

Script to update baselines for a specific CVS version of Ghostscript.

The script requires a new configuration key, 'gsconf.fontdir'.

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

2004-02-24T19:07:39.000000Z Igor Melichev

A new implementation of shadings, step 31.

DETAILS :

1. Removed an undefined macro call (a portability bug).

2. Disabled some unused functions.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade4.c]

2004-02-24T18:57:57.000000Z Igor Melichev

A new implementation of shadings, step 30.

DETAILS :

1. Triangle meshes were passed to the rasterizer with no color resolved.
   It is assumed to be resolved in advance (a bug).

2. Improved external names with adding a scope prefix.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade4.c src/gxshade6.c]

2004-02-24T12:12:50.000000Z Igor Melichev

A new implementation of shadings, step 29 - release candidate 1.

DETAILS :

Switching to the new implementation.
It fixes a number of bugs, works 2.5 times faster and produces a better view.
Also documented secondary development branches.

Bug 687291 "problems in patch_fill".
Bug 687310 "Wrong color interpolation with ShadingType 4,5.".

EXPECTED DIFFERENCES :

446-01.ps
483-05.ps

[src/gxshade4.h]

2004-02-24T11:58:23.000000Z Igor Melichev

A new implementation of shadings, step 28.

DETAILS :

Removing debug helpers.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade4.c src/gxshade6.c]

2004-02-24T11:50:38.000000Z Igor Melichev

A new implementation of shadings, step 27.

DETAILS :

It simplifies visual trace commands with the new macros.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.c src/gxshade6.c]

2004-02-24T11:43:26.000000Z Igor Melichev

Improving the visual trace macros.

DETAILS :

It defines a raugh implementation for a temporary trace disabling.

EXPECTED DIFFERENCES :

None.

[src/vdtrace.h]

2004-02-24T11:08:56.000000Z Igor Melichev

A new implementation of shadings, step 26.

DETAILS :

This patch changes a disabled code only.
It fixes a bug computing ku[3], which missed some wedges,
and improves some visual trace commands.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-24T09:57:13.000000Z Igor Melichev

A new implementation of shadings, step 25.

DETAILS :

This patch changes a disabled code only.
This change is algorithmically equivalent.
During a trianglulation it avoids redundant computation
of the color span and the triangle size.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-24T09:28:35.000000Z Igor Melichev

A new implementation of shadings, step 24.

DETAILS :

The patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004243.html
unintentionally switched on the new code.
Now switching it back to the old one.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h]

2004-02-24T09:08:34.000000Z Igor Melichev

A new implementation of shadings, step 23.

DETAILS :

This patch changes a disabled code only.

1. Wedges were missed in triangle_by_4.
2. Improved a debug mode in gxshade4.c .
3. Fixed cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.c src/gxshade6.c]

2004-02-24T08:14:25.000000Z Igor Melichev

A new implementation of shadings, step 22.

DETAILS :

This patch changes a disabled code only.
It implements a division of a quadrangle into 4 triangles,
like the old code does. It doesn't change the performance
and the view appears slightly better. This mode is useful with
DIVIDE_BY_PARALLELS 0.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-24T07:58:42.000000Z Igor Melichev

A new implementation of shadings, step 21.

DETAILS :

This patch changes a disabled code only.
It implements a division of a triangle into 4 triangles,
like the old code does. This appears some slower, but
gives a better view when the smooothness is smaller
than the color resolution.

Minor changes :

- Implemented VD_TRACE_DOWN to gxshade6.c;
- Changed some visual trace commands;
- COLOR_CONTIGUITY specifies a coefficient for divide_triangle_by_parallels.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade6.c]

2004-02-23T20:41:53.000000Z Ralph Giles

Check for local jpeg library source by looking for the jpeglib.h header
rather than just the jpeg directory. Also try looking for jpeg-6b if the
jpeg fails; this lets us find the source as it unpacks from the upstream
tarball. Patch from ESP Ghostscript.

[src/configure.ac]

2004-02-23T03:07:03.000000Z Ray Johnston

Add a parameter which prevents the non-standard four element PageSize
entry in the InputAttributes from being included. This prevents problems
with PostScript programs that examine the InputAttributes entries in an
attempt to pick the 'best fit' rather than relying on the setpagedevice
logic. Also most 'real' printer devices don't support arbitrary page
sizes, so automatic rotation is defeated if the range type page size
in included. The option is -dNORANGEPAGESIZE. Bug #629335.

[doc/Use.htm lib/gs_setpd.ps]

2004-02-23T01:44:25.000000Z Ray Johnston

Add the path to the code directory (gsconf.codedir) for invocation of the
update_baseline/update_pdfbaseline.

[toolbin/tests/gscheck_raster.py toolbin/tests/gscheck_pdfwrite.py]

2004-02-22T23:54:17.000000Z Ralph Giles

Initial implementation of the JPXDecode filter using the JasPer library
for decoding the JPEG 2000 data. This version only implements a
postscript-level filter; PDF support will follow in another commit.

DETAILS:

A new FEATURE_DEV, 'jpx.dev', is added to the makefile to enable
support. The jasper library must be available to link with in this case.
The library is autodetected in the autoconf build, but not yet enabled
on other platforms.

The implementation leaves a little to be desired. While JasPer is
robust, it provides no way to connect its internal stream architecture
to ours, so we end up buffering all the data. This seems to be the best
we can do without modifying the library.

We try to handle data from a number of colorspaces, but the spec is a
little vague on what is required. We convert YUV to RGB internally, but
do not handle sub-sampled planes.

[src/lib.mak src/int.mak src/Makefile.in src/zfjpx.c src/configure.ac src/sjpx.c src/sjpx.h]

2004-02-22T15:11:29.000000Z Igor Melichev

A new implementation of shadings, step 20.

DETAILS :

This fixes an unintentional regression in gxshade4.c,
which appeared from a recent patch.
Also it optimises the access to pis->smoothness.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.c src/gxshade6.c]

2004-02-22T14:14:16.000000Z Igor Melichev

A new implementation of shadings, step 19.

DETAILS :

This change is algorithmically equivalent.
It simplifies internal interfaces with the new type quadrangle_patch.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-22T13:06:13.000000Z Igor Melichev

A new implementation of shadings, step 18.

DETAILS :

This change is algorithmically equivalent.
It simplifies the interface of fill_triangle_wedge.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-22T10:59:52.000000Z Igor Melichev

A new implementation of shadings, step 17.

DETAILS :

This change is algorithmically equivalent.
It simplifies intermodule interfaces with using
shading_vertex_t instead a pair of a point and a color.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade4.c src/gxshade6.c]

2004-02-22T09:43:44.000000Z Igor Melichev

A new implementation of shadings, step 16.

DETAILS :

This patch changes a disabled code only.
In the disabled code it fixes the bug 687310
"Wrong color interpolation with ShadingType 4,5.".
In the old code the interpolation is still done in the color space rather than
in the function domain.

EXPECTED DIFFERENCES :

None.

[src/lib.mak src/gxshade4.h src/gxshade.c src/gxshade4.c src/gxshade.h src/gxshade6.c]

2004-02-21T18:25:31.000000Z Igor Melichev

A new implementation of shadings, step 15.

DETAILS :

This patch changes a disabled code only.
Optimized the patch decomposition.

1. Triangles are divided along the color gradient.
   Since the color gradient is vector, actually we divide
   along the gradient of the Manhattan"s color norm.

2. Rectangles are divided into 2 triangles by the diagonal
   with smaller color difference.

3. Improved conditions for compiling wedge_buf.

4. Implemented VD_TRACE_TRIANGLE_PATCH.

This revision appears faster than the old code NEW_SHADINGS 0
in about 1.4 times.

A code optimization is wanted. See "fixme" comments.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade4.c src/gxshade6.c]

2004-02-20T15:04:59.000000Z Igor Melichev

A new implementation of shadings, step 14.

DETAILS :

This patch changes a disabled code only.
Optimized the trapping emulation.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/gxshade4.c src/gxshade6.c]

2004-02-20T13:58:18.000000Z Igor Melichev

A new implementation of shadings, step 13.

DETAILS :

1. Aplied the new triangulation to triangle meshes.
2. Enhanced the scope of configuration flags and some structures.
3. Improved visual trace commands.

The trapping emulation appears too slow and should be optimized.

EXPECTED DIFFERENCES :

None.

[src/gxshade4.h src/lib.mak src/gxshade4.c src/gxshade6.c]

2004-02-20T10:53:39.000000Z Igor Melichev

Fix : Cygwin/gcc warnings.

EXPECTED DIFFERENCES :

None.

[src/gxfill.c]

2004-02-20T10:51:36.000000Z Igor Melichev

A new implementation of shadings, step 12.

DETAILS :

1. Emulated an interpatch trapping for poorly designed documents -
   see 'padding', 'interpatch_padding', 'inpatch_wedge'.
2. Improved some debug helpers (TENSOR_SHADING_DEBUG 1).
3. Removed some unused variables.
4. Improved some comments and C-style.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-20T06:46:30.000000Z Dan Coby

Fix for 687279 Linker warnings with Visual Studio 6 and .NET 2003.
The changes consist of removing the keyword INITINSTANCE from the def
files.  The DESCRIPTION lines are changed to a comment and put at the
beginning of the files.

[src/dw32c.def src/dwmain32.def src/dwmain16.def src/gsdll32.def src/dwsetup.def src/dwuninst.def]

2004-02-20T00:04:52.000000Z Igor Melichev

A new implementation of shadings, step 11.

DETAILS :

Simplified wedges with wedge_by_triangles.
It makes a big part of the code to be unused with
NEW_TENSOR_SHADING 1 QUADRANGLES 0 POLYGON_WEDGES 0.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-19T20:05:46.000000Z Igor Melichev

A new implementation of shadings, step 10.

DETAILS :

1. Implemented a decomposition by triangles.
2. Applied restrict_color to colors, to avoid lots of pieces
   then basic color values are significantly out of range.
   The 483-07 box of 483-05.ps contains such shadings.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-19T11:32:12.000000Z Igor Melichev

A new implementation of shadings, step 9.

DETAILS :

1. Inserted some visual trace instructions in the old algorithm.
2. Moved configurations macro definitions upper, to use them in the old code.
3. Remaned NEW_TENSOR_SHADING_DEBUG with TENSOR_SHADING_DEBUG.
4. In the new code fixed the wedge color.
5. Improved the decomposition of bended patches.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-19T11:21:52.000000Z Igor Melichev

Improving visual trace macros.

DETAILS :

This patch implements a nesting of trace allowing conditions
specified in different modules, and applies it to the filling algorithm.

EXPECTED DIFFERENCES :

None.

[src/vdtrace.h src/gxfill.c]

2004-02-19T07:44:23.000000Z Igor Melichev

Simplifying the filling algorithm, step C22.

DETAILS :

The patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004127.html
appears incomplete. This one fixes that.

Bug 687306 "CVS head crashes with pkmraw, 300 dpi, with recent changes."

EXPECTED DIFFERENCES :

None.

[src/gxfill.c]

2004-02-18T15:05:45.000000Z Igor Melichev

A new implementation of shadings, step 8.

DETAILS :

This patch changes a disabled code only.

1. is_curve_small uses a better thresholds.
2. is_xy_monotonic_by_v was wrong. Replaced with is_bended.
3. Optimized wedge_trap_decompose.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-18T15:00:29.000000Z Igor Melichev

Improving the filling algorithm, step D8.

DETAILS :

Removed floating point arithmetics, which recently appeared by a hack.
A rounding is now done slightly different.

EXPECTED DIFFERENCES :

Normal, 72 dpi :

LD.pdf

Normal, 300 dpi :

012-01.ps
012-05.ps
013-05.ps
032-01.ps
123-01.ps
123-05.ps
205-01.ps

pdfwrite, 72 dpi :

LD.pdf


pdfwrite, 300 dpi :

123-01.ps
123-05.ps
169-13.ps

[src/lib.mak src/gxfill.c]

2004-02-18T14:41:50.000000Z Igor Melichev

Fix: Documented rounding formulas in the character processing.

EXPECTED DIFFERENCES :

None.

[src/gxhintn.c src/fapiufst.c src/ttfmain.c]

2004-02-18T09:54:13.000000Z Igor Melichev

Fix (pdfwrite) : Converting an image type 4 into imagemask, a wrong color was written.

DETAILS :

This problem was discovered with ghostpcl and owlfoo.pcl from Stefan.
Thanks to Stefan for detecting it.

This fix is kinda hacky. Let it live for a while, because we want to
study its consequences before applying more efforts.
A right fix should not modify the interpreter graphic state,
but we have no a 'const' copy function for gs_state,
because gx_gstate_clone shares imager state parts.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfi.c]

2004-02-18T05:35:05.000000Z Dan Coby

Add '!ifndef'/'endif' around varaious parameters in the makefile for the
Borland compiler (bcwin32.mak).  This allows the parameters to be specified
on the command line without editting the makefile.

[src/bcwin32.mak]

2004-02-17T15:12:40.000000Z 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 src/zpcolor.c]

2004-02-16T16:29:47.000000Z Igor Melichev

Improving the filling algorithm, step D7.

DETAILS :

When filling an individual trapezoid, a shortcut
for parallelograms could miss some pixels.

When the left boundary rounds to a vertical line
and the right one does not, for the right boundary it
wrongly applied same zero sampling as for the left one,
in spite of the right boundary can cross pixel centers.

We realize that the shortcut could improve a view
of some parallelograms. But in same time we detected that
in alphabet.ps with 72dpi a parallelogram was replaced
with a wider one, causing a worse view of the character '#'.
So its usefullness is arguable.

Both features can't provide simultaneousely
due to the device interface can't pass a flag whether
an exact coverage is required.
Therefore we drop the shortcut.

EXPECTED DIFFERENCES :

normal 72dpi :

020-01.ps
175-01.ps
1_2001.pdf
289-01.ps
446-01.ps
483-05.ps
86554321.pdf
acrobat.pdf
ADOBE1-4.pdf
alphabet.ps
Altona.Page_3.2002-09-27.pdf
chess.ps
dina3_watermark.pdf
kazmir.pdf
PixelisAd.pdf
RealCities.pdf
spec_gs.pdf
spec_gv.pdf
test.pdf
vsem0093.pdf
xes2ps-problem.pdf
xgfddg.pdf

normal 300dpi :

001-01.ps
001-13.ps
001-25.ps
002-09.ps
002-21.ps
002-33.ps
003-01.ps
012-01.ps
012-05.ps
012-09.ps
012-13.ps
013-01.ps
013-05.ps
013-09.ps
013-13.ps
014-01.ps
014-05.ps
014-09.ps
014-13.ps
015-01.ps
015-05.ps
015-09.ps
016-01.ps
017-01.ps
018-01.ps
01_001.pdf
020-01.ps
021-01.ps
023-01.ps
027-01.ps
027-05.ps
027-09.ps
027-13.ps
028-01.ps
031-01.ps
031-05.ps
032-01.ps
032-07.ps
033-01.ps
034-01.ps
034-10.ps
035-01.ps
035-07.ps
036-01.ps
038-01.ps
039-01.ps
040-01.ps
045-01.ps
046-01.ps
050-01.ps
055-01.ps
061-01.ps
070-01.ps
076-01.ps
083-01.ps
083-05.ps
083-09.ps
083-13.ps
084-01.ps
091-01.ps
093-01.ps
094-01.ps
096-01.ps
102-01.ps
103-01.ps
104-01.ps
109-01.ps
110-01.ps
113-01.ps
118-01.ps
119-01.ps
119-10.ps
119-16.ps
119-23.ps
119-35.ps
119-41.ps
119-47.ps
120-01.ps
123-01.ps
123-05.ps
123-09.ps
124-01.ps
129-01.ps
136-01.ps
141-01.ps
148-01.ps
148-05.ps
148-11.ps
148-16.ps
149-01.ps
149-05.ps
150-01.ps
154-01.ps
158-01.ps
159.pdf
162-01.ps
165-01.ps
166-01.ps
169-01.ps
169-05.ps
169-09.ps
169-13.ps
170-01.ps
175-01.ps
176-01.ps
177-01.ps
181-01.ps
184-01.ps
192-01.ps
194-01.ps
1_pct_50_bang.pdf
200-01.ps
205-01.ps
205-05.ps
205-09.ps
205-13.ps
206-01.ps
212-01.ps
213-01.ps
214-01.ps
215-01.ps
219-01.ps
220-01.ps
220-07.ps
222-01.ps
222-05.ps
222-09.ps
222-13.ps
223-01.ps
226-01.ps
227-01.ps
231-01.ps
233-01.ps
237-01.ps
238-01.ps
244-01.ps
245-01.ps
245-07.ps
245-13.ps
245-17.ps
246-01.ps
250-01.ps
251-01.ps
255-01.ps
257-01.ps
258-01.ps
260-01.ps
263-01.ps
264-01.ps
265-01.ps
268-03.ps
268-04.ps
268-05.ps
268-06.ps
269-01.ps
270-01.ps
272-01.ps
276-01.ps
281-01.ps
282-01.ps
289-01.ps
296-01.ps
297-01.ps
298-01.ps
298-05.ps
298-09.ps
299-01.ps
303-01.ps
304-01.ps
307-01.ps
307-07.ps
307-13.ps
308-04.ps
310-04.ps
311-03.ps
313-01.ps
316-07.ps
320-01.ps
321-01.ps
321-05.ps
321-09.ps
321-13.ps
322-01.ps
325-01.ps
327-01.ps
328-01.ps
330-01.ps
334-01.ps
335-01.ps
336-01.ps
401-01.ps
405-01.ps
409-01.ps
415-01.ps
421-01.ps
430-01.ps
438-01.ps
442-01.ps
446-01.ps
450-01.ps
455690.pdf
460-01.ps
463-01.ps
464-01.ps
468-01.ps
473-01.ps
476-01.ps
477-01.ps
477-03.ps
477-04.ps
477-05.ps
477-06.ps
478-01.ps
483-01.ps
483-05.ps
541_623.pdf
86554321.pdf
a.pdf
aaon97_p7.pdf
adesso3.pdf
adesso5.pdf
adesso7.pdf
AdobeLic.pdf
alphabet.ps
Altona.Page_3.2002-09-27.pdf
besttest.pdf
brochurep1.pdf
bugsample.pdf
ca.pdf
CAIB_highres_page4.pdf
chess.ps
dave.pdf
dina3_watermark.pdf
DisplayedGood.pdf
DisplayedWrong.pdf
file.pdf
gslandscape.pdf
H00216q.pdf
HeiseiMinStd.pdf
ICPconcept.pdf
japan.ps
kazmir.pdf
keyboard.pdf
korea.ps
KozukaB-ILEmbed.pdf
kshow_with_grestore.ps
loremIpsum.pdf
MagicEye.pdf
mbb-with-space.ps
messenger.pdf
messenger16.pdf
ngnews.pdf
ngnews1.pdf
Openhuis_pdf_zw.pdf
pdftops.pdf
prfmm.pdf
prob.pdf
pstopdfO3.pdf
QA_Inv.pdf
QuickNews_Nov22.pdf
RealCities.pdf
RodinCIDEmbed.pdf
S2_Digitalproof-Forum_x3k.pdf
sports.pdf
test.pdf
test2.pdf
test2a.pdf
textsavematrix.pdf
type42_glyph_index.ps
waterfal.ps
xgfddg.pdf
xngnews.pdf



pdfwrite 72 dpi :

020-01.ps
175-01.ps
1_2001.pdf
446-01.ps
483-05.ps
86554321.pdf
acrobat.pdf
ADOBE1-4.pdf
alphabet.ps
Altona.Page_3.2002-09-27.pdf
chess.ps
kazmir.pdf
PixelisAd.pdf
RealCities.pdf
spec_gs.pdf
spec_gv.pdf
test.pdf
vsem0093.pdf
xes2ps-problem.pdf
xgfddg.pdf


pdfwrite 300 dpi :

001-01.ps
001-13.ps
001-25.ps
002-09.ps
002-21.ps
002-33.ps
003-01.ps
012-01.ps
012-05.ps
012-09.ps
012-13.ps
013-01.ps
013-05.ps
013-09.ps
013-13.ps
014-01.ps
014-05.ps
014-09.ps
014-13.ps
015-01.ps
015-05.ps
015-09.ps
016-01.ps
017-01.ps
018-01.ps
01_001.pdf
020-01.ps
021-01.ps
023-01.ps
027-01.ps
027-05.ps
027-09.ps
027-13.ps
028-01.ps
031-01.ps
031-05.ps
032-01.ps
032-07.ps
033-01.ps
034-01.ps
034-10.ps
035-01.ps
035-07.ps
036-01.ps
038-01.ps
039-01.ps
040-01.ps
045-01.ps
046-01.ps
050-01.ps
055-01.ps
061-01.ps
070-01.ps
076-01.ps
083-01.ps
083-05.ps
083-09.ps
083-13.ps
084-01.ps
091-01.ps
093-01.ps
094-01.ps
096-01.ps
102-01.ps
103-01.ps
104-01.ps
109-01.ps
110-01.ps
113-01.ps
118-01.ps
119-01.ps
119-10.ps
119-16.ps
119-23.ps
119-35.ps
119-41.ps
119-47.ps
120-01.ps
123-01.ps
123-05.ps
123-09.ps
124-01.ps
129-01.ps
136-01.ps
141-01.ps
148-01.ps
148-05.ps
148-11.ps
148-16.ps
149-01.ps
149-05.ps
150-01.ps
154-01.ps
158-01.ps
159.pdf
162-01.ps
165-01.ps
166-01.ps
169-01.ps
169-05.ps
169-09.ps
169-13.ps
170-01.ps
175-01.ps
176-01.ps
177-01.ps
181-01.ps
184-01.ps
192-01.ps
194-01.ps
1_pct_50_bang.pdf
200-01.ps
205-01.ps
205-05.ps
205-09.ps
205-13.ps
206-01.ps
212-01.ps
213-01.ps
214-01.ps
215-01.ps
219-01.ps
220-01.ps
220-07.ps
222-01.ps
222-05.ps
222-09.ps
222-13.ps
223-01.ps
226-01.ps
227-01.ps
231-01.ps
233-01.ps
237-01.ps
238-01.ps
244-01.ps
245-01.ps
245-07.ps
245-13.ps
245-17.ps
246-01.ps
250-01.ps
251-01.ps
255-01.ps
257-01.ps
258-01.ps
260-01.ps
263-01.ps
264-01.ps
265-01.ps
268-03.ps
268-04.ps
268-05.ps
268-06.ps
269-01.ps
270-01.ps
272-01.ps
276-01.ps
281-01.ps
282-01.ps
289-01.ps
296-01.ps
297-01.ps
298-01.ps
298-05.ps
298-09.ps
299-01.ps
303-01.ps
304-01.ps
307-01.ps
307-07.ps
307-13.ps
308-04.ps
310-04.ps
311-03.ps
313-01.ps
316-07.ps
320-01.ps
321-01.ps
321-05.ps
321-09.ps
321-13.ps
322-01.ps
325-01.ps
327-01.ps
328-01.ps
330-01.ps
334-01.ps
335-01.ps
336-01.ps
401-01.ps
405-01.ps
409-01.ps
415-01.ps
421-01.ps
430-01.ps
438-01.ps
442-01.ps
446-01.ps
450-01.ps
455690.pdf
460-01.ps
463-01.ps
464-01.ps
468-01.ps
473-01.ps
476-01.ps
477-01.ps
477-03.ps
477-04.ps
477-05.ps
477-06.ps
478-01.ps
483-01.ps
483-05.ps
541_623.pdf
86554321.pdf
a.pdf
aaon97_p7.pdf
adesso3.pdf
adesso5.pdf
adesso7.pdf
AdobeLic.pdf
alphabet.ps
Altona.Page_3.2002-09-27.pdf
besttest.pdf
brochurep1.pdf
bugsample.pdf
ca.pdf
CAIB_highres_page4.pdf
chess.ps
dave.pdf
DisplayedGood.pdf
DisplayedWrong.pdf
file.pdf
gslandscape.pdf
H00216q.pdf
HeiseiMinStd.pdf
ICPconcept.pdf
japan-.ps
japan.ps
kazmir.pdf
keyboard.pdf
korea.ps
KozukaB-ILEmbed.pdf
kshow_with_grestore.ps
loremIpsum.pdf
MagicEye.pdf
mbb-with-space.ps
messenger.pdf
messenger16.pdf
ngnews.pdf
ngnews1.pdf
Openhuis_pdf_zw.pdf
pdftops.pdf
prfmm.pdf
prob.pdf
pstopdfO3.pdf
QA_Inv.pdf
QuickNews_Nov22.pdf
RealCities.pdf
RodinCIDEmbed.pdf
S2_Digitalproof-Forum_x3k.pdf
sports.pdf
test.pdf
test2.pdf
test2a.pdf
textsavematrix.pdf
tpc2.ps
type42_glyph_index.ps
waterfal.ps
xgfddg.pdf
xngnews.pdf

[src/gxdtfill.h]

2004-02-16T15:26:18.000000Z Igor Melichev

A new implementation of shadings, step 7.

DETAILS :

Documenting the current state of the development,
because we need to delay the project.

EXPECTED DIFFERENCES :

None.

[src/gxshade6.c]

2004-02-16T15:06:52.000000Z Ralph Giles

Adapt makefile support for compiling in zlib to support v1.2.x rather
than 1.1.x. Linking to a shared version is unaffected.

DETAILS:

The zlib source was re-arranged from the 1.1.4 to the 1.2.x releases.
While binary compatibility was maintained, and we link just fine to a
separately build dynamic zlib, our custom makefile support for compiling
in the library source no longer works.

Rather than add a 'ZLIB_VERSION' makefile variable and the attendent
configuration costs, we've simply migrated completely to the new (much
faster) 1.2.x series. 1.2.1 is now the minimum version to be used if you
wish to compile zlib as part of Ghostscript.

[doc/Make.htm src/zlib.mak]

2004-02-16T13:51:48.000000Z Igor Melichev

Improving the filling algorithm, step D6.

DETAILS :

The algorithm for for filling an individual trapezoid
use