summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/Devices.htm1
-rw-r--r--doc/History9.htm7497
-rw-r--r--doc/News.htm80
3 files changed, 7550 insertions, 28 deletions
diff --git a/doc/Devices.htm b/doc/Devices.htm
index f3f2843be..569867d7c 100644
--- a/doc/Devices.htm
+++ b/doc/Devices.htm
@@ -729,6 +729,7 @@ values which are equivalent to 100% of that ink. The values are 16-bits ranging
to 32760.
</dl></blockquote>
+<a name="TIFF_trapping"></a>
<p>The <code>tiffsep</code> device (along with the <code>tiffscaled32</code> and
<code>psdcmyk</code> devices) can perform rudimentary automatic bitmap
'trapping' on the final rendered bitmap. This code is disabled by default; see
diff --git a/doc/History9.htm b/doc/History9.htm
index b4bfaf26a..0025dad68 100644
--- a/doc/History9.htm
+++ b/doc/History9.htm
@@ -29,6 +29,8 @@ TOC to see how to edit it for visual conciseness.
<h2>Table of contents</h2>
<blockquote><ul>
+<li><a href="#Version9.19">Version 9.19 (2016-03-11)</a>
+<li><a href="#Version9.18">Version 9.18 (2015-09-23)</a>
<li><a href="#Version9.16">Version 9.16 (2015-03-30)</a>
<li><a href="#Version9.15">Version 9.15 (2014-09-22)</a>
<li><a href="#Version9.14">Version 9.14 (2014-03-26)</a>
@@ -72,6 +74,7501 @@ overview</a>.
<!-- [1.0 end visible header] ============================================== -->
<!-- [2.0 begin contents] ================================================== -->
+<h2><a name="Version9.19"></a>Version 9.19 (2016-03-11)</h2>
+
+<p>This is the thirteenth full release in the stable 9.x series, and is mainly
+a maintenance release.
+
+<p> Highlights in this release include:
+<ul>
+<li>
+<p>
+New custom PJL (near) equivalents for pdfmark and setdistillerparams. These were
+primarily added to allow pdfwrite to be configured correctly for PDF/A output from
+GhostPCL.
+See: <a href="VectorDevices.htm#PXL_IN">pdfwrite with PCL input</a> for
+more details.
+<p>
+Ghostscript users should continue to use the existing pdfmark and setdistillerparams
+capabilities.
+</li>
+<li>
+<p>
+Metadata pdfmark is now implemented. This allows the user to
+specify an XMP stream which will be written to the Catalog of the PDF
+file.A new pdfmark 'Ext_Metadata' has bee defined. This takes a string
+parameter which contains XML to be add to the XMP normally created by
+pdfwrite.
+<p>
+See <a href="VectorDevices.htm#Extensions">pdfwrite pdfmark extensions</a> for more
+information.
+</li>
+<li>
+<p>
+An experimental, rudimentary raster trapping implementation has been added to the Ghostscript
+graphics library. See <a href="Devices.htm#TIFF_trapping">Trapping</a> for details.
+</li>
+<li>
+<p>
+The halftone threshold array generation tools (part of <code>toolbin/halftone</code>) have been
+improved with <code>thresh_remap</code> which allows folding the transfer function (AKA toner
+response curve (TRC)) into the threshold array so that highlights are improved. Further,
+<code>gen_stochastic</code> has improved support for minimum dot size and shape.
+</li>
+<li>
+<p>Plus the usual round of bug fixes, compatibility changes, and incremental improvements.
+</li>
+</ul>
+<p>For a list of open issues, or to report problems,
+please visit <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a>.
+
+<h3><a name="9.19_Incompatible_changes"></a>Incompatible changes</h3>
+<ul>
+<li>
+<p>
+(Minor) API change: copy_alpha now supports 8 bit depth (as well as the previous 2 and 4).
+</li>
+<li>
+<p>
+The gs man pages are woefully out of date and basically unmaintained. With the release
+following 9.19, we intend to replace their contents with a very limited summary of (unlikely
+to ever change aspects of) calling Ghostscript, and a pointer to the (maintained) HTML
+documentation. That is, unless a volunteer is willing to update, and commit to
+maintaining the man pages.
+</li>
+<li>
+We plan (ideally for the release following 9.19) to somewhat tidy up the device API.
+We plan to remove deprecated device procs (methods/function pointers). We also
+intend to merge the imager state and graphics state (thus eliminating the
+imager state), and change the device API so every device proc takes a graphics
+state parameter (rather than the current scheme where only a very few procs
+take an imager state parameter). This should serve as notice to anyone
+maintaining a Ghostscript device outside the canonical source tree that you
+may (probably will) need to update your device(s) when these changes happen.
+Devices using only the non-deprecated procs should be trivial to update.
+</li>
+</ul>
+
+<h3><a name="9.19_changelog"></a>Changelog</h3>
+<p><strong>2016-03-14 10:09:42 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f75b4a8160d60039d850c581c7fbe18f1574bc39">f75b4a8160d60039d850c581c7fbe18f1574bc39</a>
+<blockquote>
+<p>
+ Always have configure set gpcl6 and gxps exe names<br>
+<br>
+ But still skip adding them to the targets list if the source is not available.<br>
+<br>
+ This avoids a warning when building a Ghostscript only release archive.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-11 10:34:00 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7f9c8fbce554eebdbda21f25d208c541355e177d">7f9c8fbce554eebdbda21f25d208c541355e177d</a>
+<blockquote>
+<p>
+ Update dates versions in docs etc<br>
+<br>
+Makefile.in<br>
+doc/API.htm<br>
+doc/C-style.htm<br>
+doc/Commprod.htm<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Details8.htm<br>
+doc/Details9.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/Helpers.htm<br>
+doc/History1.htm<br>
+doc/History2.htm<br>
+doc/History3.htm<br>
+doc/History4.htm<br>
+doc/History5.htm<br>
+doc/History6.htm<br>
+doc/History7.htm<br>
+doc/History8.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Issues.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Projects.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/Xfonts.htm<br>
+doc/gs-vms.hlp<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/font2c.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+man/wftopfa.1<br>
+psi/int.mak<br>
+psi/winint.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-11 10:30:26 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=837d4dcaff85a7c96726caaeeb10b690aa6e18f1">837d4dcaff85a7c96726caaeeb10b690aa6e18f1</a>
+<blockquote>
+<p>
+ Change product string for 9.19 RC1<br>
+<br>
+base/gscdef.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-30 14:57:38 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=50efb7307dab9df334ad45acdfbe83bf2f3ffba3">50efb7307dab9df334ad45acdfbe83bf2f3ffba3</a>
+<blockquote>
+<p>
+ Tweak changelog for 9.18 release<br>
+<br>
+doc/History9.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-24 11:04:22 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=32e59ede8dddc2838478dfaeac2a238318c22835">32e59ede8dddc2838478dfaeac2a238318c22835</a>
+<blockquote>
+<p>
+ Add words to 9.18 release notes<br>
+<br>
+ about the revised directory structure, build and executable names<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-10 11:16:51 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e980dc6f1356e659254974838a94e16d6506af44">e980dc6f1356e659254974838a94e16d6506af44</a>
+<blockquote>
+<p>
+ Bug 696640: Fix stack overflow in memento.<br>
+<br>
+ Windows backtraces are limited to 63 levels. Linux ones can be<br>
+ any size. I'd mistakenly overflown the buffers in the linux<br>
+ case.<br>
+<br>
+ While we're fixing that, improve the code to require less copying.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-10 04:32:36 -0800
+</strong>
+<br>Robin Watts &lt;robin@peeves.(none)&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=596e5b0bb0bc470cc177e5dca35bc69de7c664d1">596e5b0bb0bc470cc177e5dca35bc69de7c664d1</a>
+<blockquote>
+<p>
+ Memento: Fix linux memento builds.<br>
+<br>
+ The fix for windows builds broke linux due to -DMEMENTO<br>
+ being in CFLAGS on windows, and GENOPT on configured builds.<br>
+<br>
+ Also tidy the code to avoid things detected by the more picky<br>
+ compiler on Linux.<br>
+<br>
+base/lib.mak<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-09 23:44:10 +0100
+</strong>
+<br>Vincent Torri &lt;vincent dot torri at gmail dot com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80c9d7671534c51e7239e0f7c5ca8a67a43c842d">80c9d7671534c51e7239e0f7c5ca8a67a43c842d</a>
+<blockquote>
+<p>
+ Bug 696641 - support build with MSYS2<br>
+<br>
+ uname in MSYS2 terminal reports MSYS_NT-6.1, so add MSYS* to all the &quot;case&quot;<br>
+ in configure.ac.<br>
+<br>
+ Note: cygwin terminal's uname reports CYGWIN_NT-6.1<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-10 11:11:35 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f79377b1a156c40ff304a3d161b54865e35f23a3">f79377b1a156c40ff304a3d161b54865e35f23a3</a>
+<blockquote>
+<p>
+ Fix windows memento builds.<br>
+<br>
+ So, windows.h cannot be used unless Microsoft extensions are enabled.<br>
+ How dumb is that?<br>
+<br>
+base/lib.mak<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-09 10:49:26 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e787367c085457a106890ce4c2068dccee86933">0e787367c085457a106890ce4c2068dccee86933</a>
+<blockquote>
+<p>
+ Removing hacky HAVE_LIBDL stuff for memento....<br>
+<br>
+ Replace with proper configure setting.<br>
+<br>
+base/lib.mak<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-09 15:36:50 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4f0dd9dd527451c1a2b625c667c4bf0a131e9ce3">4f0dd9dd527451c1a2b625c667c4bf0a131e9ce3</a>
+<blockquote>
+<p>
+ Properly fix building with shared OpenJPEG.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-07 06:26:25 -0800
+</strong>
+<br>Robin Watts &lt;robin@peeves.(none)&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0d4339898f181acb77bc4cc2a419f38cf4727b4e">0d4339898f181acb77bc4cc2a419f38cf4727b4e</a>
+<blockquote>
+<p>
+ Memento: Store/display backtraces with blocks.<br>
+<br>
+ If built with MEMENTO_DETAILS (on by default), we store the<br>
+ backtrace on every event that affects a block.<br>
+<br>
+ Memento_details(address) will display the events that affected<br>
+ a block (typically malloc, {realloc}*, free), including the<br>
+ backtrace at each point.<br>
+<br>
+ Windows and linux use different mechanisms for this. Windows<br>
+ loads a DLL and calls windows specific functions - no extra<br>
+ libraries are required.<br>
+<br>
+ Linux also loads a shared object (libbacktrace.so). This is not<br>
+ present on all platforms, so on platforms where it is not available<br>
+ we just get addresses. These can be converted using addr2line<br>
+ (unless ASLR is enabled).<br>
+<br>
+base/lib.mak<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-05 15:25:01 -0800
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8692d5e0996ab3995e1d02efc3d0ca145ccced71">8692d5e0996ab3995e1d02efc3d0ca145ccced71</a>
+<blockquote>
+<p>
+ Fix psdcmyk handling of output to /dev/null or equivalent.<br>
+<br>
+ The PSD file format does not support multiple images (pages) in a single file,<br>
+ so we spot such an attempt (by checking whether or not the output file string<br>
+ has a &quot;%d&quot; in it) and throw an error.<br>
+<br>
+ This also throws an error if an attempt is made to write multiple pages to<br>
+ /dev/null (as is done for performance testing).<br>
+<br>
+ Since it really doesn't matter if the output &quot;file&quot; is invalid when we're just<br>
+ discarding the data, spot this case, and allow multi-page files to run<br>
+ without error.<br>
+<br>
+devices/gdevpsd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-05 14:34:20 -0800
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49852e6060f63b3feaa15157ee27644eb1d1b8c9">49852e6060f63b3feaa15157ee27644eb1d1b8c9</a>
+<blockquote>
+<p>
+ Remove pointless (Mac classic only) setenv()<br>
+<br>
+base/gp_macio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-05 13:12:46 -0800
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=381bc0729b96f47ebe1ee5d49cb603d688361291">381bc0729b96f47ebe1ee5d49cb603d688361291</a>
+<blockquote>
+<p>
+ Bug 696610: add pngmonod into the configure build<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-05 20:01:04 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd3c6a408bd64e515a46cfb4bdbbb7e42d0b943e">cd3c6a408bd64e515a46cfb4bdbbb7e42d0b943e</a>
+<blockquote>
+<p>
+ Now that we have contatced the original author and received written<br>
+ copyright assignment, update the copyright headers for the RAM file<br>
+ system code.<br>
+<br>
+base/gsioram.c<br>
+base/ramfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-04 16:18:23 -0800
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=284cd94895a68c0d558c2b9d5325b77cce90f807">284cd94895a68c0d558c2b9d5325b77cce90f807</a>
+<blockquote>
+<p>
+ Document psdcmykog device.<br>
+<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-04 15:15:07 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5cf300b7347c509f7530f5f9e7d6b0b997581f33">5cf300b7347c509f7530f5f9e7d6b0b997581f33</a>
+<blockquote>
+<p>
+ Fix bug 696559, default to QueryUser=3 so that printer properties are correct.<br>
+<br>
+ Thanks to Nikolaus Kreuzer for suggesting this method. It now seems to work<br>
+ as requested and as I would expect.<br>
+<br>
+devices/gdevwpr2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-04 13:56:09 -0800
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=53ee0f551785f8ae3689f8cef77b48d76ba6340f">53ee0f551785f8ae3689f8cef77b48d76ba6340f</a>
+<blockquote>
+<p>
+ Bug 696518: remove long deceased pcx2up device.<br>
+<br>
+base/unix-gcc.mak<br>
+configure.ac<br>
+devices/devs.mak<br>
+devices/gdevp2up.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-04 14:04:19 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab70c0f9de22ff012d5d73f9b2aab9ae724a743b">ab70c0f9de22ff012d5d73f9b2aab9ae724a743b</a>
+<blockquote>
+<p>
+ Fix bug 696515 -- the snowflak.ps did not handle page size &lt; 250 points.<br>
+<br>
+examples/snowflak.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-14 10:26:16 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=449604f1a31067fa8e32227c3ce234b55b8cf143">449604f1a31067fa8e32227c3ce234b55b8cf143</a>
+<blockquote>
+<p>
+ Get rid of code allowing for no 12 bit or 16 bit image support.<br>
+<br>
+ The gxino12b.c and gxino16b.c modules were no longer used and the<br>
+ graphics library always supported 12 and 16 bit images, so remove<br>
+ the leftover code allowing for these to be build time options.<br>
+<br>
+ This was causing false positives with helgrind since the procs<br>
+ were being set into the two-dimensional array at run time. The<br>
+ unpackicc_16 had this same code even though there was no method<br>
+ or check for non-support.<br>
+<br>
+base/gxi12bit.c<br>
+base/gxi16bit.c<br>
+base/gximage.h<br>
+base/gximdecode.c<br>
+base/gxino12b.c<br>
+base/gxino16b.c<br>
+base/gxipixel.c<br>
+base/gxiscale.c<br>
+base/gxsample.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-04 19:17:10 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f71dca797cbcdf0430fd8009c6c517baed62b4cb">f71dca797cbcdf0430fd8009c6c517baed62b4cb</a>
+<blockquote>
+<p>
+ pdfwrite - FunctionType 2 C0 and C1 are optional<br>
+<br>
+ Bug #696626 &quot; A PDF file causes ps2pdf crash&quot;<br>
+<br>
+ The code fro serialising a Type 2 function was assuming that C0 and C1<br>
+ were valid (validated by the interpreter) and always present. In fact<br>
+ both of these are optional. We were attempting to dereference a NULL<br>
+ pointer.<br>
+<br>
+ Altered the type 2 serialise code to write the default values if either<br>
+ or both of C0 and C1 are not present.<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gsfunc3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-04 18:50:01 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a90ca3d4c30339f93b1e595ee81d08f1ca7174e4">a90ca3d4c30339f93b1e595ee81d08f1ca7174e4</a>
+<blockquote>
+<p>
+ ps2write - suppress an address sanitizer warning for MM fonts<br>
+<br>
+ ps2write does not currently handle Multiple Master fonts well, we know<br>
+ this there is an open enhancement for it. We do have a hacky work-around<br>
+ which turns the MM OtherSubrs into regular OtherSubrs using the blended<br>
+ values.<br>
+<br>
+ This doesn't work when the font program uses constrcuts such as ' x y div'<br>
+ in order to create floating point values. This could mean that we did<br>
+ not have as many paramters as expected on the stack as are required for<br>
+ a given MM OtherSubr, leading to us indexing off the bottom of the<br>
+ stack.<br>
+<br>
+ This meant we were using random values, but this didn't really matter<br>
+ as the data is always going to be wrong. However the address sanitizer<br>
+ complains about this.....<br>
+<br>
+ In this commit if we would underrun the stack we just write a 0 instead<br>
+<br>
+devices/vector/gdevpsf1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-04 15:40:30 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8175c6993efa8637ac39a050cc0696a19214abe1">8175c6993efa8637ac39a050cc0696a19214abe1</a>
+<blockquote>
+<p>
+ pdfwrite fix address sanitizer complaint.<br>
+<br>
+ When checking a font name to see if its a URW replacement for a base 14<br>
+ font we were doing a memcmp with the length of the candidate name.<br>
+<br>
+ If that length exceeded the length of the URW name then we were in<br>
+ effect comparng against part of the next name (or random bytes off the<br>
+ end of the table.<br>
+<br>
+ Of course this is harmless except in the highly unlikely case of the end<br>
+ of the table not being followed by more data bytes. But the address<br>
+ sanitizer complains. So we now compare the length of the two strings<br>
+ first.<br>
+<br>
+devices/vector/gdevpdtb.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-03 15:50:48 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b40526038481dd3158331df6c42c47654e02c3ab">b40526038481dd3158331df6c42c47654e02c3ab</a>
+<blockquote>
+<p>
+ Memento: Speed improvements.<br>
+<br>
+ Avoid searching the linked list of blocks in order to remove a<br>
+ block by moving to a doubly linked list. This can be done<br>
+ without increasing the amount of memory in use by making better<br>
+ use of the 'parent' pointer that is only used when displaying<br>
+ nested blocks.<br>
+<br>
+ Also store magic values in the 'child' and 'sibling' pointers<br>
+ (again only used when displaying nested blocks) so that we<br>
+ can quickly verify that a block is real before doing too much<br>
+ with it.<br>
+<br>
+ Those changes drastically reduce the time required for<br>
+ MEMENTO_LEAKONLY runs (now the same order of magnitude as non<br>
+ memento runs).<br>
+<br>
+ Normal memento runs are still very slow when the numbers of<br>
+ blocks increase due to the paranoid checking taking time.<br>
+<br>
+ To ameliorate this a bit, we try 2 other things.<br>
+<br>
+ Firstly, we optimise the searching of blocks by making use of<br>
+ int aligned tests. This still doesn't make much difference.<br>
+<br>
+ Secondly, we introduce a new mechanism for the 'paranoia'<br>
+ levels. If a negative number is given for the paranoia level<br>
+ (say -n) then we first perform our overwrite checks after n events.<br>
+ We next test after 2n events, then 4n, then 8n etc.<br>
+<br>
+ The new default paranoia level is set to be -1024.<br>
+<br>
+ This makes a huge difference, and brings normal memento runs<br>
+ down to be comparable with debug runs.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-01 16:58:43 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=83055a87a2ce1910ede8cdfe722766a8a4c13d55">83055a87a2ce1910ede8cdfe722766a8a4c13d55</a>
+<blockquote>
+<p>
+ Bug 696616: Move antidropout downscaler functionality.<br>
+<br>
+ The current code globally enables use of the antidropout<br>
+ downscaler on all halftoned devices (unless they override<br>
+ the gxdso call), when interpolation is enabled.<br>
+<br>
+ We now introduce a -dAntidropoutDownscaler option that<br>
+ defaults off. That sets a bit in dev.color_info that is<br>
+ used to control the option. This decouples it from<br>
+ interpolation.<br>
+<br>
+base/gdevdflt.c<br>
+base/gsdparam.c<br>
+base/gxdevcli.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-01 17:20:04 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7a3d6527825a79471e93b723bbd2e6dad0c61b64">7a3d6527825a79471e93b723bbd2e6dad0c61b64</a>
+<blockquote>
+<p>
+ Fix up some broken/out of date links<br>
+<br>
+ Marcos did some cleanup identifying broken links, based on his work, I've fixed<br>
+ the broken links, and removed those to files that no longer exist.<br>
+<br>
+doc/Develop.htm<br>
+doc/Drivers.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-01 15:04:38 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=579f5891d69bcb057f27e44d49bf686d64a9f2ee">579f5891d69bcb057f27e44d49bf686d64a9f2ee</a>
+<blockquote>
+<p>
+ Bug 696620: Avoid rangecheck errors in tiff devices.<br>
+<br>
+ Only write downscaler options if we will read them.<br>
+<br>
+devices/gdevtifs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-29 15:33:23 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3c4c85ae660c22d8442c3a9ea17bbc295f2a2fac">3c4c85ae660c22d8442c3a9ea17bbc295f2a2fac</a>
+<blockquote>
+<p>
+ high level forms - account for flipped/mirrored CTM<br>
+<br>
+ For high level forms support, if the device requests a specific CTM be<br>
+ applied we calculate a clip path which includes negative co-ordinates<br>
+ to ensure that a translated form won't be erroneously clipped to the<br>
+ page.<br>
+<br>
+ When doing this, we need to account for the CTM when the form is executed<br>
+ potentially being flipped or mirrored (or both!)<br>
+<br>
+ No differences expected.<br>
+<br>
+psi/zform.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-28 09:02:43 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d15322e32f85f9b4d9fbebd19148d7a95428adf">5d15322e32f85f9b4d9fbebd19148d7a95428adf</a>
+<blockquote>
+<p>
+ pdfwrite - silence Coverity warning<br>
+<br>
+ Change an indent to silence Coverity.....<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-26 09:38:46 -0800
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f682ba02caa1cb974e475cc387efce1e04d901f5">f682ba02caa1cb974e475cc387efce1e04d901f5</a>
+<blockquote>
+<p>
+ Fixed links in Develop.htm and Drivers.html.<br>
+<br>
+ Some referenced files appear to no longer exist, I've left those in<br>
+ the documentation but commented out with a 'missing' notation.<br>
+<br>
+doc/Develop.htm<br>
+doc/Drivers.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-25 14:23:02 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b94ac333a172558441726e47f257cb26a3b6f924">b94ac333a172558441726e47f257cb26a3b6f924</a>
+<blockquote>
+<p>
+ Bug 696615: Solve incorrect copy_alpha of hl_color<br>
+<br>
+ The code that expanded alphas to 8 bits was incorrect for the<br>
+ 4 bit case.<br>
+<br>
+base/gdevdbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-25 10:56:35 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65b72cece8e2462fd787e8d54d9f990327a061ac">65b72cece8e2462fd787e8d54d9f990327a061ac</a>
+<blockquote>
+<p>
+ Fix dropped error code in clist code.<br>
+<br>
+base/gxclrect.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-25 11:47:27 -0800
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f69cda3004976da8da5c23ca86fdb62086ec508">8f69cda3004976da8da5c23ca86fdb62086ec508</a>
+<blockquote>
+<p>
+ Another set of broken doc links.<br>
+<br>
+doc/WhatIsGS.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-25 11:30:19 -0800
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=09ca513fbcd7e3a843cc2690dd9dadecfd50bad9">09ca513fbcd7e3a843cc2690dd9dadecfd50bad9</a>
+<blockquote>
+<p>
+ Fixed another broken link in doc.<br>
+<br>
+doc/WhatIsGS.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-25 11:18:26 -0800
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4d954bfd6b0bb8e3d7400ca1f5e4b6494ec91384">4d954bfd6b0bb8e3d7400ca1f5e4b6494ec91384</a>
+<blockquote>
+<p>
+ Fixed broken links in doc/*.htm.<br>
+<br>
+ There are still broken links in doc/Psfiles.htm, doc/Develop.htm, and<br>
+ doc/Drivers.htm caused by the files they refer to having been moved to<br>
+ a different directory. Those will be fixed in a separate commit.<br>
+<br>
+doc/Devices.htm<br>
+doc/Language.htm<br>
+doc/Readme.htm<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-24 20:09:58 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bcf738d762ef65e16f060d57ea15824f1f6bd57c">bcf738d762ef65e16f060d57ea15824f1f6bd57c</a>
+<blockquote>
+<p>
+ Bug 696611: Avoid imagemask interpolation errors with pbmraw.<br>
+<br>
+ pbmraw (deliberately) doesn't know how to copy_alpha. We never<br>
+ call copy_alpha when going to pbmraw direct because of this, but<br>
+ the clist wrapping defeats our detection. This results in an<br>
+ error.<br>
+<br>
+ Tests enabling copy_alpha for pbmraw show a degredation in render<br>
+ quality, so instead, we just disable all imagemask interpolation<br>
+ when going to halftone devices.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-24 15:56:23 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=036710b85c9e1b08ea0c0c7d5e2ad0734a1460eb">036710b85c9e1b08ea0c0c7d5e2ad0734a1460eb</a>
+<blockquote>
+<p>
+ Add some 'sanitize' targets to the Makefile<br>
+<br>
+ These build with address sanitizer enabled.<br>
+<br>
+ These hackily set the '-i' flag in the recursive calls to make<br>
+ to sidestep the problems with genconf/mkromfs leaking at the<br>
+ moment. These issues will be fixed and the -i removed.<br>
+<br>
+Makefile.in<br>
+base/unix-end.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-24 17:51:29 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd65a40fa66835646972b665f352498c696557a1">dd65a40fa66835646972b665f352498c696557a1</a>
+<blockquote>
+<p>
+ Bug 696609: Fix operation in non 24bpp modes.<br>
+<br>
+ I had the depth checks in blank_unmasked_pixels wrong.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-24 16:34:35 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1386dbd1ad0bef6b6264e198162d0b7c9abfce54">1386dbd1ad0bef6b6264e198162d0b7c9abfce54</a>
+<blockquote>
+<p>
+ Bug 696603: Quieten address sanitiser.<br>
+<br>
+ mem_mono_copy_mono includes some clever code that reads<br>
+ 16 bits at a time and shifts to do fast mono copies of<br>
+ unaligned data. This can result in overreading the end<br>
+ of data by a byte, but never so far as to cause address<br>
+ overflows due to the granularity at which data can be<br>
+ allocated.<br>
+<br>
+ The 'overread' data is never actually used.<br>
+<br>
+ The simple fix here just extends the source block by<br>
+ a byte to avoid error sanitizer complaining. Valgrind<br>
+ correctly does not flag this.<br>
+<br>
+pcl/pcl/pcbiptrn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-24 13:45:20 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=628f3de2f47e46d2b56fa9f6bfd7b7a479d8b10e">628f3de2f47e46d2b56fa9f6bfd7b7a479d8b10e</a>
+<blockquote>
+<p>
+ Bug 699613: gs leaves temp files in GS_NO_UTF8 windows builds.<br>
+<br>
+ Adopt Cecil Hornbakers patch to solve this. Many thanks!<br>
+<br>
+base/gp_mswin.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-24 12:30:28 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8fa7be62354e783551661cbda24b56deb3e67f1f">8fa7be62354e783551661cbda24b56deb3e67f1f</a>
+<blockquote>
+<p>
+ Remove unused variables/conditions from gdevpdf.c<br>
+<br>
+ Spotted while debugging bug 696612.<br>
+<br>
+ Various places in the code do:<br>
+<br>
+ { int j, code = 0;<br>
+ for (j = 0; j &lt; n &amp;&amp; code &gt;= 0; j++)<br>
+ {<br>
+ STUFF<br>
+ }<br>
+ }<br>
+<br>
+ which is a perfectly reasonable thing to do - except for the<br>
+ facts that: 1) STUFF never alters the value of code, and 2) even<br>
+ if STUFF did alter the value of code, we never check the value<br>
+ and return it.<br>
+<br>
+ Accordingly, I've just removed the references to code.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-24 12:31:17 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e2a848f1157fdecab41165ac790394202e13d9d0">e2a848f1157fdecab41165ac790394202e13d9d0</a>
+<blockquote>
+<p>
+ Bug 696612: Swallow rangecheck errors in psf_check_outline_glyphs<br>
+<br>
+ At the closedown of the file, we run through and write out fonts.<br>
+ As part of this process, we check the glyphs in the font. If any<br>
+ of the glyphs come back as bad, we abort the whole process.<br>
+<br>
+ Previously we ignored any errors here, and my change to make us<br>
+ not ignore errors in the pdf_close routine caused this regression.<br>
+<br>
+ After discussion with Ken and Chris, the correct fix, I believe,<br>
+ is to continue to catch and honour all errors in pdf_close, but<br>
+ to explicitly swallow certain errors lower down.<br>
+<br>
+ Chris suggested, and I agree with him, that simply swallowing<br>
+ the rangecheck error in psf_check_outline_glyphs would be an<br>
+ acceptable fix (for now at least).<br>
+<br>
+ I am leaving the bug open and passing it to Ken so that he can<br>
+ double check this area in more detail at his convenience.<br>
+<br>
+devices/vector/gdevpsfu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-23 19:53:31 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=636bb0bce0ece581f3004915e2c10c79c00439eb">636bb0bce0ece581f3004915e2c10c79c00439eb</a>
+<blockquote>
+<p>
+ Bug 695180: Maintain antialias levels into pdf14 devices.<br>
+<br>
+ When creating a pdf14 device, ensure that the antialias level<br>
+ of the pdf14 device matches that of the underlying device.<br>
+<br>
+ This prevents antialiasing getting lost when the clist kicks<br>
+ in for transparency.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-23 18:57:28 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b85daf6bdb43c09fe92ac9c319c9fea5b012989a">b85daf6bdb43c09fe92ac9c319c9fea5b012989a</a>
+<blockquote>
+<p>
+ Bug696540: Fix pattern accumulator initialisation<br>
+<br>
+ When we create a pattern accumulator the bitmap contents are<br>
+ initially undefined. We then draw a rectangle over them to set<br>
+ them to known values.<br>
+<br>
+ Unfortunately the code that writes this bitmap does not check<br>
+ for the ctm being sane, so in some cases the initialisation<br>
+ can fail.<br>
+<br>
+ This shows up as indeterminisms in the alpha blending.<br>
+<br>
+ The simple fix is to set the ctm to the identity matrix before<br>
+ rendering.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-28 17:35:10 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7aed42f6e9f1f0bf09dde46d7004d517faed0d2e">7aed42f6e9f1f0bf09dde46d7004d517faed0d2e</a>
+<blockquote>
+<p>
+ Fix potential valgrind warning.<br>
+<br>
+ We don't have an example file for this, but this was spotted<br>
+ during investigations into Bug 693784.<br>
+<br>
+ We can overrun by 1 pixel for odd length rows. When we overrun<br>
+ we read the lower 4 bits of a byte, and those may be undefined.<br>
+<br>
+ Simply make PACIFY_VALGRIND blank these bits before we start.<br>
+<br>
+devices/gdevpbm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-23 14:59:25 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=89f02bdede0a2a46ee8937e6138b0f8905b524f5">89f02bdede0a2a46ee8937e6138b0f8905b524f5</a>
+<blockquote>
+<p>
+ Bug 696609: Fix x11alpha regressions.<br>
+<br>
+ The changes to pattern_accum_get_bits_rectangle were causing<br>
+ a lack of output.<br>
+<br>
+ This was due to the call to the underlying get_bits_rectangle<br>
+ returning with a pointer to the data (rather than supplying<br>
+ a copy of it). The blank_unmasked_bits call would then fail<br>
+ as it could not alter the underlying data safely.<br>
+<br>
+ The fix is simply to remove the bit that allows a copy of the<br>
+ data to be submitted from the options before calling, thus<br>
+ ensuring that we can operate on a copy.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-22 09:09:50 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ece091d02c69174fb96dc6b02df9e30f9c964461">ece091d02c69174fb96dc6b02df9e30f9c964461</a>
+<blockquote>
+<p>
+ pdfwrite - fix a colour conversion crash<br>
+<br>
+ Discovered while working on an unrelated problem. If we had set the<br>
+ CompatibilityLevel to &lt; 1.3 and encountered a CIEBased colour space in<br>
+ the input file, then we unconditionally return a 'convert' result<br>
+ because we cannot embed an ICC profile in such an old PDF version.<br>
+<br>
+ However we did not update the 'pcs_orig' argument, and later tried to<br>
+ use it, resulting in a NULL dereference.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-19 09:29:58 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e636c3958126201c858d394d05c135bcd90cf3df">e636c3958126201c858d394d05c135bcd90cf3df</a>
+<blockquote>
+<p>
+ Avoid another undefined data return case.<br>
+<br>
+ Attempting to getbits from any pattern accumulator without a<br>
+ color plane cannot work. Give an error.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-19 09:29:51 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c480ef1b2d0a9ede3df1d6fc64e6f305e378d3d7">c480ef1b2d0a9ede3df1d6fc64e6f305e378d3d7</a>
+<blockquote>
+<p>
+ Fix possible undefined variable access.<br>
+<br>
+ I messed this up while refactoring.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-18 19:37:05 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc6adc3f223ac00778e6236b687ab624cadb4445">cc6adc3f223ac00778e6236b687ab624cadb4445</a>
+<blockquote>
+<p>
+ Ensure pattern_accumulator_get_bits returns defined values.<br>
+<br>
+ When reading bits from the pattern_accumulator, if it has a mask<br>
+ then blank the masked bits as otherwise the values are undefined.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-18 17:33:18 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f63ceefb7fc70cc7ccce9e4ae4221c5b5ca00100">f63ceefb7fc70cc7ccce9e4ae4221c5b5ca00100</a>
+<blockquote>
+<p>
+ Update Acrobat2Tiff to hopefully work with 10/11/DC too.<br>
+<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vb<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-18 16:31:31 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9bb42182c7637e11bc2939fb359ab79365594202">9bb42182c7637e11bc2939fb359ab79365594202</a>
+<blockquote>
+<p>
+ Update devices to return errors using return_error.<br>
+<br>
+contrib/gdevcd8.c<br>
+contrib/gdevdj9.c<br>
+contrib/gomni.c<br>
+contrib/japanese/gdevdmpr.c<br>
+devices/gdevcdj.c<br>
+devices/gdevcmykog.c<br>
+devices/gdevfpng.c<br>
+devices/gdevmac.c<br>
+devices/gdevmac.h<br>
+devices/gdevmswn.c<br>
+devices/gdevmsxf.c<br>
+devices/gdevos2p.c<br>
+devices/gdevpng.c<br>
+devices/gdevsvga.c<br>
+devices/gdevtifs.c<br>
+devices/gdevtsep.c<br>
+devices/gdevupd.c<br>
+devices/gdevwddb.c<br>
+devices/gdevwdib.c<br>
+devices/gdevwpr2.c<br>
+devices/gdevwprn.c<br>
+devices/gxfcopy.c<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpdfm.c<br>
+devices/vector/gdevpdfo.c<br>
+devices/vector/gdevpdfr.c<br>
+devices/vector/gdevpdfu.c<br>
+devices/vector/gdevpdfx.h<br>
+devices/vector/gdevpdtc.c<br>
+devices/vector/gdevpdte.c<br>
+devices/vector/gdevpdtt.c<br>
+devices/vector/gdevpsdi.c<br>
+devices/vector/gdevpsdp.c<br>
+devices/vector/gdevpsf1.c<br>
+devices/vector/gdevpsf2.c<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-17 17:50:19 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c00965e4c05f08ec000303d53942e846187eed1a">c00965e4c05f08ec000303d53942e846187eed1a</a>
+<blockquote>
+<p>
+ Improve logability of errors.<br>
+<br>
+ Ensure that we always return_error(gs_error_blah) rather than just<br>
+ return gs_error_blah.<br>
+<br>
+base/fapi_ft.c<br>
+base/fapibstm.c<br>
+base/fapiufst.c<br>
+base/gdevabuf.c<br>
+base/gdevdbit.c<br>
+base/gdevdflt.c<br>
+base/gdevdrop.c<br>
+base/gdevm24.c<br>
+base/gdevnfwd.c<br>
+base/gdevp14.c<br>
+base/gdevprn.c<br>
+base/gdevsclass.c<br>
+base/gdevvec.c<br>
+base/gp_mswin.c<br>
+base/gp_wsync.c<br>
+base/gsargs.c<br>
+base/gsdparam.c<br>
+base/gsfunc0.c<br>
+base/gsicc_cache.c<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_manage.c<br>
+base/gsiodisk.c<br>
+base/gsioram.c<br>
+base/gsiorom.c<br>
+base/gslibctx.c<br>
+base/gsovrc.c<br>
+base/gxccman.c<br>
+base/gxcht.c<br>
+base/gxclthrd.c<br>
+base/gxcmap.c<br>
+base/gxdhtserial.c<br>
+base/gxdownscale.c<br>
+base/gxht.c<br>
+base/gxpageq.c<br>
+base/gxshade.c<br>
+base/sjbig2_luratech.c<br>
+base/sjpegc.c<br>
+base/sjpx_luratech.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-18 16:15:33 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=18af3c05dc3774512529436fd41d953fa24b34f8">18af3c05dc3774512529436fd41d953fa24b34f8</a>
+<blockquote>
+<p>
+ Avoid interpolating imagemasks in pattern accumulators.<br>
+<br>
+ To interpolate imagemasks, we need to do a copy_alpha operation.<br>
+ These are impossible to do well on a pattern accumulator due to<br>
+ the 1bpp alpha plane.<br>
+<br>
+ As such the best thing we can do is to sidestep the problem.<br>
+<br>
+base/gxipixel.c<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-17 16:23:40 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a08a24751a672a21972d3888d651dacae054888e">a08a24751a672a21972d3888d651dacae054888e</a>
+<blockquote>
+<p>
+ MSVC Solution: Add gdevsclass.{c,h} to the solution.<br>
+<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-18 10:49:11 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ccca669b1a1bf97fc1b778dd6f768b3a71d9dfbc">ccca669b1a1bf97fc1b778dd6f768b3a71d9dfbc</a>
+<blockquote>
+<p>
+ Silence a compiler warning<br>
+<br>
+ accidentally left a debugging variable in place<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-18 10:29:58 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=32e721e9e4c21f0a843ada824d17ac465f21ac4b">32e721e9e4c21f0a843ada824d17ac465f21ac4b</a>
+<blockquote>
+<p>
+ pdfwrite - don't render shadings if we don't need to convert base space<br>
+<br>
+ Bug #690125 &quot;Gradient / Fill Pattern Conversion Issues&quot;<br>
+<br>
+ Since the change to ICC colour management, the check to see whether we<br>
+ could support the base space of a shading was incorrect, it checked the<br>
+ strategy against 'ICC' instead of the real base space of the pattern.<br>
+<br>
+ This change checks the actual base space of the pattern before deciding<br>
+ whether we can handle it.<br>
+<br>
+ Although this 'fixes' this bug its not the whole story, I want to alter<br>
+ the functions so that they can be sampled and generate a different colour<br>
+ space if we are doing colour conversion, rather than rendering the<br>
+ shading.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-17 11:30:34 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=19755c9a944bc257c936345742e3dc18703ca17f">19755c9a944bc257c936345742e3dc18703ca17f</a>
+<blockquote>
+<p>
+ Bug #696592 Macro and duplex state interaction.<br>
+<br>
+ The duplex page state was not being properly maintained during overlay<br>
+ macro execution. Thanks to Norbert Janssen for discovering and<br>
+ analyzing this problem.<br>
+<br>
+pcl/pcl/pcjob.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-16 18:03:30 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80f7b13626dbf60275a8ea2d4ae16336832cfec5">80f7b13626dbf60275a8ea2d4ae16336832cfec5</a>
+<blockquote>
+<p>
+ Further indeterminism fixes for halftoning.<br>
+<br>
+ Yesterday I changed the halftone code to calculate the dest_width<br>
+ etc from the bresenham. Now it turns out that the bresenham is<br>
+ tweaked slightly in some cases, so that the 2 places where it<br>
+ was being used to calculate dest_width were still getting<br>
+ different results.<br>
+<br>
+ This commit rearranges the code so that the same bresenham values<br>
+ are used consistently, and so should give us proper matches.<br>
+<br>
+base/gxht_thresh.c<br>
+base/gxicolor.c<br>
+base/gximono.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-16 17:09:14 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d282b4d03e8dacfea9efb2867cc8cedb2f154a0f">d282b4d03e8dacfea9efb2867cc8cedb2f154a0f</a>
+<blockquote>
+<p>
+ Bug 696594: Fix timeouts in cluster.<br>
+<br>
+ Thanks to Ken for spotting this one.<br>
+<br>
+ I'd neglected to update x in the landscape code, resulting in<br>
+ infinite loops.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-16 12:07:03 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1a7c20c004643d38b3eb8fb9898927c351a7a63d">1a7c20c004643d38b3eb8fb9898927c351a7a63d</a>
+<blockquote>
+<p>
+ pdfwrite - force non-Identity CMap emission when creating PDF/A<br>
+<br>
+ Bug #696547 &quot;Converting to PDF/A using -dPDFACompatibilityPolicy=2 returns without error but produces invalid PDF/A files&quot;<br>
+<br>
+ The third and (so far) final bug in this collection.<br>
+<br>
+ PDF/A mandates that all CMaps except Identity-H and Identity-V must be<br>
+ embedded in the PDF file. Previously we were not doing that for the<br>
+ 'standard' CMaps.<br>
+<br>
+ This commit forces the emission of all CMaps except Identity ones when<br>
+ producing PDF/A output.<br>
+<br>
+ No differences expected<br>
+<br>
+devices/vector/gdevpdtc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-15 19:31:33 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=656b19ddd19772c5c3fd40817d6532c853494d68">656b19ddd19772c5c3fd40817d6532c853494d68</a>
+<blockquote>
+<p>
+ Fix unused variable.<br>
+<br>
+ Leftover from previous code rework.<br>
+<br>
+base/gxht_thresh.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-15 18:15:12 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92b88a1aefcd3410d8378bac8e92122622b7c80a">92b88a1aefcd3410d8378bac8e92122622b7c80a</a>
+<blockquote>
+<p>
+ MSVC: Add targets for debugging.<br>
+<br>
+ Add output paths to the projects so that the debugger knows where<br>
+ to find the executable for each different build configuration.<br>
+<br>
+windows/ghostpcl.vcproj<br>
+windows/ghostpdl.vcproj<br>
+windows/ghostxps.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-15 16:57:46 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4a8525ca93d7be6091f38ee68f4dbefa540158fa">4a8525ca93d7be6091f38ee68f4dbefa540158fa</a>
+<blockquote>
+<p>
+ Bug 696323: Fix indeterminism in thresholding code.<br>
+<br>
+ The thresholding code calculates the destination width of the<br>
+ image lines in one way, then fills the data based on the<br>
+ bresenham. It is possible for the destination width calculated<br>
+ to not match that given by the bresenham, in which case<br>
+ undefined data can be plotted.<br>
+<br>
+ The fix here is simply to calculate the destination width from<br>
+ the bresenham, so it will exactly match the actual data we get.<br>
+<br>
+base/gxht_thresh.c<br>
+base/gxht_thresh.h<br>
+base/gxicolor.c<br>
+base/gximono.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-15 15:08:38 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0d66d291c29a7c34a4ba32060af7e9f4f1870a6c">0d66d291c29a7c34a4ba32060af7e9f4f1870a6c</a>
+<blockquote>
+<p>
+ Add &quot;NoInterpolateImagemasks&quot; device param.<br>
+<br>
+ Rather than relying on the 'HighLevelDevice' device param, instead<br>
+ look at a new 'NoInterpolateImagemasks' param.<br>
+<br>
+base/gdevvec.c<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 14:12:41 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5a9269c17c036606f13f257f7ee5580a3a191530">5a9269c17c036606f13f257f7ee5580a3a191530</a>
+<blockquote>
+<p>
+ Bug 696132: Reapply previous work.<br>
+<br>
+ Previous commits in this area went in piecemeal and caused lots of<br>
+ diffs which were then fixed etc. By committing here in one go, we<br>
+ hope to get saner results from the tests which we can have more<br>
+ confidence in.<br>
+<br>
+ A summary of the changes:<br>
+<br>
+ 1) Introduce a mechanism so that we can know whether we are in<br>
+ a pattern accumulator or not.<br>
+<br>
+ 2) When plotting an othogonal image use that mechanism to detect<br>
+ whether we are in a pattern accumulator. If we are, then grid<br>
+ fit the image.<br>
+<br>
+ 3) If we are in a pattern accumulator and we are downscaling an<br>
+ image, then interpolate it. This avoids nasty dropouts with<br>
+ halftoned images that can (due to nearest neighbour plotting)<br>
+ suddenly change massively in appearance.<br>
+<br>
+base/gxdevsop.h<br>
+base/gxipixel.c<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-15 15:22:46 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2959218b70dcb95765e458073195b4a9baa65be9">2959218b70dcb95765e458073195b4a9baa65be9</a>
+<blockquote>
+<p>
+ graphics library - make vector devices implement the correct spec_op handler<br>
+<br>
+ Devices based on gdevvec were not properly having the spec_op method<br>
+ assigned to the gdevvec spec_op handler if the device didn't handle<br>
+ spec_op itself.<br>
+<br>
+ Ideally this would be done by having the device prototype being fully<br>
+ populated, but the number of device methods makes that impractical.<br>
+ Instead, if the method is NULL or the gx_default method, replace it<br>
+ with the gdevvec one.<br>
+<br>
+ This already works for devices based on gdevprn as a simlar hack is<br>
+ performed in gx_default_create_buf_device<br>
+<br>
+ No differences expected<br>
+<br>
+base/gdevvec.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-15 10:21:57 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=343e3ed65423135a1f25ba1b5d52f45707c17c70">343e3ed65423135a1f25ba1b5d52f45707c17c70</a>
+<blockquote>
+<p>
+ documentation - make it clearer the NumRenderingThreads has no effect on pdfwrite<br>
+<br>
+ Unfortunately nothing can be done about the 'cargo cult' approach to<br>
+ command line parameters which most people seem to use, but we should try<br>
+ and make it clear in the documentation, on the off-chance that someone<br>
+ actually reads it.<br>
+<br>
+doc/Language.htm<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 10:14:50 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=38e501dcddb6a15e9d2e41ae534d398942f9e839">38e501dcddb6a15e9d2e41ae534d398942f9e839</a>
+<blockquote>
+<p>
+ Move Acrobat2TIFF from pcl/tools to toolbin (it is not PCL related)<br>
+<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff.sln<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vb<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vbproj<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Application.Designer.vb<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Application.myapp<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/AssemblyInfo.vb<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Resources.Designer.vb<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Resources.resx<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Settings.Designer.vb<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Settings.settings<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.exe<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.vshost.exe<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.xml<br>
+pcl/tools/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Interop.Acrobat.dll<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff.sln<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vb<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vbproj<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Application.Designer.vb<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Application.myapp<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/AssemblyInfo.vb<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Resources.Designer.vb<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Resources.resx<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Settings.Designer.vb<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Settings.settings<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.exe<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.vshost.exe<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.xml<br>
+toolbin/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Interop.Acrobat.dll<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-07 09:07:53 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5c83e97e4c1216d7e3f67c7001a2513b0c1b9b45">5c83e97e4c1216d7e3f67c7001a2513b0c1b9b45</a>
+<blockquote>
+<p>
+ Remove OMIT_SAVED_PAGES_TEST that was left in plmain when removed from gs<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 14:04:11 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c080667d88ba604a7033da1e507e2c39fa0fca2">6c080667d88ba604a7033da1e507e2c39fa0fca2</a>
+<blockquote>
+<p>
+ Revert Bug 696132 work, in order to start from scratch.<br>
+<br>
+ Revert:<br>
+<br>
+ 1) &quot;Bug 696132/696572: Continued &quot;pattern gap&quot; work - interpolate&quot;<br>
+ commit 80693d83612e03b26a5006b74296c6e9f11779da.<br>
+<br>
+ 2) &quot;Bug 696132/696572: Continued &quot;pattern gap&quot; work - tidying.&quot;<br>
+ commit 1b843b1a6adca2f0245af8049b7c5d6d8f00ae5d.<br>
+<br>
+ 3) &quot;Fix gridfitting images being too greedy.&quot;<br>
+ commit c902d4d4ba62306aa59cd30c3f450af5ad7bf797.<br>
+<br>
+ 4) &quot;Bug 696132: Grid fit images within pattern fills.&quot;<br>
+ commit 6b04051b251d7dbde9a2e6f170cac9dc7950e20e.<br>
+<br>
+ After this I can reintroduce the commits and get (hopefully)<br>
+ cleaner testing data.<br>
+<br>
+base/gxdevsop.h<br>
+base/gxipixel.c<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 13:49:17 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a44fff01232a1ae6c7200a403a132d860c2de718">a44fff01232a1ae6c7200a403a132d860c2de718</a>
+<blockquote>
+<p>
+ pdfwrite - disallow Launch Actions in annotations when creating PDF/A<br>
+<br>
+ Bug #696547 &quot;Converting to PDF/A using -dPDFACompatibilityPolicy=2 returns without error but produces invalid PDF/A files&quot;<br>
+<br>
+ Another part of this bug. PDF/A does not permit Launch actions for<br>
+ annotations, if we get one, and we are emitting PDF/A, consult the<br>
+ CompatibilityPolicy and take appropriate action.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 13:48:06 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d83aa202383cfccdcf83a80f728106bf19267dd">1d83aa202383cfccdcf83a80f728106bf19267dd</a>
+<blockquote>
+<p>
+ pdfwrite - disallow missing glyphs in CIDFonts when creating PDF/A<br>
+<br>
+ Bug #696547 &quot;Converting to PDF/A using -dPDFACompatibilityPolicy=2 returns without error but produces invalid PDF/A files&quot;<br>
+<br>
+ One part of this bug. PDF/A insists that all fonts be embedded, and<br>
+ all glyphs used from that font are present. If we detect a condition<br>
+ where that is not the case, and we are emitting PDF/A consult the<br>
+ CompatibilityPolicy and take appropriate action.<br>
+<br>
+devices/vector/gdevpdtc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 13:45:43 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9df72d93fbe869b44a566911bdf81d2aefc3ac79">9df72d93fbe869b44a566911bdf81d2aefc3ac79</a>
+<blockquote>
+<p>
+ Documentation - fix an incorrect example and make usage a little clearer<br>
+<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 11:44:41 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b7d67a3b885f86c23d731f2bff77e16d73e1dc39">b7d67a3b885f86c23d731f2bff77e16d73e1dc39</a>
+<blockquote>
+<p>
+ Fix CompatibilityLevel typo in man pages<br>
+<br>
+ The man pages listed -dCompatibility instead of -dCompatibilityLevel<br>
+<br>
+man/de/ps2pdf.1<br>
+man/ps2pdf.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 11:41:10 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7f32dc0df826defdd20f8cd493ce795e0c73b83a">7f32dc0df826defdd20f8cd493ce795e0c73b83a</a>
+<blockquote>
+<p>
+ Add documentation for the inkcov device.<br>
+<br>
+ Credit to Jonas Smedegaard &lt;dr@jones.dk&gt;<br>
+<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 10:57:35 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3340d723e22500fd10c05ac113d7f5532a1ea762">3340d723e22500fd10c05ac113d7f5532a1ea762</a>
+<blockquote>
+<p>
+ Bug 696586 (2): Clean up some leftovers in my previous commit<br>
+<br>
+base/openjpeg.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 09:01:20 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4ca1d9d7a6a5cea50e1bb3a562b2b5c79d640c0c">4ca1d9d7a6a5cea50e1bb3a562b2b5c79d640c0c</a>
+<blockquote>
+<p>
+ Bug 696585: Fix jpeg, tiff and cups shared lib builds<br>
+<br>
+ Some more overzealous dependencies removed.<br>
+<br>
+ Mostly, credit to Jonas Smedegaard &lt;dr@jones.dk&gt;, plus some tweaks of my own<br>
+<br>
+base/jpegxr.mak<br>
+base/lcups.mak<br>
+base/lcupsi.mak<br>
+base/tiff.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-12 08:51:09 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cf6f31c177fb36b3a706c80da4c003d009fbe2af">cf6f31c177fb36b3a706c80da4c003d009fbe2af</a>
+<blockquote>
+<p>
+ Bug 696586: support shared OpenJPEG lib<br>
+<br>
+ There was a halfhearted attempt there already, do it properly.<br>
+<br>
+Makefile.in<br>
+base/openjpeg.mak<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-11 12:08:13 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80693d83612e03b26a5006b74296c6e9f11779da">80693d83612e03b26a5006b74296c6e9f11779da</a>
+<blockquote>
+<p>
+ Bug 696132/696572: Continued &quot;pattern gap&quot; work - interpolate<br>
+<br>
+ Marcos reports (in bug 696572) that many files have problems<br>
+ after the commit done for bug 696132. That commit was intended to<br>
+ cause all orthogonal images within a pattern to be gridfitted.<br>
+ Due to a mistake, this actually caused all orthogonal images<br>
+ ANYWHERE to be gridfitted. That bug was fixed a few commits<br>
+ ago (c902d4d).<br>
+<br>
+ Having fixed that, so we now operate as originally intended<br>
+ we still have some problems showing. These (in the cases tested<br>
+ at least) appear to be due to the radically different renderings<br>
+ given of images when they are very slightly permuted. This is<br>
+ because when images are being rendered at a smaller size<br>
+ than their source, dropouts occur.<br>
+<br>
+ A classic example of this might be an image of the form:<br>
+<br>
+ * * * * * *<br>
+ * * * * *<br>
+ * * * * * *<br>
+ * * * * *<br>
+<br>
+ which is used as a pattern to give a halftone efferct.<br>
+<br>
+ When downscaled, this is very sensitive to dropouts; we can easily<br>
+ get solid black or white out of such images. Using interpolation<br>
+ gives a truer rendition of the intended output.<br>
+<br>
+ This commit spots such downscales of gridfitted images within<br>
+ pattern accumulators and forces interpolation on for them.<br>
+<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-11 12:08:23 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1b843b1a6adca2f0245af8049b7c5d6d8f00ae5d">1b843b1a6adca2f0245af8049b7c5d6d8f00ae5d</a>
+<blockquote>
+<p>
+ Bug 696132/696572: Continued &quot;pattern gap&quot; work - tidying.<br>
+<br>
+ Rejig the existing code slightly to make it more readable.<br>
+<br>
+ No functional changes, just clearer code.<br>
+<br>
+base/gxdevsop.h<br>
+base/gxipixel.c<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-11 16:56:23 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=710d030617a586c5b9bbc105dd3054e467112f47">710d030617a586c5b9bbc105dd3054e467112f47</a>
+<blockquote>
+<p>
+ PDF interpreter - allow the operand stack to gro without limit<br>
+<br>
+ Bug #696567 &quot;Error reading PDF file: /stackunderflow in --run--&quot;<br>
+<br>
+ The file has a page with an outrageous number of ExtGStates on it,<br>
+ 447000, many (possibly all) of which do not contain any actual gstate.<br>
+<br>
+ This was causing a stackoverflow because the maximummoperand stack<br>
+ size was set at 300,000. This commit builds on the code for<br>
+ Bug #696487 (from the same customer) and enables the operand stack to<br>
+ grow without limit when interpreting PDF files.<br>
+<br>
+ Of course, the page is still stupidly slow.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-11 12:06:28 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d781291c9acb4eb30bf4920882c23b03fa445a2b">d781291c9acb4eb30bf4920882c23b03fa445a2b</a>
+<blockquote>
+<p>
+ pdfwrite - don't emit an empty clip<br>
+<br>
+ Bug #696566 &quot;Regression: acrobat cannot open ghostscript generated pdf file starting with b56ff42047f6df6e7c74a79b91cd7d193bfa7357&quot;<br>
+<br>
+ This appears to be a weird bug in Acrobat. If we had a PostScript file<br>
+ which did the equivalent of 'clip newpath clip' then we could end up<br>
+ writing the same equivalent to the PDF file as 'W n W n'. Under some<br>
+ (and only some) conditions, depending apparently on what operation<br>
+ followed the clip, Acrobat would throw a fit on this and stop.<br>
+<br>
+ No other PDF consumer seems to be bothered by this, and indeed if we<br>
+ alter the PDF contents slightly Acrobat isn't bothered either.<br>
+<br>
+ Since I cannot determine exactly what Acrobat is complaining about, and<br>
+ since the empty clip makes no real sense anyway, I've added code which<br>
+ detects an empty path and doesn't bother to write the clip (W) operator.<br>
+<br>
+ This seems to pacify Acrobat, but I can't guarantee that other degenerate<br>
+ paths won't cause similar problems.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-10 21:07:57 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c902d4d4ba62306aa59cd30c3f450af5ad7bf797">c902d4d4ba62306aa59cd30c3f450af5ad7bf797</a>
+<blockquote>
+<p>
+ Fix gridfitting images being too greedy.<br>
+<br>
+ Devices that don't understand a gxdso will return -1, which we<br>
+ were incorrectly reading as meaning &quot;gridfit this image&quot;.<br>
+<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-10 15:57:02 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=393e7a835a375b32bf06e8eec4ef89cd2c333d99">393e7a835a375b32bf06e8eec4ef89cd2c333d99</a>
+<blockquote>
+<p>
+ PDF interpreter - handle Xref stream with incorrect length<br>
+<br>
+ Bug 696560 &quot;Error reading PDF file&quot;<br>
+<br>
+ The file uses compressed Xref streams (several of them in fact) and one<br>
+ of them has an incorrect length (36 instead of 34). This leads to the<br>
+ interpreter reading past the end of the stream and consuming the first<br>
+ two bytes of the following token, so instead of seeing 'endstream' as<br>
+ we should, we encounter 'dstream'.<br>
+<br>
+ We already have code which attempts to detect and handle this condition<br>
+ but it assumes that the stream is being executed as an object, not as<br>
+ an xref, and expects the object number and generation to be on the<br>
+ stack, which they are not when we are dealing with an Xref stream.<br>
+<br>
+ In this commit, when we detect such a problem we attempt to verify if<br>
+ we are dealing with an object by checking to see if the stack contains<br>
+ at least 3 objects (the stream dict, the object and generation) and that<br>
+ the second and third objects down are integers. If these conditions are<br>
+ met we end the object and execute the 'exit' operator to terminate<br>
+ the calling .pdfrun function. Otherwise we simply return with the<br>
+ dictionary on the stack, as this is what the xref code expects.<br>
+<br>
+ The regression file Bug696240.pdf should now render correctly.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-10 12:50:03 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7f5ed0cde537a43fdc8bae669ffc413f39d69df8">7f5ed0cde537a43fdc8bae669ffc413f39d69df8</a>
+<blockquote>
+<p>
+ Detect 'impossible' code path being called.<br>
+<br>
+ As part of the work towards bug 696562, we spotted a code path<br>
+ that can never be run.<br>
+<br>
+ gx_alloc_char_bits is only called from one place (base/gxchar.c<br>
+ line 607). dev2 can only be non-NULL if:<br>
+<br>
+ iwidth &gt; MAX_CCACHE_TEMP_BITMAP_BITS / iheight &amp;&amp;<br>
+ log2_scale.x + log2_scale.y &gt; alpha_bits<br>
+<br>
+ The second half of that condition can never be true due to the<br>
+ construction of the log2_scale.{x,y} values in<br>
+ gx_compute_text_oversampling().<br>
+<br>
+ Rather than rip this code out just before a release (and inevitably<br>
+ be proved wrong), we add an error in this code path. If no one<br>
+ reports it to us, we'll rip the code out later.<br>
+<br>
+base/gxccman.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-08 17:13:35 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0fb16eb72ee9136856e0a52dcb194993fced16c9">0fb16eb72ee9136856e0a52dcb194993fced16c9</a>
+<blockquote>
+<p>
+ Bug 696562: Interpolate imagemasks.<br>
+<br>
+ When rendering imagemasks, we can get nasty dropout effects if we<br>
+ should be using interpolation. To fix this, we implement<br>
+ interpolation for the non-high level device case.<br>
+<br>
+ We use copy_alpha (and copy_alpha_hl_color) to write the data. We<br>
+ only do this in the case of devices that don't declare themselves<br>
+ to be high-level.<br>
+<br>
+base/gxiscale.c<br>
+devices/gdevpng.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-09 17:12:17 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=71f32f8bbc9e905732293ef2c2bd0821744c1a86">71f32f8bbc9e905732293ef2c2bd0821744c1a86</a>
+<blockquote>
+<p>
+ Only insert default_copy_alpha_hl_color if it can work.<br>
+<br>
+ default_copy_alpha_hl_color requires underlying copy_planes and<br>
+ get_bits_rectangle methods. If the device does not provide them<br>
+ then do not add default_copy_alpha_hl_color.<br>
+<br>
+base/gdevdflt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-08 12:23:01 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9f041d6fe7eda89364df1424f85ace974ed0fec">d9f041d6fe7eda89364df1424f85ace974ed0fec</a>
+<blockquote>
+<p>
+ Extend copy_alpha to support 8 bit depth.<br>
+<br>
+ Currently copy_alpha (and copy_alpha_hl_color) can only accept<br>
+ 2 or 4 bits of alpha data. In order for the work on bug 696562<br>
+ to proceed we need it to support 8 bits of alpha data. Extend<br>
+ the 2 default implementations here.<br>
+<br>
+ Also update the docs to mention the new bit depths, and to mention<br>
+ the existence of copy_alpha_hl_color at all.<br>
+<br>
+ Remove the line in the docs that claims copy_alpha will not be<br>
+ called unless get_alpha_bits returns non-1, as this will shortly<br>
+ not be true.<br>
+<br>
+base/gdevabuf.c<br>
+base/gdevdbit.c<br>
+base/gdevm24.c<br>
+base/gdevp14.c<br>
+devices/gdevpng.c<br>
+devices/gdevsvga.c<br>
+doc/Drivers.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-08 18:51:14 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3c75e35b6bbadd553a074509c3d80046457dda98">3c75e35b6bbadd553a074509c3d80046457dda98</a>
+<blockquote>
+<p>
+ Bug 696571: Fix rangecheck in tiffscaled.<br>
+<br>
+ I was putting some params that I wasn't getting (or vice versa).<br>
+<br>
+devices/gdevtifs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-08 17:10:42 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=453e8fca47db33555f86774b99cde0b429223c92">453e8fca47db33555f86774b99cde0b429223c92</a>
+<blockquote>
+<p>
+ Tidy downscaler params.<br>
+<br>
+ Use ints rather than longs consistently. This should shut<br>
+ coverity up.<br>
+<br>
+base/gxdownscale.c<br>
+base/gxdownscale.h<br>
+devices/gdevfpng.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-09 13:45:19 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=75a299ff71ef01d645acc744fb2248f99830e84a">75a299ff71ef01d645acc744fb2248f99830e84a</a>
+<blockquote>
+<p>
+ silence a couple of compiler warnings<br>
+<br>
+ Check and action the return value from fread throw an ioerror if it<br>
+ failed.<br>
+<br>
+ Prototype a couple of functions (this is an old warning)<br>
+<br>
+ I did not remove two functions 'pjl_impl_set_envvar' and<br>
+ 'pjl_impl_set_defvar'. Although these are not used at present they<br>
+ match 'pjl_impl_get_envvar', which *is* used. It would be surprising<br>
+ to a programmer if only one accessor was defiend.<br>
+<br>
+pcl/pl/pjparse.h<br>
+pcl/pl/plparams.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-08 16:55:47 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b65f6276c674a9947f3c65f7d08b46c02ba0ff3">4b65f6276c674a9947f3c65f7d08b46c02ba0ff3</a>
+<blockquote>
+<p>
+ Silence warning about unchecked return code.<br>
+<br>
+ Check the return code.<br>
+<br>
+devices/gdevpsd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-10 10:04:23 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d097c4624a7c23610b007aab98860d175535cb48">d097c4624a7c23610b007aab98860d175535cb48</a>
+<blockquote>
+<p>
+ PJL interpreter - add new methods to configure pdfwrite<br>
+<br>
+ Bug #693117 &quot;PCL -&gt; PDF/A&quot;<br>
+ Bug #693058 &quot;There is no way to control many pdfwrite features in GhostPCL (eg AutoRotatePages)&quot;<br>
+<br>
+ Originally developed on the branch PJL_pdfwrite_config, full history<br>
+ is available on that branch.<br>
+<br>
+ Added new PDFMARK and SETDISTILLERPARAMS PJL tokens which will allow<br>
+ for 'PostScript like' syntax whch can be used to configure the<br>
+ pdfwrite family of devices.<br>
+<br>
+ This will allow for the production of PDF/A-1b files and also the<br>
+ control of some features which cannot be set from the command line.<br>
+<br>
+ Updated the documentation, gathering all the high level devices in<br>
+ one place, split the documentation into controls based on the<br>
+ input language and the output format.<br>
+<br>
+ No differences expected.<br>
+<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Ps2pdf.htm<br>
+doc/Ps2ps2.htm<br>
+doc/Readme.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+pcl/pcl/pcjob.c<br>
+pcl/pcl/pcl.mak<br>
+pcl/pl/pjparse.c<br>
+pcl/pl/pjparsei.c<br>
+pcl/pl/pl.mak<br>
+pcl/pl/plparams.c<br>
+pcl/pl/plparams.h<br>
+pcl/pxl/pxsessio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-08 13:55:40 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=119e73617fb0f1b20e6d3257d26df0159c4ca81a">119e73617fb0f1b20e6d3257d26df0159c4ca81a</a>
+<blockquote>
+<p>
+ PDF interpreter - yet more robust error handlign with broken files<br>
+<br>
+ Bug #696540 &quot;ps2pdf fails on a file that can be opened by some other viewers&quot;<br>
+<br>
+ Two problems here.<br>
+<br>
+ First, the file has been truncated and garbage written, after the startxref<br>
+ token. Previously we used the 'token' operator to try and read both the<br>
+ 'startxref' and the actual offset value. However, while executing the<br>
+ token operator we reached EOF, and this *closes* the underlying file.<br>
+ Unsurprisingly this then caused ioerrors on every subsequent operation.<br>
+<br>
+ So, define a new routine 'token_no_close' which installs a SubFileDecode<br>
+ filter on top of the existing file/filter chain and reads from that. We<br>
+ explicitly set CloseSource to false so that even if we encounter EOF<br>
+ while executing the file we will only close the filter and not the<br>
+ underlying file/filter chain.<br>
+<br>
+ However this then exposed a different problem when rebuilding the xref;<br>
+ we scan backwards looking for a trailer with a /Root key. But if the<br>
+ trailer was early in the file (&lt; 64Kb), and the block reading worked<br>
+ out so that the initial block was less than 64Kb then we would calculate<br>
+ The offset to the trailer incorrectly because we assumed the block size<br>
+ was always 64Kb, which it isn't if we don't have 64Kb to read.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+Resource/Init/pdf_rbld.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-03 12:48:07 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15f8b6ce6d7ae574d7803bb19d2f5cec474f087b">15f8b6ce6d7ae574d7803bb19d2f5cec474f087b</a>
+<blockquote>
+<p>
+ Disable trapping by default.<br>
+<br>
+ Build with ENABLE_TRAPPING to reenable it. Add explanation and<br>
+ warnings to doc/Devices.htm.<br>
+<br>
+base/gxdownscale.c<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-01 17:22:53 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=afc7e2cfb9544a8cebd8abb0d89e02429ad98f7d">afc7e2cfb9544a8cebd8abb0d89e02429ad98f7d</a>
+<blockquote>
+<p>
+ Reduce boilerplate downscaler params handling.<br>
+<br>
+ The same sets of parameters (or subsets thereof) are read/<br>
+ written in many devices get/put_params routines to control<br>
+ the downscaler.<br>
+<br>
+ Arrange to read/write these all in one place to keep the<br>
+ code simpler.<br>
+<br>
+base/gxdownscale.c<br>
+base/gxdownscale.h<br>
+devices/gdevfpng.c<br>
+devices/gdevgprf.c<br>
+devices/gdevpng.c<br>
+devices/gdevpsd.c<br>
+devices/gdevtfnx.c<br>
+devices/gdevtifs.c<br>
+devices/gdevtifs.h<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-29 19:06:22 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=afbffabc7bf3593d3de5a210899e364371807c66">afbffabc7bf3593d3de5a210899e364371807c66</a>
+<blockquote>
+<p>
+ Simple optimisations to ClapTrap.<br>
+<br>
+base/claptrap-init.c<br>
+base/claptrap-planar.c<br>
+base/claptrap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-28 11:33:52 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=049ba9c4de3514452e4bd3b6601c20e1d22188fd">049ba9c4de3514452e4bd3b6601c20e1d22188fd</a>
+<blockquote>
+<p>
+ Initial import of ClapTrap.<br>
+<br>
+ Hooked in under the downscaler, so accessible to any device that<br>
+ calls the downscaler without too many changes.<br>
+<br>
+ Only enabled for CMYK devices, so tiffscaled32, tiffsep and<br>
+ psdcmyk.<br>
+<br>
+ -dTrapX and -dTrapY set the horizontal and vertical search areas.<br>
+ Use 0 for off, otherwise n searches +/- n either side.<br>
+<br>
+ TrapOrder sets the cmyk spot ordering from darkest to lightest.<br>
+ For CMYK, default is [ 3 1 0 2 ] (K, M, C, Y).<br>
+<br>
+ For CMYK and spots, default is [ 3 1 0 2 4 5 6 7 ... ]. This<br>
+ will be wrong if spots aren't arranged in darkest to lightest order.<br>
+<br>
+ A typical command line might look like:<br>
+<br>
+ gs -sDEVICE=tiffsep -dTrapX=2 -dTrapY=2 -o out.tif<br>
+ -c &quot;&lt;&lt; /TrapOrder [ 3 1 0 2 ] setpagedevice &gt;&gt;&quot;<br>
+ -f examples/tiger.eps<br>
+<br>
+base/claptrap-impl.h<br>
+base/claptrap-init.c<br>
+base/claptrap-planar.c<br>
+base/claptrap.c<br>
+base/claptrap.h<br>
+base/gxdownscale.c<br>
+base/gxdownscale.h<br>
+base/lib.mak<br>
+devices/gdevpsd.c<br>
+devices/gdevtifs.c<br>
+devices/gdevtifs.h<br>
+devices/gdevtsep.c<br>
+doc/Devices.htm<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-03 19:08:46 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6b04051b251d7dbde9a2e6f170cac9dc7950e20e">6b04051b251d7dbde9a2e6f170cac9dc7950e20e</a>
+<blockquote>
+<p>
+ Bug 696132: Grid fit images within pattern fills.<br>
+<br>
+ To avoid white lines appearing between pattern fills, grid fit<br>
+ images whenever they appear within such fills.<br>
+<br>
+ Gridfitting involves stretching any axis aligned image to<br>
+ completely cover the pixels it touches.<br>
+<br>
+ The vast majority of this patch is to do with detecting that<br>
+ we are in a pattern accumulation device in a nice way (allowing<br>
+ for the possibilities of pdf14 accumulators etc).<br>
+<br>
+base/gxdevsop.h<br>
+base/gxipixel.c<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-05 10:31:10 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de6cead970c7aebdca0c49d841bb94897f02102d">de6cead970c7aebdca0c49d841bb94897f02102d</a>
+<blockquote>
+<p>
+ PDF interpreter - move a device name check into a parameter check<br>
+<br>
+ Bug #696568 &quot;Treatment of page labels&quot;<br>
+<br>
+ Previously we were checking against the device being pdfwrite before<br>
+ processing page labels, because these require special handling. This<br>
+ stops it working with the DejaVu device (which I wasn't previously<br>
+ aware of) so instead we use the current method of checking a device<br>
+ parameter to see if the device wants to be given the Page Labels.<br>
+<br>
+ Because the pdfmark syntax apparently cannot handle the range of<br>
+ possible schemes for PageLabels (see bug #692901) we don't handle<br>
+ PageLabels as pdfmarks, but instead as a specific device parameter.<br>
+<br>
+ We won't change this unless someone can show conclusively that the<br>
+ pdfmark syntax can handle all possible formats for PageLabels.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfp.c<br>
+devices/vector/gdevpdfx.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-04 08:02:33 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=25717bc03607476d3fa3a4f26a852c8064fe31c4">25717bc03607476d3fa3a4f26a852c8064fe31c4</a>
+<blockquote>
+<p>
+ Bug 696565: remove spurious deps for shared lcms, cups and jpeg<br>
+<br>
+ When I added a load of missing dependencies, I was over zealous and added some<br>
+ depedencies to some of the shared library builds that are only relevant to the<br>
+ non-shared library cases.<br>
+<br>
+base/jpegxr.mak<br>
+base/lcms2.mak<br>
+base/lcups.mak<br>
+base/lcupsi.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-03 09:07:57 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8a3b3487d4946e0b66388c2602d70a5ed45193ff">8a3b3487d4946e0b66388c2602d70a5ed45193ff</a>
+<blockquote>
+<p>
+ Don't use stack allocation for text enum<br>
+<br>
+ Text (and show) enumeators can no longer be safely allocated on the stack since<br>
+ we need the memory manager's metadata to check the type (show or text) we're<br>
+ dealing with (to correctly handle an error condition without crashing).<br>
+<br>
+base/gstext.c<br>
+base/gxtext.h<br>
+pcl/pl/plfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-01 11:57:38 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f8e77523b98f0e95e0d93fa282d6955f8f537eea">f8e77523b98f0e95e0d93fa282d6955f8f537eea</a>
+<blockquote>
+<p>
+ Bug 696516: tiffsep(1) validation of compression method<br>
+<br>
+ Use a meaningful value of bits-per-component to validate the compression setting<br>
+ for tiffsep and tiffsep1.<br>
+<br>
+ Since both those devices ignore the device BitsPerComponent setting, we cannot<br>
+ rely on that, so check explicitly for tiffsep or tiffsep1 and use an<br>
+ appropriate bpc value depending which is in force.<br>
+<br>
+ Also, change the comment on the default tiffsep(1) device(s) BitsPerComponent<br>
+ value from &quot;Not used&quot; to &quot;Ignored&quot; which is more accurate, since bpc can and<br>
+ does change, but has no effect on those two devices.<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-03 11:56:00 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5c1ae7a77f19ff3e7521a80c276335e473ba2b60">5c1ae7a77f19ff3e7521a80c276335e473ba2b60</a>
+<blockquote>
+<p>
+ VS2015: Workaround apparent C runtime bug.<br>
+<br>
+ The behaviour of _read appears to have changed in VS2015 in<br>
+ a way that is contrary to the documentation. If a _read call<br>
+ is given a single &quot;return&quot; keypress, it puts \n in the buffer<br>
+ but returns 0 as the number of things read.<br>
+<br>
+ This, according to the documentation means 'EOF'. We therefore<br>
+ have some sneaky code to guess when it's lying to us.<br>
+<br>
+psi/dwmainc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-02 15:10:21 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=57df4f3b0234e4231f024b53e0428ead17e95c3c">57df4f3b0234e4231f024b53e0428ead17e95c3c</a>
+<blockquote>
+<p>
+ VS2015 builds: Tweak to fix bool problems.<br>
+<br>
+ Always include windows_.h first, wherever we include it.<br>
+ This gets the windows definition of 'bool' in, and we can then<br>
+ override it with our own.<br>
+<br>
+base/gp_mswin.c<br>
+base/gp_ntfs.c<br>
+base/gp_win32.c<br>
+base/gp_wsync.c<br>
+base/gsicc_monitorcm.c<br>
+base/gstype42.c<br>
+base/stdpre.h<br>
+devices/gdevmswn.h<br>
+devices/gdevmsxf.c<br>
+devices/gdevwpr2.c<br>
+psi/msvc.mak<br>
+psi/zwinutf8.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-02 10:27:05 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb799fa99685fc9cd0177242a5f923180eda135c">bb799fa99685fc9cd0177242a5f923180eda135c</a>
+<blockquote>
+<p>
+ Revert and fix commit a7655b5d2fc42217eac71efd01f22fe3cca33d4a<br>
+<br>
+ In the previous commit I misunderstood the return value meanings from<br>
+ s_DCT_byte_params leading to an incorrect default (and causing many<br>
+ diffs)<br>
+<br>
+ This commit properly sets the return value so that, if the key is not<br>
+ found we use the correct default.<br>
+<br>
+ Again, lots of diffs expected here.<br>
+<br>
+base/sdcparam.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-01 15:51:05 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a7655b5d2fc42217eac71efd01f22fe3cca33d4a">a7655b5d2fc42217eac71efd01f22fe3cca33d4a</a>
+<blockquote>
+<p>
+ PS interpreter - further fix for DCTEncode params arrays<br>
+<br>
+ commit 96f79a46a559af75995bf021cc85438c99509bbb missed the fact that,<br>
+ when a parameter is returned from parameter processing we need to<br>
+ return a positive code &gt; 0, otherwise the caller assumes that there was<br>
+ no error, but no key found either.<br>
+<br>
+ This actually makes the HSamples, VSamples and QuantTables work for<br>
+ the DCTEncode filter.<br>
+<br>
+ This causes a *very* large number of diffs, because the pdfwrite (and<br>
+ ps2write) devices now actually use the parameters defined for these values<br>
+ resulting in small differences in DCT (JPEG) output.<br>
+<br>
+ Also the Quality Logic test 23-12E.ps tests this feature and now shows<br>
+ a difference.<br>
+<br>
+base/sdcparam.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-29 13:51:02 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b826c1774a0b89e237590232be227642734c3a5e">b826c1774a0b89e237590232be227642734c3a5e</a>
+<blockquote>
+<p>
+ Bug 696553: reduce redundant loading of (some) substitute fonts<br>
+<br>
+ Loading fonts from a Fontmap mapping, the actual font name from the font<br>
+ file usually does not match the Postscript font name.<br>
+<br>
+ When that happens, a subsequent attempt to load the same font name will not<br>
+ find the font in the font directory, and this triggers the whole font file<br>
+ loading process via Fontmap.<br>
+<br>
+ Add code to create a new font with the original Postscript font name.<br>
+<br>
+ Also, undefine the orginal font from the font file, to avoid cluttering up<br>
+ the FontDirectory with pointless entries.<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-01 10:32:52 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=96f79a46a559af75995bf021cc85438c99509bbb">96f79a46a559af75995bf021cc85438c99509bbb</a>
+<blockquote>
+<p>
+ PS interpreter - fix array processing for the DCTEncode params dict<br>
+<br>
+ The PLRM says that HSamples, VSamples can be strings, arrays or packed<br>
+ arrays and QuantTables can be an array or a packed array (of strings,<br>
+ arrays or packed arrays). If they are array types, then the values must<br>
+ be integers.<br>
+<br>
+ In sdcparam.c where we process the paramters we were checking and<br>
+ processing strings, and if the data was not a string we tried to handle<br>
+ it as an array of floats (which is technically incorrect), but we never<br>
+ tried to process the data as an int array.<br>
+<br>
+ This led to the routine throwing a typecheck error, so the values were<br>
+ never used.<br>
+<br>
+ This commit adds processing for int arrays (I've left the float array<br>
+ processing intact, even though its wrong).<br>
+<br>
+ No differences expected, this is really only used by pdfwrite.<br>
+<br>
+base/sdcparam.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-30 10:45:29 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9399eefc54d7c14b9ebf56ca585f4946abaf555e">9399eefc54d7c14b9ebf56ca585f4946abaf555e</a>
+<blockquote>
+<p>
+ pdfwrite - fix alpha duplication<br>
+<br>
+ Bug #696524 &quot;gs: Some elements discarded in PDF with 3d transform&quot;<br>
+<br>
+ The bug title is incorrect. In fact the problem is complex; we have two<br>
+ forms, each of which is preceded by a graphics state, each graphics state<br>
+ modifies the constant alpha, but one has alpha is shape false, while the<br>
+ other has it as true.<br>
+<br>
+ This causes confusion when updating the alpha as we cannot have AIS<br>
+ both true and false at the same time, so we don't know which alpha to<br>
+ use.<br>
+<br>
+ This commit checks the graphics state to see which alpha usage is the<br>
+ default state and sets AIS from that, as appropriate for whether the<br>
+ opacity or shape is set.<br>
+<br>
+ This is a little hacky but I think its safe enough and fixes what is a<br>
+ rather rare problem.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-29 10:30:13 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=471af1e1961054327484bf86a474669f37634c7f">471af1e1961054327484bf86a474669f37634c7f</a>
+<blockquote>
+<p>
+ Bug 696554: cleanup after failing to read font value<br>
+<br>
+ In /.findfontvalue, if we hit an error tokenizing the contents of the font file<br>
+ the stack cleanup was incorrect.<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-28 15:37:14 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=29757551f9935292418df94d588693e13e3afeec">29757551f9935292418df94d588693e13e3afeec</a>
+<blockquote>
+<p>
+ PDF interpreter - repair xref processing with PDFSTOPONERROR<br>
+<br>
+ commit c9f24068810f762f2a54d33d7cb8040eff080368 accidentally broke the<br>
+ processing of xref tables with -dPDFSTOPONERROR, any xref would lead to<br>
+ an error and premature exit.<br>
+<br>
+ This commit repairs the processing as intended, so that *valid* xref<br>
+ tables won't cause us to stop with an error.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-28 12:24:05 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1204680ae25d0cfa1ab815952b3009a024c6b9ec">1204680ae25d0cfa1ab815952b3009a024c6b9ec</a>
+<blockquote>
+<p>
+ pdfwrite - prevent emitting a negative value for linewidth<br>
+<br>
+ Bug #696548 &quot;Regression: acrobat cannot open ghostscript generated pdf file starting with d43d5653c0e052c172ce1db9d9b04d4ba7360de3&quot;<br>
+<br>
+ The PDF reference states that linewidth is a non-negative number, and<br>
+ we were emitting a negative value in some conditions.<br>
+<br>
+ Bizarrely (given the horrendously broken PDF files Acrobat *will* read)<br>
+ this causes an error in Acrobat, though not in practically every other<br>
+ PDF consumer.<br>
+<br>
+ This commit simply forces the value to be positive.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-28 11:38:53 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d6d499ba4bb4fa27d0f6970a5e98b3372f52d05c">d6d499ba4bb4fa27d0f6970a5e98b3372f52d05c</a>
+<blockquote>
+<p>
+ PDF interpreter - Handle inline images in a text block<br>
+<br>
+ Bug #696545 &quot;Missing inline images&quot;<br>
+<br>
+ Similar to bug #695897, where image XObjects were being drawn inside<br>
+ a text block (between BT and ET), in this case we have inline images<br>
+ (ID) inside a text block.<br>
+<br>
+ This is, according to the specification, illegal but Acrobat simply<br>
+ ignores that and draws the image using the CTM in force when the BT<br>
+ operator is encountered.<br>
+<br>
+ This commit just reuses the code for Bug 695897 and applies it to the<br>
+ ID operator as well.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-27 18:42:06 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a8b8922b4608d6bf021714100dcd3b85ac1a8c86">a8b8922b4608d6bf021714100dcd3b85ac1a8c86</a>
+<blockquote>
+<p>
+ Make waterfal.ps standalone<br>
+<br>
+ Originally waterfal.ps called .runlibfile to run landscap.ps (in the lib<br>
+ directory) to draw the page landscape.<br>
+<br>
+ Since .runlibfile is non-standard Postscript, and lib is no longer in our<br>
+ default search path, *and* it is only five lines of Postscript, it's a<br>
+ needless complication - better for the file to be self contained.<br>
+<br>
+examples/waterfal.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-26 08:47:30 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3bbced3ab549bef42f47fb28c10287b32826d1b4">3bbced3ab549bef42f47fb28c10287b32826d1b4</a>
+<blockquote>
+<p>
+ Fix for Bug 696514. rinkj device<br>
+<br>
+ The rinkj device was dereferencing a NULL pointer related<br>
+ to the ICC device link profile that it can be set up to use.<br>
+ Fixing this issued and playing around with a various command<br>
+ line options revealed a problem in error trapping in the<br>
+ icc code where you could cause a crash by having a bogus<br>
+ device link profile specified on the command line. This<br>
+ fixes that crash also.<br>
+<br>
+base/gsciemap.c<br>
+base/gsicc_create.c<br>
+base/gsicc_manage.c<br>
+base/gsicc_manage.h<br>
+devices/gdevrinkj.c<br>
+xps/xpscolor.c<br>
+xps/xpsimage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-26 16:48:22 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e270fffe76164b07b29dec2358ef01003866674">5e270fffe76164b07b29dec2358ef01003866674</a>
+<blockquote>
+<p>
+ PS Interpeter - correct the error from setfileposition on invalid file<br>
+<br>
+ Noticed while working on a different problem, the check_file macro in<br>
+ stream.h returns invalidaccess if a file is invalid, the PLRM (see<br>
+ setfileposition operator on p669 of the 3rd edition) says that the<br>
+ error return should be ioerror.<br>
+<br>
+base/stream.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-26 15:45:55 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=704617563f8640f6b229ffd65185f79efb0ae195">704617563f8640f6b229ffd65185f79efb0ae195</a>
+<blockquote>
+<p>
+ PDF interpreter - more robustness in the face of broken Info dicts<br>
+<br>
+ Bug #696541 &quot;ps2pdf fails (typecheck) on a file that can be opened by some other viewers&quot;<br>
+<br>
+ This only fails if the device states it can accept document info,<br>
+ currently that's limited to pdfwrite and friends.<br>
+<br>
+ The problem is that the Info dictionary contains invalid strings, and<br>
+ those cause the parsing to break with an error.<br>
+<br>
+ This commit simply ignores the error (thereby bit-bucketing the Info)<br>
+ just like other devices.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-25 15:50:14 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9dbc622e4828089e4f2ad63203eb2a32b0e1737">d9dbc622e4828089e4f2ad63203eb2a32b0e1737</a>
+<blockquote>
+<p>
+ Fix for bug 696517<br>
+<br>
+ bitrgbtags device needed to have its get_color_comp_index<br>
+ set to the gx_default_DevRGB_get_color_comp_index.<br>
+<br>
+devices/gdevbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-25 12:27:58 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9a5c3505255381bcfd4ec3b5265142927d56e264">9a5c3505255381bcfd4ec3b5265142927d56e264</a>
+<blockquote>
+<p>
+ Bug 696521. Fix for bit rotted contributed devices.<br>
+<br>
+ These devices now run to completion. I can't verify if the output<br>
+ is correct however.<br>
+<br>
+contrib/japanese/gdevmjc.c<br>
+devices/gdevphex.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-25 09:59:23 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e07b8891aa1bebf258f3936fd537e169aa45c05">6e07b8891aa1bebf258f3936fd537e169aa45c05</a>
+<blockquote>
+<p>
+ Fix #69643 Margins don't work in XL.<br>
+<br>
+ The PXL interpreter was setting the hardware margins to 0 overriding<br>
+ the setting from the command line. We simply remove the setting and<br>
+ let the device set to the default parameters if it isn't set on the<br>
+ command line or explicitly elsewhere.<br>
+<br>
+pcl/pxl/pxsessio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-23 08:13:45 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ccb0968c696ab80eb19071e0f3b93c850759856a">ccb0968c696ab80eb19071e0f3b93c850759856a</a>
+<blockquote>
+<p>
+ Fix typo in last commit.<br>
+<br>
+pcl/pcl/rtgmode.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-22 12:17:29 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f56510cefb91ee24becd43e5f0d9baa7be53367d">f56510cefb91ee24becd43e5f0d9baa7be53367d</a>
+<blockquote>
+<p>
+ Fix badly scaled image (696530) and refactor.<br>
+<br>
+ Many RTL plotters do not restrict resolutions so we allow any resolution<br>
+ in RTL mode. Further the the function which sets the resolution was<br>
+ awkward: wrongly commented with a complex nested ternary operator. We<br>
+ now use a simpler lookup table and hopefully have a better explanation<br>
+ of what we are doing in the comments.<br>
+<br>
+pcl/pcl/rtgmode.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-22 14:30:39 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c30df20c44d608b9c0832e5ef117f08cd358895b">c30df20c44d608b9c0832e5ef117f08cd358895b</a>
+<blockquote>
+<p>
+ pdfwrite - correct a buffer size when converting colours<br>
+<br>
+ Bug #696531 &quot;Ghostscript segfaults on some PDF files&quot;<br>
+<br>
+ When converting DeviceN (and some other) spaces to a different colour<br>
+ space we do not convert the actual space, we convert the *base* space<br>
+ in order to better preserve the original colour intent.<br>
+<br>
+ For example a Separation ink of 'PANTONE 4' might have a base space (to<br>
+ which the PANTONE colour will be converted if that ink is not available)<br>
+ of DeviceCMYK. If we set the ColourConversionStrategy to RGB then we can<br>
+ either convert every pantone colour to CMYK then convert the CMYK to RGB<br>
+ or we can alter the base space from CMYK to RGB, we choose to alter the<br>
+ base space.<br>
+<br>
+ To do this we need to create a function which maps the input colours to<br>
+ the base space. This function needs a data source, and the buffer being<br>
+ allocated to hold the data had its size incorrectly calculated.<br>
+<br>
+ This led to running off the end of the buffer and corrupting memory.<br>
+ This commit corrects the buffer size calculation.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-22 13:55:24 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=19abd5d192aeab76f521791148f8b586414504a1">19abd5d192aeab76f521791148f8b586414504a1</a>
+<blockquote>
+<p>
+ Bug 696522: Set up copy_planes for all planar devices.<br>
+<br>
+ Previously we never set up the copy_planes dev proc for planar<br>
+ devices that had a single plane, but it seems we need to.<br>
+<br>
+base/gdevmpla.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-21 09:51:43 -0800
+</strong>
+<br>Brian Norris &lt;computersforpeace@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0c176a91d53c85cdacd7917c76d6f659125ac3f6">0c176a91d53c85cdacd7917c76d6f659125ac3f6</a>
+<blockquote>
+<p>
+ Bug 696528: kill off ijs-config<br>
+<br>
+ The custom ijs-config tool gives different include paths than pkg-config<br>
+ (-I${INCLUDE_PATH}/ijs vs. -I${INCLUDE_PATH}/), which can be confusing<br>
+ for developers using this library. pkg-config is more standard anyway,<br>
+ so just kill the custom tool.<br>
+<br>
+ijs/Makefile.am<br>
+ijs/Makefile.in<br>
+ijs/configure<br>
+ijs/configure.ac<br>
+ijs/ijs-config.1<br>
+ijs/ijs-config.in<br>
+ijs/libtool<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-21 10:48:54 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd63655e199fbfcda8e52c873b3a28bf27914c93">fd63655e199fbfcda8e52c873b3a28bf27914c93</a>
+<blockquote>
+<p>
+ Enable &quot;accurate curves&quot; by default.<br>
+<br>
+ This helps to address bug 696466 (and it's earlier related<br>
+ bug 688434).<br>
+<br>
+base/gxistate.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-21 18:09:09 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e25594f98886a164f4465505595691aca8136deb">e25594f98886a164f4465505595691aca8136deb</a>
+<blockquote>
+<p>
+ Bug 696466: Preliminary work on setaccuratecurves.<br>
+<br>
+ If accurate curves are enabled, and the same path is filled<br>
+ and then stroked, we can get very different results when the<br>
+ flatness is high.<br>
+<br>
+ This can look very odd. Ensure that we flatten paths in the<br>
+ same way for both fills and strokes when accurate curves is<br>
+ enabled.<br>
+<br>
+base/gxfill.c<br>
+base/gxpath.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-20 20:15:42 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=064559beaa05329b1d9e6283e6d17a8c87765e7f">064559beaa05329b1d9e6283e6d17a8c87765e7f</a>
+<blockquote>
+<p>
+ Bug 696466: Fix incorrect line joins in strokes.<br>
+<br>
+ When we flatten a path for stroking, we keep 'notes' on each<br>
+ line to tell us whether each line was present in the original<br>
+ path, or whether it was generated by the flattening process.<br>
+<br>
+ We further note which lines were generated by the flattening<br>
+ process, and are NOT the first one in a given curve. We do this<br>
+ so that we can apply the 'curve join' to the start of such line<br>
+ segments.<br>
+<br>
+ The &quot;curve_join&quot; is an optimisation to speed path drawing. When<br>
+ we've flattened a curve, it makes no sense to draw (say) a round<br>
+ join between each flattened line, because they will be almost<br>
+ parallel, and the join will be visually indistinguishable from<br>
+ a simple bevel (in most cases).<br>
+<br>
+ It's still important that we draw the correct curve between any<br>
+ preceeding line and the first line in the curve though.<br>
+<br>
+ Sometimes, (especially when setaccuratecurves is turned on), the<br>
+ first line in a flattened curve may be degenerate (i.e. 0 length).<br>
+ The stroker spots degenerate sections and skips them. Unfortunately<br>
+ that means it also skips the note about it being the first line<br>
+ from a curve, and the wrong join is used.<br>
+<br>
+ The fix implemented here is to alter the stroker so that when<br>
+ it skips a degenerate section, it checks for the 'first line<br>
+ from an arc' flag and carries it forwards.<br>
+<br>
+base/gxstroke.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-18 10:16:09 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=68dc00f46d402685f2060ce7ae1b64056996556f">68dc00f46d402685f2060ce7ae1b64056996556f</a>
+<blockquote>
+<p>
+ Improve interpolated image processing collecting runs of non-pure colors.<br>
+<br>
+ It the colorspace output is not &quot;pure&quot;, runs were not being detected.<br>
+ Use code similar to the pure color case detecting runs when the interpolated<br>
+ color (psrc) is the same.<br>
+<br>
+ This allows the file on Bug 696140 to complete (eventually).<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-19 12:32:37 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1e153e19cfd9660ea81c738ea8be3dd9183b3bbc">1e153e19cfd9660ea81c738ea8be3dd9183b3bbc</a>
+<blockquote>
+<p>
+ Fix dereference of NULL pointer<br>
+<br>
+ When gscms_get_link is called with a device link profile as the source<br>
+ and no destination profile, we had a dereferencing issue. Thanks<br>
+ to Henry for seeing this.<br>
+<br>
+base/gsicc_lcms2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-18 16:50:46 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=10916df6310cb94c4074302cf485f535d76b4533">10916df6310cb94c4074302cf485f535d76b4533</a>
+<blockquote>
+<p>
+ PS/PDF interpreters - fix Text rendering mode 3 with large glyphs<br>
+<br>
+ Bug #696513 &quot;Regression: Ghostscript renders unexpected boxes starting with bb246f03fab855325a73fdc982ed9802c1f16772&quot;<br>
+<br>
+ The commit noted as causing the regression is, frankly, incorrect.<br>
+<br>
+ When handling text we have two possible paths; one with caching and,<br>
+ for large glyphs at high resolution, one without caching.<br>
+<br>
+ When doing a stringwidth or Tr3 with a cached glyph, we simply avoid<br>
+ rendering the cached bitmap. However with non-cached glyphs its not so<br>
+ simple. We run the CharProc/BuildGlyph procedure as PostScript, which<br>
+ means all the operations are indistinguishable from regular PostScript.<br>
+<br>
+ So, when performing a stringwidth using a non-cached glyph, and prior to<br>
+ the noted commit, when using Tr 3, we push the null device in order to<br>
+ prevent the glyphs actually marking the page, and then grestore back to<br>
+ original device when we finish.<br>
+<br>
+ The commit noted broke that by failing to push the null device, meaning<br>
+ that uncached glyph in rendering mode 3 did actually mark the raster.<br>
+<br>
+ The first part of the commit reverses the earlier commit, and implements<br>
+ skipping the currentpoint by explicitly checking the 'operation' before<br>
+ performing it. In fact this is no longer necessary as the PDF interpreter<br>
+ now checks this at an earlier stage and the original bug can no longer<br>
+ be reproduced this way anyway.<br>
+<br>
+ However, this exposed two new problems which had previously been masked,<br>
+ but were nevertheless potential bugs:<br>
+<br>
+ The 'procs' structure in a device was originally intended to be fully<br>
+ populated, each proc should either have a device-specific method or a<br>
+ graphics library default. This means there is no need to check the value<br>
+ of a device proc, we can always execute it.<br>
+<br>
+ Unfortunately, as noted before, this has been broken for some time in<br>
+ the code base. There are several methods which do not have graphics<br>
+ library defaults, and are not set up by the default device macros. This<br>
+ can lead to the 'procs' members being NULL.<br>
+<br>
+ There are several places in the code where we explicitly check for a<br>
+ device method being NULL before execution in order to catch this<br>
+ condition. Ideally we should go back and fix these properly so that we<br>
+ can go back to simply executing the device method without checking. But<br>
+ this is a big job.....<br>
+<br>
+ So here we add two more cases where we check a device method<br>
+ 'update_spot_equivalent_colors' to be sure its not NULL before we<br>
+ execute it.<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gscdevn.c<br>
+base/gscsepr.c<br>
+base/gxchar.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-18 08:57:10 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=da79b51a8bc3aeb4c4e55ae4ce6ebe07b34b93cf">da79b51a8bc3aeb4c4e55ae4ce6ebe07b34b93cf</a>
+<blockquote>
+<p>
+ Fix xpswrite/gprf builds with shared zlib.<br>
+<br>
+ Both those devices depend on zlib, but lacked the Makefile magic to cope with<br>
+ both &quot;local&quot; and shared zlib libraries.<br>
+<br>
+devices/devs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-15 15:46:07 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1e6b986c30ca319ad87d5e1fea9a327d74f3de83">1e6b986c30ca319ad87d5e1fea9a327d74f3de83</a>
+<blockquote>
+<p>
+ PDF interpreter - improved Acrobat matching with illegal '--x' numbers<br>
+<br>
+ It seems that Acrobat handles malformed numbers of the form '--&lt;number&gt;'<br>
+ by ignoring the duplicated negations. GS was treating these as 0.<br>
+<br>
+ This commit adds to the special 'invalid number' scanning by treating<br>
+ numbers with any number of negative signs as a single negative.<br>
+<br>
+ Progressions in sumatra/2238_-_text_wrongly_aligned.pdf and<br>
+ sumatra/2238_-_doubly_negated_numbers.pdf<br>
+<br>
+psi/iscan.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-14 14:21:22 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=193ecef5be3f755e8285a55776e0aacdbaf249c1">193ecef5be3f755e8285a55776e0aacdbaf249c1</a>
+<blockquote>
+<p>
+ PDF interpreter - allow unlimited growth of stacks<br>
+<br>
+ Bug #696487 &quot;Error: /undefined in --run-- reading PDF file&quot;<br>
+<br>
+ The problem is caused by the fact that we use a dictionary to store<br>
+ ExtGstate changes, so every time we do a gsave we need a new dictionary<br>
+ to hold those changes. The file is sub-optimal and contains thousands<br>
+ of nested gsaves, which means we need thousands of dictionaries, and<br>
+ quickly fill up the dictionary stack.<br>
+<br>
+ We could specify a larger maximum dictionary stack, but there is no<br>
+ obvious limit to files of this type, one page was seen to have in excess<br>
+ of 6,000 nested gsaves. Instead we permit unchecked stack growth by<br>
+ setting MaxDictStack (or MaxOpStack / MaxExecStack) to -1 so that the<br>
+ stack will grow as required until we run out of memory.<br>
+<br>
+ Bug #696511 has been opened as an enhancement to move the ExtGstate<br>
+ parameters into the regular graphics state which has to be better than<br>
+ the current kludge.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+psi/istack.c<br>
+psi/zusparam.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-13 11:27:59 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=665d68106d0a0853273d0d0d4a555f22cd984c0b">665d68106d0a0853273d0d0d4a555f22cd984c0b</a>
+<blockquote>
+<p>
+ Fix libjpeg jconfig.h dependency<br>
+<br>
+ Our customised jconfig.h depends on our own arch.h header - add that to<br>
+ jpeg.mak<br>
+<br>
+base/jpeg.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-12 15:59:03 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb6963e41cedb4ff68db0e0ff61d4de2668fdc5e">bb6963e41cedb4ff68db0e0ff61d4de2668fdc5e</a>
+<blockquote>
+<p>
+ Tidy up the error code and string return in arg_next()<br>
+<br>
+ Previously the arg_next() return value was the string containing the argument<br>
+ and the error code (if any) was returned via a pointer parameter to an int<br>
+ variable.<br>
+<br>
+ Change it so the return value is the error code, and the argument string is<br>
+ returned via a parameter.<br>
+<br>
+base/gsargs.c<br>
+base/gsargs.h<br>
+pcl/pl/plmain.c<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-12 10:22:59 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=05aa8a4d63935183a0902d33892041ea3f7769da">05aa8a4d63935183a0902d33892041ea3f7769da</a>
+<blockquote>
+<p>
+ Fix crash in x64 Windows display device<br>
+<br>
+ The code used for the 64 bit display device was broken due<br>
+ to an improper initialization of the pointer size during<br>
+ the class registration as well as the use of the wrong<br>
+ API where we were using SetWindowLong/GetWindowLong instead of<br>
+ SetWindowLongPtr/GetWindowLongPtr. Thanks to Robin for<br>
+ helping with this.<br>
+<br>
+pcl/pl/plwimg.c<br>
+psi/dwimg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-12 14:43:17 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fde64dbcf02a2548145d662196e83cd0319cece5">fde64dbcf02a2548145d662196e83cd0319cece5</a>
+<blockquote>
+<p>
+ PS interpreter - properly handle errors when preparing to run CDevProc<br>
+<br>
+ Bug #696503 &quot; Regression: segfault with pdfwrite starting with 2deb460ef02e2802546e09979243764ede2d4173&quot;<br>
+<br>
+ The bug title is something of a misnomer, the stated commit does not<br>
+ cause the problem, it simply shifts memory around and exposes the<br>
+ already existing bug.<br>
+<br>
+ The problem is caused by a faulty CIDFont, and the default behaviour of<br>
+ the PDF interpreter, which does not halt when an error is encountered.<br>
+<br>
+ When running CIDFonts we need to execute a CDevProc in order to add the<br>
+ PDF /W or /W2 values to the width of the glyph. However, the font we use<br>
+ when setting up to run the CDevProc is broken so badly that we throw an<br>
+ error from z1_set_cache. We return the error, but we don't terminate<br>
+ the text enumerator, which leads to us continuing with the text. Not<br>
+ surprisingly this eventually crashes.<br>
+<br>
+ This commit terminates the 'show' operation if it detects an error when<br>
+ setting up to run the CDevProc.<br>
+<br>
+ No differences expected<br>
+<br>
+psi/zchar.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-11 16:10:52 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15b3f5cbf12461e2ed318e793669b7c34e32089b">15b3f5cbf12461e2ed318e793669b7c34e32089b</a>
+<blockquote>
+<p>
+ text extraction - restore the GC macro<br>
+<br>
+ Robin asserts that this macro can have no effect and removed it as it<br>
+ causes a compiler warning.<br>
+<br>
+ Checking this properly will require more time than I have conveniently<br>
+ at the moment, and I seem to recall that this was required, in the past<br>
+ at least.<br>
+<br>
+ Because this might result in a difficult to track down GC problem, and<br>
+ was only removed to prevent a compiler warning, I'm restoring the old<br>
+ code until I can get the time to walk through it properly and determine<br>
+ if it is genuinely unused, and if it is, whether it should be.....<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-11 14:13:42 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d43e2ebb241d5a6ed63a2d0cc2c7ff0909498510">d43e2ebb241d5a6ed63a2d0cc2c7ff0909498510</a>
+<blockquote>
+<p>
+ Remove legacy lower case arch_* macros<br>
+<br>
+ Most of the ARCH_* macros had lower case equivalents for &quot;backwards<br>
+ compatibility&quot; - it's been long enough.....<br>
+<br>
+base/gdevdevn.c<br>
+base/gdevm1.c<br>
+base/gdevm16.c<br>
+base/gdevm2.c<br>
+base/gdevm24.c<br>
+base/gdevm32.c<br>
+base/gdevm4.c<br>
+base/gdevm40.c<br>
+base/gdevm48.c<br>
+base/gdevm56.c<br>
+base/gdevm64.c<br>
+base/gdevm8.c<br>
+base/gdevmem.c<br>
+base/gdevmem.h<br>
+base/gsalloc.c<br>
+base/gsbitops.c<br>
+base/gsbitops.h<br>
+base/gsccode.h<br>
+base/gscie.h<br>
+base/gsfont.c<br>
+base/gsovrc.c<br>
+base/gspaint.c<br>
+base/gsparam.c<br>
+base/gxalloc.h<br>
+base/gxbitops.h<br>
+base/gxchar.c<br>
+base/gxcht.c<br>
+base/gxcindex.h<br>
+base/gxcvalue.h<br>
+base/gxdcolor.c<br>
+base/gxdevcli.h<br>
+base/gxdevice.h<br>
+base/gxfapi.c<br>
+base/gxfill.c<br>
+base/gxfill.h<br>
+base/gxfrac.h<br>
+base/gxi12bit.c<br>
+base/gxidata.c<br>
+base/gxiscale.c<br>
+base/gxmclip.h<br>
+base/gxobj.h<br>
+base/gxoprect.c<br>
+base/gxpcmap.c<br>
+base/gxsample.c<br>
+base/gxtype1.h<br>
+base/gzht.h<br>
+base/scf.h<br>
+base/shc.h<br>
+base/smtf.c<br>
+base/spngp.c<br>
+base/std.h<br>
+contrib/gdevhl12.c<br>
+devices/gdev4693.c<br>
+devices/gdevbmpc.c<br>
+devices/gdevdsp.c<br>
+devices/gdevgprf.c<br>
+devices/gdevimgn.c<br>
+devices/gdevmgr.c<br>
+devices/gdevmswn.c<br>
+devices/gdevpcx.c<br>
+devices/gdevpsd.c<br>
+devices/gdevstc.c<br>
+devices/gdevstc.h<br>
+devices/gdevsun.c<br>
+devices/gdevtfax.c<br>
+devices/gdevtfnx.c<br>
+devices/gdevtsep.c<br>
+devices/gdevupd.c<br>
+devices/gdevxcf.c<br>
+devices/vector/gdevpdfb.c<br>
+devices/vector/gdevpdfv.c<br>
+pcl/pcl/pccoord.h<br>
+pcl/pcl/pcommand.h<br>
+pcl/pl/plchar.c<br>
+psi/ialloc.c<br>
+psi/idict.c<br>
+psi/idict.h<br>
+psi/igcref.c<br>
+psi/igcstr.c<br>
+psi/iref.h<br>
+psi/zdouble.c<br>
+psi/zusparam.c<br>
+toolbin/color/icc_creator/ICC_Creator/icc_create.cpp<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-09 08:09:06 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9bf5ab79cf5a0e9d6eee490fe1859c6d6aa28ca5">9bf5ab79cf5a0e9d6eee490fe1859c6d6aa28ca5</a>
+<blockquote>
+<p>
+ Fix typo in Make.htm.<br>
+<br>
+ Spotted by Brian Norris.<br>
+<br>
+doc/Make.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-08 15:42:30 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b7b278daa5a8290681de6ad157060fb2e9068ea">4b7b278daa5a8290681de6ad157060fb2e9068ea</a>
+<blockquote>
+<p>
+ Bug 696497 (part 2): fix support for building with a JPX decoder<br>
+<br>
+base/lib.mak<br>
+psi/int.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-08 13:54:22 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=57fbbff9f296ddf75d3deafb0094543a04c5450b">57fbbff9f296ddf75d3deafb0094543a04c5450b</a>
+<blockquote>
+<p>
+ Tweak LCMS2 endian setting in configure<br>
+<br>
+ The previous configure setting did not work with the latest endian stuff in<br>
+ lcms2.h when building a universal binary on Mac. This change resolves that.<br>
+<br>
+ Also change the order of the types we check when looking for a 64 bit data<br>
+ type for color indices - put the more commonly successful one first. Again,<br>
+ this is in support of universal binaries on Mac.<br>
+<br>
+ Noticed in passing.....<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-08 11:00:08 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e8632ae0ac799d4ad7cf253530576c53369baa7">2e8632ae0ac799d4ad7cf253530576c53369baa7</a>
+<blockquote>
+<p>
+ Bug 696498: clean up endian configure checks<br>
+<br>
+ The custom endian checks in the configure scripts were implemented because the<br>
+ built-in test in the most common autoconf version at the time was buggy on<br>
+ several platforms.<br>
+<br>
+ Those autoconf problems were addressed some time and several versions ago, and<br>
+ the newer versions are widely adopted, so we can safely use the built-in<br>
+ AC_C_BIGENDIAN() test.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-07 20:32:19 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=08eaf8b0f70c5ad000001e01d767e4093ba38eff">08eaf8b0f70c5ad000001e01d767e4093ba38eff</a>
+<blockquote>
+<p>
+ Tidy up cmap table selection in fapi_ft.c<br>
+<br>
+ Rearrange so we don't try to select the cmap table for non-TT fonts, and only<br>
+ once.<br>
+<br>
+ Also, make it explicit and comment the fact we ignore the return value from<br>
+ the Freetype call.<br>
+<br>
+base/fapi_ft.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-07 17:44:56 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d5fe73441042077ee8e76494a94b9fef5102c3d0">d5fe73441042077ee8e76494a94b9fef5102c3d0</a>
+<blockquote>
+<p>
+ Bug 696502: cope with PaintProc with more gsaves than grestores<br>
+<br>
+ If a pattern PaintProc executes one or more gsave operations, and fails to<br>
+ execute a matching number of grestore operations, we can end up trying to<br>
+ complete any transparency operations and cache the pattern tile with the<br>
+ wrong gstate in force.<br>
+<br>
+ pattern_paint_cleanup() already dealt with that, so add similar code to<br>
+ pattern_paint_finish() - as the information is already available on the<br>
+ stack.<br>
+<br>
+psi/zpcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-07 17:09:34 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=03456d0a01bfb2823261d200d40bf2975c947eb8">03456d0a01bfb2823261d200d40bf2975c947eb8</a>
+<blockquote>
+<p>
+ Bug 696499: avoid infinite recursion of Show calls<br>
+<br>
+ In the PDF interpreter we keep a procedure called &quot;/Show&quot; in the PDF<br>
+ graphics state dictionary, which gets changed to suit the current text<br>
+ rendering settings when we enter a text context.<br>
+<br>
+ To cope with a previous broken PDF we prevent changes to the graphics state<br>
+ under certain circumstances (specifically, after a 'W' operator).<br>
+<br>
+ In this case, we have a *very* broken PDF that attempts to draw some text<br>
+ in these circumstances - as the graphics state is is now &quot;locked&quot;, we<br>
+ cannot update /Show and we end up infinitely recursing.<br>
+<br>
+ We now special case /Show to prevent this.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-07 12:33:45 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b0f5a97512332ecf2ec7cf1cc413fe7305a4060e">b0f5a97512332ecf2ec7cf1cc413fe7305a4060e</a>
+<blockquote>
+<p>
+ Bug 696497: Fix support for building with no jbig2 decoder<br>
+<br>
+base/lib.mak<br>
+psi/int.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-07 09:03:10 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f5d28536e4518716fdfe974e580194c8f57871d">8f5d28536e4518716fdfe974e580194c8f57871d</a>
+<blockquote>
+<p>
+ Bug 696281: fix check for using shared freetype lib<br>
+<br>
+ When I changed the initial value of the Freetype source path variable (to reduce<br>
+ the risk of header search path problems), I neglected to fix the logic for<br>
+ falling back to the system's libfreetype2.<br>
+<br>
+ Credit to Rodrigo Rivas Costa for spotting the problem.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-07 09:15:54 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e29faf57ebe822b6f4c526b87a21c7cfeea768b">2e29faf57ebe822b6f4c526b87a21c7cfeea768b</a>
+<blockquote>
+<p>
+ Remove unused code from last commit<br>
+<br>
+ Last commit had a static function that I was thinking of using. I decided not to<br>
+ use it and forgot to remove it with the commit.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 10:41:58 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b1e15776353f8128dfec34a50a14feea12b2a072">b1e15776353f8128dfec34a50a14feea12b2a072</a>
+<blockquote>
+<p>
+ Refactor code in gxiscale.c<br>
+<br>
+ Quite a bit of code duplication present in gxiscale.c. This gets many of the color<br>
+ tests/initializations into common static functions and simplifies some of the tests.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-06 20:08:20 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e9a94db35178e398c759fdf31fa586e2913aab55">e9a94db35178e398c759fdf31fa586e2913aab55</a>
+<blockquote>
+<p>
+ VS builds: Ensure /FC is added to CFLAGS<br>
+<br>
+ /FC forces the compiler to report full paths in warnings and<br>
+ error messages. This enables throwback to work correctly in the<br>
+ IDE. This only affects builds with the DEVSTUDIO variable<br>
+ defined (i.e. those done from the VS solution).<br>
+<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-06 19:16:58 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bd067d202a7944554dafb82ee71e5ce4ab0adf90">bd067d202a7944554dafb82ee71e5ce4ab0adf90</a>
+<blockquote>
+<p>
+ Remove some wacky code from gxttfb<br>
+<br>
+ Originally by Igor, neither Chris nor I can understand the<br>
+ purpose of this purposeless code.<br>
+<br>
+ Chris has run against the test files and can't find any that trigger<br>
+ the case, so removing it seems harmless.<br>
+<br>
+base/gxttfb.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-31 13:55:01 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=645e21d1faa7024c6d6f4c690125453344f56c2d">645e21d1faa7024c6d6f4c690125453344f56c2d</a>
+<blockquote>
+<p>
+ Bug 649971: GS Stroking fix<br>
+<br>
+ 'Fat' strokes for curves of high curvature can go wrong due to the<br>
+ winding for the 'underjoin' below curves being in the wrong sense.<br>
+<br>
+ This commit introduces a tweaked version of the code that solves this<br>
+ at the cost of more complex paths. Sadly the cost for this seems to<br>
+ be a huge slowdown, so the new code is disabled for now unless we<br>
+ build with SLOWER_BUT_MORE_ACCURATE_STROKING defined.<br>
+<br>
+base/gxstroke.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-06 16:54:22 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab929e3d6568334e336a952794918fb92123e869">ab929e3d6568334e336a952794918fb92123e869</a>
+<blockquote>
+<p>
+ VS Solution: Add some missing files<br>
+<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-06 17:01:28 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c2ec1e45216df7311cf14dd0b1d261a0173d70c">6c2ec1e45216df7311cf14dd0b1d261a0173d70c</a>
+<blockquote>
+<p>
+ Silence some more warnings.<br>
+<br>
+base/gdevdbit.c<br>
+base/gdevflp.c<br>
+base/gdevoflt.c<br>
+base/genht.c<br>
+base/gp_unix_cache.c<br>
+base/gshtscr.c<br>
+base/gsicc_manage.c<br>
+base/gxclrast.c<br>
+base/gxclread.c<br>
+base/gxclthrd.c<br>
+base/gxcpath.c<br>
+base/gzcpath.h<br>
+base/ttinterp.c<br>
+contrib/pcl3/eprn/eprnrend.c<br>
+contrib/pcl3/eprn/gdeveprn.c<br>
+psi/iscan.c<br>
+psi/iscanbin.c<br>
+psi/zimage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-06 16:57:16 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=433d47aa3efdcf5cb26026dae27793ab901f12db">433d47aa3efdcf5cb26026dae27793ab901f12db</a>
+<blockquote>
+<p>
+ Fix some dropped errors in pdfwrite.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfo.c<br>
+devices/vector/gdevpdfu.c<br>
+devices/vector/gdevpdfx.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 17:05:19 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b30e140190d1b18eaf769a29855f5cfe20e4922e">b30e140190d1b18eaf769a29855f5cfe20e4922e</a>
+<blockquote>
+<p>
+ Squash warnings: postscript interpreter<br>
+<br>
+ Avoid some 'defined but not used' warnings in release builds.<br>
+<br>
+ Avoid a particularly bonkers warning about &quot;string&quot; + int not doing<br>
+ concatenation (and simplify the code a bit).<br>
+<br>
+ Remove some unused code.<br>
+<br>
+psi/ilocate.c<br>
+psi/iutil.c<br>
+psi/zcontext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 16:26:12 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0bcc257b1d94b8d5b1e800c25a1dd7149aa773c">e0bcc257b1d94b8d5b1e800c25a1dd7149aa773c</a>
+<blockquote>
+<p>
+ Fix macro error in gxfapi.h<br>
+<br>
+ We have a macro that defines an expression. Add params to ensure<br>
+ that if MACRO = A || B || C that !MACRO = !(A || B || C) not<br>
+ !A || B || C.<br>
+<br>
+base/gxfapi.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 17:00:38 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5f7bc19bbbc551142dd94733a94657ef571ea4f8">5f7bc19bbbc551142dd94733a94657ef571ea4f8</a>
+<blockquote>
+<p>
+ Fix some error returns in pdfwrite.<br>
+<br>
+ Various places in the pdfwrite device we call:<br>
+<br>
+ gs_note_error(x)<br>
+<br>
+ and then carry on. The compiler warnings report whinges about<br>
+ this.<br>
+<br>
+ We could fix it by doing:<br>
+<br>
+ (void)gs_note_error(x);<br>
+<br>
+ to simply shut the compiler warnings up, but it might be nicer to<br>
+ do it properly by changing the functions to correctly return<br>
+ errors.<br>
+<br>
+ I'm going to try the latter. Ken can kick me later.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfo.c<br>
+devices/vector/gdevpdfu.c<br>
+devices/vector/gdevpdfx.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 17:07:02 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9c8d7abbff0cb9f8856e18934528f7b81702627d">9c8d7abbff0cb9f8856e18934528f7b81702627d</a>
+<blockquote>
+<p>
+ VS solution: gdevpxut.c was in the wrong place.<br>
+<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 17:04:45 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd9a66f997bb57e9628a703774eddcf933475a34">fd9a66f997bb57e9628a703774eddcf933475a34</a>
+<blockquote>
+<p>
+ Squash warnings: various warnings in devices.<br>
+<br>
+ Nothing contentious here.<br>
+<br>
+devices/devs.mak<br>
+devices/gdevlp8k.c<br>
+devices/gdevpxut.c<br>
+devices/gdevupd.c<br>
+devices/rinkj/rinkj-screen-eb.c<br>
+devices/vector/gdevpdti.c<br>
+devices/vector/gdevpsds.c<br>
+devices/vector/gdevpx.c<br>
+devices/vector/gdevtxtw.c<br>
+devices/vector/gdevxps.c<br>
+devices/vector/whitelst.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 12:43:23 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e7e548af55b7034409e96483fee1d92313573973">e7e548af55b7034409e96483fee1d92313573973</a>
+<blockquote>
+<p>
+ Squash miscellaneous warnings.<br>
+<br>
+ Remove some redundant variables, and tweak code to avoid compiler<br>
+ warnings.<br>
+<br>
+contrib/gdevmd2k.c<br>
+contrib/pcl3/eprn/eprnfs.c<br>
+contrib/pcl3/eprn/eprnparm.c<br>
+contrib/pcl3/eprn/eprnrend.c<br>
+contrib/pcl3/eprn/gdeveprn.c<br>
+contrib/pcl3/eprn/gdeveprn.h<br>
+contrib/pcl3/eprn/mediasize.c<br>
+contrib/pcl3/eprn/mediasize.h<br>
+contrib/pcl3/eprn/pagecount.c<br>
+contrib/pcl3/eprn/pagecount.h<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+contrib/pcl3/src/pcl3opts.c<br>
+contrib/pcl3/src/pclcap.c<br>
+contrib/pcl3/src/pclcap.h<br>
+contrib/pcl3/src/pclcomp.c<br>
+contrib/pcl3/src/pclgen.c<br>
+contrib/pcl3/src/pclgen.h<br>
+contrib/pcl3/src/pclscan.c<br>
+contrib/pcl3/src/pclscan.h<br>
+contrib/pcl3/src/pclsize.c<br>
+contrib/pcl3/src/pclsize.h<br>
+devices/gdevhl7x.c<br>
+devices/gdevifno.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 07:39:18 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8fa72d8d85859cc4e8e52bd72231f1af8f7862a2">8fa72d8d85859cc4e8e52bd72231f1af8f7862a2</a>
+<blockquote>
+<p>
+ Fix minor typo in &quot;unbalanced q/Q&quot; message for &quot;too many q's&quot; case.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 09:49:24 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=53975ad9284df0a3aaaaca1f9bf7843620741086">53975ad9284df0a3aaaaca1f9bf7843620741086</a>
+<blockquote>
+<p>
+ Type 1 glyph name synthesis minor efficiency improvement<br>
+<br>
+ Some very small efficiency improvements - mainly, avoiding the need to<br>
+ re-init a scratch string with a loop.<br>
+<br>
+Resource/Init/gs_type1.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 19:50:53 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7c2b9d06f582996ed6c230aacfbf9a0dc88c1349">7c2b9d06f582996ed6c230aacfbf9a0dc88c1349</a>
+<blockquote>
+<p>
+ Clean up logic statements in gxiscale.c<br>
+<br>
+ The test to determine if we need to do an upfront decode during the color<br>
+ management of colors in the image scaling routine were confusing to<br>
+ say the least. This should clarify everything.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 19:44:35 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92e3e79af6a068f99a723aba56df6b2cd17bbb39">92e3e79af6a068f99a723aba56df6b2cd17bbb39</a>
+<blockquote>
+<p>
+ Squash clang warnings: Miscellaneous more warnings<br>
+<br>
+ All fairly self explainatory.<br>
+<br>
+base/gxfdrop.c<br>
+base/gxfill.c<br>
+base/gxhintn.c<br>
+base/gximono.c<br>
+base/gxshade6.c<br>
+base/gxstroke.c<br>
+base/gxttfb.c<br>
+base/sjpx_openjpeg.c<br>
+base/ttfmain.c<br>
+base/vdtrace.c<br>
+contrib/gdevgdi.c<br>
+contrib/gdevlx7.c<br>
+contrib/opvp/gdevopvp.c<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:56:28 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e3bc0494fc7084bd729a393e7bd6aebeeba6b6a9">e3bc0494fc7084bd729a393e7bd6aebeeba6b6a9</a>
+<blockquote>
+<p>
+ Squash clang warning: Avoid testing enums out of range.<br>
+<br>
+ clang complains that the code we use to test whether an enum value<br>
+ we get it out of range is testing for values outside the enum range.<br>
+ Fix it with an explicit cast.<br>
+<br>
+base/gstrans.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:54:17 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d957420f8b2949fb7cd7563ee52af2807eb9aa7a">d957420f8b2949fb7cd7563ee52af2807eb9aa7a</a>
+<blockquote>
+<p>
+ Squash warning: clist code<br>
+<br>
+ clang complains that the clist code is checking an enum return against<br>
+ out of range values. Rejig the code to use a switch rather than the<br>
+ chain of ifs (clearer IMAO), and handle the out of range values in the<br>
+ default case.<br>
+<br>
+base/gxclrast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:44:36 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=06f4897ea836544c48f15b7b3ffb7c4d1dc3a7d1">06f4897ea836544c48f15b7b3ffb7c4d1dc3a7d1</a>
+<blockquote>
+<p>
+ Remove unused structure definition from gsshade.c<br>
+<br>
+ Meshes are a superclass - never instantiated on their own.<br>
+<br>
+base/gsshade.c<br>
+base/gsshade.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:44:01 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94ce8c79aca2a839f369a3d61347facb1b5bef7e">94ce8c79aca2a839f369a3d61347facb1b5bef7e</a>
+<blockquote>
+<p>
+ Fix harmless tiny type typo in icc stuff.<br>
+<br>
+ This shuts clang up.<br>
+<br>
+base/gsicc_create.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:42:49 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=438f429625773d675a0649fb189e1378be2c6b29">438f429625773d675a0649fb189e1378be2c6b29</a>
+<blockquote>
+<p>
+ Squash warnings: gsht.c<br>
+<br>
+ Remove unused table, and pacify clang by casting an enum type to<br>
+ int before comparing it to out of range enum values.<br>
+<br>
+base/gsht.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:28:21 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9aec49be8f43a1a3a4bdad7a552ef9fcf039b2e7">9aec49be8f43a1a3a4bdad7a552ef9fcf039b2e7</a>
+<blockquote>
+<p>
+ Avoid unused function warning in release builds.<br>
+<br>
+base/gsfcmap1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:27:12 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d07583e43d472979250f57b80a50028226c667b">3d07583e43d472979250f57b80a50028226c667b</a>
+<blockquote>
+<p>
+ Fix use of uninitialised var.<br>
+<br>
+base/gscspace.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:24:31 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3a563b047e686038283474b9cef942ffa889f7a3">3a563b047e686038283474b9cef942ffa889f7a3</a>
+<blockquote>
+<p>
+ Fix typo: == should be =<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:22:43 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34857cb1514033237cf658f33157a991606cfe7d">34857cb1514033237cf658f33157a991606cfe7d</a>
+<blockquote>
+<p>
+ Remove unused definition.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:11:52 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3343e6fe21259e548cb93748f70e81c7255d7ec7">3343e6fe21259e548cb93748f70e81c7255d7ec7</a>
+<blockquote>
+<p>
+ Squash warnings: Use better unused var paradigm.<br>
+<br>
+ Using &quot;n = n;&quot; causes some versions of gcc to whinge. Trying<br>
+ (void)n; instead.<br>
+<br>
+base/gspmdrv.c<br>
+base/gsptype1.c<br>
+contrib/japanese/gdevmjc.c<br>
+devices/gdevcmykog.c<br>
+devices/gdevgprf.c<br>
+devices/gdevpsd.c<br>
+jpeg/jcsample.c<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 18:11:18 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80ceaaec2fe06505cb0a5059ad5f95ea28004f9f">80ceaaec2fe06505cb0a5059ad5f95ea28004f9f</a>
+<blockquote>
+<p>
+ Remove unused function from gdevddrw.c<br>
+<br>
+base/gdevddrw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 17:34:53 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24c51631502da158557e0f35368756dd95cdfb38">24c51631502da158557e0f35368756dd95cdfb38</a>
+<blockquote>
+<p>
+ Fix potential problem in transparency code<br>
+<br>
+ If we ever use more the 8 bits for color values, we'd try to<br>
+ pack numbers &gt; 255 into a byte in pdf14_cmykspot_put_image and<br>
+ pdf14_custom_put_image. Simple fix is to use 0xff rather than<br>
+ gx_max_color_value.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 17:33:25 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=46b2671d6526cb6aee37f786bb616c1513248a02">46b2671d6526cb6aee37f786bb616c1513248a02</a>
+<blockquote>
+<p>
+ Fix typo in gdevdbgr.c<br>
+<br>
+ Should be | not || as a &amp; (constant || constant) doesn't really<br>
+ make sense.<br>
+<br>
+base/gdevdgbr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 17:18:19 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7069210f88b764929a32713ab5032f02097b62b5">7069210f88b764929a32713ab5032f02097b62b5</a>
+<blockquote>
+<p>
+ Squash warnings: XPS MSVC<br>
+<br>
+ Add some casts etc to squash (most of) the warnings seen in<br>
+ an MSVC debug build of ghostxps.<br>
+<br>
+ We have an unavoidable &quot;cast away of const&quot; in a devspecop call,<br>
+ and various stupidities in the jpegxr lib left over.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpscff.c<br>
+xps/xpscolor.c<br>
+xps/xpsglyphs.c<br>
+xps/xpsgradient.c<br>
+xps/xpsjpeg.c<br>
+xps/xpsjxr.c<br>
+xps/xpspath.c<br>
+xps/xpspng.c<br>
+xps/xpstiff.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 16:39:31 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d697081ba9f0943977ed5ae8a62c7389046a5776">d697081ba9f0943977ed5ae8a62c7389046a5776</a>
+<blockquote>
+<p>
+ Squash warnings: MSVC PCL<br>
+<br>
+ Squash the warnings seen when building a debug PCL build on MSVC 2005.<br>
+<br>
+ Mostly addition of simple casts.<br>
+<br>
+pcl/pcl/pcjob.c<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pglabel.c<br>
+pcl/pcl/pglfill.c<br>
+pcl/pcl/rtgmode.c<br>
+pcl/pl/plchar.c<br>
+pcl/pl/pllfont.c<br>
+pcl/pxl/pximage.c<br>
+pcl/pxl/pxink.c<br>
+pcl/pxl/pxvendor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 16:16:18 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15d2abc903ed91f5f319687c2bc6959a38d36069">15d2abc903ed91f5f319687c2bc6959a38d36069</a>
+<blockquote>
+<p>
+ Windows PCL: Correct return type from int to void.<br>
+<br>
+ Nothing was ever returned.<br>
+<br>
+pcl/pl/plwmainc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 16:11:06 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5fe48dd2498953fc3df7f8f22655e91c77f97076">5fe48dd2498953fc3df7f8f22655e91c77f97076</a>
+<blockquote>
+<p>
+ Squash warnings: MSVC ones.<br>
+<br>
+ Tweak the code to avoid the warnings seen in the MSVC debug build of<br>
+ gs.<br>
+<br>
+ Mostly adding a few casts to make type changes explicit (and hence<br>
+ avoid the &quot;casting from int to double might lose data&quot; etc warnings).<br>
+<br>
+ Reorder the headers in a couple of places to avoid offsetof being<br>
+ redefined in a system header warnings.<br>
+<br>
+base/gpmisc.c<br>
+base/gsicc_create.c<br>
+base/gxclimag.c<br>
+base/gxfapi.c<br>
+devices/gdevdsp.c<br>
+devices/gdevfpng.c<br>
+devices/gdevgprf.c<br>
+devices/gdevpng.c<br>
+devices/gdevtifs.c<br>
+devices/vector/gdevpdfu.c<br>
+devices/vector/gdevpsds.c<br>
+devices/vector/gdevxps.c<br>
+psi/gsdll.c<br>
+psi/iscannum.c<br>
+psi/iutil.c<br>
+psi/zdpnext.c<br>
+psi/zdps1.c<br>
+psi/zmatrix.c<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 17:07:35 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=063c0a1eface77cdc2c4e657599521c7146ec8ca">063c0a1eface77cdc2c4e657599521c7146ec8ca</a>
+<blockquote>
+<p>
+ Bug 696480: add a missing 'pop' for stack cleanup.<br>
+<br>
+ When attempting to create all viable glyph name mappings in a Type 1 font,<br>
+ as a last ditch, we try to parse a unicode code point out of a string containing<br>
+ a'uniXXXX' type glyph name (where 'XXXX' is the code point). If that parsing<br>
+ fails, we were leaving the string on the stack, causing an error.<br>
+<br>
+Resource/Init/gs_type1.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 14:14:35 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7795f0f1f8700651d2a79f979a5d40885569dd11">7795f0f1f8700651d2a79f979a5d40885569dd11</a>
+<blockquote>
+<p>
+ Squash warnings: ICC code.<br>
+<br>
+ Various bits of the ICC code collects return values only to not<br>
+ check them. Fix that here.<br>
+<br>
+ In some cases this is because functions have a 'void' return type<br>
+ so there isn't a way to return an error. Change those return types<br>
+ and ensure that all callers check and propogate the errors.<br>
+<br>
+base/gdevdevn.c<br>
+base/gscms.h<br>
+base/gsdevice.c<br>
+base/gsequivc.c<br>
+base/gsequivc.h<br>
+base/gsicc_cache.c<br>
+base/gsicc_cache.h<br>
+base/gsicc_cms.h<br>
+base/gsicc_lcms.c<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_manage.c<br>
+base/gsicc_monitorcm.c<br>
+base/gsicc_nocm.c<br>
+base/gsicc_replacecm.c<br>
+base/gspaint.c<br>
+base/gxclimag.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 14:10:04 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=998c8bf7a2e409b6c4c29b8e535028a24404e7c5">998c8bf7a2e409b6c4c29b8e535028a24404e7c5</a>
+<blockquote>
+<p>
+ Squash warnings: Contrib devices<br>
+<br>
+ Workaround as many warnings as possible in the contrib devices.<br>
+<br>
+ Removing dead code, checking return values etc, fixing type casts<br>
+ (char to unsigned char etc).<br>
+<br>
+contrib/eplaser/gdevescv.c<br>
+contrib/gdevmd2k.c<br>
+contrib/japanese/gdev10v.c<br>
+contrib/japanese/gdevalps.c<br>
+contrib/japanese/gdevespg.c<br>
+contrib/japanese/gdevfmpr.c<br>
+contrib/japanese/gdevlbp3.c<br>
+contrib/japanese/gdevmag.c<br>
+contrib/japanese/gdevml6.c<br>
+contrib/lips4/gdevl4r.c<br>
+contrib/lips4/gdevl4v.c<br>
+contrib/opvp/gdevopvp.c<br>
+contrib/pcl3/eprn/eprnparm.c<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 14:07:31 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=39cdb5df0e2f8e3e4410e008b2a7fb72dcdff805">39cdb5df0e2f8e3e4410e008b2a7fb72dcdff805</a>
+<blockquote>
+<p>
+ Avoid ignoring a return code during garbage collection.<br>
+<br>
+psi/ireclaim.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 14:05:59 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3388e52d3ea54fa2d46e857d3004a229d143ad40">3388e52d3ea54fa2d46e857d3004a229d143ad40</a>
+<blockquote>
+<p>
+ gdevxcf: don't confuse rgb and cmyk profile functions.<br>
+<br>
+ We are writing prgbs to both ProfileRGB and ProfileCMYK.<br>
+ That seems wrong.<br>
+<br>
+devices/gdevxcf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 14:04:00 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd32af452b8bd08e7eb5daf3344d2caae8a13dc7">dd32af452b8bd08e7eb5daf3344d2caae8a13dc7</a>
+<blockquote>
+<p>
+ Squash Warnings: JBig2<br>
+<br>
+ ifdef out some used code.<br>
+<br>
+ Make some functions static that should be.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+jbig2dec/jbig2_image.c<br>
+jbig2dec/jbig2_refinement.c<br>
+jbig2dec/jbig2_segment.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 13:59:43 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=046f22db259214cb77b95e631d65ebdacec79a87">046f22db259214cb77b95e631d65ebdacec79a87</a>
+<blockquote>
+<p>
+ Squash warnings: XPS.<br>
+<br>
+ Avoid some warnings in the XPS code.<br>
+<br>
+ Mostly 'set but unused' variables. Either remove these or<br>
+ (in cases where they may be required later) comment them out.<br>
+<br>
+ Ensure that all return codes are checked once read. This has<br>
+ meant making a few functions return error codes that didn't before.<br>
+<br>
+ Include an extra gs header in ghostxps.h. This trips the code into<br>
+ objecting to using printf etc. Change the calls to printf to use<br>
+ dlprintf instead (as they should do).<br>
+<br>
+ Change the prototypes for some functions to pass const params<br>
+ in some cases, and make a few return error codes rather than ignoring<br>
+ them.<br>
+<br>
+ Add a couple of missing prototypes.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpsdoc.c<br>
+xps/xpshash.c<br>
+xps/xpsmem.c<br>
+xps/xpsopacity.c<br>
+xps/xpsxml.c<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 13:52:43 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7a7588ce7c7cd1b0a8d55818af5d2f34dd17d3ff">7a7588ce7c7cd1b0a8d55818af5d2f34dd17d3ff</a>
+<blockquote>
+<p>
+ Minimise warnings in unix ijs code calling execvp.<br>
+<br>
+ execvp should really take const char *args, but linux is 'inconsistent'<br>
+ about this. We assume that the args are of this form in our code,<br>
+ so we'd rather have 1 warning on the call on such systems, rather than<br>
+ n about the setup on all systems.<br>
+<br>
+ijs/ijs_exec_unix.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 13:51:23 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=882ce8be8592ed51243c9a7190c89fb1d2d61fd8">882ce8be8592ed51243c9a7190c89fb1d2d61fd8</a>
+<blockquote>
+<p>
+ ijs_server: Don't ignore the 'sign' var when parsing ints.<br>
+<br>
+ijs/ijs_server.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 13:16:03 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=91470dae4954f9c9e36c019616c3ff7bcdd173de">91470dae4954f9c9e36c019616c3ff7bcdd173de</a>
+<blockquote>
+<p>
+ Squash warnings: Cull unused or dead code.<br>
+<br>
+ In cases where the code is there for potential future use,<br>
+ comment small sections out or use #ifdef UNUSED.<br>
+<br>
+base/mkromfs.c<br>
+contrib/gdevcd8.c<br>
+contrib/gdevdj9.c<br>
+contrib/gdevgdi.c<br>
+contrib/gdevlx32.c<br>
+contrib/gdevop4w.c<br>
+contrib/japanese/gdevmjc.c<br>
+contrib/japanese/gdevrpdl.c<br>
+devices/gdevhl7x.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 13:10:15 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2d914c99900578d76753a134ea6d7bf35eb932f3">2d914c99900578d76753a134ea6d7bf35eb932f3</a>
+<blockquote>
+<p>
+ Squash warnings: Add explicit bracketing.<br>
+<br>
+ &amp;&amp; binds more tightly than || in C (similarly &amp; and |).<br>
+<br>
+ Expressions such as &quot;A &amp;&amp; B || C&quot; are therefore well defined, but<br>
+ often error prone and confusing to read, so the compiler warns about<br>
+ them. We add explicit parentheses to shut this up (and to clarify<br>
+ the code).<br>
+<br>
+base/gxiscale.c<br>
+contrib/pcl3/eprn/eprnfs.c<br>
+contrib/pcl3/eprn/eprnparm.c<br>
+contrib/pcl3/eprn/eprnrend.c<br>
+contrib/pcl3/eprn/gdeveprn.c<br>
+contrib/pcl3/eprn/mediasize.c<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+contrib/pcl3/src/pclcomp.c<br>
+contrib/pcl3/src/pclgen.c<br>
+contrib/pcl3/src/pclsize.c<br>
+devices/gdevpsd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 13:03:13 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c8e1e6dff1d48adf79659455e7082735909558a1">c8e1e6dff1d48adf79659455e7082735909558a1</a>
+<blockquote>
+<p>
+ Squash warning: switch(rop)<br>
+<br>
+ Ensure that rop3_T and rop3_S are defined as enum values as well<br>
+ as preprocessor definitions.<br>
+<br>
+ They must be preprocessor definitions as otherwise the rop templating<br>
+ code does not work. If they are not enum values, we get warned about<br>
+ switch(rop) testing for values not defined in the enums.<br>
+<br>
+base/gsropt.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 12:57:15 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ff1c44b4dbe241df64dd3d9892df56a421921c2b">ff1c44b4dbe241df64dd3d9892df56a421921c2b</a>
+<blockquote>
+<p>
+ Squash warning: Improve static init<br>
+<br>
+base/gsptype1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 12:54:18 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc15153ffe7fe8ca9fa38091bfb50a67897b768b">cc15153ffe7fe8ca9fa38091bfb50a67897b768b</a>
+<blockquote>
+<p>
+ Squash Warnings: Add casts to avoid warnings.<br>
+<br>
+base/gdevmem.c<br>
+base/gsht.c<br>
+base/gsicc_manage.c<br>
+base/gzht.h<br>
+base/sdctd.c<br>
+contrib/gdevbjc_.c<br>
+contrib/gdevbjc_.h<br>
+contrib/gdevbjca.c<br>
+devices/rinkj/rinkj-device.h<br>
+devices/rinkj/rinkj-screen-eb.c<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 12:44:43 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=240b8f048945a129aacb1e84c7e7b66cf0d5bff1">240b8f048945a129aacb1e84c7e7b66cf0d5bff1</a>
+<blockquote>
+<p>
+ Squash Warnings: Unused Var/Var set but not used.<br>
+<br>
+base/gscrdp.c<br>
+base/gsfcmap1.c<br>
+base/gsicc.c<br>
+base/gsiorom.c<br>
+base/gstype1.c<br>
+base/gstype42.c<br>
+base/gxclimag.c<br>
+base/gxdtfill.h<br>
+base/gxhintn.c<br>
+base/gxi12bit.c<br>
+base/sdcparam.c<br>
+base/strmio.c<br>
+devices/gdevcdj.c<br>
+devices/gdevlp8k.c<br>
+devices/gdevphex.c<br>
+devices/gdevxalt.c<br>
+devices/gdevxcf.c<br>
+devices/rinkj/evenbetter-rll.c<br>
+devices/rinkj/rinkj-epson870.c<br>
+devices/vector/gdevpdfk.c<br>
+devices/vector/gdevpsds.c<br>
+psi/imain.c<br>
+psi/zfont.c<br>
+xps/xpscff.c<br>
+xps/xpsfont.c<br>
+xps/xpsglyphs.c<br>
+xps/xpsgradient.c<br>
+xps/xpstile.c<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 11:53:44 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8db551f3a3e949035889fcb63188764ca61ab8c1">8db551f3a3e949035889fcb63188764ca61ab8c1</a>
+<blockquote>
+<p>
+ Squash warnings: Warnings caused by printf specifiers.<br>
+<br>
+base/gdevnfwd.c<br>
+base/gscspace.c<br>
+base/gsicc_cache.c<br>
+base/gsicc_manage.c<br>
+base/gsmchunk.c<br>
+base/gstrans.c<br>
+base/gxclrect.c<br>
+base/gxpflat.c<br>
+base/scfd.c<br>
+devices/vector/gdevpsft.c<br>
+psi/igc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-04 11:43:51 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e628ac44909dd2a0fc738eaa491d92a6e4c1db0">6e628ac44909dd2a0fc738eaa491d92a6e4c1db0</a>
+<blockquote>
+<p>
+ Squash Warnings: Simple unused variable warnings.<br>
+<br>
+base/gdevflp.c<br>
+base/gdevoflt.c<br>
+base/gscoord.c<br>
+base/gsptype1.c<br>
+base/gxclist.c<br>
+contrib/japanese/gdev10v.c<br>
+devices/gdevcmykog.c<br>
+devices/gdevgprf.c<br>
+devices/gdevijs.c<br>
+devices/gdevplan.c<br>
+devices/gdevpsd.c<br>
+jpeg/jcsample.c<br>
+psi/zicc.c<br>
+xps/xpsjxr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-31 08:34:09 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=95a16466806c9f8c4f783fd6ebfb0095b9227f56">95a16466806c9f8c4f783fd6ebfb0095b9227f56</a>
+<blockquote>
+<p>
+ Squash warning: remove unused variable.<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-31 16:13:19 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=df47d1bfc3f5d3bf5c58660b98840f3c9a6b6018">df47d1bfc3f5d3bf5c58660b98840f3c9a6b6018</a>
+<blockquote>
+<p>
+ Avoid some warnings in the stroking code.<br>
+<br>
+base/gxstroke.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-31 02:40:39 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=27ab71451562b815d04e71903c1feb223069c0a2">27ab71451562b815d04e71903c1feb223069c0a2</a>
+<blockquote>
+<p>
+ Bug 697822: clist fix<br>
+<br>
+ When saving/restoring the clist state around the saved pages<br>
+ processing, ensure that the file handling is correct. Leaving<br>
+ the old filenames in play in particular is a bad thing, as the<br>
+ shared fdesc stuff gets confused by this.<br>
+<br>
+ This commit reworks that so that clist files aren't closed/reopened<br>
+ as much.<br>
+<br>
+base/gxclpage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-31 02:39:10 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f920cb3d90603df9c5f48df007ef10750f2427ff">f920cb3d90603df9c5f48df007ef10750f2427ff</a>
+<blockquote>
+<p>
+ Bug 695822: clist fix<br>
+<br>
+ When reading from the cfile, if we fail to read a cmd_block,<br>
+ give up as nothing else will make sense.<br>
+<br>
+base/gxclread.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-31 02:37:31 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=87d413205bd948d302345004092ed43f9b6bc213">87d413205bd948d302345004092ed43f9b6bc213</a>
+<blockquote>
+<p>
+ Bug 695822: clist fix<br>
+<br>
+ If we rewind a page, ensure that the 'end_pos' for the bfile is<br>
+ reset to 0.<br>
+<br>
+base/gxclist.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-31 02:36:52 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7c67185c0f428f2cec5a8bb339e8917ee3f6584e">7c67185c0f428f2cec5a8bb339e8917ee3f6584e</a>
+<blockquote>
+<p>
+ Trivial whitespace fix in clist comment.<br>
+<br>
+base/gxclfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-28 13:22:35 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=834afc272d0df4dc09b1f24ac4366afa26de48b2">834afc272d0df4dc09b1f24ac4366afa26de48b2</a>
+<blockquote>
+<p>
+ Bug 693777: Valgrind indeterminism.<br>
+<br>
+ Valgrind reports an indeterminism in gs_image_class_1_simple,<br>
+ caused by penum-&gt;map[0].inverted not being set.<br>
+<br>
+ Analysis reveals that image_init_colors is not setting .inverted<br>
+ in some cases. The fix is simply to ensure that it's always set.<br>
+<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-27 09:51:24 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34ccb87a69ed6e632468e495a54ecb69bf9f5719">34ccb87a69ed6e632468e495a54ecb69bf9f5719</a>
+<blockquote>
+<p>
+ pdfwrite - remove some debugging code causing a compiler warning<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-24 17:18:09 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d4056b5dab63199d86c8fb140807b9b307a427c0">d4056b5dab63199d86c8fb140807b9b307a427c0</a>
+<blockquote>
+<p>
+ pdfwrite - implement Metadata pdfmark and a non-standard extension metadata pdfmark<br>
+<br>
+ Bug #696472 &quot;pdfwrite lacks support for /Metadata pdfmark&quot;<br>
+<br>
+ There are several issues tackled in this single commit:<br>
+<br>
+ 1) A previous commit left it impossible to use the EMBED pdfmark unless<br>
+ producing PDF/A, fixed.<br>
+<br>
+ 2) The Metadata pdfmark is now implemented. This allows the user to<br>
+ specify an XMP stream which will be written to the Catalog of the PDF<br>
+ file. The pdfwrite device will not overwrite this, or add any further<br>
+ Metadata, it is the user's responsibility to get the XMP data correct.<br>
+<br>
+ 3) A new pdfmark 'Ext_Metadata' has bee defined. This takes a string<br>
+ parameter which contains XML to be add to the XMP normally created by<br>
+ pdfwrite. Again ths is up to the user to specify correctly.<br>
+<br>
+ In no case does pdfwrite attempt to validate the data, though it will<br>
+ issue warnings that PDF/A and PDF/X files may not be valid.<br>
+<br>
+ The additional pdfmark is to support creation of the ZugFERD electronic<br>
+ invoice (http://www.ferd-net.de/front_content.php?idcat=231&amp;changelang=4)<br>
+ and potentially other similar formats in the future.<br>
+<br>
+ These new features are essentially untested.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfe.c<br>
+devices/vector/gdevpdfm.c<br>
+devices/vector/gdevpdfx.h<br>
+doc/Ps2pdf.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-23 14:11:47 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=21bd4941bafcd55064ba70acf1af66117e1267bd">21bd4941bafcd55064ba70acf1af66117e1267bd</a>
+<blockquote>
+<p>
+ Documentation - sterner words on use of PDFSETTINGS<br>
+<br>
+ Many people use the 'PDFSETTINGS' switch without, aopparently, comprehending<br>
+ that this will involve some alteration to the input. In addition there<br>
+ seems to be a belief that '/prepress' will produce the best (ie closest<br>
+ to the original) output, which is absolutely not the case. The best<br>
+ quality is obtained by leaving pdfwrite alone.<br>
+<br>
+ I doubt it will make any difference, since so many people use a cargo cult<br>
+ approach to Ghostscript command line parameters, but at least it is now<br>
+ in the documentation.<br>
+<br>
+doc/Ps2pdf.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-23 12:30:12 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e55a2b097f17846a23d0454302f7950d83baca9c">e55a2b097f17846a23d0454302f7950d83baca9c</a>
+<blockquote>
+<p>
+ pdfwrite - If downsampling filter initialisation fails, don't downsample<br>
+<br>
+ If the image downsampling filter failed during initialisation we still<br>
+ carried on and set up to downsample (we ignored the error return). This<br>
+ would later result in a further error, and we would try to fall back<br>
+ using the default image code. However, that would again try to set up<br>
+ the downsampling filter, and would again fail, resulting in the image<br>
+ being dropped from the output.<br>
+<br>
+ Here we check the return code from image initialisation, and if it fails<br>
+ we emit a warnign and stop trying to do downsampling.<br>
+<br>
+devices/vector/gdevpsdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-23 12:27:31 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f7f0dc6616762ee14437265ec8f10bef4094a95">8f7f0dc6616762ee14437265ec8f10bef4094a95</a>
+<blockquote>
+<p>
+ pdfwrite - fix mono image downsampling for /prepress setup<br>
+<br>
+ The /prepress PDFSETTING had the monochrome image downsampling set to<br>
+ /Bicubic. This is not appropriate for monochrome images, as it would<br>
+ require converting the image to to grayscale.<br>
+<br>
+ The same is true for all downsampling methods except /Subsample, so<br>
+ here we alter the setting to /Subsample, which matches the other settings.<br>
+<br>
+Resource/Init/gs_pdfwr.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-22 17:21:37 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd43cb649f5772096b71c23f1bf36982531b74fa">dd43cb649f5772096b71c23f1bf36982531b74fa</a>
+<blockquote>
+<p>
+ Bug 694970: Improve downscaler docs.<br>
+<br>
+ Mention the explicit limit for DownScaleFactor.<br>
+<br>
+ There is no point in downscaling by more than 8, as any given<br>
+ pixel ceases to contribute enough to make a difference.<br>
+<br>
+ At any rate, any downscale scale &gt;= 12 runs the risk of overflowing<br>
+ the 32bit integers used to do the sum.<br>
+<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-22 13:42:04 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0fd77514b93367aafaddfa3138f2b8424c7f7085">0fd77514b93367aafaddfa3138f2b8424c7f7085</a>
+<blockquote>
+<p>
+ Documentation - Note that the pdfwrite option PDFA now allows values up to 3<br>
+<br>
+doc/Ps2pdf.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-22 13:35:48 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8555f7fd1500322ab6e5b2ab979eb233623c232d">8555f7fd1500322ab6e5b2ab979eb233623c232d</a>
+<blockquote>
+<p>
+ pdfwrite - permit creation of PDF/A-3 files, disable file embedding if PDFA &lt; 2<br>
+<br>
+ Bug #696473 &quot;feature request: PDF/A-3 support&quot;<br>
+<br>
+ There is actually very little practical difference between a PDF/A-2<br>
+ and a PDF/A-3 file, PDF/A-3 permits embedding of arbitrary files<br>
+ while PDF/A-2 does not.<br>
+<br>
+ Prior to commit a91d2576df0e60f6e691a3bd967b51109ae41f22 which<br>
+ added support for the EMBED pdfmark there was therefore no point in<br>
+ PDF/A-3 output.<br>
+<br>
+ This commit allows the -dPDFA switch to be turned up to 3 and creates<br>
+ appropriate metadata. It also disables the EMBED pdfmark when creating<br>
+ PDF/A-1 and emits a warning for PDF/A-2 that we don't validate the<br>
+ content (PDF/A-2 only permits inclusion of PDF/A-1 and PDF/A-2). The<br>
+ precise behaviour depends on the setting of PDFACompatibilityPolicy.<br>
+<br>
+ I can't claim this is well tested.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+devices/vector/gdevpdfm.c<br>
+devices/vector/gdevpdfp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-18 16:14:31 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=50cb214c0223d12c891cbab8e5d337975b6f3cba">50cb214c0223d12c891cbab8e5d337975b6f3cba</a>
+<blockquote>
+<p>
+ Move Memento include back into jbig2_priv.h<br>
+<br>
+ It's clearly nicer not to have Memento as part of the external<br>
+ interface of jbig2, and this solves bug 696183.<br>
+<br>
+ The include has ping ponged back and forth from jbig2.h in the<br>
+ past due to problems with the jbig2 allocator field naming.<br>
+ We fix that here with a spot of #ifdef/#undef-ery.<br>
+<br>
+ We also simplify some of the hackery here. Rather than having<br>
+ specific defines such as GSBUILD (meaning 'get memento.h from<br>
+ some place that you magically know about') and JBIG_NO_MEMENTO<br>
+ (meaning 'just ignore memento.h at all'), we now just have<br>
+ JBIG_EXTERNAL_MEMENTO_H.<br>
+<br>
+ Projects which have their own version of Memento in, and use<br>
+ jbig2dec should define JBIG_EXTERNAL_MEMENTO_H to the location<br>
+ of the memento.h file at build time.<br>
+<br>
+base/jbig2.mak<br>
+jbig2dec/jbig2.c<br>
+jbig2dec/jbig2.h<br>
+jbig2dec/jbig2_priv.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-18 14:03:06 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6f57908e88674a1582e87043f79dc8a1c04ce55f">6f57908e88674a1582e87043f79dc8a1c04ce55f</a>
+<blockquote>
+<p>
+ PDF interpreter - reword warnings<br>
+<br>
+ Marcos has complained on customer's behalf on a number of occasions<br>
+ that we don't use the word 'error' very much when fixing broken PDF<br>
+ files leading to unrealistic expectations from the customer.<br>
+<br>
+ This commit breaks the errors and warnings up into two distinct groups;<br>
+<br>
+ Warnings are now uncommon and are reserved for situations where it seems<br>
+ unlikely to me that the problem will result in a rendering error. For<br>
+ example, any problems processing ToUnicode CMaps are now treated as<br>
+ warnings since these are not used in rendering.<br>
+<br>
+ Anything which I feel has a reasonable chance of indicating a problem<br>
+ with the PDF file sufficiently serious to result in a difference between<br>
+ our output and Acrobat is now flagged as an error.<br>
+<br>
+ Each message should explicitly use the word error or warning as<br>
+ appropriate, to avoid any confusion.<br>
+<br>
+ The end of job notifications differ slightly between errors and<br>
+ warnings (errors state again that the output may be incorrect). This<br>
+ potentially allows us to take additional different action in the future<br>
+ as errors and warnings are tracked separately (NB errors trump<br>
+ warnings, if you get an error, you get he error EOJ message)<br>
+<br>
+ These notifications now also obey QUIET, so they won't be show if this is<br>
+ set.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_font.ps<br>
+Resource/Init/pdf_main.ps<br>
+Resource/Init/pdf_ops.ps<br>
+Resource/Init/pdf_rbld.ps<br>
+Resource/Init/pdf_sec.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-17 14:33:22 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f8803ba7066e3be8a627e62eb1406c21c604c639">f8803ba7066e3be8a627e62eb1406c21c604c639</a>
+<blockquote>
+<p>
+ Bug 696142: Sanitise tiffsep separation names.<br>
+<br>
+ The existing code 'copies' separation names for printing/using in<br>
+ filenames in a very naive way. It essentially blanks out any<br>
+ characters unsupported in the filesystem with (or '%') with '_'.<br>
+ Top bit set chars are let through unchanged, which causes<br>
+ confusion as we now assume that filenames are held internally<br>
+ in utf-8 format.<br>
+<br>
+ The code is updated here to output such filenames with simple<br>
+ %02x style escaping. All characters unsupported in the filesystem<br>
+ (or '%', or backspace, or top bit set chars) are escaped.<br>
+<br>
+ This leaves us utf-8 safe strings.<br>
+<br>
+ The only 'interesting' aspect here is that we have to check for<br>
+ whether we need to put '%%' instead of '%' because we might be<br>
+ printf-style processing the string later on.<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-16 12:24:12 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=47d23e2dfbae8db3b142b70aaef086c1bd6e097d">47d23e2dfbae8db3b142b70aaef086c1bd6e097d</a>
+<blockquote>
+<p>
+ Fix for Bug 695074 x11 device encode color<br>
+<br>
+ The X11 device can be set up for different bit depths including<br>
+ indexed like colors. It could fill its palette when we have<br>
+ a small number of possible colors and fail to encode. Really the<br>
+ device should not fail the encoding but always return the best<br>
+ color that it can. It should not rely upon gs to do any halftoning<br>
+ to provide possibly see if another color could be encoded.<br>
+<br>
+ With this fix, we try to use a color that is in the existing palette,<br>
+ adding a color if it is not available and we have space. If we<br>
+ no longer have space we now force the use of the closest color in<br>
+ the table.<br>
+<br>
+devices/gdevxcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-16 14:55:01 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c9f24068810f762f2a54d33d7cb8040eff080368">c9f24068810f762f2a54d33d7cb8040eff080368</a>
+<blockquote>
+<p>
+ PDF Interpreter - improve performance on files with many xref sections<br>
+<br>
+ Bug #696454 &quot;Regression: Performance decrease starting with 002cd5262ccb71010473abfb9069e1fb39f36f12&quot;<br>
+<br>
+ The file is very large, and has an extremely large (~700,000 entries)<br>
+ xref table with a very large number of sections in it. Normally we<br>
+ allocate our internal xref storage as we parse the xref table, each time<br>
+ we find a new section we increase the size of an array by the number<br>
+ of entries in the section.<br>
+<br>
+ If we have a lot of sections, we end up spending a lot of time in the<br>
+ memory management, allocating, copying and freeing arrays. This was less<br>
+ of a problem when we used a 2D array because each array had a maximum of<br>
+ 65535 entries. However now that we use a single array this can be time<br>
+ consuming.<br>
+<br>
+ The first part of this commit searches the trailer dictionaries (stored<br>
+ after the xref) looking for the /Size entry. If we find one we use that<br>
+ to set the initial size of the xref array. This saves us having to resize<br>
+ the array as the Size is large enough to contain all entries.<br>
+<br>
+ However, this file *also* has an error in its /Size entry. It declares<br>
+ the /Size as 88693, whereas in fact the xref contains nearly 700,000<br>
+ entries. Our code still worked, but it was again spending a great deal<br>
+ of time in memory management.<br>
+<br>
+ So the second part of this commit detects the fact that the declared<br>
+ /Size is incorrect. When this happens, instead of allocating just<br>
+ enough new entries in the array for the section we have discovered we<br>
+ allocate 65534 entries, which makes it more likely that subsequent<br>
+ sections will not need to increase the size again.<br>
+<br>
+ This is slightly wasteful of memory as we allocate storage we will never<br>
+ use, but since the file is invalid it seems better to do this than<br>
+ spend a lot of time minimising memory usage.<br>
+<br>
+ In my cluster tests this seems to give a small performance improvement<br>
+<br>
+ No other differences expected.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-15 11:34:12 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8a5802e5c99959032ccd1763861effbd30dad440">8a5802e5c99959032ccd1763861effbd30dad440</a>
+<blockquote>
+<p>
+ PDF interpreter - improved recovery encountering broken fonts<br>
+<br>
+ Bug #696306 &quot;Incomplete rendering of PDF file&quot;<br>
+<br>
+ The original commit to fix this 487ed6d3b5fabbe21c23da288fbf020f49a28fae<br>
+ did resolve the problem, however it was replaced with a better (better<br>
+ in terms of correct PostScript error handling)<br>
+ 243614398b7bf3e8c4d080de7f8bbcb7436472cf<br>
+<br>
+ Unfortunately I only tested that with a decompressed file from MuPDF,<br>
+ rather than the original file, and this failed with an additional<br>
+ problem in the original file.<br>
+<br>
+ The file has a font stream which is ASCIIHex encoded, but contains,<br>
+ at the end, some non-ASCIIHex characters (specifically a Q) which<br>
+ causes an error in the ASCIIHexDecode before we even try to execute<br>
+ the font (which is also damaged).<br>
+<br>
+ The commit to fix this fixed the handling of the broken font, but did<br>
+ not work correctly with the invalid ASCIIHex stream. The problem was<br>
+ that the font code returns a null object (instead of a font dictionary)<br>
+ but does not signal an error. This means that the code for recovering<br>
+ the operand and dictionary stacks did not execute, leaving the dict<br>
+ stack in an incorrect state.<br>
+<br>
+ This code copies and executes the recovery code so that, even if there<br>
+ is no error, we still clean up.<br>
+<br>
+ In addition, PDFSTOPONERROR is now honoured in a couple more places when<br>
+ we encounter font problems.<br>
+<br>
+ Finally I haver altered pdfformaterror to put its output on stdout<br>
+ instead of stderr, because this makes debugging much easier (the<br>
+ warnings are now interleaved into the PDFDEBUG output for instance).<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-14 13:05:14 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=877655e3ec275accf5cba7cd724ec845fb4cb396">877655e3ec275accf5cba7cd724ec845fb4cb396</a>
+<blockquote>
+<p>
+ Coverity 120747: correct a typo in the WOFF C code<br>
+<br>
+base/gstype42.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-14 12:43:05 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a7addfad24879fadb2d44fba25be70ed43ccb163">a7addfad24879fadb2d44fba25be70ed43ccb163</a>
+<blockquote>
+<p>
+ Bug 692427: include the ICC code in the Level 2 features<br>
+<br>
+ The ICC handling code was pulled in by the PDF interpreter feature, but since<br>
+ 9.00 we *always* have an ICC color workflow (even for Postscript). So make<br>
+ the Postscript Level 2 core depend on the ICC feature (this should be sufficient<br>
+ because we no longer support a pure Level 1 interpreter, and it saves rewriting<br>
+ the ICC Postscript code to use only Level 1 + Ghostscript extensions code).<br>
+<br>
+Resource/Init/gs_icc.ps<br>
+psi/int.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-14 11:46:15 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=760fcc4243072daa545419f57c0513b3d24a23de">760fcc4243072daa545419f57c0513b3d24a23de</a>
+<blockquote>
+<p>
+ Use sdct.dev in non-autotools builds, too.<br>
+<br>
+ And fix a typo from previous commit<br>
+<br>
+base/lib.mak<br>
+base/unix-gcc.mak<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-14 14:26:55 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a3cc9ea512025960b68deca87170053e43393dbc">a3cc9ea512025960b68deca87170053e43393dbc</a>
+<blockquote>
+<p>
+ PDF interpreter - handle (invalid) PS CMap streams<br>
+<br>
+ Bug #696449 &quot;Incomplete rendering of PDF file&quot;<br>
+<br>
+ The file includes a CIDFont which uses a custom CMap, which is incorrectly<br>
+ defined. CMaps in PDF files are specified to be a CMap stream, that is a<br>
+ dictionary declaration followed by a stream of data. The dictionary<br>
+ should contain the CMApName, the CIDSystemInfo and WMode.<br>
+<br>
+ The supplied file has a stream which is simply a PostScript CMap, it<br>
+ does not include any of the required definitions, and is, as far as I can<br>
+ see, therefore invalid.<br>
+<br>
+ Nevertheless 'Acrobat can open it', so I've modified the type 0 font<br>
+ and more specifically the CMap interpretation, to read a PostScript<br>
+ CMap. This is not as easy as it may seem, and there may still be<br>
+ problems with this code, because PostScript CMap files are normally<br>
+ (unsurprisingly) run in a PostScript interpreter. Trying to handle them<br>
+ without executing them in a PostScript interpreter is tricky. We can't<br>
+ simply execute the PostScript (which would be ideal) because we need to<br>
+ alter the CMAP Type.<br>
+<br>
+ This commit also contains a minor change to make Annotation processing<br>
+ check the PDFSTOPONERROR flag when running annotations, and if it is set<br>
+ cease processing, instead of ignoring the error.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-14 10:31:56 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=18e58518812980b09215ae17b8c385cdb46fda19">18e58518812980b09215ae17b8c385cdb46fda19</a>
+<blockquote>
+<p>
+ JPEG/DCT dependency fix<br>
+<br>
+ Because we have common code to handle certain aspects of JPEG/DCT encoding and<br>
+ decoding, we cannot include one without the other.<br>
+<br>
+ Add a &quot;top level&quot; sdct.dev which includes both sdcte.dev and sdctd.dev and make<br>
+ that part of the core graphics lib features.<br>
+<br>
+ As our code and the libjpeg code both have considerable common code between<br>
+ encoding and decoding, the inpact on the executable size is negligible.<br>
+<br>
+Makefile.in<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-11 14:02:24 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1dccf1916e1227e66ffdfbbd0d99c385268f60db">1dccf1916e1227e66ffdfbbd0d99c385268f60db</a>
+<blockquote>
+<p>
+ Bug 695576: tidy up xpsprint dependency confusion<br>
+<br>
+ Promote the pushing of jobs into the XPS print queue to be a &quot;platform&quot;<br>
+ feature - i.e. make it a required &quot;gp_&quot; call, with a real one for Windows<br>
+ (when supporting libs are available) and a dummy for when an XPS print queue<br>
+ is not available.<br>
+<br>
+ This eases the confusion of dependencies and removes the need for platform<br>
+ specific conditionally compiled code in the xpswrite device code.<br>
+<br>
+base/gp.h<br>
+base/gp_nxpsprn.c<br>
+base/gp_wxpsprn.cpp<br>
+base/lib.mak<br>
+base/macos-mcp.mak<br>
+base/openvms.mak<br>
+base/unix-aux.mak<br>
+base/winlib.mak<br>
+base/winplat.mak<br>
+base/xpsprint.cpp<br>
+devices/vector/gdevxps.c<br>
+psi/os2.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-11 12:02:41 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fabc4fb245306177204bf9439424cca33132b6fa">fabc4fb245306177204bf9439424cca33132b6fa</a>
+<blockquote>
+<p>
+ PDF interpreter - fix OutputIntent for device when no Trailer located in PDF (broken)<br>
+<br>
+ Bug #696447 &quot;Error message lost with x11 device&quot;<br>
+<br>
+ Despite the comment, I believe the X11 device behaviour is correct. We<br>
+ generally try not to throw PostScript errors when dealing with PDF files,<br>
+ even badly broken PDF files.<br>
+<br>
+ In this case the PDF is so broken we are unable to repair it (Acrobat<br>
+ can't either), which means we have no Trailer either found or created.<br>
+ However, we must continue with our processing loop and that includes<br>
+ processing OutputIntents, if the device supports them.<br>
+<br>
+ The X11 device (and the Windows display device amongst others) do *NOT*<br>
+ support an OutputIntent (its not file based so there's nowhere to put it)<br>
+ but the ppmraw device, erroneously I believe, does claim to be able to<br>
+ write an OutputIntent.<br>
+<br>
+ This led us into code in writeoutputintents whcih attempted to use the<br>
+ Trailer without checking if it was present, and so throwing an error.<br>
+<br>
+ This commit simply checks if we have a Trailer, and doesn't attempt to<br>
+ write the OutputIntent if we don't (because the PDF is unusable anyway)<br>
+<br>
+<br>
+ This makes the devices behave the same, even though its not exactly<br>
+ the fix Marcos wanted.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-11 11:02:14 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e8a5151dcc3a3451a42a294ed7bddbf137ddf518">e8a5151dcc3a3451a42a294ed7bddbf137ddf518</a>
+<blockquote>
+<p>
+ Bug 696446: only use const strings for param list keys<br>
+<br>
+ The original fix replaced uses of strdup() (which caused a memory leak) with<br>
+ a dynamically allocated temporary string which was freed at the end of<br>
+ cups_get/put_params().<br>
+<br>
+ Unfortunately, as param lists simply take a reference to the key string, this<br>
+ meant that the contents of the string were overwritten, and indeterminate<br>
+ after being freed.<br>
+<br>
+ Switch to using lists of static const strings.<br>
+<br>
+ And add a stern warning to gsparams.h on the subject.<br>
+<br>
+ And squash a couple of compiler warnings in the cups code.<br>
+<br>
+base/gsparam.h<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-10 16:11:30 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=546d49f920ed3b1d7f8eec26ae1c8d94b7d6fd32">546d49f920ed3b1d7f8eec26ae1c8d94b7d6fd32</a>
+<blockquote>
+<p>
+ PDF interpreter - don't store ICCBased colour spaces in resolved dicts<br>
+<br>
+ Bug #696439 &quot;unable to extract page one special page&quot;<br>
+<br>
+ The page in question has nearly 2000 images, most in ICCbased colour<br>
+ spaces, and large profiles (around 2MB or more). Because of the way we<br>
+ dereference objects, this led to the ICCbased DataSource (the 2MB+)<br>
+ being stored in the colour space, which was stored in the image<br>
+ dictionaries, which were stored in the Page's Resources dicttionary.<br>
+<br>
+ The Page's Resources dictionary is not freed until the page is complete<br>
+ which meant we were storing an awful lot of data. When we exceeded 2GB<br>
+ (on the 32 bit build) we ran out of memory and mostly stopped rendering<br>
+ anything further.<br>
+<br>
+ This commit alters the image (and shading, which has the same problem)<br>
+ handling so that if the colour space is an array object, we make a copy<br>
+ of the dictionary and use that. This leaves the original definition<br>
+ unresolved in the Page's Resources dictionary, if we should need to use<br>
+ the object again then we will have the (slight) overhead of needing to<br>
+ rerun it, but at least we won't be storing gobs of mostly useless data<br>
+ in the general case.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-12 18:37:32 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bcf0e5887c74e3337fcac62addf0de70be9a2cb8">bcf0e5887c74e3337fcac62addf0de70be9a2cb8</a>
+<blockquote>
+<p>
+ Commit of WOFF font support for GS<br>
+<br>
+ Support in Ghostscript is implemented by augmenting the TrueType handling in<br>
+ the Postscript world. Loading WOFF fonts &quot;stripped&quot; is not supported, except<br>
+ for the purpose of finding the font name from the name table.<br>
+<br>
+ There is also a C implementation in the graphics library which takes a memory<br>
+ buffer or a stream, and unpacks the WOFF into a TTF in a memory buffer. It<br>
+ is currently not called.<br>
+<br>
+Resource/Init/gs_cff.ps<br>
+Resource/Init/gs_cidtt.ps<br>
+Resource/Init/gs_ttf.ps<br>
+base/gstype42.c<br>
+base/gsutil.c<br>
+base/gsutil.h<br>
+base/gxfont42.h<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-09 18:09:12 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=618d0c07922e47b869cdec48235ff003c791d2e3">618d0c07922e47b869cdec48235ff003c791d2e3</a>
+<blockquote>
+<p>
+ Bug 696441: handle numcopies &gt; 1 in bgprint mode.<br>
+<br>
+ When numcopies is greater than 1, the device closes and closes and opens<br>
+ the output file(s) for each copy. In the case of background printing, the<br>
+ main device opens the output file, and generally expects to close the same<br>
+ file, but with num_copies &gt; 1 that is not the case.<br>
+<br>
+ When shutting down a bgprint &quot;worker&quot; device, copy the file pointer from<br>
+ the worker device to the main device, so the main device retains a valid<br>
+ output file pointer.<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-04 15:47:02 +0000
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=47dd8a92aeb7b574748871127a6621ce9f7abbb9">47dd8a92aeb7b574748871127a6621ce9f7abbb9</a>
+<blockquote>
+<p>
+ Fix memory leaks in cups device<br>
+<br>
+ Noticed while debugging Bug 694179.<br>
+<br>
+ The main leak here is due to the strdup in cups_get_params and cups_put_params.<br>
+ The code was then refactored to have one exit point to catch the remaining<br>
+ 6K leak.<br>
+<br>
+ However, the final 6k is due to the global structure created in<br>
+ cups_globals_alloc and later freed in cups_globals_free. The free function<br>
+ call is only done on windows due to a #define WIN32 and not called on a<br>
+ Linux machine where the server continues to run.<br>
+<br>
+ No cluster differences<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-04 15:42:53 +0000
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=160665445b3b10da794959e508b5dd800b0592e5">160665445b3b10da794959e508b5dd800b0592e5</a>
+<blockquote>
+<p>
+ Bug 694179: Fix memory leak in jbig2dec<br>
+<br>
+ Ensure the image contents are initialised, so that, if an error occurs, the<br>
+ image can be safely cleaned up.<br>
+<br>
+ No cluster differences.<br>
+<br>
+jbig2dec/jbig2_text.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-23 20:35:09 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24c38f914a24391f880e2fd73423dff9cc9a678f">24c38f914a24391f880e2fd73423dff9cc9a678f</a>
+<blockquote>
+<p>
+ Bug 694180: Fix memory leak if there is an error while parsing jbig2 global stream.<br>
+<br>
+base/sjbig2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-04 17:46:33 -0500
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb89b8a3a9f58898402750dbcef43156e54d0118">fb89b8a3a9f58898402750dbcef43156e54d0118</a>
+<blockquote>
+<p>
+ Bug 695771: multithread/bgprint render may not be complete device shutdown<br>
+<br>
+ In some cleanup code, I assumed that by the time that code was called, rendering<br>
+ would be complete - specifcally, background rendering would be complete.<br>
+<br>
+ This may be true when background rendering is one thread, but is definitely not<br>
+ guaranteed when we have bgprint *and* multithreaded rendering.<br>
+<br>
+ Rather nicely, accounting for this actually makes the code tidier.<br>
+<br>
+ Also, add a check that we successfully created a clist IFILE object before<br>
+ storing a value in it.<br>
+<br>
+base/gdevprn.c<br>
+base/gxclfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-04 21:29:05 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80539e002a8a2feed7a1d34608980c3a0d13dbbc">80539e002a8a2feed7a1d34608980c3a0d13dbbc</a>
+<blockquote>
+<p>
+ pdfwrite - fix array dta source mesh shadings<br>
+<br>
+ Bug #696433 &quot;Indeterminism with Bug695847b.ps and the pdfwrite device&quot;<br>
+<br>
+ The code for emitting a mesh shading in a PDF given floating point<br>
+ input (array based vertex data, at least) calcul;ates the number of<br>
+ colour samples by multiplying the number of componentsd in the colour<br>
+ space by the number of vertices.<br>
+<br>
+ However, when applying the max/min clamping from the ranges array in the<br>
+ colour space, it used the current colour sample index, which obviously<br>
+ could be much larger than the number of components in the colour space.<br>
+<br>
+ This caused us to run off the end of the pranges array and use<br>
+ uninitialised data to set the colour sample, leading to non-deterministic<br>
+ (and indeed incorrect) output.<br>
+<br>
+ We now pass in the number of components in the colour space and use the<br>
+ modulus of that with the colour value index to index the pranges array.<br>
+<br>
+devices/vector/gdevpdfv.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-01 16:47:47 -0500
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=17e2a278e9a4adfd534941813075e428f3ea7966">17e2a278e9a4adfd534941813075e428f3ea7966</a>
+<blockquote>
+<p>
+ Make writing TIFF DateTime tag optional.<br>
+<br>
+ Add a -dTIFFDateTime option, defaults to &quot;true&quot; (existing behaviour) and<br>
+ -dTIFFDateTime=false prevents the tag being written to the output file.<br>
+<br>
+ Also, document this and the UseBigTIFF option.<br>
+<br>
+devices/gdevtfax.c<br>
+devices/gdevtfnx.c<br>
+devices/gdevtifs.c<br>
+devices/gdevtifs.h<br>
+devices/gdevtsep.c<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-04 17:04:22 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=44c63aecd4d13f47e0f75e74f63f38715ab7ab73">44c63aecd4d13f47e0f75e74f63f38715ab7ab73</a>
+<blockquote>
+<p>
+ EPSFitPage - fix some kinds of rotation<br>
+<br>
+ Bug #696128 &quot;Rendering an EPS to a PNG with -dEPSFitPage and -gWxH sometimes results in blank render&quot;<br>
+<br>
+ There was a typo in commit d59e1feb9545b399027907cb2d1a6855c524e0b4 which<br>
+ prevented proper rotation in some cases. Note that in this particular<br>
+ case we do *NOT* want to rotate.<br>
+<br>
+Resource/Init/gs_epsf.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-12-04 07:01:38 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4703d04a6146904cab9b1b04aee1478e31df52da">4703d04a6146904cab9b1b04aee1478e31df52da</a>
+<blockquote>
+<p>
+ Fix bug 696258: Crash with mswinpr2 device due to typo.<br>
+<br>
+ There was a typo in win_pr2_getdc was calling gs_strtok with the &quot;last&quot;<br>
+ parameter being a value instead of a pointer to the buffer.<br>
+<br>
+devices/gdevwpr2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-29 18:12:02 -0800
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=237f98e6abb42407466240585b897b5190b68053">237f98e6abb42407466240585b897b5190b68053</a>
+<blockquote>
+<p>
+ Document that the -c option should be specified after other otions (Bug 695293).<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-27 10:08:40 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e1af9ed039398be924e31179e6b742682f49e772">e1af9ed039398be924e31179e6b742682f49e772</a>
+<blockquote>
+<p>
+ Bug 689856: CIE cache: account for different sizes of ulong<br>
+<br>
+ Handle both 32 bit and 64 bit ulong sizes.<br>
+<br>
+psi/zcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-24 11:52:42 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=96d5dc98103b6adab46efa4baeb19535675929b8">96d5dc98103b6adab46efa4baeb19535675929b8</a>
+<blockquote>
+<p>
+ Docs: Add words about soon removing DisableFAPI<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-26 20:03:23 -0800
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5596cc435aec8387ddd2e64437f1f9486f3ee5c6">5596cc435aec8387ddd2e64437f1f9486f3ee5c6</a>
+<blockquote>
+<p>
+ Fixed call to Luratech JP2_Compress_SetLicense() (Bug 695768).<br>
+<br>
+ The Luratech JP2_Decompress_SetLicense() routine was being called instead<br>
+ of JP2_Compress_SetLicense() in the compression section. Thanks for<br>
+ Rodrigo Terra for the finding this.<br>
+<br>
+ Untested since Ghostscript doesn't use this code.<br>
+<br>
+base/sjpx_luratech.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-24 16:54:55 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d8ee66a742b9dbc006dd69e6049d9acfef4ad89f">d8ee66a742b9dbc006dd69e6049d9acfef4ad89f</a>
+<blockquote>
+<p>
+ xps: Fix warnings.<br>
+<br>
+xps/xpspath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-24 13:10:48 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=86a2f29eddb0addaa1c72bd7967748083fb6be3c">86a2f29eddb0addaa1c72bd7967748083fb6be3c</a>
+<blockquote>
+<p>
+ xps: Multiply alpha from opacity attribute with alpha from color attribute.<br>
+<br>
+xps/xpsglyphs.c<br>
+xps/xpspath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-24 13:02:09 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b4393aa83107a484cafc59241eac964fc5a6e560">b4393aa83107a484cafc59241eac964fc5a6e560</a>
+<blockquote>
+<p>
+ xps: Support AlternateContent compatibility markup.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpscommon.c<br>
+xps/xpspage.c<br>
+xps/xpsxml.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-20 12:51:09 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=286433913eeaa01d53e5225b524afb56039cdde8">286433913eeaa01d53e5225b524afb56039cdde8</a>
+<blockquote>
+<p>
+ xps: Fix potential memory leak.<br>
+<br>
+xps/xpspage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-20 12:50:52 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ab039de8626a3052483aeb806186aaa4079e925">7ab039de8626a3052483aeb806186aaa4079e925</a>
+<blockquote>
+<p>
+ xps: Add more warning messages.<br>
+<br>
+xps/xpsdoc.c<br>
+xps/xpstile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-19 15:10:36 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ea84e45f743381e2b47d94a3718a400904ba45f">7ea84e45f743381e2b47d94a3718a400904ba45f</a>
+<blockquote>
+<p>
+ xps: Avoid generating unnecessary linetos for arcs.<br>
+<br>
+xps/xpspath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-19 11:38:55 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cba41adae8a388156f8e4eae29cbf1cd5a61cd1e">cba41adae8a388156f8e4eae29cbf1cd5a61cd1e</a>
+<blockquote>
+<p>
+ xps: Avoid ctype.h<br>
+<br>
+xps/xpsglyphs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-19 11:34:14 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=40e2a79e7e4c223c4219b12020fde906df5fd91e">40e2a79e7e4c223c4219b12020fde906df5fd91e</a>
+<blockquote>
+<p>
+ xps: Use xps_strlcpy instead of strcpy when parsing colors.<br>
+<br>
+xps/xpscolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-17 16:54:23 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=100dff645dbb231de77e7b2f347a459490213bef">100dff645dbb231de77e7b2f347a459490213bef</a>
+<blockquote>
+<p>
+ xps: Check that we have the last piece of multi-part zip entries.<br>
+<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-12 16:57:45 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ef0b983d909787c0a2ace46f61993af84ec32f66">ef0b983d909787c0a2ace46f61993af84ec32f66</a>
+<blockquote>
+<p>
+ xps: Add special case handling of zero-length dash patterns.<br>
+<br>
+xps/TODO<br>
+xps/xpspath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-18 15:43:40 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0833727c2a2e23daefd2721f64d7fb9e02ee3049">0833727c2a2e23daefd2721f64d7fb9e02ee3049</a>
+<blockquote>
+<p>
+ xps: Bail on zip errors instead of returning a part full of garbage.<br>
+<br>
+xps/xpsimage.c<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-18 15:36:57 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15a26a58d1cedf0ab2ad7a968ea2ac5a58e48842">15a26a58d1cedf0ab2ad7a968ea2ac5a58e48842</a>
+<blockquote>
+<p>
+ xps: Fix uninitialized value.<br>
+<br>
+xps/xpspath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-13 16:33:42 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7b91a3627f29ab0c831a56bc5585a5895398279e">7b91a3627f29ab0c831a56bc5585a5895398279e</a>
+<blockquote>
+<p>
+ xps: Various arithmetic and uninitialized value fixes.<br>
+<br>
+xps/xpsgradient.c<br>
+xps/xpsimage.c<br>
+xps/xpspath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-23 08:05:58 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ac252acf1dec30c24bbba9adfc3140fb23a41d7b">ac252acf1dec30c24bbba9adfc3140fb23a41d7b</a>
+<blockquote>
+<p>
+ Tidy up a few comments.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-23 07:24:49 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65ad11d96a83783a71e9e0a2ff8534bf0cdd9864">65ad11d96a83783a71e9e0a2ff8534bf0cdd9864</a>
+<blockquote>
+<p>
+ Fix the gs library context's allocator use.<br>
+<br>
+ The gs library context now uses the allocator with which it was<br>
+ initialized for all memory operations. Previously it used different<br>
+ allocators, resulting in mismatched alloc/free pairs. For example, the<br>
+ languages passed in a memory pointer to the heap allocator upon<br>
+ initialization of the context and then passed in a memory pointer to chunk<br>
+ allocator when the library context is shut down.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-20 13:56:33 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c8bc794d9e9fe9c03d1519cf2a70f70a2d0784d8">c8bc794d9e9fe9c03d1519cf2a70f70a2d0784d8</a>
+<blockquote>
+<p>
+ Improve documentation and fixup toolbin/halftone tools<br>
+<br>
+ The thresh_remap (previously referred to as linearize_threshold) was<br>
+ never in the package, so add it in a separate directory, and fix the<br>
+ reference to it in gen_ordered.c<br>
+<br>
+ Add README files for the upper level, for thresh_remap and for the<br>
+ gen_stochastic directories, so people don't have to read the code to<br>
+ find the parameters.<br>
+<br>
+ Fix gen_stochastic minimum dot logic to actually work, although only<br>
+ the 2x2 (-m5) parameter was tested. Also change the defaults for the<br>
+ tolerance, -t, to 10 (1%) and exponential factor affecting choice, -p,<br>
+ to 2.5 both of which tighten the selection to improve the quality (at<br>
+ least in my opinion).<br>
+<br>
+toolbin/halftone/README<br>
+toolbin/halftone/gen_ordered/gen_ordered.c<br>
+toolbin/halftone/gen_stochastic/README<br>
+toolbin/halftone/gen_stochastic/gen_stochastic.c<br>
+toolbin/halftone/gen_stochastic/gen_stochastic.sln<br>
+toolbin/halftone/gen_stochastic/gen_stochastic.vcproj<br>
+toolbin/halftone/thresh_remap/README<br>
+toolbin/halftone/thresh_remap/thresh_remap.c<br>
+toolbin/halftone/thresh_remap/thresh_remap.sln<br>
+toolbin/halftone/thresh_remap/thresh_remap.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-19 14:16:46 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ecd8816ca46c15da304d6bc93f79f39d47c51952">ecd8816ca46c15da304d6bc93f79f39d47c51952</a>
+<blockquote>
+<p>
+ Bug 696363 &amp; 696362: wrong error code return.<br>
+<br>
+ The FAPI/UFST code was returning a &quot;limitcheck&quot; error when no glyph raster was<br>
+ available, when it should have been &quot;unregistered&quot;.<br>
+<br>
+ This caused problems when I added the return code checks to address some<br>
+ Coverity warnings.<br>
+<br>
+base/fapiufst.c<br>
+base/gxfapi.c<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-19 14:14:27 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92f236c7f2293db8aeae437ac0800617552d6e63">92f236c7f2293db8aeae437ac0800617552d6e63</a>
+<blockquote>
+<p>
+ Bug 696357: correctly check the length of a string<br>
+<br>
+ Indeterminism in 34_all.PS: the check on the size of the string containing the<br>
+ font's CIDMap was incorrect leading to reading off the end.<br>
+<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-16 17:26:56 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0ec425689333b77b9badd8585989e15655d740c1">0ec425689333b77b9badd8585989e15655d740c1</a>
+<blockquote>
+<p>
+ Bug 696316: Enforce memory alignment for libpng<br>
+<br>
+ libpng's inclusion of it's jmp buffer at the beginning of it's private context<br>
+ requires the allocation to be 16 byte aligned on Win64 (because the jmp<br>
+ buffer must be 16 byte aligned).<br>
+<br>
+ In the libpng callback functions for memory allocationg and freeing enforce<br>
+ that alignment.<br>
+<br>
+ Also, add those callbacks (including the alignment enforcement) to the gdevpng.c<br>
+ output device.<br>
+<br>
+ (Code mostly supplied by Robin!).<br>
+<br>
+ No cluster differences.<br>
+<br>
+devices/gdevpng.c<br>
+xps/xpspng.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-18 10:59:13 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d368650e9f3e7e6e4af2d840ffa0dd1e161a9694">d368650e9f3e7e6e4af2d840ffa0dd1e161a9694</a>
+<blockquote>
+<p>
+ PDF Interpreter - Handle incorrect /Size in Xref streams<br>
+<br>
+ Bug #696365 &quot;Error reading PDF file&quot;<br>
+<br>
+ The PDF file is, as usual, invalid. It uses Xref streams and is a<br>
+ Linearized file, meaning that there are two Xrefs, the first one being<br>
+ for page 1 (caused by Linearization).<br>
+<br>
+ This xref looks like ths:<br>
+<br>
+ &lt;&lt;<br>
+ /Size 12<br>
+ /Root 30 0 R<br>
+ /Prev 15073<br>
+ /Info 28 0 R<br>
+ /ID[&lt;B6AEC95A19F1E4391AFF6AF538489730&gt;&lt;B6AEC95A19F1E4391AFF6AF538489730&gt;]<br>
+ /Type/XRef/Index[29 39]/W[1 4 1]/Filter /FlateDecode /Length 112<br>
+ &gt;&gt;<br>
+<br>
+ Notice that the Size (the number of entries in the xref) is given as 12<br>
+ but the Index (starting index + number of entries) gives the size of the<br>
+ table as 39, starting at index 29.<br>
+<br>
+ We were believing the Size, which meant that we created a Xref table<br>
+ which was too small to hold the actual number of entries.<br>
+<br>
+ This commit checks both 'starting index + number of entries in the Index'<br>
+ and 'starting index + Size' and uses the larger.<br>
+<br>
+ NB the xref also contains an entry with an invalid offset, but this does<br>
+ not seem to cause a problem, presumably the entry is never actually used<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-17 13:34:45 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e8eae05c4629217f87eaab7302ac7b880dd9c7c">5e8eae05c4629217f87eaab7302ac7b880dd9c7c</a>
+<blockquote>
+<p>
+ Hash CIE spaces to detect matching, cached, ICC profiles<br>
+<br>
+ Bug #696355 &quot;Create unique ID for CIE color spaces&quot;<br>
+<br>
+ Creating an ICC profile for a PostScript colour space is a performance<br>
+ hit. Especially (I believe) for CIE spaces. We maintain a cache of ICC<br>
+ profiles that have been created, but we need a way to identify if a<br>
+ given, cached, profile matches a newly selected colour space.<br>
+<br>
+ There is code already in place for this, but missing the generation of<br>
+ a unique ID for a space, so that we can find a matching profile, if we<br>
+ have one cached.<br>
+<br>
+ This commit uses the existing MD5 machinery to create a hash from the<br>
+ PostScript array defining a CIEBased colour space. We then use that hash<br>
+ as the ID for the space, and check to see if we already have a cached<br>
+ ICC profile with a matching ID.<br>
+<br>
+ This should improve performance on files using CIEBased colour spaces,<br>
+ especially if they do 'gsave [/CIEBased &lt;&lt;...&gt;&gt;] setcolorspace grestore'<br>
+ operations, as we will only need to create the ICC profile once.<br>
+<br>
+ I've created and manually checked example CIEBasedA, CIEBasedABC,<br>
+ CIEBasedDEF and CIEBasedDEFG files to see that two identical spaces are<br>
+ correctly identified as the same and that spaces with even very tiny<br>
+ differences are correctly identified as different.<br>
+<br>
+ No differences expected in cluster test.<br>
+<br>
+psi/zcie.c<br>
+psi/zcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-16 12:46:18 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=70880b866b06e34e4c078e115001371ae8e9c454">70880b866b06e34e4c078e115001371ae8e9c454</a>
+<blockquote>
+<p>
+ Docs: Remove references to OS X framework<br>
+<br>
+ No cluster differences<br>
+<br>
+doc/API.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-16 12:30:59 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ff6175631e7b8c79849d6de637aaaf5338476d62">ff6175631e7b8c79849d6de637aaaf5338476d62</a>
+<blockquote>
+<p>
+ Bug 696352: initalise io dev table count variable.<br>
+<br>
+ Previously the io device count was only initalised when the library context<br>
+ was created, but it seems the library context can survive multiple<br>
+ instances of the interpreter.<br>
+<br>
+ Initialise the count variable every time a new io device table is created.<br>
+<br>
+ No cluster differences.<br>
+<br>
+base/gsiodev.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-16 09:17:19 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5757d87431c31cf99ea294697382239ab74d424e">5757d87431c31cf99ea294697382239ab74d424e</a>
+<blockquote>
+<p>
+ graphics library - if pattern x or y size is 0, don't estimate tile size<br>
+<br>
+ Inspired by Bug #696351<br>
+<br>
+ The bug report in Bug #696351 is ridiculously incomplete and the reporter<br>
+ seems determined not to provide any real assistance.<br>
+<br>
+ However, by some logic and experimentation it did prove possible to<br>
+ (eventually) reproduce the problem and trace through the code from<br>
+ pattern creation. (run with a very low resolution, -r10 did it for me)<br>
+<br>
+ The crash is caused by attempting to estimate the size of a pattern<br>
+ bitmap tile, when the pattern has a size of 0 in the y direction. This<br>
+ is a legitimate value, we simply drop the pattern in this case. Since<br>
+ we aren't going to render anything, the tile will have a size of 0 so<br>
+ we can easily short-circuit all this calculation by testing for the tile<br>
+ being 0 in either the x or y direction and simply returning 0.<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-13 11:55:20 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e21aae2ee801a6468e44697970d11d4d56d0c6ab">e21aae2ee801a6468e44697970d11d4d56d0c6ab</a>
+<blockquote>
+<p>
+ Bug 694237: Handle missing/incomplete TTF glyph lengths<br>
+<br>
+ In the case of a broken TTF based CIDFont passing through ps2write (or one of<br>
+ the pdfwrite paths that requires glyphs to be rendered), we can end up with<br>
+ a partially complete font structure - in particular, the glyph lengths table<br>
+ may be incomplete or missing.<br>
+<br>
+ We have a couple of fallback options available to get the length of a glyph:<br>
+ the first is to retrieve the offset of the data for *next* glyph index and<br>
+ the difference between the two offsets is the length of the glyph of interest.<br>
+ If that fails (particularly if we are already processing the last available<br>
+ glyph), we can use the offset to the end of the sfnt data - since the glyph<br>
+ table is invariably the last table in the sfnt stream.<br>
+<br>
+ No cluster differences.<br>
+<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-13 08:48:35 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5aa97eed0f8b17ea0f7138d36d64af505420caa1">5aa97eed0f8b17ea0f7138d36d64af505420caa1</a>
+<blockquote>
+<p>
+ Bug 696345: .nativeFontmap when TTF name table is invalid<br>
+<br>
+ When building the .nativeFontmap (using fonts retrieved from a platform<br>
+ specific API - i.e. fontconfig), if we can't read the font name from the<br>
+ font file, we fall back to using the font name as reported by the API.<br>
+<br>
+ But, the code failed to take into account that the operand stack has different<br>
+ depth depending on whether we were able to read the name from the file or not.<br>
+<br>
+ This commit handles that by using a counttomark rather than hard coded stack<br>
+ depth.<br>
+<br>
+ No cluster differences.<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-12 17:22:42 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dfe06d0d8b3f296b908709c22157f7135ed660c7">dfe06d0d8b3f296b908709c22157f7135ed660c7</a>
+<blockquote>
+<p>
+ Bug 694238: init several gs_glyph_info_t structs<br>
+<br>
+ In various places we were calling a font's glyph_info which may, or may not<br>
+ fully fill in the gs_glyph_info_t passed to it, then using the results,<br>
+ regardless of whether the specific value had been set. Initialize to zeros<br>
+ for at least consistent results.<br>
+<br>
+ No cluster differences.<br>
+<br>
+base/gsfont.c<br>
+devices/gxfcopy.c<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-12 17:17:03 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=01cb2de3fbbcfa7c7f809176bb72249831d93b98">01cb2de3fbbcfa7c7f809176bb72249831d93b98</a>
+<blockquote>
+<p>
+ Bug 694238: Fix segfault in error during PatternType 1<br>
+<br>
+ If the PaintProc of a Type 1 pattern triggers an error after having done one<br>
+ or more gsaves, we'll try to retrieve the pattern instance from the wrong<br>
+ graphics state when we attempt the final cleanup.<br>
+<br>
+ To address this, store a reference to the pattern instance on the exec stack<br>
+ which a) guarantees we get the correct pattern instance during cleanup,<br>
+ and b) allows us to roll back the graphics state stack to the correct point.<br>
+<br>
+ No cluster differences.<br>
+<br>
+psi/zpcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-13 08:20:39 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=daf28428a76f3a89a9cff9285cb7b0a663a86b63">daf28428a76f3a89a9cff9285cb7b0a663a86b63</a>
+<blockquote>
+<p>
+ Coverity: fix some ignored return codes in FAPI<br>
+<br>
+ No cluster differences.<br>
+<br>
+base/gxfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-12 16:25:54 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e85900d1814a65918b9c7e90504e25155ae0b9c1">e85900d1814a65918b9c7e90504e25155ae0b9c1</a>
+<blockquote>
+<p>
+ xps: Return with error on encrypted zip files.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-12 16:27:06 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9d1c199af467cd1138bf07c6f66a276e26875c99">9d1c199af467cd1138bf07c6f66a276e26875c99</a>
+<blockquote>
+<p>
+ xps: Fix buffer overflow in xps_parse_color.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpsanalyze.c<br>
+xps/xpscolor.c<br>
+xps/xpsglyphs.c<br>
+xps/xpspath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-12 16:24:30 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0fa7177163f46c77f7928c520ddc3f90de4c59dc">0fa7177163f46c77f7928c520ddc3f90de4c59dc</a>
+<blockquote>
+<p>
+ xps: Fix indeterminism with broken zip files.<br>
+<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-12 16:13:05 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9b4be4d130b37578be55eb6aae4feb8a57c0636d">9b4be4d130b37578be55eb6aae4feb8a57c0636d</a>
+<blockquote>
+<p>
+ xps: Fix gradient ordering edge case.<br>
+<br>
+ Gradients in XPS code are ordered by offset. If however two offsets are<br>
+ equal, the order of the colors depends on the sort algorithm instead of<br>
+ the original order in the document. This is shown e.g. in 2245*.xps:<br>
+<br>
+ &lt;GradientStop Offset=&quot;0&quot; Color=&quot;#ff00ff00&quot; /&gt;<br>
+ &lt;GradientStop Offset=&quot;0.5&quot; Color=&quot;#ff0000ff&quot; /&gt;<br>
+ &lt;GradientStop Offset=&quot;0.5&quot; Color=&quot;#ff00ff00&quot; /&gt;<br>
+ &lt;GradientStop Offset=&quot;1&quot; Color=&quot;#ff00ffff&quot; /&gt;<br>
+<br>
+ Tracking the original order of gradient stops and always sorting earlier<br>
+ stops first makes gradient ordering consistent.<br>
+<br>
+xps/xpsgradient.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-11 16:59:22 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb56dc645039d5a2f376920af1023b7ece801c88">bb56dc645039d5a2f376920af1023b7ece801c88</a>
+<blockquote>
+<p>
+ PDF Interpreter - Ignore empty /Kids arrays in AcroForm fields<br>
+<br>
+ Bug #696342 &quot;PDF Annotation Error: /rangecheck in --run--&quot;<br>
+<br>
+ The PDF file has an AcroForm with a field where the /Kids array is [ ]<br>
+ This previously caused an error.<br>
+<br>
+ Adopting the patch from Martin McNabb with a very slight tweak to issue<br>
+ a warning if -dQUIET isn't set.<br>
+<br>
+ Bizarrely this does exhibit a progression with Bug694429.pdf on the<br>
+ cluster, even though this code isn't executed......<br>
+<br>
+ Its a progression so I'm not going to complain.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-09 10:33:16 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e174b0553e6e2d3bb641cbede1187dfe7979ae86">e174b0553e6e2d3bb641cbede1187dfe7979ae86</a>
+<blockquote>
+<p>
+ PDF interpreter - Allow Shading whose Extend array contains indirect refs<br>
+<br>
+ Bug #696338 &quot;Garbled output - File has unbalanced q/Q operators (too many Q's)&quot;<br>
+<br>
+ A Shading dictionary contains (bizarrely) an Extend array which has<br>
+ members which are indirect references instead of simple booleans.<br>
+<br>
+ Mad, but legal.....<br>
+<br>
+ This commit adds the Extend array to shrdict, which does additional<br>
+ processing of the Shading dictionary before passing to the graphics<br>
+ library. In this case we simply dereference the objects.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-04 16:08:13 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f330b5d4bdae73f9ca88c04e2a1391800c5da758">f330b5d4bdae73f9ca88c04e2a1391800c5da758</a>
+<blockquote>
+<p>
+ Fix Bug 696324 SMask None handled incorrectly by clist writing.<br>
+<br>
+ The SMask None special case that is sent using gssmask in the PDF<br>
+ interpreter when it needs to make sure there is no SMask in place<br>
+ needs special handling w.r.t. the clist cropping logic since we do<br>
+ want to write it, but there won't be a endtransparencymask to<br>
+ perform the pop of the cropping stack.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-02 15:17:45 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=142820542bb883e304788bd4dcc2833b6486cf6d">142820542bb883e304788bd4dcc2833b6486cf6d</a>
+<blockquote>
+<p>
+ Bug 693011: stop PSD devs writing multiple images to one file<br>
+<br>
+ PSD does not support multiple pages/images per file. Previously the PSD devices<br>
+ would allow writing multiple image to the PSD output file, and end up with an<br>
+ invalid PSD file.<br>
+<br>
+ The devices will now check what the output name file has the &quot;%d&quot; formatter to<br>
+ so each page written to a separate file, and if it isn't there, they will<br>
+ generate an error message and error code if an attempt is made to produce<br>
+ more than one page.<br>
+<br>
+ To be clear: and single page input file will complete without error without the<br>
+ &quot;%d&quot; formatter.<br>
+<br>
+ No cluster differences<br>
+<br>
+base/gdevdevnprn.h<br>
+devices/devs.mak<br>
+devices/gdevcmykog.c<br>
+devices/gdevpsd.c<br>
+devices/gdevpsd.h<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-02 15:16:26 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4c6f80586f047561c5ed4e2f9d3a307c2ca6099f">4c6f80586f047561c5ed4e2f9d3a307c2ca6099f</a>
+<blockquote>
+<p>
+ Add Art/Bleed/Trim boxes to pdf_info.ps<br>
+<br>
+ No cluster diffs.<br>
+<br>
+toolbin/pdf_info.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-03 19:25:38 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d2d28598857d94b4c4683fe3ae5a0a71fdfe17d">3d2d28598857d94b4c4683fe3ae5a0a71fdfe17d</a>
+<blockquote>
+<p>
+ Bug 696305: Ensure subdivided lines are not dropped<br>
+<br>
+ While walking the contour in scan_contour, we use<br>
+ gx_flattened_iterator to cope with flattening curves.<br>
+ Each time we call gx_flattened_iterator__next we get the<br>
+ next section of the line out.<br>
+<br>
+ To avoid overflows in huge lines/curves the iterator splits<br>
+ segments into 4. This was showing up a problem in this code<br>
+ whereby a vertical line from 0x80xxxxxx to 0x7fxxxxxx was<br>
+ being split into 4. 2 of these sub-divided lines crossed the<br>
+ region of interest, but only the first of them was being<br>
+ considered for addition into the active line list.<br>
+<br>
+ The fix here is simply to ensure that we continue to loop<br>
+ through the iterator for the curve if we fail to add anything<br>
+ from it.<br>
+<br>
+ It is possible that there are further optimisations possible<br>
+ here (see the FIXMEs in the code), but the changes I've made<br>
+ should be safe and minimally invasive.<br>
+<br>
+ Many thanks to Chris for doing the legwork in tracking the<br>
+ cause down!<br>
+<br>
+base/gxfill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-03 13:41:20 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=35148ae2ffd20e949e01da427a82a6eee20b7127">35148ae2ffd20e949e01da427a82a6eee20b7127</a>
+<blockquote>
+<p>
+ Bug 696305: Revamp scan_contour<br>
+<br>
+ As part of the investigation into bug 696305, rejig the functions<br>
+ around 'scan_contour' for clarity.<br>
+<br>
+ Firstly, we pull the usage of contour_cursor into scan_contour.<br>
+ Rather than having the caller set part of the structure up, and<br>
+ then pass it in, have the caller pass in the required parts and<br>
+ let all of the structure handling be done within scan_contour.<br>
+ This improves the modularity of this code at least.<br>
+<br>
+ Secondly, rather than having the contour_cursor structure contain<br>
+ a pointer to a gx_flattened_iterator allocated separately on the<br>
+ stack, have it be part of the structure. This saves lots of<br>
+ dereferencing (which might help with repeated reads due to C's<br>
+ pointer aliasing) and is clearer to read.<br>
+<br>
+ Thirdly, we break the if's into more deeply nested things. This<br>
+ results in more indented code, but it avoids us having to retest<br>
+ the same variables several times, and may give us some improvement<br>
+ in runtimes.<br>
+<br>
+ Firstly, add some comments. This is a break with tradition in<br>
+ this code. These comments describe my understanding (however<br>
+ limited) it may be of what the code is doing.<br>
+<br>
+base/gxfill.c<br>
+base/gxfill.h<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-03 09:07:27 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7fbc6ddf76a5590252dc25642ae13da15f2a92db">7fbc6ddf76a5590252dc25642ae13da15f2a92db</a>
+<blockquote>
+<p>
+ pdfwrite - prevent selection of inappropriate Downsample filter<br>
+<br>
+ Bug #696322 &quot; GS produces empty PDF with /MonoImageDownsampleType /Bicubic&quot;<br>
+<br>
+ We can't use anything except Subsample for Monochrome images, because<br>
+ anything else will turn them into grayscale images.<br>
+<br>
+ This commit prevents the selection of any downsampling filter if the<br>
+ image is monochrome, using the default Subsample.<br>
+<br>
+ No differences expected<br>
+<br>
+devices/vector/gdevpsdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-03 08:21:37 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de66bba6a320e7b263260205637976c734805909">de66bba6a320e7b263260205637976c734805909</a>
+<blockquote>
+<p>
+ Fix PCL/XPS Windows builds from previous commit<br>
+<br>
+ A typo and a missing header caused the Windows PCL/XPS builds to fail.<br>
+<br>
+ No cluster differences.<br>
+<br>
+pcl/pl/plwmainc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-02 12:37:37 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6b1b1d72ed6432bc29b719e186ea8ebd0b26de8a">6b1b1d72ed6432bc29b719e186ea8ebd0b26de8a</a>
+<blockquote>
+<p>
+ Expunge references to e_* style errors<br>
+<br>
+ No cluster differences<br>
+<br>
+base/fapibstm.c<br>
+base/gp_unifs.c<br>
+base/gpcheck.h<br>
+base/gsiomacres.c<br>
+base/sjpeg.h<br>
+base/strmio.c<br>
+contrib/japanese/gdevdmpr.c<br>
+contrib/pscolor/test.c<br>
+devices/vector/gdevpdfr.c<br>
+devices/vector/gdevpdfx.h<br>
+devices/vector/gdevpdtt.c<br>
+doc/API.htm<br>
+doc/C-style.htm<br>
+doc/Develop.htm<br>
+pcl/pcl/pcommand.h<br>
+pcl/pl/plparse.h<br>
+pcl/pl/plwmainc.c<br>
+toolbin/halftone/gen_stochastic/gen_stochastic.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-28 10:33:43 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ac5d49f03f44aa45ba9a0788bbe351b0510a5bcc">ac5d49f03f44aa45ba9a0788bbe351b0510a5bcc</a>
+<blockquote>
+<p>
+ Coverity #94560: Protect from possible null ptr deref..<br>
+<br>
+ Also ensure we always write a character to the character set.<br>
+<br>
+ No cluster differences<br>
+<br>
+base/wrfont.c<br>
+base/write_t2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-11-01 09:43:04 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c28ba38b907ec1c6a5755669ea0ecb55b95f8cc">6c28ba38b907ec1c6a5755669ea0ecb55b95f8cc</a>
+<blockquote>
+<p>
+ Bug 694982: DeviceN ICC Source Profiles<br>
+<br>
+ The use of -sDeviceNProfile was broken when we introduced<br>
+ delayed initialization of the ICC profiles. This fixes<br>
+ the issue and adds a ReadMe to the example to explain why<br>
+ the orange and green colorants will be swapped from what<br>
+ happens when -sDeviceNProfile is not used.<br>
+<br>
+base/gsicc_manage.c<br>
+toolbin/color/icc_creator/example/README.txt<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-31 12:24:01 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=243614398b7bf3e8c4d080de7f8bbcb7436472cf">243614398b7bf3e8c4d080de7f8bbcb7436472cf</a>
+<blockquote>
+<p>
+ Replacement fix for commit 487ed6<br>
+<br>
+ Bug #696306 was originally fixed in commit 487ed6. After talking about<br>
+ it with Chris, it became clearer why I was unable to intercept the<br>
+ broken font where I wanted. gs_type1.ps contains a redefinition of<br>
+ .buildfont1, and this redefinition does not properly preserve the<br>
+ stack in the event of an error.<br>
+<br>
+ If this was a simple procedure that would be understandable, but the<br>
+ redefinition is of a C operator, so not preserving the stack is actually<br>
+ wrong.<br>
+<br>
+ The commit here corrects that problem, which enables me to intercept the<br>
+ error much later in the page rendering and do a considerably better job<br>
+ of correcting the problem. This now renders as per Marcos' Acrobat<br>
+ screenshot (but unlike mine).<br>
+<br>
+ This fix should be used in preference.<br>
+<br>
+Resource/Init/gs_type1.ps<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-29 14:29:48 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c938315af2a0d4d90a03a762d19d31bf35b47b07">c938315af2a0d4d90a03a762d19d31bf35b47b07</a>
+<blockquote>
+<p>
+ Bug 695042; -dUsePDFX3Profile with -dNumRenderingThreads issues<br>
+<br>
+ When a PDF file has on Output Intent (OI) profile and we want<br>
+ to use it as the device profile or the proof profile, it is<br>
+ set for the device through a call from the interpreter in<br>
+ zset_outputintent. Unlike other profiles for the device,<br>
+ this profile is not a device param that is set with get/put<br>
+ params of a file name. Instead the profile is inside the source<br>
+ file that is being rendered.<br>
+<br>
+ When the threads are set up in setup_device_and_mem_for_thread<br>
+ the icc profiles are set through put and get param calls. Since<br>
+ the OI profile is not available in this manner, this fails.<br>
+<br>
+ This fix detects the presence of the OI profile during<br>
+ setup_device_and_mem_for_thread and clones the profiles.<br>
+ Doing a straight reference to the profile instead of cloning<br>
+ is problematic if the CMM is not thread safe in its use<br>
+ of the profile handles (which is true for LCMS), hence the<br>
+ cloning process.<br>
+<br>
+ In addition, in this commit a non-ascii character was added to<br>
+ the special name for the OI profile to help avoid issues with<br>
+ an actual profile being named with our special key word.<br>
+<br>
+base/gsicc_manage.c<br>
+base/gsicc_manage.h<br>
+base/gxclthrd.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-30 11:58:21 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=487ed6d3b5fabbe21c23da288fbf020f49a28fae">487ed6d3b5fabbe21c23da288fbf020f49a28fae</a>
+<blockquote>
+<p>
+ PDF interpreter - handle broken type 1 fonts with no Private dict earlier<br>
+<br>
+ Bug #696306 &quot;Incomplete rendering of PDF file&quot;<br>
+<br>
+ The embedded type 1 font 'Consolas' is broken. The eexec encrypted<br>
+ portion of the font suddenly ends during a glyph description. This means<br>
+ that the Private dictionary is never added to the font dictionary but is<br>
+ instead left on the operand stack. Where the PDF interpreter removes it<br>
+ in order to avoid other errors.<br>
+<br>
+ The error actually occurs inside .buildfont1, but despite efforts it<br>
+ proved impossible to deal with the error at that point. This was due to<br>
+ all the code already in place to deal with other errors while handling<br>
+ broken PDF files. It wasn't possible to address this particular problem<br>
+ without breaking other (admittedly invalid) PDF files.<br>
+<br>
+ This commit checks the font dictionary for the presence of a Private<br>
+ dictionary before returning from readtype1 and if the Private dict is<br>
+ not present it instead returns a null object, which signals the calling<br>
+ code to attempt to load the font from another source.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-29 09:59:13 -0700
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0498dcff844d119ee51873394aef93be5bfffc6">e0498dcff844d119ee51873394aef93be5bfffc6</a>
+<blockquote>
+<p>
+ Fix for transparency_example.ps to set the number of spot colors, Bug 695277.<br>
+<br>
+ From Michael Vrhel:<br>
+<br>
+ The ps file transparency_example.ps failed to set the number of spot<br>
+ colors on the page. This information is expected to be provided<br>
+ for the pdf14 device by the PDF interpreter when we are dealing with the<br>
+ separable devices (e.g. psdcmyk, tiffsep)<br>
+<br>
+examples/transparency_example.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-24 17:12:46 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65b10e0fc85dc791848dbd43dbcf673669c1fc4c">65b10e0fc85dc791848dbd43dbcf673669c1fc4c</a>
+<blockquote>
+<p>
+ Bug 696222: Fix segfault due to image buffer being allocated too small leading to a memory over run.<br>
+<br>
+ Also updated pclr functionality to detect BitsPerComponent early and so<br>
+ allowing the signature image to be decoded correctly.<br>
+<br>
+ Signed-off-by: Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+base/sjpx_luratech.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-23 10:11:14 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d2c0a7d63b5a2b9b5e99883b89fc03b12f60b77d">d2c0a7d63b5a2b9b5e99883b89fc03b12f60b77d</a>
+<blockquote>
+<p>
+ Handle NULL returns from gsicc_profile_new.<br>
+<br>
+ Fix for bug 696268. Also clean up some of the other error handling<br>
+ in gsicc_create.c, gsicc_manage.c and gsciemap.c<br>
+<br>
+base/gsciemap.c<br>
+base/gsicc_create.c<br>
+base/gsicc_manage.c<br>
+psi/zicc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-28 11:08:20 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1a7740b8a021e2962964fcaf69dd0d95e1af5888">1a7740b8a021e2962964fcaf69dd0d95e1af5888</a>
+<blockquote>
+<p>
+ Fix for crash in Bug 696290<br>
+<br>
+ The planar devices were not getting the bit depth arrays set up.<br>
+ This was causing an issue during the gradient fill for high level<br>
+ colors where we were trying to make a smoothness decision during<br>
+ the line fills. Problem occurred for all the existing planar devices.<br>
+<br>
+devices/gdevcmykog.c<br>
+devices/gdevpsd.c<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-27 10:08:57 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e95a71f661323214a4206f534068301b441dbe3">0e95a71f661323214a4206f534068301b441dbe3</a>
+<blockquote>
+<p>
+ Fix for bug 696227.<br>
+<br>
+ The color usage information for the clist bands was not getting<br>
+ updated for certain cases where we are doing trapezoid fills.<br>
+<br>
+base/gxclrect.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-26 11:01:16 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aaefd493e35b75e761e542713d18cecabfe96593">aaefd493e35b75e761e542713d18cecabfe96593</a>
+<blockquote>
+<p>
+ Add proper check for gx_dc_type_data_devn color type in shading color linearity<br>
+<br>
+ When we added the gx_dc_type_data_devn to support the Device N planar devices,<br>
+ we failed to update the linearity check for shadings when we draw to these<br>
+ devices. This resulted in the linearity check always failing which resulted<br>
+ in extreme decomposition of the shading beyond what was needed.<br>
+<br>
+ Fixes bug 696290. Note that a couple files like 442-01.ps will have some minor<br>
+ shading artifacts visible that were not there before for the psdcmyk device.<br>
+ I checked, and these same artifacts are visible in other CMYK devices (e.g. tiff32nc)<br>
+ for this file.<br>
+<br>
+ These issues are different than what was addressed by this fix and should not<br>
+ be considered a regression by this commit. That said, we may want to open a bug<br>
+ related to those issues.<br>
+<br>
+base/gscspace.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-26 08:32:32 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dc5cae259b8f5b7dc4b6105f60b56af72fed235a">dc5cae259b8f5b7dc4b6105f60b56af72fed235a</a>
+<blockquote>
+<p>
+ check gp_fseek_64 return value and action it, silences Coverity CID 118348<br>
+<br>
+devices/vector/gdevpdfp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 12:27:50 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59c818b145474f6e8a8dc315adaaa308f8e53aac">59c818b145474f6e8a8dc315adaaa308f8e53aac</a>
+<blockquote>
+<p>
+ Fix multi-threaded rendering crash on Windows. Bug 696254.<br>
+<br>
+ The use of fseek(...SEEK_END)...ftell to determine the file size is not<br>
+ thread safe because reading changes the current position. On Windows, the<br>
+ ReadFile changes the position of the 'fd' attached to the stream and handle,<br>
+ and the ftell uses 'lseek(fd, 0, SEEK_CUR)' to get the current position<br>
+ which may have moved due to reads on other threads.<br>
+<br>
+ On unix, similar conditions can occur sharing the FILE * stream. Also on<br>
+ unix, we must assume that without PREAD support, we cannot share the file<br>
+ descriptor since reading requires &quot;ftell..seek..read..seek&quot; sequences that<br>
+ are not thread safe without locking (that is not yet implemented, and may<br>
+ impact performance).<br>
+<br>
+ Maintain the filesize while writing the file in the IFILE wrapper stucture<br>
+ and use that for the file size instead of fseek..ftell to avoid the position<br>
+ change that could happen on the clist file due to a read by a different<br>
+ thread on that same file fd.<br>
+<br>
+ This was a rare problem because only cl_cache_read_init used the seek..tell<br>
+ mechanism to get the filesize, and this only happens in a thread on the<br>
+ first read (to either the bfile or the cfile) which is a narrow window.<br>
+<br>
+base/gp_unifs.c<br>
+base/gxclfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-23 11:16:20 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb1154ad98a2826679be009bf92576aaec99a4dd">fb1154ad98a2826679be009bf92576aaec99a4dd</a>
+<blockquote>
+<p>
+ Bug 694149: Move copied font init earlier.<br>
+<br>
+ When copying a font (for high level device use) we have to initialize at least<br>
+ some of the gs_font structure contents so that, in the event of a later fail,<br>
+ the font can be cleaned up, finalized and freed correctly.<br>
+<br>
+ No cluster differences.<br>
+<br>
+devices/gxfcopy.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-23 10:16:11 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=feafe5e540a0545ec5d28f3f66bb542056bba495">feafe5e540a0545ec5d28f3f66bb542056bba495</a>
+<blockquote>
+<p>
+ Bug 696301: add gserrors.h to the installed files<br>
+<br>
+ for the so-install target.<br>
+<br>
+ Also remove a spurious (copy'n'paste error) comment.<br>
+<br>
+ No cluster differences<br>
+<br>
+base/gserrors.h<br>
+base/unix-dll.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 18:03:56 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3ff82bf9367e36cf582811634cc37831907c439c">3ff82bf9367e36cf582811634cc37831907c439c</a>
+<blockquote>
+<p>
+ Bug 694147: add stack checks in Type 1 charstrings<br>
+<br>
+ Add checks for the both the operand stack and the 'control' stack during<br>
+ interpreting of Type 1 charstrings.<br>
+<br>
+ No cluster differences<br>
+<br>
+base/gstype1.c<br>
+base/gxtype1.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 16:13:20 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3be1a95a2b6e5a8a9c7472d077cdd454315a40fd">3be1a95a2b6e5a8a9c7472d077cdd454315a40fd</a>
+<blockquote>
+<p>
+ Bug 696102: use gs_abort() instead of forced segfault<br>
+<br>
+ In the garbage collector, in a condition that should not occur, gs_abort()<br>
+ is the correct way to bail out.<br>
+<br>
+ No cluster differences.<br>
+<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 16:11:57 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c92c06899aab159ad2f60f69d3ce76ecdb03caff">c92c06899aab159ad2f60f69d3ce76ecdb03caff</a>
+<blockquote>
+<p>
+ Add more details about COMPILE_INITS trade-offs<br>
+<br>
+ No cluster differences<br>
+<br>
+doc/Make.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 15:35:57 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f435300f1647be90380554b23099ae6dd047c6c0">f435300f1647be90380554b23099ae6dd047c6c0</a>
+<blockquote>
+<p>
+ Tweak for CIDSystemInfo indirect object fix<br>
+<br>
+ So these will be handled for all CIDFont types, and not just those with TTF<br>
+ outlines.<br>
+<br>
+ No cluster differences.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 10:35:50 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34dba299b2f76c6ee6254950b5d32fd4026bd030">34dba299b2f76c6ee6254950b5d32fd4026bd030</a>
+<blockquote>
+<p>
+ Typo in .gitattributes, corrected eof to eol. Try and get line endings<br>
+ consistent in ghostpdf.inf<br>
+<br>
+.gitattributes<br>
+lib/ghostpdf.inf<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 10:33:15 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0dd90a3cef222b7195459ee16dfcba0093c24b55">0dd90a3cef222b7195459ee16dfcba0093c24b55</a>
+<blockquote>
+<p>
+ remove the accidentally added ghostpdl.inf<br>
+<br>
+lib/ghostpdl.inf<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 10:13:33 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e1089d53b8b44b9c0c0dcdcc493b7290f11773e">3e1089d53b8b44b9c0c0dcdcc493b7290f11773e</a>
+<blockquote>
+<p>
+ Try again to get Git to change the ghostpdf.inf file<br>
+<br>
+lib/ghostpdf.inf<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 10:02:36 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0baeb24527e4d700cd2e0b0de30cfb58a9b3ba9c">0baeb24527e4d700cd2e0b0de30cfb58a9b3ba9c</a>
+<blockquote>
+<p>
+ Touch the ghostpdf.inf file simply in order to get it to be updated in Git<br>
+<br>
+ We need the ghostpdf.inf file to have consistent line endings across<br>
+ platforms (see commit c46f8651e6bea69b76f84dd58568c18fc73ade7d) simply<br>
+ updating the .gitattributes file doesn't seem to actually alter the file.<br>
+<br>
+lib/ghostpdl.inf<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-22 09:48:02 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c46f8651e6bea69b76f84dd58568c18fc73ade7d">c46f8651e6bea69b76f84dd58568c18fc73ade7d</a>
+<blockquote>
+<p>
+ Make all '.inf' files have DOS/Windows line terminators<br>
+<br>
+ This means that when checked out onto a Linux platform for building releases<br>
+ the line endings will still be 'correct' for DOS/Windows platforms and,<br>
+ more importantly, will be the same as was used when creating any '.cat'<br>
+ files which are used for digital signing.<br>
+<br>
+.gitattributes<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-21 11:11:43 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=268bc03cbf664cad907f7a1f8ee9be7db93f9405">268bc03cbf664cad907f7a1f8ee9be7db93f9405</a>
+<blockquote>
+<p>
+ Fix some of the paths in the visual studio project<br>
+<br>
+ This fixes the paths for the openjpeg files. I don't see the jpegxr content in the project.<br>
+ Also the jpeg files need to be cleaned up. Some of the refs in the project are not really<br>
+ there.<br>
+<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-21 10:55:12 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d4ade241415faeed82e8cc355f58c58d6b0b886">3d4ade241415faeed82e8cc355f58c58d6b0b886</a>
+<blockquote>
+<p>
+ Add name space definitions for Open XPS<br>
+<br>
+ With this commit we should be rendering Open XPS content. Fix for bug 696272<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpsdoc.c<br>
+xps/xpsxml.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-21 10:19:26 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1f0ad334a81e871dbbbc9929928ec025c616926a">1f0ad334a81e871dbbbc9929928ec025c616926a</a>
+<blockquote>
+<p>
+ PDF interpreter - check for (illegal) non-dict XObjects when scanning spot colours<br>
+<br>
+ Bug #696288 &quot;Error: /typecheck in --run-- writing psdcmyk file&quot;<br>
+<br>
+ The PDF file contains a /Pages dictionary which includes a /Resources<br>
+ dictionary, this is consulted if a page calls for a resource which isn't<br>
+ defined in the page's own Resources dictionary.<br>
+<br>
+ Unfortunately the XObject dictionary defined in this resource contains a<br>
+ reference to an object which is not an XObject.<br>
+<br>
+ When scanning for transparency we deal with this (and ignore it) but when<br>
+ scanning for page spot colours, we do not, resulting in a typecheck error.<br>
+<br>
+ This commit adds checking the XObject type when scanning for page spot<br>
+ colours, and ignores anything which isn't a dictionary.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-21 09:20:42 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=56aa405c6d7913701091ce58370679b571690d82">56aa405c6d7913701091ce58370679b571690d82</a>
+<blockquote>
+<p>
+ PDF interpreter - ignore indirect references to invalid object number 0<br>
+<br>
+ Bug #696289 &quot;**** Unrecoverable error in ref! writing PDF file&quot;<br>
+<br>
+ The Outlines tree is referenced indirectly as &quot;0 0 R&quot; which is invalid<br>
+ (object number 0 is reserved). The resolveR routine which resolves indirect<br>
+ references checks the validity of the object number but was checking for a<br>
+ value *less* than 0, when it should have been less than or equal.<br>
+<br>
+ This commit alters the lt to le, which allows the file to be processed, of<br>
+ course there are no Outlines present since those were originally broken.<br>
+<br>
+ Note this only exhibits with high level devices because rendering devices<br>
+ cannot usefully use the Outlines tree, and ignore it.<br>
+<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-19 16:35:51 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3777fa7d9a00158ed2b84de1b547b5fe4a8241dd">3777fa7d9a00158ed2b84de1b547b5fe4a8241dd</a>
+<blockquote>
+<p>
+ Undo mistakenly added debug code from the last commit.<br>
+<br>
+base/gsalloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-19 15:59:57 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0ce584138cbc37c91e757a18d9946b02d3abd03">e0ce584138cbc37c91e757a18d9946b02d3abd03</a>
+<blockquote>
+<p>
+ Fix crash in language switch build introduced by an API change in<br>
+ ghostscript argument processing.<br>
+<br>
+ The language switch system is being reworked but it is nonetheless<br>
+ useful to have the old design working at least for the time being. It<br>
+ looks as though earlier revisions of arg_init() supported a null<br>
+ terminated list, now the function reads all the arguments specified by<br>
+ &quot;argc&quot;. The language switch build used a null terminated list smaller<br>
+ than argc resulting in dereferencing null in arg_init().<br>
+<br>
+ Also remove the business about reading options from a file, certainly<br>
+ not worth the distraction of reading it.<br>
+<br>
+base/gsalloc.c<br>
+gpdl/psi/psitop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-16 14:34:08 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fe1c025dcbaef436b4a45e0a0bcb4af4d98eefde">fe1c025dcbaef436b4a45e0a0bcb4af4d98eefde</a>
+<blockquote>
+<p>
+ Correct some out of date information regarding ColorConversionStrategy<br>
+<br>
+ The PDF/A and PDF/X sections of the documentation contained some out of<br>
+ date settings. The main body of the text remained correct.<br>
+<br>
+doc/Ps2pdf.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-14 13:54:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e126995d6327788ddac7fd99f55db3c1603beea7">e126995d6327788ddac7fd99f55db3c1603beea7</a>
+<blockquote>
+<p>
+ Bug 696271: Fix a load of makefile dependencies.<br>
+<br>
+ A large number of targets weren't depending on the makefile in which they were<br>
+ defined.<br>
+<br>
+ Almost no targets were dependent on the top level makefile.<br>
+<br>
+ A significant number of targets were missing the &quot;MAKEDIRS&quot; dependency (which<br>
+ is specific to GNU make as an order-only prerequisite).<br>
+<br>
+ No cluster differences<br>
+<br>
+base/expat.mak<br>
+base/fapi_bs.mak<br>
+base/freetype.mak<br>
+base/gs.mak<br>
+base/ijs.mak<br>
+base/jbig2.mak<br>
+base/jpeg.mak<br>
+base/jpegxr.mak<br>
+base/lcms2.mak<br>
+base/lcups.mak<br>
+base/lcupsi.mak<br>
+base/ldf_jb2.mak<br>
+base/lib.mak<br>
+base/lwf_jp2.mak<br>
+base/msvclib.mak<br>
+base/msvctail.mak<br>
+base/openjpeg.mak<br>
+base/pcwin.mak<br>
+base/png.mak<br>
+base/tiff.mak<br>
+base/unix-aux.mak<br>
+base/unix-dll.mak<br>
+base/unix-end.mak<br>
+base/unixinst.mak<br>
+base/unixlink.mak<br>
+base/winlib.mak<br>
+base/winplat.mak<br>
+base/zlib.mak<br>
+contrib/contrib.mak<br>
+cups/cups.mak<br>
+devices/contrib.mak<br>
+devices/devs.mak<br>
+pcl/pcl/pcl.mak<br>
+pcl/pcl/pcl_top.mak<br>
+pcl/pl/pl.mak<br>
+pcl/pxl/pxl.mak<br>
+psi/int.mak<br>
+psi/msvc.mak<br>
+psi/os2.mak<br>
+psi/winint.mak<br>
+xps/xps.mak<br>
+xps/xps_gcc.mak<br>
+xps/xps_msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-14 15:23:06 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=74ba28a80804f82aaa68682733c7d7a3cd5f9cbd">74ba28a80804f82aaa68682733c7d7a3cd5f9cbd</a>
+<blockquote>
+<p>
+ pdfwrite - guard against NULL pointer dereference and correct a loop<br>
+<br>
+ Bug #696275 &quot;-dFastWebView parameter crashes Ghostscript&quot;<br>
+<br>
+ This is a twofold fix. A Coverity static analysis fix added some return<br>
+ checking, but this happened inside a faulty loop, the code should not have<br>
+ been executed. Because the return value wasn't checked, this didn't cause a<br>
+ problem......<br>
+<br>
+ Checking the return value meant that we returned an error to the caller, and<br>
+ an oversight there could lead to us dereferencing a pointer which had not<br>
+ been allocated.<br>
+<br>
+ This commit fixes both of these problems.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-14 09:50:40 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c6fa28f20c464c4badb2579b6bf8dfd0c7cc0230">c6fa28f20c464c4badb2579b6bf8dfd0c7cc0230</a>
+<blockquote>
+<p>
+ Bug 696267: augment DroidSansFallback.ttf<br>
+<br>
+ Specifcally to add the Yen symbol, but adds any glyphs in DroidSans.ttf not<br>
+ present in DroidSansFallback.ttf<br>
+<br>
+ One minor cluster change - 959_-_cannot_search_for_japanese.pdf<br>
+<br>
+Resource/CIDFSubst/DroidSansFallback.ttf<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-13 08:32:26 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1ebc998c9e6e18468a64210ed5da091e765cef1c">1ebc998c9e6e18468a64210ed5da091e765cef1c</a>
+<blockquote>
+<p>
+ Squash a compiler warning<br>
+<br>
+ I hadn't realised but the 'setup_fn' is a fixed 256 byte character array<br>
+ rather than a char pointer, so there's no point for testing it being<br>
+ non-NULL.<br>
+<br>
+ Of course, having the filename be a fixed length array has other implications<br>
+ for buffer overruns.....<br>
+<br>
+devices/gdevrinkj.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-12 16:40:10 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5571ddfa377c5d7d98f55af40e693814ac287ae4">5571ddfa377c5d7d98f55af40e693814ac287ae4</a>
+<blockquote>
+<p>
+ prevent rinkj device crash when misconfigured (no SetupFile)<br>
+<br>
+ Bug #696246 &quot;Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices&quot;<br>
+<br>
+ The rinkj device requires a SetupFile to be given as a device parameter,<br>
+ however it doesn't actually check to see if one is given, and just tries<br>
+ to open the filename, with a predictable crash when none is given.<br>
+<br>
+ Here we check the filename and attempt to ensure it is both present and<br>
+ minimally valid.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/gdevrinkj.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-12 16:38:09 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1bdbe4f87dc57648821e613ebcc591b84e8b35b3">1bdbe4f87dc57648821e613ebcc591b84e8b35b3</a>
+<blockquote>
+<p>
+ Ensure plib devices always use the clist<br>
+<br>
+ Bug #696246 &quot;Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices&quot;<br>
+<br>
+ the plib* class of devices only work if clist is present, but previously<br>
+ they left the banding_type set to 'auto', which meant that under some<br>
+ conditions we did not use the clist, leading to a seg fault.<br>
+<br>
+ This commit simply forces banding_type to be 'BandingAlways'.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/gdevplib.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-12 16:36:11 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=007bd77d08d800e6b07274d62e3c91be7c4a3f47">007bd77d08d800e6b07274d62e3c91be7c4a3f47</a>
+<blockquote>
+<p>
+ Guard against NULL 'base' for non-clist devices<br>
+<br>
+ Bug #696246 &quot;Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices&quot;<br>
+<br>
+ This is actually for the plib device. This device is currently (this will<br>
+ change in the next commit) set to BandingAuto, despite the fact that the<br>
+ device only works in banding mode.<br>
+<br>
+ This can lead to use arriving in gdev_mem_open_scan_lines with all of<br>
+ mdev-&gt;bitmap_memory, mdev-&gt;line_pointers_memory and mdev-&gt;base being set to<br>
+ NULL. The code didn't check and assumed that mdev-&gt;base was valid, which<br>
+ led to a later seg fault.<br>
+<br>
+ Here we just check to make sure it isn't NULL and return an error if it is.<br>
+ This doesn't prevent the possibility of garbage uninitialised values, but<br>
+ there's not much we can do to check that at this stage, devices are supposed<br>
+ to be initialised to 0 so this 'shouldn't' happen.<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gdevmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-09 10:04:17 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92f91de4a43e164602f2c219f895006347db958c">92f91de4a43e164602f2c219f895006347db958c</a>
+<blockquote>
+<p>
+ Bug 696232: apply metrics for PCL TTF fonts.<br>
+<br>
+ Specifically, metrics for Format 1 Class 2 glyph data.<br>
+<br>
+ Several PCL/PXL files show differences, most are not really visible without<br>
+ pixel level comparisons, a very few are (mostly subtle) progressions.<br>
+<br>
+base/fapi_ft.c<br>
+base/gxfapi.c<br>
+pcl/pl/plchar.c<br>
+pcl/pl/plchar.h<br>
+pcl/pl/plfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-09 12:54:44 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=95553954b8d150e847090ec03db3b10a998e82be">95553954b8d150e847090ec03db3b10a998e82be</a>
+<blockquote>
+<p>
+ Bug 696246: patch the memory manager fields for sublassed devices.<br>
+<br>
+ When we subclass a device, we were patching the &quot;visible&quot; type field - that is,<br>
+ the one referenced directly in the device structure. We were not patching<br>
+ the type information in the memory object header so, in particular, the<br>
+ garbage collector could end up calling the wrong methods for the subclassed<br>
+ device.<br>
+<br>
+ No cluster differences.<br>
+<br>
+base/gdevdflt.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-09 10:54:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b68e05c3b78c19ae06003281adaa2736cb53e605">b68e05c3b78c19ae06003281adaa2736cb53e605</a>
+<blockquote>
+<p>
+ Bug 696246: devijs account for device sublassing.<br>
+<br>
+ The IJS device wasn't coping with the possibility it had been subclassed.<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/gdevijs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-08 15:02:17 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d39382efae340a29cd5a502b52d135f63f9202ce">d39382efae340a29cd5a502b52d135f63f9202ce</a>
+<blockquote>
+<p>
+ Add configure and makefile stuff for isinf() and isnan()<br>
+<br>
+ Bug #696248 related.<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-08 13:54:50 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5411d274b19067bec99189dd0a956432d619c80e">5411d274b19067bec99189dd0a956432d619c80e</a>
+<blockquote>
+<p>
+ PS interpreter - check for floating point exceptions in mul, div and add<br>
+<br>
+ Bug #696248 &quot;gs9.18 crash on display of nan; also poor handling of inf&quot;<br>
+<br>
+ The mul, div and add operators did not detect invalid results (infinity or<br>
+ non-a-number). This is likely because there is no guaranteed portable<br>
+ method for detection of these prior to C99.<br>
+<br>
+ Here we add checks for this results using the C99 extensions isnan() and<br>
+ isinf(). These are guarded by #ifdef so that they do not cause compilation<br>
+ problems on compilers that don't support them. Additionally add support for<br>
+ early versions of Microsoft Visual Studio which used somewhat different<br>
+ names for these functions.<br>
+<br>
+ This code requires some changes to the configure scripts on Linus in<br>
+ order to enable it.<br>
+<br>
+ On systems which do not support isnan() and isinf() there will be no change,<br>
+ we will continue to not report errors in ths case.<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gssprintf.c<br>
+base/math_.h<br>
+psi/zarith.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-07 09:26:05 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=33f782ee9e09fd840d0d50598db491e5b8a951f5">33f782ee9e09fd840d0d50598db491e5b8a951f5</a>
+<blockquote>
+<p>
+ Fix Bug #696242: PCL should be the default implementation when<br>
+ building with XPS.<br>
+<br>
+pcl/pl/plimpl.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-07 09:33:00 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ddda7e89bb0bf35cec575c54b19fa8ba3608d8f7">ddda7e89bb0bf35cec575c54b19fa8ba3608d8f7</a>
+<blockquote>
+<p>
+ PS interpreter - fix a buffer overrun in '=='<br>
+<br>
+ Since changing the implementation of sprintf we now have a situation<br>
+ where %g can return &gt; 50 bytes of data for a INF. In obj_cvp we define a<br>
+ fixed size buffer on the heap to receive this, but only 50 bytes wide, so<br>
+ the buffer overflows and we get a crash.<br>
+<br>
+ Increased the size of the buffer well past the maximum possible return<br>
+ size from sprintf.<br>
+<br>
+ No differences expected.<br>
+<br>
+psi/iutil.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-06 17:36:27 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b3c0f7279a34836276df5126a0d4a7a1abd00977">b3c0f7279a34836276df5126a0d4a7a1abd00977</a>
+<blockquote>
+<p>
+ Add a missing dependency for the gs romfs file<br>
+<br>
+psi/psromfs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-05 13:15:28 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0db2e3063957b94ee331da09369a9e4116c3d9c1">0db2e3063957b94ee331da09369a9e4116c3d9c1</a>
+<blockquote>
+<p>
+ pdfwrite - cater for forms with negative bounding boxes<br>
+<br>
+ When setting a clip for forms, we were not accounting for the possibility<br>
+ of a form which was wholly negative in either or both dimensions.<br>
+<br>
+ Here we permit that and create a better clip.<br>
+<br>
+ No differences expected.<br>
+<br>
+psi/zform.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-10-01 13:37:43 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a7a09c72cd84b539914d97ceafd02673f0dd32f9">a7a09c72cd84b539914d97ceafd02673f0dd32f9</a>
+<blockquote>
+<p>
+ pdfwrite - prevent NULL pointer dereference<br>
+<br>
+ Bug #696234 &quot; Regression: segfault with pdfwrite starting with 17131c7a7fdf9d8537c4715e538c49b29c8945a8&quot;<br>
+<br>
+ When trying to find an object in the resource chains using an ID, we can<br>
+ encounter resources which have been cancelled. These have no object (it has<br>
+ been freed) so trying to dereference the object can cause a SEG fault.<br>
+<br>
+ I did try to free the resource as well, when cancelling it but that spun<br>
+ off into a maze of complications involving the garbage collector. It seems<br>
+ that 'something' was maintaining a pointer to those structures, so freeing<br>
+ them caused all kinds of relocation/free problems.<br>
+<br>
+ Its a lot easier just to prevent dereferencing the pointer.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-30 09:43:44 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=38dd52355037ce88c21bad94bff0df04d71ffc8b">38dd52355037ce88c21bad94bff0df04d71ffc8b</a>
+<blockquote>
+<p>
+ pdfwrite - improve tiny text matrix clamping in 53ac1eca93ac13fead4c4ab8ced0faeee1ee517c<br>
+<br>
+ Use fabs instead of abs on the matrix elements, and allow individual<br>
+ scaling for each element so that clamping to a minimum value can vary for<br>
+ each element.<br>
+<br>
+ No diffrences expected.<br>
+<br>
+devices/vector/gdevpdts.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-29 15:32:52 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e88f94fed2a339288b3ee65cf3dce348c0b3419d">e88f94fed2a339288b3ee65cf3dce348c0b3419d</a>
+<blockquote>
+<p>
+ Contents of CIDSystemInfo can be indirect references<br>
+<br>
+ Cope with that....<br>
+<br>
+ No cluster differences.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-28 22:44:30 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c874900bf0c184bd61586acfb6f4ebb5a007f730">c874900bf0c184bd61586acfb6f4ebb5a007f730</a>
+<blockquote>
+<p>
+ Improve initalization of the gdevplib device.<br>
+<br>
+ Tweak so it uses appropriate macro, eliminating warnings, and hopefully making<br>
+ long term maintenance easier.<br>
+<br>
+ No cluster differences.<br>
+<br>
+devices/gdevplib.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-28 09:53:55 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=da2038b2040827f9f29faa43266477f73d83c043">da2038b2040827f9f29faa43266477f73d83c043</a>
+<blockquote>
+<p>
+ Bug 696229: initialize clist color space validity.<br>
+<br>
+ The clist uses a stack variable to hold the device color. Valgrind reports<br>
+ that the ccolor_valid entry in the device color can remain unset, so set<br>
+ it to invalid when the initialize the device color to &quot;unset&quot;.<br>
+<br>
+ Also, add a PACIFY_VALGRIND memset so pattern bitmap buffers are fully zeroed<br>
+ on allocation - stops valgrind getting upset about writing and reading back<br>
+ uninitialised (padding) bytes to/from the clist.<br>
+<br>
+ No cluster differences.<br>
+<br>
+base/gdevmem.c<br>
+base/gxclrast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-29 14:25:07 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=53ac1eca93ac13fead4c4ab8ced0faeee1ee517c">53ac1eca93ac13fead4c4ab8ced0faeee1ee517c</a>
+<blockquote>
+<p>
+ pdfwrite - ensure we don't write non-zero matrix elements with too tiny a value<br>
+<br>
+ Bug #696228 &quot;Regression: error starting with 70b442162ff8f3d40595d0eb9fb365d341139ee2&quot;<br>
+<br>
+ The change noted causes the PDF interpreter to replace degenerate text matrices<br>
+ with a very tiny scaling matrix. However, when writing this back through<br>
+ ps2write, we also take the size of the font into account, and bake this<br>
+ into the matrix.<br>
+<br>
+ If the font size was less than 1 this could lead to us writing a value too<br>
+ small for printf's '%g' format, and it ended up being written as zero, which<br>
+ caused the error with the ps2write output.<br>
+<br>
+ This commit checks each of the array elements to see if they are non-zero, but<br>
+ have a value so small that they will *become* zero when written out. If this<br>
+ happens we recalculate the scale so that the minimum value is emitted. The<br>
+ value is so small anyway that this should not cause a perceptible difference.<br>
+ We *don't* do this for the Tx and Ty values as we want these to be correct<br>
+ and it doesn't cause a problem if these are 0.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdts.c<br>
+<p>
+</blockquote>
+<hr>
+<hr size=20>
+
<h2><a name="Version9.18"></a>Version 9.18 (2015-09-23)</h2>
<p>This is the thirteenth full release in the stable 9.x series, and is
diff --git a/doc/News.htm b/doc/News.htm
index 6fc561b46..b98a381e4 100644
--- a/doc/News.htm
+++ b/doc/News.htm
@@ -58,43 +58,44 @@ overview</a>.
<h2><a name="Version9.19"></a>Version 9.19 (2016-03-11)</h2>
-<p>This is the thirteenth full release in the stable 9.x series, and is
-primarily a maintenance release.
+<p>This is the thirteenth full release in the stable 9.x series, and is mainly
+a maintenance release.
<p> Highlights in this release include:
<ul>
<li>
<p>
-A substantial revision of the build system and GhostPDL directory structure,
-meaning the GhostPCL and GhostXPS &quotproducts&quot are now built by the
-Ghostscript build system &quotproper&quot rather than having their own builds
-which called the Ghostscript build system for certain parts of the builds.
+New custom PJL (near) equivalents for pdfmark and setdistillerparams. These were
+primarily added to allow pdfwrite to be configured correctly for PDF/A output from
+GhostPCL.
+See: <a href="VectorDevices.htm#PXL_IN">pdfwrite with PCL input</a> for
+more details.
<p>
-Ghostscript-only users should not be affected by this change.
+Ghostscript users should continue to use the existing pdfmark and setdistillerparams
+capabilities.
+</li>
+<li>
<p>
-For users of the PCL and XPS interpreters (collectively downloaded as &quotGhostPDL&quot) there
-is a new, &quotflatter&quot directory structure and only one <code>configure</code> and one
-<code>make</code> invocation to build all the products. There are also some executable default name changes
-to bring the PCL and XPS binaries in line with the Ghostscript ones. All executables now end up in
-the &quotbin&quot directory (or build specific variant thereof, e.g. &quotdebugbin&quot). The PCL
-executable, by default, is now &quotgpcl6&quot on Unix like systems and &quotgpcl6win??.exe&quot (where
-&quot??&quot is either &quot32&quot or &quot64&quot). The XPS executable remains &quotgxps&quot on Unix-like
-systems, but similarly becomes &quotgxpswin??.exe&quot on Windows.
+Metadata pdfmark is now implemented. This allows the user to
+specify an XMP stream which will be written to the Catalog of the PDF
+file.A new pdfmark 'Ext_Metadata' has bee defined. This takes a string
+parameter which contains XML to be add to the XMP normally created by
+pdfwrite.
<p>
-Those using scripts or other automated processes will need to take steps to cope with these changes.
+See <a href="VectorDevices.htm#Extensions">pdfwrite pdfmark extensions</a> for more
+information.
</li>
<li>
-<p>Improved high level devices handling of Forms. Whilst High level devices (eg pdfwrite)
-already checked Forms to see if they are duplicates, and if so use the initial definition.
-However, this does not improve performance, since the Form PaintProc still needs to be executed
-for each instance of the Form, and the matching algorithm could, in very odd circumstances, be
-defeated. The new implementation benefits both causes, meaning the second and subsequent invocation
-of the form need not re-run the PaintProc, and removes the heurisic aspect of the reuse detection.
+An experimental, rudimentary raster trapping implementation implementation has been
+added to the Ghostscript graphics library. See <a href="Devices.htm#TIFF_trapping">Trapping</a>
+for details.
</li>
<li>
-<p>New URW+ fonts in which the families NimbusMono, NimbusRoman and NimbusSans have been
-augmented with production quality Greek and Cyrillic glyphs. These correspond to our
-substitutes for the PDF base 14 fonts.
+<p>
+The halftone threshold array generation tools (part of <code>toolbin/halftone</code>) have been
+improved with <code>thresh_remap</code> which allows folding the transfer function (AKA toner
+response curve (TRC)) into the threshold array so that highlights are improved. Further,
+<code>gen_stochastic</code> has improved support for minimum dot size and shape.
</li>
<li>
<p>Plus the usual round of bug fixes, compatibility changes, and incremental improvements.
@@ -103,11 +104,34 @@ substitutes for the PDF base 14 fonts.
<p>For a list of open issues, or to report problems,
please visit <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a>.
-<h3><a name="9.16_Incompatible_changes"></a>Incompatible changes</h3>
+<h3><a name="9.19_Incompatible_changes"></a>Incompatible changes</h3>
+<ul>
+<li>
+<p>
+(Minor) API change: copy_alpha now supports 8 bit depth (as well as the previous 2 and 4).
+</li>
+<li>
<p>
-No recorded incompatible changes.
+The gs man pages are woefully out of date and basically unmaintained. With the release
+following 9.19, we intend to replace their contents with a very limited summary of (unlikely
+to ever change aspects of) calling Ghostscript, and a pointer to the (maintained) HTML
+documentation. That is, unless a volunteer is willing to update, and commit to
+maintaining the man pages.
+</li>
+<li>
+We plan (ideally for the release following 9.19) to somewhat tidy up the device API.
+We plan to remove deprecated device procs (methods/function pointers). We also
+intend to merge the imager state and graphics state (thus eliminating the
+imager state), and change the device API so every device proc takes a graphics
+state parameter (rather than the current scheme where only a very few procs
+take an imager state parameter). This should serve as notice to anyone
+maintaining a Ghostscript device outside the canonical source tree that you
+may (probably will) need to update your device(s) when these changes happen.
+Devices using only the non-deprecated procs should be trivial to update.
+</li>
+</ul>
-<h3><a name="9.16_changelog"></a>Changelog</h3>
+<h3><a name="9.19_changelog"></a>Changelog</h3>
<p>See the <a href="History9.htm">history file</a> for complete log
of changes.