2005-10-07 18:35 Ray Johnston

Update to final release date for 8.52

[doc/API.htm 1.52, doc/Bug-form.htm 1.48, doc/Bug-info.htm 1.48, doc/C-style.htm 1.54, doc/Commprod.htm 1.40, doc/Copying.htm 1.38, doc/DLL.htm 1.42, doc/Deprecated.htm 1.19, doc/Details8.htm 1.22, doc/Develop.htm 1.158, doc/Devices.htm 1.89, doc/Drivers.htm 1.57, doc/Fonts.htm 1.50, doc/Helpers.htm 1.43, doc/History1.htm 1.38, doc/History2.htm 1.38, doc/History3.htm 1.38, doc/History4.htm 1.38, doc/History5.htm 1.40, doc/History6.htm 1.55, doc/History7.htm 1.43, doc/History8.htm 1.27, doc/Htmstyle.htm 1.43, doc/Install.htm 1.55, doc/Issues.htm 1.51, doc/Language.htm 1.97, doc/Lib.htm 1.42, doc/Maintain.htm 1.49, doc/Make.htm 1.89, doc/News.htm 1.166, doc/Projects.htm 1.66, doc/Ps-style.htm 1.36, doc/Ps2epsi.htm 1.41, doc/Ps2pdf.htm 1.87, doc/Ps2ps2.htm 1.6, doc/Psfiles.htm 1.67, doc/Readme.htm 1.70, doc/Release.htm 1.94, doc/Source.htm 1.38, doc/Testing.htm 1.36, doc/Unix-lpr.htm 1.38, doc/Use.htm 1.135, doc/Xfonts.htm 1.38, doc/gs-vms.hlp 1.36, man/dvipdf.1 1.36, man/font2c.1 1.36, man/gs.1 1.37, man/gslp.1 1.36, man/gsnd.1 1.36, man/pdf2dsc.1 1.35, man/pdf2ps.1 1.37, man/pdfopt.1 1.35, man/pf2afm.1 1.36, man/pfbtopfa.1 1.37, man/printafm.1 1.36, man/ps2ascii.1 1.36, man/ps2epsi.1 1.34, man/ps2pdf.1 1.41, man/ps2pdfwr.1 1.40, man/ps2ps.1 1.43, man/wftopfa.1 1.36, src/version.mak 1.85]

2005-10-07 18:09 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 1.13]

2005-10-07 18:02 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 1.15]

2005-10-05 14:37 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.

[lib/pdf_draw.ps 1.98, src/gsalloc.c 1.23]

2005-10-04 19:24 Ray Johnston

Update change logs for 8.52 release.

[doc/Changes.htm 1.59, doc/Details.htm 1.18]

2005-10-04 17:51 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 1.38]

2005-10-04 06:30 Ray Johnston

Fix (some of) the gcc compiler warnings (at least the really easy ones).

[src/genht.c 1.5, src/gsiorom.c 1.2, src/zdevice2.c 1.10, src/zdps1.c 1.8, src/zfcmap.c 1.17, src/ztrans.c 1.28]

2005-10-04 01:06 Ray Johnston

Commit updates for 8.52 release -- documentation dates and GS_PRODUCT

[doc/API.htm 1.51, doc/Bug-form.htm 1.47, doc/Bug-info.htm 1.47, doc/C-style.htm 1.53, doc/Commprod.htm 1.39, doc/Copying.htm 1.37, doc/DLL.htm 1.41, doc/Deprecated.htm 1.18, doc/Details8.htm 1.21, doc/Develop.htm 1.157, doc/Devices.htm 1.88, doc/Drivers.htm 1.56, doc/Fonts.htm 1.49, doc/Helpers.htm 1.42, doc/History1.htm 1.37, doc/History2.htm 1.37, doc/History3.htm 1.37, doc/History4.htm 1.37, doc/History5.htm 1.39, doc/History6.htm 1.54, doc/History7.htm 1.42, doc/History8.htm 1.26, doc/Htmstyle.htm 1.42, doc/Install.htm 1.54, doc/Issues.htm 1.50, doc/Language.htm 1.96, doc/Lib.htm 1.41, doc/Maintain.htm 1.48, doc/Make.htm 1.88, doc/News.htm 1.165, doc/Projects.htm 1.65, doc/Ps-style.htm 1.35, doc/Ps2epsi.htm 1.40, doc/Ps2pdf.htm 1.86, doc/Ps2ps2.htm 1.5, doc/Psfiles.htm 1.66, doc/Readme.htm 1.69, doc/Release.htm 1.93, doc/Source.htm 1.37, doc/Testing.htm 1.35, doc/Unix-lpr.htm 1.37, doc/Use.htm 1.134, doc/Xfonts.htm 1.37, doc/gs-vms.hlp 1.35, man/dvipdf.1 1.35, man/font2c.1 1.35, man/gs.1 1.36, man/gslp.1 1.35, man/gsnd.1 1.35, man/pdf2dsc.1 1.34, man/pdf2ps.1 1.36, man/pdfopt.1 1.34, man/pf2afm.1 1.35, man/pfbtopfa.1 1.36, man/printafm.1 1.35, man/ps2ascii.1 1.35, man/ps2epsi.1 1.33, man/ps2pdf.1 1.40, man/ps2pdfwr.1 1.39, man/ps2ps.1 1.42, man/wftopfa.1 1.35, src/gscdef.c 1.55, src/version.mak 1.84]

2005-10-01 04:40 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 1.28, src/gdevdevn.h 1.12]

2005-09-30 19:11 Ray Johnston

Add missing documentation for lib/PDFX_def.ps.

[doc/Psfiles.htm 1.65]

2005-09-29 18:35 Igor Melichev

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 1.45]

2005-09-29 15:24 Igor Melichev

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 1.80]

2005-09-29 08:36 Igor Melichev

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 1.44]

2005-09-28 04:33 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 1.41]

2005-09-26 08:20 Igor Melichev

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/devs.mak 1.138, src/gdevpdfb.c 1.33]

2005-09-23 18:21 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_font.ps 1.79, lib/pdf_main.ps 1.100]

2005-09-22 16:11 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 1.48]

2005-09-21 17:03 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 1.43]

2005-09-21 03:24 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 1.9]

2005-09-20 11:35 Igor Melichev

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/devs.mak 1.137, src/gdevpdfd.c 1.70, src/gdevpsdi.c 1.42]

2005-09-19 14:12 Igor Melichev

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 1.50]

2005-09-16 19:01 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 1.48]

2005-09-16 06:17 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 1.97]

2005-09-16 04:03 Ray Johnston

Correct edit problem with previous commit (copy/paste didn't get totally
changed for src/gsiorom.c).

[doc/Develop.htm 1.156]

2005-09-16 03:59 Ray Johnston

Add missing documentation in Develop.htm and remove dead code commented out
with C++ style comments to eliminate regression test squawks.

[doc/Develop.htm 1.155, src/mkromfs.c 1.2]

2005-09-14 07:13 Ray Johnston

Add a common case to an optimization check in the memflip function.

[src/gsutil.c 1.11]

2005-09-14 07:09 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 1.7]

2005-09-12 11:52 Igor Melichev

ps2write : Implementing a generation of PDF/X-3 (continued).

DETAILS :

This change improves the documentation.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm 1.85]

2005-09-12 11:34 Igor Melichev

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.

[doc/Develop.htm 1.154, doc/Ps2pdf.htm 1.84, lib/PDFX_def.ps 1.1, lib/gs_devcs.ps 1.7, lib/gs_pdfwr.ps 1.49, src/gdevpdf.c 1.124, src/gdevpdfb.h 1.13, src/gdevpdfg.c 1.68, src/gdevpdfp.c 1.53, src/gdevpdfx.h 1.136, src/gdevpdtf.c 1.46]

2005-09-08 17:32 Igor Melichev

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 1.48]

2005-09-07 20:43 Igor Melichev

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 1.84]

2005-09-07 18:08 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 1.47]

2005-09-06 22:21 Igor Melichev

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 1.52]

2005-09-06 20:04 Igor Melichev

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 1.69]

2005-09-06 17:18 Igor Melichev

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/gdevpdf.c 1.123, src/gdevpdfb.h 1.12, src/gdevpdfm.c 1.49, src/gdevpdfx.h 1.135, src/gdevpdti.c 1.52, src/gsstruct.h 1.22]

2005-09-06 16:22 Igor Melichev

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/gdevpdf.c 1.122, src/gdevpdfx.h 1.134, src/gsstruct.h 1.21]

2005-09-06 13:47 Igor Melichev

Fix (ps2write) : pdf_substitute_resource was misspelled.

DETAILS :

This a cosmetic syntaxical change.

EXPECTED DIFFERENCES :

None.

[src/gdevpdfg.c 1.67, src/gdevpdfj.c 1.49, src/gdevpdft.c 1.51, src/gdevpdfu.c 1.87, src/gdevpdfx.h 1.133]

2005-09-05 14:18 Igor Melichev

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 1.83]

2005-09-05 14:18 Igor Melichev

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.

[doc/Ps2ps2.htm 1.4, src/gdevpdf.c 1.121, src/gdevpdfb.h 1.11, src/gdevpdfp.c 1.52, src/gdevpdfu.c 1.86, src/gdevpdfx.h 1.132]

2005-09-05 13:58 Igor Melichev

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/gdevpdf.c 1.120, src/gdevpdfb.h 1.10, src/gdevpdfu.c 1.85, src/gdevpdfx.h 1.131, src/gsparam.h 1.13, src/gsstruct.h 1.20, src/gstypes.h 1.7, src/igc.c 1.15, src/igcstr.c 1.7, src/igcstr.h 1.6]

2005-09-04 20:42 Igor Melichev

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 1.61, src/gxhintn.h 1.24]

2005-09-04 05:44 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/gdevdgbr.c 1.14, src/gdevdsp.c 1.35]

2005-09-02 05:54 Igor Melichev

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 1.130]

2005-09-01 22:04 Stefan Kemper

Formatting cleanup for the printing of the Font samples.

Fixes bug 688281
Thanks to: SaGS5495@hotmail.com

[lib/prfont.ps 1.7]

2005-09-01 00:05 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 1.6]

2005-08-31 18:34 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 1.9]

2005-08-31 18:31 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.

[doc/Ps2pdf.htm 1.83, lib/gs_pdfwr.ps 1.47, lib/ps2pdf 1.4, lib/ps2pdf.bat 1.9, lib/ps2pdf.cmd 1.4, src/gdevpdf.c 1.119]

2005-08-31 15:29 Ray Johnston

Update map_cmyk_color function to modern version (was old style). This
should complete jpegcmyk for correct behaviour.

[src/gdevjpeg.c 1.10]

2005-08-31 14:31 Ray Johnston

Add jpegcmyk device (module missed in previous commit).

[src/gdevjpeg.c 1.9]

2005-08-31 12:35 Igor Melichev

Documenting the new pdfwrite device paramentr HaveTransparency.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm 1.82]

2005-08-31 11:18 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 1.51, src/gdevpdft.c 1.50]

2005-08-31 11:07 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 1.49]

2005-08-31 11:02 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/gdevpdfg.c 1.66, src/gdevpdfj.c 1.48, src/gdevpdfu.c 1.84, src/gdevpdfx.h 1.129]

2005-08-31 07:40 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/gdevpdfb.h 1.8, src/gdevpdft.c 1.48, src/gdevpdfx.h 1.128, src/gdevpdti.c 1.51]

2005-08-31 05:59 Ray Johnston

Remove inadvertent commit that included png48 device.

[src/msvc32.mak 1.75]

2005-08-31 05:52 Ray Johnston

Add jpegcmyk device.

[src/bcwin32.mak 1.38, src/devs.mak 1.136, src/macos-mcp.mak 1.35, src/macosx.mak 1.28, src/msvc32.mak 1.74, src/openvms.mak 1.41, src/os2.mak 1.47, src/unix-gcc.mak 1.50, src/unixansi.mak 1.41, src/watcw32.mak 1.35]

2005-08-31 03:41 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 1.17]

2005-08-30 23:26 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 1.15]

2005-08-30 23:19 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 1.18]

2005-08-30 19:12 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 1.47]

2005-08-30 17:32 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 1.27]

2005-08-30 17:08 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/gdevp14.c 1.34, src/gstrans.h 1.15]

2005-08-30 16:49 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.

[lib/pdf_draw.ps 1.96, src/gdevp14.c 1.33, src/gdevpdft.c 1.47, src/gstparam.h 1.15, src/gstrans.c 1.25, src/int.mak 1.136, src/ztrans.c 1.26]

2005-08-30 13:01 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/gdevpdfg.c 1.65, src/gdevpdft.c 1.46, src/gdevpdfx.h 1.127, src/gstrans.c 1.24, src/gxistate.h 1.23]

2005-08-30 10:49 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/gdevpdfb.h 1.7, src/gdevpdft.c 1.45, src/gdevpdfx.h 1.126, src/gdevpdti.c 1.50, src/gsstruct.h 1.19]

2005-08-30 09:06 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.

[doc/Language.htm 1.95, lib/pdf_draw.ps 1.95, lib/pdf_ops.ps 1.40, src/gstrans.c 1.23, src/gstrans.h 1.14, src/ztrans.c 1.25]

2005-08-30 06:38 Igor Melichev

Fix : Cygwin/gcc warnings.

DETAILS :

This fixes some Cygwin/gcc warnings and improves few comments.

EXPECTED DIFFERENCES :

None.

[src/gdevdevn.c 1.27, src/gdevpdf.c 1.118, src/gdevpsd.c 1.23, src/gdevtsep.c 1.9, src/gsistate.c 1.12, src/gxpcopy.c 1.26, src/zmedia2.c 1.19]

2005-08-29 19:59 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 1.99]

2005-08-29 18:21 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.

[doc/Develop.htm 1.153, src/devs.mak 1.135, src/gdevpdf.c 1.117, src/gdevpdfb.h 1.6, src/gdevpdfg.c 1.64, src/gdevpdfg.h 1.42, src/gdevpdfi.c 1.73, src/gdevpdfj.c 1.47, src/gdevpdfp.c 1.50, src/gdevpdft.c 1.44, src/gdevpdfu.c 1.83, src/gdevpdfx.h 1.125]

2005-08-29 18:12 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 1.94]

2005-08-29 15:58 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/gdevp14.c 1.32, src/gstrans.c 1.22]

2005-08-29 15:25 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 1.14, src/gstrans.h 1.13]

2005-08-29 15:18 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/gdevp14.c 1.31, src/gstparam.h 1.13, src/gstrans.c 1.21, src/gstrans.h 1.12, src/ztrans.c 1.24]

2005-08-29 14:05 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 1.93]

2005-08-29 12:51 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/gdevpdfb.h 1.5, src/gdevpdfi.c 1.72, src/gdevpdfx.h 1.124]

2005-08-25 15:34 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 1.9]

2005-08-24 19:02 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/Makefile.in 1.41, src/gsiorom.c 1.1, src/lib.mak 1.211, src/mkromfs.c 1.1]

2005-08-24 17:04 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 1.8]

2005-08-24 17:03 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/gdevp14.c 1.30, src/gstparam.h 1.12, src/gstrans.c 1.20, src/gstrans.h 1.11]

2005-08-23 19:26 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 1.116]

2005-08-23 17:34 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 1.60]

2005-08-23 12:58 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 1.68]

2005-08-23 11:26 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 1.27]

2005-08-22 21:30 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

[lib/gs_pdfwr.ps 1.46, src/gdevpdfd.c 1.67]

2005-08-22 21:29 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 1.25]

2005-08-22 14:29 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/gxfill.c 1.122, src/gxpath.h 1.16, src/gxpcopy.c 1.24]

2005-08-18 08:07 Igor Melichev

ps2write : Improve the documentation about Policies.PageSize .

EXPECTED DIFFERENCES :

None.

[doc/Ps2ps2.htm 1.3]

2005-08-17 21:54 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/gs_cmap.ps 1.19, lib/pdf_font.ps 1.78]

2005-08-17 18:30 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 1.39]

2005-08-17 14:40 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/gxline.h 1.7, src/gxstroke.c 1.18, doc/Language.htm 1.94]

2005-08-11 17:10 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 1.82]

2005-08-11 15:38 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 1.17]

2005-08-10 19:36 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 1.45]

2005-08-10 19:31 Igor Melichev

Fix : Develop.htm must reference all relevant files (continued).

[doc/Develop.htm 1.151, doc/Develop.htm 1.152]

2005-08-09 22:38 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/gdevdevn.c 1.26, src/gdevpsd.c 1.22, src/gdevtsep.c 1.8]

2005-08-09 20:23 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 1.7]

2005-08-08 23:24 Ralph Giles

Remove a generated file that was causing build portability problems.

[jasper/src/libjasper/include/jasper/jas_config_ac.h 1.2]

2005-08-04 17:38 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 1.11, src/gdevbmpc.c 1.8]

2005-08-04 09:32 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 1.46]

2005-08-03 16:36 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 1.82]

2005-08-02 11:12 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 1.37, src/ttfmain.c 1.34, src/ttfoutl.h 1.16, src/ttinterp.c 1.18, src/ttload.c 1.7]

2005-08-01 20:58 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 1.33]

2005-08-01 19:40 Igor Melichev

Fix : Develop.htm must reference all relevant files.

[doc/Develop.htm 1.150]

2005-07-30 02:39 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 1.25]

2005-07-29 02:49 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 1.59]

2005-07-28 15:24 Alex Cherepanov

Pacify Valgrind: don't copy memory on itself.
Partial fix for bug 688225.

[src/gsiodev.c 1.8, src/zcie.c 1.13]

2005-07-27 22:34 Igor Melichev

Fix : Maybe line breaks are broken by the last patch. Commit it again with right line breaks for sure.

[src/gdevpdfb.h 1.4, src/gdevpdfd.c 1.66, src/gdevpdfx.h 1.123, src/gdevpdti.c 1.49, src/gxcpath.c 1.16, src/gxpath.h 1.15]

2005-07-27 22:09 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/gdevpdfb.h 1.3, src/gdevpdfd.c 1.65, src/gdevpdfx.h 1.122, src/gdevpdti.c 1.48, src/gxcpath.c 1.15, src/gxpath.h 1.14]

2005-07-27 11:24 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 1.37, src/gsfont.h 1.12, src/zbfont.c 1.30]

2005-07-26 23:49 Ralph Giles

Improve wording of the new p2ps2 script documentation.

[doc/Ps2ps2.htm 1.2]

2005-07-26 20:50 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 1.53]

2005-07-26 00:59 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/gdevdevn.c 1.25, src/gdevpsd.c 1.21]

2005-07-21 19:50 Alex Cherepanov

Use memmove() instead of memcpy() in Ins_MINDEX() because of the overlapping
memory blocks.
Fix bug 688224.

[src/ttinterp.c 1.17]

2005-07-21 19:32 Alex Cherepanov

Fix off-by-one error in Decode array testing.
Fix bug 688223.

[src/gxipixel.c 1.12]

2005-07-21 18:19 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 1.40]

2005-07-21 18:13 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 1.81]

2005-07-21 16:04 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 1.81]

2005-07-21 09:53 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 1.47]

2005-07-20 18:14 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"

[lib/opdfread.ps 1.80, src/gdevpdfb.c 1.32, src/gdevpdtt.c 1.103]

2005-07-20 14:46 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 1.45]

2005-07-20 08:20 Igor Melichev

Fix (ps2write) : Initial commit of the ps2ps2 documentation.

EXPECTED DIFFERENCES :

None.

[doc/Ps2ps2.htm 1.1, doc/Readme.htm 1.68]

2005-07-20 07:22 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 1.115, src/gdevpdfb.h 1.2]

2005-07-20 06:17 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 1.45]

2005-07-20 06:10 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/Develop.htm 1.149, doc/Psfiles.htm 1.64, doc/Use.htm 1.133]

2005-07-20 06:00 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/gs_pdfwr.ps 1.44, lib/ps2ps2 1.1, lib/ps2ps2.bat 1.2, lib/ps2ps2.cmd 1.1]

2005-07-19 19:31 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 1.47]

2005-07-18 05:51 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 1.19]

2005-07-18 05:33 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 1.18]

2005-07-15 05:59 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 1.39]

2005-07-15 05:23 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 1.51, src/devs.mak 1.134, src/gdevpng.c 1.12]

2005-07-15 03:36 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 1.27]

2005-07-14 19:56 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 1.46]

2005-07-14 16:10 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 1.79]

2005-07-14 15:14 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 1.42]

2005-07-14 13:20 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 1.78]

2005-07-14 10:27 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/devs.mak 1.133, src/gdevpdtf.c 1.45]

2005-07-13 21:21 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 1.8]

2005-07-13 18:18 Ray Johnston

Font scanning would miss OpenType fonts (OTTO header).

[lib/gs_ttf.ps 1.44]

2005-07-13 17:21 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 1.46]

2005-07-13 10:37 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 1.114]

2005-07-13 00:39 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 1.26]

2005-07-12 17:54 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 1.27]

2005-07-11 22:08 Stefan Kemper

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 1.8]

2005-07-08 22:06 Dan Coby

The gdevdsp.c file was missed in the previous commit for the fix for 688192.

[src/gdevdsp.c 1.34]

2005-07-08 22:04 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/devs.mak 1.132, src/gdevdevn.c 1.24, src/gdevdevn.h 1.11, src/gdevpsd.c 1.20, src/gdevtsep.c 1.7, src/gsequivc.c 1.6]

2005-07-07 16:44 Stefan Kemper

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/gdevlj56.c 1.7, src/gdevpx.c 1.16, src/gdevpxut.c 1.7, src/gdevpxut.h 1.6]

2005-07-06 20:54 Stefan Kemper

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 1.5]

2005-07-05 17:56 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 1.77]

2005-07-04 09:03 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 1.76]

2005-06-29 23:46 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 1.10]

2005-06-29 20:46 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 1.75]

2005-06-29 18:21 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 1.31]

2005-06-29 14:21 Ralph Giles

Remove a duplicate file in the installation target list.

[src/unixinst.mak 1.41]

2005-06-29 14:12 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 1.46]

2005-06-29 10:54 Ralph Giles

Fix some additional typos in the documentation install rules. Closes bug
688158.

[src/unixinst.mak 1.40]

2005-06-28 23:00 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/gdevpdfg.c 1.63, src/gdevpdfx.h 1.121, src/gdevpdti.c 1.46]

2005-06-28 11:44 Ralph Giles

Add two new multiply-included templating files to the exclusion list for
the multiple-inclusion regression check.

[toolbin/tests/check_source.py 1.12]

2005-06-28 06:19 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 1.77]

2005-06-23 07:35 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 1.14]

2005-06-22 20:15 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 1.13]

2005-06-22 15:36 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 1.12]

2005-06-22 15:24 Ralph Giles

Fix typos in the the jasper makefile. Closes bug 688148.

[src/jasper.mak 1.2]

2005-06-22 14:11 Stefan Kemper

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 1.93]

2005-06-21 19:58 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 1.14]

2005-06-21 16:50 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 1.15, src/gsimage.h 1.9]

2005-06-21 16:25 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 1.4]

2005-06-21 13:12 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 1.14, src/gsimage.h 1.8]

2005-06-21 00:58 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 1.29]

2005-06-20 08:59 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/gdevdsp.c 1.33, src/gdevm40.c 1.3, src/gdevm48.c 1.3, src/gdevm64.c 1.4, src/gdevpdfb.c 1.30, src/gdevpdfv.c 1.39, src/gdevpsd.c 1.19, src/gdevtsep.c 1.6, src/gdevxcf.c 1.10, src/gsdparam.c 1.18, src/gxcindex.h 1.7, src/gxdcolor.c 1.13, src/gxdevcli.h 1.38, src/gxiscale.c 1.9, src/gxoprect.c 1.6]

2005-06-19 21:10 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 1.135, src/zchar.c 1.17]

2005-06-19 21:03 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 1.13, src/int.mak 1.134, src/zfont42.c 1.23]

2005-06-19 20:45 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 1.16]

2005-06-16 06:53 Igor Melichev

Fix (Ps2pdf.htm) : ConvertCMYKImagesToRGB was wrongly documented.

EXPECTED DIFFERENCES :

None.

[doc/Ps2pdf.htm 1.81]

2005-06-15 18:40 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 1.13, src/gsptype1.c 1.23, src/gxccache.c 1.34, src/gsimage.h 1.7, src/zimage.c 1.15]

2005-06-15 00:31 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 1.74]

2005-06-14 17:13 Ralph Giles

Link to the relevent section of Use.htm for details about the GS_LIB env
variable. Fixes bug 688051.

[doc/Install.htm 1.53]

2005-06-14 17:07 Ralph Giles

Add some newer documentation files to the unix install target.
Fixes bug 688049.

[src/unixinst.mak 1.39]

2005-06-14 16:53 Ralph Giles

Fix a documentation typo: NeverEnbed vs NeverEmbed.

[doc/Ps2pdf.htm 1.80]

2005-06-14 11:19 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 1.22]

2005-06-13 18:43 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 1.148]

2005-06-09 19:47 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 1.27]

2005-06-09 07:29 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 1.43]

2005-06-09 07:15 Ralph Giles

Throw an error when JBIG2 decoding fails in the library
instead of segfaulting. Bug 688053.

[src/sjbig2.h 1.6]

2005-06-09 07:15 Ralph Giles

Throw an error when JBIG2 decoding fails in the library instead of segfaulting. Bug 688053.

[src/sjbig2.c 1.7]

2005-06-09 05:26 Igor Melichev

ps2write : Implementinmg the ps2write device (continued 2).

DETAILS :

Fixing a name in gs_pdfwr.ps .

EXPECTED DIFFERENCES :

None.

[lib/gs_pdfwr.ps 1.42]

2005-06-08 14:38 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/gxidata.c 1.9, src/gxipixel.c 1.11, src/gxsample.c 1.7, src/gxsample.h 1.7, src/gxsamplp.h 1.2, src/lib.mak 1.210]

2005-06-08 14:16 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/gxsample.c 1.6, src/gxsamplp.h 1.1, src/lib.mak 1.209]

2005-06-08 14:00 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/gxi12bit.c 1.7, src/gxi16bit.c 1.2, src/gxidata.c 1.8, src/gximage.h 1.8, src/gxsample.c 1.5, src/gxsample.h 1.6, src/lib.mak 1.208]

2005-06-08 06:56 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.

[lib/gs_pdfwr.ps 1.41, src/gdevpdfu.c 1.80]

2005-06-08 06:42 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 1.13]

2005-06-07 19:24 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 1.5]

2005-06-07 18:33 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.

[lib/gs_pdfwr.ps 1.40, lib/ps2ps2.bat 1.1, src/bcwin32.mak 1.37, src/devs.mak 1.131, src/gdevpdf.c 1.113, src/gdevpdfb.h 1.1, src/gdevpdfp.c 1.49, src/gdevpdfu.c 1.79, src/gdevpdfx.h 1.120, doc/Develop.htm 1.147, doc/Psfiles.htm 1.63, src/macos-mcp.mak 1.34, src/macosx.mak 1.27, src/msvc32.mak 1.73, src/openvms.mak 1.40, src/os2.mak 1.46, src/unix-gcc.mak 1.49, src/unixansi.mak 1.40, src/watcw32.mak 1.34]

2005-06-07 16:41 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/gdevpdf.c 1.112, src/gdevpdfx.h 1.119]

2005-06-06 19:06 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 1.73]

2005-06-06 15:32 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.

[lib/opdfread.ps 1.72, src/gdevpdf.c 1.111, src/gdevpdfi.c 1.71, src/gdevpdfj.c 1.45, src/gdevpdfm.c 1.48, src/gdevpdfo.c 1.33, src/gdevpdfu.c 1.78, src/gdevpdfx.h 1.118, src/gdevpdti.c 1.45, src/gdevpdtw.c 1.44]

2005-06-04 15:21 Dan Coby

Removed extra && and space from last commit (fix for 687973).

[src/scfd.c 1.8]

2005-06-03 20:03 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 1.7, src/scfx.h 1.6]

2005-05-31 20:42 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 1.71]

2005-05-31 19:25 Stefan Kemper

Update a few of the paper sizes used in reading/writing PXL.
Fixes bug 688118.

[src/gdevpxen.h 1.7]

2005-05-31 13:05 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/ttfoutl.h 1.15, src/tttype.h 1.3, src/tttypes.h 1.2]

2005-05-31 11:04 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 1.70]

2005-05-31 10:56 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 1.22, src/gxhldevc.c 1.4]

2005-05-30 21:00 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/opdfread.ps 1.69, lib/ps2write.bat 1.16]

2005-05-30 16:41 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 1.68]

2005-05-29 19:29 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 1.64]

2005-05-27 05:43 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/gdevijs.c 1.12, src/gdevprn.c 1.20, src/gdevprn.h 1.15]

2005-05-26 17:22 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/gxpath.c 1.11, src/gxstroke.c 1.16, src/lib.mak 1.207]

2005-05-26 07:35 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 1.15]

2005-05-25 21:58 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 1.37]

2005-05-25 15:57 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/gdevpdfd.c 1.63, src/gsptype2.c 1.19, src/gxshade1.c 1.41, src/gxshade6.c 1.100]

2005-05-23 22:33 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 1.17]

2005-05-23 18:24 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/gdevpdfb.c 1.29, src/gdevpdfd.c 1.62, src/gdevpdfx.h 1.117, src/gsptype2.c 1.18, src/gsptype2.h 1.13]

2005-05-23 14:59 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/gscpm.h 1.5, src/gxchar.c 1.45]

2005-05-23 10:49 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 1.14]

2005-05-19 16:39 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 1.98]

2005-05-18 19:59 Igor Melichev

ps2write : Improving the script with NOOUTERSAVE.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat 1.15]

2005-05-18 19:51 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.

[lib/opdfread.ps 1.67, src/gdevpdf.c 1.110, src/gdevpdfx.h 1.116]

2005-05-18 10:21 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 1.26]

2005-05-17 20:56 Ralph Giles

Update a comment to correctly describe the jasper stream object struct.

[src/sjpx.h 1.5]

2005-05-17 20:40 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 1.61]

2005-05-17 17:40 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 1.66]

2005-05-17 12:04 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 1.65]

2005-05-17 08:41 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 1.14]

2005-05-17 08:19 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 1.64]

2005-05-16 23:25 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 1.63]

2005-05-13 12:28 Alex Cherepanov

Fix a typo in a comment.

[src/msvc32.mak 1.72]

2005-05-12 19:26 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 1.62]

2005-05-12 02:01 Alex Cherepanov

Increase the artificial limits in the spot analyzer device
to accomodate Xterra-Regular font.
Fix bug 688077.

[src/gzspotan.c 1.14]

2005-05-10 16:19 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 1.32]

2005-05-10 13:22 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 1.97]

2005-05-07 22:56 Ray Johnston

Handle non-integer font size and stop after last page processed.

[lib/gslp.ps 1.7]

2005-05-05 05:35 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 1.14, src/gxcmap.c 1.25, src/gxdevndi.c 1.6, src/gxdither.h 1.7]

2005-05-03 10:50 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 1.26]

2005-05-03 10:41 Igor Melichev

ps2write : Set device parameters to preserve colors.

EXPECTED DIFFERENCES :

None.

[lib/ps2write.bat 1.13]

2005-05-03 09:10 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 1.60]

2005-04-29 16:58 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 1.9]

2005-04-27 16:40 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 1.42, src/gsfont.c 1.36, src/gsfont.h 1.11]

2005-04-26 21:36 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 1.28]

2005-04-26 21:28 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 1.11]

2005-04-25 12:28 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/gdevpdfr.c 1.9, src/iscan.c 1.20, src/sstring.c 1.5, src/sstring.h 1.7]

2005-04-25 02:23 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 1.31, src/gdevpdfu.c 1.77, src/gdevpdtb.c 1.36, src/gdevpdti.c 1.44, src/gdevpdtw.c 1.43]

2005-04-24 22:01 Ralph Giles

Initial revision

[jasper/NEWS 1.1, jasper/LICENSE 1.1, jasper/README 1.1, jasper/aclocal.m4 1.1, jasper/COPYRIGHT 1.1, jasper/INSTALL 1.1, jasper/Makefile.am 1.1, jasper/Makefile.in 1.1, jasper/configure 1.1, jasper/configure.ac 1.1, jasper/jasper.spec 1.1, jasper/jasper.spec.in 1.1, jasper/doc/README 1.1, jasper/doc/jasper.pdf 1.1, jasper/doc/jpeg2000.pdf 1.1, jasper/src/Makefile.am 1.1, jasper/src/Makefile.in 1.1, jasper/src/README 1.1, jasper/src/appl/Makefile.am 1.1, jasper/src/appl/Makefile.in 1.1, jasper/src/appl/dummy.c 1.1, jasper/src/appl/imginfo.c 1.1, jasper/src/appl/jiv.c 1.1, jasper/src/appl/imgcmp.c 1.1, jasper/src/appl/jasper.c 1.1, jasper/src/appl/jasper_sdl.c 1.1, jasper/src/libjasper/Makefile.am 1.1, jasper/src/libjasper/Makefile.in 1.1, jasper/src/libjasper/README 1.1, jasper/src/libjasper/dummy.c 1.1, jasper/src/libjasper/bmp/Makefile.am 1.1, jasper/src/libjasper/bmp/Makefile.in 1.1, jasper/src/libjasper/bmp/bmp_cod.c 1.1, jasper/src/libjasper/bmp/bmp_cod.h 1.1, jasper/src/libjasper/bmp/bmp_dec.c 1.1, jasper/src/libjasper/bmp/bmp_enc.c 1.1, jasper/src/libjasper/bmp/bmp_enc.h 1.1, jasper/src/libjasper/jp2/Makefile.am 1.1, jasper/src/libjasper/jp2/Makefile.in 1.1, jasper/src/libjasper/jp2/jp2_cod.c 1.1, jasper/src/libjasper/jp2/jp2_cod.h 1.1, jasper/src/libjasper/jp2/jp2_dec.c 1.1, jasper/src/libjasper/jp2/jp2_dec.h 1.1, jasper/src/libjasper/jp2/jp2_enc.c 1.1, jasper/src/libjasper/jpc/jpc_cod.h 1.1, jasper/src/libjasper/jpc/jpc_dec.c 1.1, jasper/src/libjasper/jpc/jpc_dec.h 1.1, jasper/src/libjasper/jpc/jpc_enc.c 1.1, jasper/src/libjasper/jpc/jpc_enc.h 1.1, jasper/src/libjasper/jpc/jpc_fix.h 1.1, jasper/src/libjasper/jpc/jpc_flt.h 1.1, jasper/src/libjasper/jpc/jpc_math.c 1.1, jasper/src/libjasper/jpc/jpc_math.h 1.1, jasper/src/libjasper/jpc/jpc_mct.c 1.1, jasper/src/libjasper/jpc/jpc_mct.h 1.1, jasper/src/libjasper/jpc/jpc_mqcod.c 1.1, jasper/src/libjasper/jpc/jpc_mqcod.h 1.1, jasper/src/libjasper/jpc/jpc_mqdec.c 1.1, jasper/src/libjasper/jpc/jpc_mqdec.h 1.1, jasper/src/libjasper/jpc/jpc_mqenc.c 1.1, jasper/src/msvc/Makefile.am 1.1, jasper/src/msvc/Makefile.in 1.1, jasper/src/msvc/README 1.1, jasper/src/msvc/imgcmp.dsp 1.1, jasper/src/msvc/imginfo.dsp 1.1, jasper/src/msvc/jasper.dsp 1.1, jasper/src/msvc/jasper.dsw 1.1, jasper/src/msvc/jiv.dsp 1.1, jasper/src/msvc/libjasper.dsp 1.1, jasper/src/libjasper/jpc/Makefile.am 1.1, jasper/src/libjasper/jpc/Makefile.in 1.1, jasper/src/libjasper/jpc/jpc_bs.c 1.1, jasper/src/libjasper/jpc/jpc_bs.h 1.1, jasper/src/libjasper/jpc/jpc_cs.c 1.1, jasper/src/libjasper/jpc/jpc_cs.h 1.1, jasper/src/libjasper/jpc/jpc_mqenc.h 1.1, jasper/src/libjasper/jpc/jpc_qmfb.c 1.1, jasper/src/libjasper/jpc/jpc_qmfb.h 1.1, jasper/src/libjasper/jpc/jpc_t1cod.c 1.1, jasper/src/libjasper/jpc/jpc_t1cod.h 1.1, jasper/src/libjasper/jpc/jpc_t1dec.c 1.1, jasper/src/libjasper/jpc/jpc_t1dec.h 1.1, jasper/src/libjasper/jpc/jpc_t1enc.c 1.1, jasper/src/libjasper/jpc/jpc_t1enc.h 1.1, jasper/src/libjasper/jpc/jpc_t2cod.c 1.1, jasper/src/libjasper/jpc/jpc_t2cod.h 1.1, jasper/src/libjasper/jpc/jpc_t2dec.c 1.1, jasper/src/libjasper/jpc/jpc_t2dec.h 1.1, jasper/src/libjasper/jpc/jpc_t2enc.c 1.1, jasper/src/libjasper/jpc/jpc_t2enc.h 1.1, jasper/src/libjasper/jpc/jpc_tagtree.c 1.1, jasper/src/libjasper/jpc/jpc_tagtree.h 1.1, jasper/src/libjasper/jpc/jpc_tsfb.c 1.1, jasper/src/libjasper/jpc/jpc_tsfb.h 1.1, jasper/src/libjasper/jpc/jpc_util.c 1.1, jasper/src/libjasper/jpc/jpc_util.h 1.1, jasper/src/libjasper/jpg/Makefile.am 1.1, jasper/src/libjasper/jpg/Makefile.in 1.1, jasper/src/libjasper/jpg/README 1.1, jasper/src/libjasper/jpg/jpg_cod.h 1.1, jasper/src/libjasper/jpg/jpg_dec.c 1.1, jasper/src/libjasper/jpg/jpg_dummy.c 1.1, jasper/src/libjasper/jpg/jpg_enc.c 1.1, jasper/src/libjasper/jpg/jpg_enc.h 1.1, jasper/src/libjasper/jpg/jpg_jpeglib.h 1.1, jasper/src/libjasper/jpg/jpg_val.c 1.1, jasper/src/libjasper/mif/Makefile.am 1.1, jasper/src/libjasper/mif/README 1.1, jasper/src/libjasper/mif/mif_cod.c 1.1, jasper/src/libjasper/mif/mif_cod.h 1.1, jasper/src/libjasper/base/Makefile.am 1.1, jasper/src/libjasper/base/Makefile.in 1.1, jasper/src/libjasper/base/jas_cm.c 1.1, jasper/src/libjasper/base/jas_debug.c 1.1, jasper/src/libjasper/base/jas_getopt.c 1.1, jasper/src/libjasper/base/jas_icc.c 1.1, jasper/src/libjasper/base/jas_iccdata.c 1.1, jasper/src/libjasper/base/jas_image.c 1.1, jasper/src/libjasper/base/jas_init.c 1.1, jasper/src/libjasper/base/jas_malloc.c 1.1, jasper/src/libjasper/base/jas_seq.c 1.1, jasper/src/libjasper/base/jas_stream.c 1.1, jasper/src/libjasper/base/jas_string.c 1.1, jasper/src/libjasper/base/jas_tvp.c 1.1, jasper/src/libjasper/base/jas_version.c 1.1, jasper/src/libjasper/include/Makefile.am 1.1, jasper/src/libjasper/include/Makefile.in 1.1, jasper/src/libjasper/include/jasper/jas_debug.h 1.1, jasper/src/libjasper/include/jasper/jas_fix.h 1.1, jasper/src/libjasper/include/jasper/jas_icc.h 1.1, jasper/src/libjasper/include/jasper/jas_image.h 1.1, jasper/src/libjasper/include/jasper/jas_init.h 1.1, jasper/src/libjasper/include/jasper/jas_malloc.h 1.1, jasper/src/libjasper/include/jasper/jas_math.h 1.1, jasper/src/libjasper/include/jasper/jas_seq.h 1.1, jasper/src/libjasper/include/jasper/jas_version.h 1.1, jasper/src/libjasper/mif/Makefile.in 1.1, jasper/src/libjasper/pgx/Makefile.am 1.1, jasper/src/libjasper/pgx/Makefile.in 1.1, jasper/src/libjasper/pgx/pgx_cod.c 1.1, jasper/src/libjasper/pgx/pgx_cod.h 1.1, jasper/src/libjasper/pgx/pgx_dec.c 1.1, jasper/src/libjasper/pgx/pgx_enc.c 1.1, jasper/src/libjasper/pgx/pgx_enc.h 1.1, jasper/src/libjasper/pnm/Makefile.am 1.1, jasper/src/libjasper/pnm/Makefile.in 1.1, jasper/src/libjasper/pnm/pnm_cod.c 1.1, jasper/src/libjasper/pnm/pnm_cod.h 1.1, jasper/src/libjasper/pnm/pnm_dec.c 1.1, jasper/src/libjasper/pnm/pnm_enc.c 1.1, jasper/src/libjasper/pnm/pnm_enc.h 1.1, jasper/src/libjasper/ras/Makefile.am 1.1, jasper/src/libjasper/ras/Makefile.in 1.1, jasper/src/libjasper/ras/ras_cod.c 1.1, jasper/src/libjasper/ras/ras_cod.h 1.1, jasper/src/libjasper/ras/ras_dec.c 1.1, jasper/src/libjasper/ras/ras_enc.c 1.1, jasper/src/libjasper/ras/ras_enc.h 1.1, jasper/data/Makefile.am 1.1, jasper/data/colorprofiles/README 1.1, jasper/data/colorprofiles/erimm.icm 1.1, jasper/data/colorprofiles/esrgb.icm 1.1, jasper/data/colorprofiles/esrgbgrey.icm 1.1, jasper/data/colorprofiles/grey.icm 1.1, jasper/data/colorprofiles/greyromm.icm 1.1, jasper/data/colorprofiles/romm.icm 1.1, jasper/data/colorprofiles/sgray.icm 1.1, jasper/data/colorprofiles/srgb.icm 1.1, jasper/data/colorprofiles/sycc.icm 1.1, jasper/data/images/README 1.1, jasper/data/images/example.mif 1.1, jasper/data/images/goldenears.bmp 1.1, jasper/data/images/goldenears.jpg 1.1, jasper/data/images/stawamuschief_gray.pnm 1.1, jasper/data/images/test.pnm 1.1, jasper/src/libjasper/include/jasper/Makefile.am 1.1, jasper/src/libjasper/include/jasper/Makefile.in 1.1, jasper/src/libjasper/include/jasper/jas_cm.h 1.1, jasper/src/libjasper/include/jasper/jas_config.h 1.1, jasper/src/libjasper/include/jasper/jas_config_ac.h 1.1, jasper/src/libjasper/include/jasper/jas_config_ac.h.in 1.1, jasper/src/libjasper/include/jasper/jas_config_win32.h 1.1, jasper/src/libjasper/include/jasper/jas_getopt.h 1.1, jasper/src/libjasper/include/jasper/jas_stream.h 1.1, jasper/src/libjasper/include/jasper/jas_string.h 1.1, jasper/src/libjasper/include/jasper/jas_tvp.h 1.1, jasper/src/libjasper/include/jasper/jas_types.h 1.1, jasper/src/libjasper/include/jasper/jasper.h 1.1, jasper/data/images/example.mif0 1.1, jasper/data/images/goldenears.pnm 1.1, jasper/data/images/goldenears.ras 1.1, jasper/acaux/compile 1.1, jasper/acaux/depcomp 1.1, jasper/data/images/feep.pnm 1.1, jasper/data/images/feep2.pnm 1.1, jasper/data/images/goldenears_gray.jpg 1.1, jasper/data/images/goldenears_gray.pnm 1.1, jasper/data/images/goldenears_gray.ras 1.1, jasper/data/images/small_16x1.pgm 1.1, jasper/data/images/small_1x1.pgm 1.1, jasper/data/images/stawamuschief.pnm 1.1, jasper/acaux/config.guess 1.1, jasper/acaux/config.sub 1.1, jasper/acaux/install-sh 1.1, jasper/acaux/ltmain.sh 1.1, jasper/acaux/missing 1.1]

2005-04-24 21:58 Ralph Giles

Initial revision

[jbig2dec/LICENSE 1.1, jbig2dec/README 1.1, jbig2dec/aclocal.m4 1.1, jbig2dec/compile 1.1, jbig2dec/depcomp 1.1, jbig2dec/jbig2_image.c 1.1, jbig2dec/jbig2_image.h 1.1, jbig2dec/jbig2_mmr.c 1.1, jbig2dec/jbig2_mmr.h 1.1, jbig2dec/jbig2dec.c 1.1, jbig2dec/msvc.mak 1.1, jbig2dec/test_jbig2dec.py 1.1, jbig2dec/COPYING 1.1, jbig2dec/Makefile.am 1.1, jbig2dec/Makefile.in 1.1, jbig2dec/config.h.in 1.1, jbig2dec/config_types.h 1.1, jbig2dec/config_types.h.in 1.1, jbig2dec/config_win32.h 1.1, jbig2dec/configure 1.1, jbig2dec/configure.ac 1.1, jbig2dec/getopt.c 1.1, jbig2dec/getopt.h 1.1, jbig2dec/getopt1.c 1.1, jbig2dec/install-sh 1.1, jbig2dec/jbig2.c 1.1, jbig2dec/jbig2.h 1.1, jbig2dec/jbig2_arith.c 1.1, jbig2dec/jbig2_arith.h 1.1, jbig2dec/jbig2_arith_iaid.c 1.1, jbig2dec/jbig2_arith_iaid.h 1.1, jbig2dec/jbig2_arith_int.c 1.1, jbig2dec/jbig2_arith_int.h 1.1, jbig2dec/jbig2_generic.c 1.1, jbig2dec/jbig2_generic.h 1.1, jbig2dec/jbig2_huffman.c 1.1, jbig2dec/jbig2_huffman.h 1.1, jbig2dec/jbig2_hufftab.h 1.1, jbig2dec/jbig2_image_pbm.c 1.1, jbig2dec/jbig2_image_png.c 1.1, jbig2dec/jbig2_metadata.c 1.1, jbig2dec/jbig2_metadata.h 1.1, jbig2dec/jbig2_page.c 1.1, jbig2dec/jbig2_priv.h 1.1, jbig2dec/jbig2_refinement.c 1.1, jbig2dec/jbig2_segment.c 1.1, jbig2dec/jbig2_symbol_dict.c 1.1, jbig2dec/jbig2_symbol_dict.h 1.1, jbig2dec/jbig2_text.c 1.1, jbig2dec/memcmp.c 1.1, jbig2dec/missing 1.1, jbig2dec/os_types.h 1.1, jbig2dec/sha1.c 1.1, jbig2dec/sha1.h 1.1, jbig2dec/snprintf.c 1.1]

2005-04-24 21:46 Ralph Giles

Initial revision

[libpng/TODO 1.1, libpng/example.c 1.1, libpng/pngconf.h 1.1, libpng/pnggccrd.c 1.1, libpng/pngget.c 1.1, libpng/LICENSE 1.1, libpng/pngmem.c 1.1, libpng/pngrio.c 1.1, libpng/pngset.c 1.1, libpng/pngwio.c 1.1, libpng/png.5 1.1, libpng/png.c 1.1, libpng/pngtrans.c 1.1, libpng/README 1.1, libpng/configure 1.1, libpng/png.h 1.1, libpng/pngnow.png 1.1, libpng/pngread.c 1.1, libpng/pngtest.c 1.1, libpng/pngbar.jpg 1.1, libpng/pngbar.png 1.1, libpng/pngvcrd.c 1.1, libpng/pngpread.c 1.1, libpng/pngwrite.c 1.1, libpng/libpng.txt 1.1, libpng/libpngpf.3 1.1, libpng/pngwtran.c 1.1, libpng/ANNOUNCE 1.1, libpng/INSTALL 1.1, libpng/KNOWNBUG 1.1, libpng/Y2KINFO 1.1, libpng/pngwutil.c 1.1, libpng/CHANGES 1.1, libpng/libpng.3 1.1, libpng/pngrtran.c 1.1, libpng/pngerror.c 1.1, libpng/pngrutil.c 1.1, libpng/pngtest.png 1.1, libpng/contrib/pngminus/makefile.std 1.1, libpng/contrib/pngminus/makefile.tc3 1.1, libpng/contrib/pngminus/pngminus.sh 1.1, libpng/contrib/pngminus/pnm2png.bat 1.1, libpng/contrib/pngminus/pnm2png.sh 1.1, libpng/contrib/gregbook/LICENSE 1.1, libpng/contrib/gregbook/README 1.1, libpng/contrib/gregbook/makevms.com 1.1, libpng/contrib/gregbook/rpng-win.c 1.1, libpng/contrib/pngminus/README 1.1, libpng/contrib/pngminus/makevms.com 1.1, libpng/contrib/pngminus/png2pnm.bat 1.1, libpng/contrib/pngminus/png2pnm.c 1.1, libpng/contrib/pngminus/png2pnm.sh 1.1, libpng/contrib/pngminus/pngminus.bat 1.1, libpng/contrib/pngminus/pnm2png.c 1.1, libpng/contrib/pngsuite/README 1.1, libpng/contrib/pngsuite/basn0g01.png 1.1, libpng/contrib/pngsuite/basn0g02.png 1.1, libpng/contrib/pngsuite/basn0g04.png 1.1, libpng/contrib/pngsuite/basn0g08.png 1.1, libpng/contrib/pngsuite/basn0g16.png 1.1, libpng/contrib/pngsuite/basn2c08.png 1.1, libpng/contrib/pngsuite/basn2c16.png 1.1, libpng/contrib/pngsuite/basn3p01.png 1.1, libpng/contrib/pngsuite/basn3p02.png 1.1, libpng/contrib/pngsuite/basn3p04.png 1.1, libpng/contrib/pngsuite/basn3p08.png 1.1, libpng/contrib/pngsuite/basn4a08.png 1.1, libpng/contrib/pngsuite/basn4a16.png 1.1, libpng/contrib/pngsuite/basn6a08.png 1.1, libpng/contrib/pngsuite/basn6a16.png 1.1, libpng/contrib/gregbook/rpng2-x.c 1.1, libpng/contrib/gregbook/toucan.png 1.1, libpng/contrib/gregbook/writepng.c 1.1, libpng/contrib/gregbook/writepng.h 1.1, libpng/contrib/gregbook/Makefile.sgi 1.1, libpng/contrib/gregbook/Makefile.unx 1.1, libpng/contrib/gregbook/Makefile.w32 1.1, libpng/contrib/gregbook/readpng2.c 1.1, libpng/contrib/gregbook/readpng2.h 1.1, libpng/contrib/gregbook/rpng-x.c 1.1, libpng/contrib/gregbook/wpng.c 1.1, libpng/contrib/gregbook/readpng.c 1.1, libpng/contrib/gregbook/readpng.h 1.1, libpng/contrib/gregbook/rpng2-win.c 1.1, libpng/contrib/visupng/PngFile.c 1.1, libpng/contrib/visupng/PngFile.h 1.1, libpng/contrib/visupng/VisualPng.c 1.1, libpng/contrib/visupng/VisualPng.dsp 1.1, libpng/contrib/visupng/VisualPng.dsw 1.1, libpng/contrib/visupng/VisualPng.ico 1.1, libpng/contrib/visupng/VisualPng.png 1.1, libpng/contrib/visupng/VisualPng.rc 1.1, libpng/contrib/visupng/resource.h 1.1, libpng/contrib/visupng/README.txt 1.1, libpng/contrib/visupng/cexcept.h 1.1, libpng/scripts/makefile.32sunu 1.1, libpng/scripts/makefile.64sunu 1.1, libpng/scripts/makefile.aix 1.1, libpng/scripts/makefile.bor 1.1, libpng/scripts/makefile.dec 1.1, libpng/scripts/makefile.dj2 1.1, libpng/scripts/makefile.elf 1.1, libpng/scripts/makefile.gcc 1.1, libpng/scripts/makefile.knr 1.1, libpng/scripts/makefile.msc 1.1, libpng/scripts/makefile.os2 1.1, libpng/scripts/makefile.sco 1.1, libpng/scripts/makefile.sgi 1.1, libpng/scripts/makefile.tc3 1.1, libpng/scripts/makefile.watcom 1.1, libpng/scripts/smakefile.ppc 1.1, libpng/scripts/SCOPTIONS.ppc 1.1, libpng/scripts/descrip.mms 1.1, libpng/scripts/libpng-config-body.in 1.1, libpng/scripts/libpng-config-head.in 1.1, libpng/scripts/libpng.icc 1.1, libpng/scripts/libpng.pc.in 1.1, libpng/scripts/makefile.acorn 1.1, libpng/scripts/makefile.amiga 1.1, libpng/scripts/makefile.atari 1.1, libpng/scripts/makefile.darwin 1.1, libpng/scripts/makefile.freebsd 1.1, libpng/scripts/makefile.gcmmx 1.1, libpng/scripts/makefile.hpgcc 1.1, libpng/scripts/makefile.intel 1.1, libpng/scripts/makefile.linux 1.1, libpng/scripts/makefile.ne12bsd 1.1, libpng/scripts/makefile.openbsd 1.1, libpng/scripts/makefile.sggcc 1.1, libpng/scripts/makefile.so9 1.1, libpng/scripts/makefile.solaris 1.1, libpng/scripts/makefile.std 1.1, libpng/scripts/makefile.sunos 1.1, libpng/scripts/makefile.vcawin32 1.1, libpng/scripts/makefile.vcwin32 1.1, libpng/scripts/makevms.com 1.1, libpng/scripts/pngos2.def 1.1, libpng/scripts/pngw32.def 1.1, libpng/scripts/pngw32.rc 1.1, libpng/projects/netware.txt 1.1, libpng/projects/wince.txt 1.1, libpng/projects/beos/x86-shared.proj 1.1, libpng/projects/beos/x86-shared.txt 1.1, libpng/projects/beos/x86-static.proj 1.1, libpng/projects/beos/x86-static.txt 1.1, libpng/scripts/makefile.bc32 1.1, libpng/scripts/makefile.beos 1.1, libpng/scripts/makefile.cygwin 1.1, libpng/scripts/makefile.hp64 1.1, libpng/scripts/makefile.hpux 1.1, libpng/scripts/makefile.ibmc 1.1, libpng/scripts/makefile.mips 1.1, libpng/scripts/makefile.netbsd 1.1, libpng/projects/cbuilder5/libpng.bpf 1.1, libpng/projects/cbuilder5/libpng.bpg 1.1, libpng/projects/cbuilder5/libpng.bpr 1.1, libpng/projects/cbuilder5/libpng.cpp 1.1, libpng/projects/cbuilder5/libpng.readme.txt 1.1, libpng/projects/cbuilder5/libpngstat.bpf 1.1, libpng/projects/cbuilder5/libpngstat.bpr 1.1, libpng/projects/cbuilder5/zlib.readme.txt 1.1, libpng/projects/visualc6/README.txt 1.1, libpng/projects/visualc6/libpng.dsp 1.1, libpng/projects/visualc6/libpng.dsw 1.1, libpng/projects/visualc6/pngtest.dsp 1.1, libpng/projects/visualc71/PRJ0041.mak 1.1, libpng/projects/visualc71/README.txt 1.1, libpng/projects/visualc71/README_zlib.txt 1.1, libpng/projects/visualc71/libpng.sln 1.1, libpng/projects/visualc71/libpng.vcproj 1.1, libpng/projects/visualc71/pngtest.vcproj 1.1, libpng/projects/visualc71/zlib.vcproj 1.1]

2005-04-24 21:39 Ralph Giles

Initial revision

[zlib/FAQ 1.1, zlib/crc32.c 1.1, zlib/example.c 1.1, zlib/zconf.in.h 1.1, zlib/INDEX 1.1, zlib/Makefile 1.1, zlib/Makefile.in 1.1, zlib/README 1.1, zlib/adler32.c 1.1, zlib/compress.c 1.1, zlib/configure 1.1, zlib/crc32.h 1.1, zlib/uncompr.c 1.1, zlib/zconf.h 1.1, zlib/zutil.c 1.1, zlib/zutil.h 1.1, zlib/gzio.c 1.1, zlib/inffixed.h 1.1, zlib/trees.c 1.1, zlib/trees.h 1.1, zlib/deflate.c 1.1, zlib/deflate.h 1.1, zlib/inftrees.c 1.1, zlib/inftrees.h 1.1, zlib/zlib.3 1.1, zlib/algorithm.txt 1.1, zlib/infback.c 1.1, zlib/inffast.c 1.1, zlib/inffast.h 1.1, zlib/zlib.h 1.1, zlib/ChangeLog 1.1, zlib/inflate.c 1.1, zlib/inflate.h 1.1, zlib/minigzip.c 1.1, zlib/old/Make_vms.com 1.1, zlib/old/Makefile.riscos 1.1, zlib/old/README 1.1, zlib/old/descrip.mms 1.1, zlib/old/visual-basic.txt 1.1, zlib/contrib/README.contrib 1.1, zlib/contrib/ada/buffer_demo.adb 1.1, zlib/contrib/ada/zlib-streams.adb 1.1, zlib/contrib/ada/zlib-streams.ads 1.1, zlib/old/zlib.html 1.1, zlib/old/os2/Makefile.os2 1.1, zlib/old/os2/zlib.def 1.1, zlib/qnx/package.qpg 1.1, zlib/contrib/ada/mtest.adb 1.1, zlib/contrib/ada/read.adb 1.1, zlib/contrib/ada/readme.txt 1.1, zlib/contrib/ada/test.adb 1.1, zlib/contrib/ada/zlib-thin.adb 1.1, zlib/contrib/ada/zlib-thin.ads 1.1, zlib/contrib/ada/zlib.adb 1.1, zlib/contrib/ada/zlib.ads 1.1, zlib/contrib/ada/zlib.gpr 1.1, zlib/contrib/puff/Makefile 1.1, zlib/contrib/puff/README 1.1, zlib/contrib/puff/zeros.raw 1.1, zlib/contrib/blast/Makefile 1.1, zlib/contrib/blast/README 1.1, zlib/contrib/blast/blast.c 1.1, zlib/contrib/blast/blast.h 1.1, zlib/contrib/blast/test.pk 1.1, zlib/contrib/blast/test.txt 1.1, zlib/contrib/dotzlib/DotZLib.build 1.1, zlib/contrib/iostream/test.cpp 1.1, zlib/contrib/iostream/zfstream.cpp 1.1, zlib/contrib/iostream/zfstream.h 1.1, zlib/contrib/puff/puff.c 1.1, zlib/contrib/puff/puff.h 1.1, zlib/contrib/untgz/Makefile 1.1, zlib/contrib/untgz/Makefile.msc 1.1, zlib/contrib/untgz/untgz.c 1.1, zlib/contrib/dotzlib/DotZLib.chm 1.1, zlib/contrib/dotzlib/DotZLib.sln 1.1, zlib/contrib/dotzlib/LICENSE_1_0.txt 1.1, zlib/contrib/dotzlib/readme.txt 1.1, zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs 1.1, zlib/contrib/dotzlib/DotZLib/DotZLib.cs 1.1, zlib/contrib/dotzlib/DotZLib/DotZLib.csproj 1.1, zlib/contrib/dotzlib/DotZLib/GZipStream.cs 1.1, zlib/contrib/dotzlib/DotZLib/UnitTests.cs 1.1, zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs 1.1, zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs 1.1, zlib/contrib/dotzlib/DotZLib/CodecBase.cs 1.1, zlib/contrib/dotzlib/DotZLib/Deflater.cs 1.1, zlib/contrib/dotzlib/DotZLib/Inflater.cs 1.1, zlib/contrib/gzappend/gzappend.c 1.1, zlib/contrib/masm686/match.asm 1.1, zlib/contrib/masmx86/gvmat32c.c 1.1, zlib/contrib/masmx86/inffas32.asm 1.1, zlib/contrib/masmx86/readme.txt 1.1, zlib/contrib/masmx86/gvmat32.asm 1.1, zlib/contrib/masmx86/mkasm.bat 1.1, zlib/contrib/minizip/Makefile 1.1, zlib/contrib/minizip/crypt.h 1.1, zlib/contrib/minizip/miniunz.c 1.1, zlib/contrib/minizip/minizip.c 1.1, zlib/contrib/minizip/zip.c 1.1, zlib/contrib/minizip/zip.h 1.1, zlib/contrib/testzlib/testzlib.c 1.1, zlib/contrib/testzlib/testzlib.sln 1.1, zlib/contrib/testzlib/testzlib.vcproj 1.1, zlib/contrib/minizip/ChangeLogUnzip 1.1, zlib/contrib/minizip/ioapi.c 1.1, zlib/contrib/minizip/ioapi.h 1.1, zlib/contrib/minizip/iowin32.c 1.1, zlib/contrib/minizip/iowin32.h 1.1, zlib/contrib/minizip/mztools.c 1.1, zlib/contrib/minizip/mztools.h 1.1, zlib/contrib/minizip/unzip.c 1.1, zlib/contrib/minizip/unzip.h 1.1, zlib/contrib/asm586/README.586 1.1, zlib/contrib/asm586/match.S 1.1, zlib/contrib/asm686/README.686 1.1, zlib/contrib/asm686/match.S 1.1, zlib/contrib/delphi/ZLib.pas 1.1, zlib/contrib/delphi/ZLibConst.pas 1.1, zlib/contrib/delphi/readme.txt 1.1, zlib/contrib/delphi/zlibd32.mak 1.1, zlib/contrib/iostream2/zstream.h 1.1, zlib/contrib/iostream2/zstream_test.cpp 1.1, zlib/contrib/iostream3/README 1.1, zlib/contrib/iostream3/TODO 1.1, zlib/contrib/iostream3/test.cc 1.1, zlib/contrib/iostream3/zfstream.cc 1.1, zlib/contrib/iostream3/zfstream.h 1.1, zlib/contrib/pascal/zlibd32.mak 1.1, zlib/contrib/infback9/README 1.1, zlib/contrib/infback9/infback9.c 1.1, zlib/contrib/infback9/infback9.h 1.1, zlib/contrib/infback9/inffix9.h 1.1, zlib/contrib/infback9/inflate9.h 1.1, zlib/contrib/infback9/inftree9.c 1.1, zlib/contrib/infback9/inftree9.h 1.1, zlib/contrib/pascal/example.pas 1.1, zlib/contrib/pascal/readme.txt 1.1, zlib/contrib/pascal/zlibpas.pas 1.1, zlib/contrib/vstudio/readme.txt 1.1, zlib/contrib/vstudio/vc7/minizip.vcproj 1.1, zlib/contrib/vstudio/vc7/zlibstat.vcproj 1.1, zlib/contrib/vstudio/vc7/zlibvc.def 1.1, zlib/contrib/vstudio/vc7/zlibvc.sln 1.1, zlib/amiga/Makefile.pup 1.1, zlib/amiga/Makefile.sas 1.1, zlib/as400/compile.clp 1.1, zlib/contrib/inflate86/inffas86.c 1.1, zlib/contrib/inflate86/inffast.S 1.1, zlib/contrib/vstudio/vc7/miniunz.vcproj 1.1, zlib/contrib/vstudio/vc7/zlib.rc 1.1, zlib/contrib/vstudio/vc7/zlibvc.vcproj 1.1, zlib/as400/bndsrc 1.1, zlib/as400/readme.txt 1.1, zlib/as400/zlib.inc 1.1, zlib/msdos/Makefile.bor 1.1, zlib/msdos/Makefile.dj2 1.1, zlib/msdos/Makefile.emx 1.1, zlib/msdos/Makefile.msc 1.1, zlib/msdos/Makefile.tc 1.1, zlib/projects/README.projects 1.1, zlib/projects/visualc6/README.txt 1.1, zlib/projects/visualc6/example.dsp 1.1, zlib/projects/visualc6/minigzip.dsp 1.1, zlib/win32/DLL_FAQ.txt 1.1, zlib/win32/Makefile.bor 1.1, zlib/win32/Makefile.emx 1.1, zlib/win32/Makefile.gcc 1.1, zlib/win32/Makefile.msc 1.1, zlib/win32/VisualC.txt 1.1, zlib/win32/zlib.def 1.1, zlib/win32/zlib1.rc 1.1, zlib/projects/visualc6/zlib.dsp 1.1, zlib/projects/visualc6/zlib.dsw 1.1]

2005-04-24 21:31 Ralph Giles

Initial revision

[jpeg/jdinput.c 1.1, jpeg/wrppm.c 1.1, jpeg/wrrle.c 1.1, jpeg/testimg.bmp 1.1, jpeg/testimg.jpg 1.1, jpeg/coderules.doc 1.1, jpeg/jccoefct.c 1.1, jpeg/jcmainct.c 1.1, jpeg/rdjpgcom.1 1.1, jpeg/rdjpgcom.c 1.1, jpeg/testimg.ppm 1.1, jpeg/example.c 1.1, jpeg/jcapimin.c 1.1, jpeg/jcapistd.c 1.1, jpeg/jconfig.dj 1.1, jpeg/jconfig.st 1.1, jpeg/jconfig.vc 1.1, jpeg/jctrans.c 1.1, jpeg/makelib.ds 1.1, jpeg/rdbmp.c 1.1, jpeg/rdgif.c 1.1, jpeg/jcdctmgr.c 1.1, jpeg/jdatadst.c 1.1, jpeg/rdppm.c 1.1, jpeg/rdrle.c 1.1, jpeg/rdtarga.c 1.1, jpeg/transupp.c 1.1, jpeg/transupp.h 1.1, jpeg/djpeg.1 1.1, jpeg/djpeg.c 1.1, jpeg/install.doc 1.1, jpeg/jdatasrc.c 1.1, jpeg/ansi2knr.1 1.1, jpeg/ansi2knr.c 1.1, jpeg/jcmarker.c 1.1, jpeg/jdcolor.c 1.1, jpeg/makefile.bcc 1.1, jpeg/makefile.cfg 1.1, jpeg/usage.doc 1.1, jpeg/jcmaster.c 1.1, jpeg/makefile.mc6 1.1, jpeg/makefile.mms 1.1, jpeg/makefile.sas 1.1, jpeg/makefile.vms 1.1, jpeg/makefile.wat 1.1, jpeg/README 1.1, jpeg/makeapps.ds 1.1, jpeg/configure 1.1, jpeg/filelist.doc 1.1, jpeg/jcomapi.c 1.1, jpeg/ltmain.sh 1.1, jpeg/jconfig.manx 1.1, jpeg/jcparam.c 1.1, jpeg/jdsample.c 1.1, jpeg/jerror.c 1.1, jpeg/jerror.h 1.1, jpeg/jmorecfg.h 1.1, jpeg/makcjpeg.st 1.1, jpeg/wrjpgcom.1 1.1, jpeg/wrjpgcom.c 1.1, jpeg/jcprepct.c 1.1, jpeg/libjpeg.doc 1.1, jpeg/config.guess 1.1, jpeg/config.sub 1.1, jpeg/install-sh 1.1, jpeg/jcphuff.c 1.1, jpeg/jinclude.h 1.1, jpeg/testimgp.jpg 1.1, jpeg/wrtarga.c 1.1, jpeg/ltconfig 1.1, jpeg/structure.doc 1.1, jpeg/jdmerge.c 1.1, jpeg/jmemdosa.asm 1.1, jpeg/jquant1.c 1.1, jpeg/jquant2.c 1.1, jpeg/testprog.jpg 1.1, jpeg/cderror.h 1.1, jpeg/jccolor.c 1.1, jpeg/jdct.h 1.1, jpeg/jidctflt.c 1.1, jpeg/jidctfst.c 1.1, jpeg/jidctint.c 1.1, jpeg/jidctred.c 1.1, jpeg/jmemansi.c 1.1, jpeg/maktjpeg.st 1.1, jpeg/makvms.opt 1.1, jpeg/rdswitch.c 1.1, jpeg/jdcoefct.c 1.1, jpeg/jdmainct.c 1.1, jpeg/jpegint.h 1.1, jpeg/makeproj.mac 1.1, jpeg/jdapimin.c 1.1, jpeg/jdapistd.c 1.1, jpeg/jddctmgr.c 1.1, jpeg/jdpostct.c 1.1, jpeg/jdtrans.c 1.1, jpeg/jpeglib.h 1.1, jpeg/jutils.c 1.1, jpeg/makljpeg.st 1.1, jpeg/testorig.jpg 1.1, jpeg/jconfig.bcc 1.1, jpeg/jconfig.cfg 1.1, jpeg/jdmarker.c 1.1, jpeg/jdmaster.c 1.1, jpeg/jmemname.c 1.1, jpeg/jmemnobs.c 1.1, jpeg/jversion.h 1.1, jpeg/wizard.doc 1.1, jpeg/jconfig.doc 1.1, jpeg/jconfig.mac 1.1, jpeg/jconfig.mc6 1.1, jpeg/jconfig.sas 1.1, jpeg/jconfig.vms 1.1, jpeg/jconfig.wat 1.1, jpeg/jcsample.c 1.1, jpeg/jfdctflt.c 1.1, jpeg/jfdctfst.c 1.1, jpeg/jmemdos.c 1.1, jpeg/jpegtran.1 1.1, jpeg/jpegtran.c 1.1, jpeg/rdcolmap.c 1.1, jpeg/change.log 1.1, jpeg/jfdctint.c 1.1, jpeg/jmemmac.c 1.1, jpeg/jmemmgr.c 1.1, jpeg/jmemsys.h 1.1, jpeg/makefile.dj 1.1, jpeg/makefile.vc 1.1, jpeg/cdjpeg.c 1.1, jpeg/cdjpeg.h 1.1, jpeg/jchuff.c 1.1, jpeg/jchuff.h 1.1, jpeg/jcinit.c 1.1, jpeg/makdjpeg.st 1.1, jpeg/makefile.ansi 1.1, jpeg/makefile.manx 1.1, jpeg/makefile.unix 1.1, jpeg/cjpeg.1 1.1, jpeg/cjpeg.c 1.1, jpeg/ckconfig.c 1.1, jpeg/jdphuff.c 1.1, jpeg/wrbmp.c 1.1, jpeg/wrgif.c 1.1, jpeg/jdhuff.c 1.1, jpeg/jdhuff.h 1.1]

2005-04-22 10:08 Russell Lang

Correct typo.

[man/ps2ascii.1 1.34]

2005-04-21 10:11 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 1.99]

2005-04-21 09:28 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 1.98]

2005-04-20 20:05 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 1.29]

2005-04-20 08:44 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 1.26]

2005-04-20 06:13 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 1.92]

2005-04-19 21:22 Stefan Kemper

Added dependancies for gdevpdfj.c

[src/devs.mak 1.130]

2005-04-19 14:35 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/gsfunc.c 1.12, src/gsfunc.h 1.13, src/gsfunc0.c 1.25, src/gsfunc3.c 1.25, src/gsfunc4.c 1.18, src/gxfunc.h 1.10, src/gxshade1.c 1.40]

2005-04-19 12:22 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/gsshade.c 1.17, src/gxshade1.c 1.39, src/gxshade4.c 1.30, src/gxshade4.h 1.41, src/gxshade6.c 1.97]

2005-04-19 09:48 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 1.96]

2005-04-19 08:36 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/gsshade.c 1.16, src/gsshade.h 1.9, src/gxshade1.c 1.38, src/gxshade4.c 1.29, src/gxshade4.h 1.40, src/gxshade6.c 1.95]

2005-04-19 07:27 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/gsfunc.c 1.11, src/gsfunc.h 1.12, src/gsfunc0.c 1.24, src/gsfunc0.h 1.7, src/gsfunc3.c 1.24, src/gsfunc4.c 1.17, src/gxshade1.c 1.37, src/gxshade4.h 1.39, src/gxshade6.c 1.94]

2005-04-19 04:28 Ralph Giles

Bump the version numbers post-release.

[doc/News.htm 1.164, lib/gs_init.ps 1.119, src/gscdef.c 1.54, src/version.mak 1.83]

2005-04-19 00:29 Stefan Kemper

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 1.44]