summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2017-03-06 10:57:03 +0000
committerChris Liddell <chris.liddell@artifex.com>2017-03-06 10:57:03 +0000
commit53dc6a1e4bb61ce1aaf689550d42ec6cf706d889 (patch)
tree3959cc99fba61672e1556ea963d44741bf68274a
parent2f4b5eb2cf7d173d69c7a6bdb8008447f8e1b174 (diff)
downloadghostpdl-53dc6a1e4bb61ce1aaf689550d42ec6cf706d889.tar.gz
Update News.html and History9.htmghostpdl-9.21rc1
with highlights and changelogs
-rw-r--r--doc/History9.htm8339
-rw-r--r--doc/News.htm36
2 files changed, 8370 insertions, 5 deletions
diff --git a/doc/History9.htm b/doc/History9.htm
index b1c51a072..fdd743faa 100644
--- a/doc/History9.htm
+++ b/doc/History9.htm
@@ -29,6 +29,7 @@ TOC to see how to edit it for visual conciseness.
<h2>Table of contents</h2>
<blockquote><ul>
+<li><a href="#Version9.20">Version 9.21 (2017-03-06)</a>
<li><a href="#Version9.20">Version 9.20 (2016-09-26)</a>
<li><a href="#Version9.19">Version 9.19 (2016-03-23)</a>
<li><a href="#Version9.18">Version 9.18 (2015-09-23)</a>
@@ -76,6 +77,8344 @@ overview</a>.
<!-- [2.0 begin contents] ================================================== -->
+<h2><a name="Version9.21"></a>Version 9.21 (2017-03-06)</h2>
+
+<p>This is the fifteenth full release in the stable 9.x series.
+
+<p> Highlights in this release include:
+<ul>
+<li>
+<p>pdfwrite now preserves annotations from input PDFs (where possible).
+</li>
+<li>
+<p>The GhostXPS interpreter now provides the pdfwrite device with the data
+it requires to emit a ToUnicode CMap: thus allowing fully searchable PDFs to
+be created from XPS input (in the vast majority of cases).
+</li>
+<li>
+<p>Ghostscript now allows the default color space for PDF transparency blends.
+</li>
+<li>
+<p>The Ghostscript/GhostPDL configure script now has much better/fuller support
+for cross compiling.
+</li>
+<li>
+<p>The tiffscaled and tiffscaled4 devices can now use ETS (Even Tone Screening)
+</li>
+<li>
+<p>The toolbin/pdf_info.ps utility can now emit the PDF XML metadata.
+</li>
+<li>
+<p>Ghostscript has a new scan converter available (currently optional, but will
+become the default in a near future release). It can be enabled by using the command
+line option: '-dSCANCONVERTERTYPE=2'. This new implementation provides vastly improved
+performance with large and complex paths.
+</li>
+<li>
+<p>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.20_Incompatible_changes"></a>Incompatible changes</h3>
+<ul>
+<li>
+<p>
+The planned device API tidy (still!) did not happen for this release, due to time pressures,
+but we still intend to undertake the following:
+We plan to somewhat tidy up the device API. We intend to remove deprecated device
+procs (methods/function pointers) 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.21_changelog"></a>Changelog</h3>
+<p><strong>2017-03-06 10:32:53 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2f4b5eb2cf7d173d69c7a6bdb8008447f8e1b174">2f4b5eb2cf7d173d69c7a6bdb8008447f8e1b174</a>
+<blockquote>
+<p>
+ Update dates and versions<br>
+<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/sample_downscale_device.htm<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>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-06 10:31:53 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7d3e8640525cab77feabf33db732e5d1bb4eb652">7d3e8640525cab77feabf33db732e5d1bb4eb652</a>
+<blockquote>
+<p>
+ Update copyrights in &quot;top&quot; makefiles<br>
+<br>
+Makefile.in<br>
+psi/winint.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-06 10:28:47 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f917db5eb0b94c864cef770022d86b22e45df98">8f917db5eb0b94c864cef770022d86b22e45df98</a>
+<blockquote>
+<p>
+ Product string for 9.20RC1<br>
+<br>
+base/gscdef.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-03 10:20: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=278c66866eb41c0d8220d31bd7f12887706eb51c">278c66866eb41c0d8220d31bd7f12887706eb51c</a>
+<blockquote>
+<p>
+ Change git behaviour broke gitlog2changelog.py<br>
+<br>
+ remove the --cc options<br>
+<br>
+toolbin/gitlog2changelog.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-03 10:00:05 -0700
+</strong>
+<br>Henry &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d2da0ae232605c4f62a97f8cf1cedce15c4ba9f">1d2da0ae232605c4f62a97f8cf1cedce15c4ba9f</a>
+<blockquote>
+<p>
+ Add error message when resident fonts are not found.<br>
+<br>
+ The fix also uncovered a regression. The XL interpreter was checking<br>
+ if the function to load built in fonts returned a code less than 0<br>
+ which does not happen anymore. Upon error the function returns 0 (false),<br>
+ indicating no fonts found.<br>
+<br>
+pcl/pcl/pcfont.c<br>
+pcl/pxl/pxsessio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-03 06:58:19 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c9cb91b2fb59481247aaee88779577ef6c103327">c9cb91b2fb59481247aaee88779577ef6c103327</a>
+<blockquote>
+<p>
+ Update the default PCL font search path.<br>
+<br>
+ The font search path was never updated when the directory structure<br>
+ changed, also add a directory entry to allow PCL to find fonts while<br>
+ cluster testing without an environment variable or command line<br>
+ setting.<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-03 09: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=62354d822b29006d7e431a2b07c70106647b62c8">62354d822b29006d7e431a2b07c70106647b62c8</a>
+<blockquote>
+<p>
+ Remove the left over Mac specific files.<br>
+<br>
+ OS X is basically just a Unix-like system, so building gs for it is now just<br>
+ like for any other Unix-like system. We haven't supported Mac Classic for some<br>
+ time.<br>
+<br>
+ Several Mac related files were left over, atrophied and no longer any value.<br>
+<br>
+ This removes them.<br>
+<br>
+base/gsiomacres.c<br>
+base/lib.mak<br>
+base/macgenmcpxml.sh<br>
+base/macos_carbon_d_pre.h<br>
+base/macos_carbon_pre.h<br>
+base/macos_classic_d_pre.h<br>
+base/macosx.mak<br>
+base/macsystypes.h<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-02 16:35:51 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ba8d4abaa9c33edd8c79da7022f231e4b21f22e9">ba8d4abaa9c33edd8c79da7022f231e4b21f22e9</a>
+<blockquote>
+<p>
+ fix bug 697621: color_usage.or bits were wrong with transparency<br>
+<br>
+ The psdcmykog uses the color_usage.or bits to decide which components need to<br>
+ be processed, skipping those that are not needed. When the pdf14 device changes<br>
+ the color_info the color that will actually go on the page cannot be known<br>
+ without transforming the color to the device color which is too expensive.<br>
+<br>
+ Also fix the polarity tests in gx_color_index2usage (it was being ignored)<br>
+<br>
+base/gxclist.c<br>
+base/gxclpath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-02 12:26:16 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ea14e8c7c8f8ece7a7ea2a324bca2c115c61b1a3">ea14e8c7c8f8ece7a7ea2a324bca2c115c61b1a3</a>
+<blockquote>
+<p>
+ Bug 697626: bounds check allocations in the chunk allocator<br>
+<br>
+ Ensure the requested memory allocation doesn't overflow the 32 bit variables<br>
+ in the chunk allocator.<br>
+<br>
+base/gsmchunk.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-01 10:26:17 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=670e5d250c6049694f0f1f1c3d15270d6dc2246a">670e5d250c6049694f0f1f1c3d15270d6dc2246a</a>
+<blockquote>
+<p>
+ Bug 697615: Only apply CompatibleOverprint handling to some colorspaces<br>
+<br>
+ Testing with Adobe shows that only Gray, CMYK, DeviceN and Sep color<br>
+ spaces should use the special CompatibleOverprint handling specified<br>
+ in the section &quot;Compatibility with Opaque Overprinting&quot;.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-01 12:59: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=0a8f8a53a968a638e828086f0725780aa64793c0">0a8f8a53a968a638e828086f0725780aa64793c0</a>
+<blockquote>
+<p>
+ Fix clump handling.<br>
+<br>
+ Ray spotted that running:<br>
+<br>
+ debugbin/gs -r300 -Z@\$\?: -dJOBSERVER<br>
+<br>
+ is enough to send us into an infinite loop.<br>
+<br>
+ Tracking this down, it appears that the reason is to do with<br>
+ the gs_ref_memory_t's use of 'pcc' and 'cc'.<br>
+<br>
+ It copies the 'current' chunk out of the splay tree, and then<br>
+ puts it back later, without realising that the splay tree<br>
+ may have been altered.<br>
+<br>
+ The simplest fix appears to be just to not do this copying.<br>
+<br>
+base/gsalloc.c<br>
+base/gxalloc.h<br>
+psi/ialloc.c<br>
+psi/igc.c<br>
+psi/ilocate.c<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-28 17:36: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=f8c0d4e78f75de95b0d74210b3e929abef6f3a60">f8c0d4e78f75de95b0d74210b3e929abef6f3a60</a>
+<blockquote>
+<p>
+ Add sanity check on image sizes.<br>
+<br>
+ Inspired by bug 697395, but doesn't actually solve any problem<br>
+ seen in that bug (or at least, not that I can see, as I can't<br>
+ reproduce the problem with file2).<br>
+<br>
+jbig2dec/jbig2_image.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-03-01 09:47: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=bbb2b961388b028d7d9d8f6454ced8192ad513c1">bbb2b961388b028d7d9d8f6454ced8192ad513c1</a>
+<blockquote>
+<p>
+ Fix Bug 697624 - PCL segfaults with --disable-compile inits.<br>
+<br>
+ Instead of trying to continue we exit upon initialization if no fonts<br>
+ are found and the current emulation is PCL.<br>
+<br>
+pcl/pcl/pcfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-28 18:43:04 +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=ce437b88df500a184ae2ca15d67a019f57a11d20">ce437b88df500a184ae2ca15d67a019f57a11d20</a>
+<blockquote>
+<p>
+ Bug 697545: Memory Squeezing fix.<br>
+<br>
+ Fix memory leaks for allocation event numbers 25 to 32<br>
+ when memory squeezing:<br>
+<br>
+ gs -sDEVICE=bit -o /dev/null: examples/tiger.eps<br>
+<br>
+psi/imain.c<br>
+psi/iname.c<br>
+psi/inames.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-28 19:54:51 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0ebb37a19ece80fa03af8de5047705722625870b">0ebb37a19ece80fa03af8de5047705722625870b</a>
+<blockquote>
+<p>
+ Bug 697372: Fix crash due to pattern clist being freed<br>
+<br>
+ When rendering a pattern from a clist into the pdf14 compositor, the compositor<br>
+ takes a reference to the pattern clist device. This is fine pre-page-clist, or<br>
+ with no page clist involved (when the memory is managed by the garbage<br>
+ collector), but post-page-clist the life span of the pattern clist device is<br>
+ dicated by the clist replay, *not* by references to it (as in the gc'ed case).<br>
+ This can result in a dangling pointer, which later causes a crash in the<br>
+ garbage collector when it cleans up after the page-clist has completed.<br>
+<br>
+ So, when pattern fill has been completed, remove the reference to the pattern<br>
+ clist device.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-28 15:36:34 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=459a0e650ffab1069a6f59c17775f5fd462c45d2">459a0e650ffab1069a6f59c17775f5fd462c45d2</a>
+<blockquote>
+<p>
+ Bug 696364: Restrict size of alphabits buffer<br>
+<br>
+ Thanks to Michael for doing the investigation, and leaving a<br>
+ really good write up of the problem on the bug.<br>
+<br>
+ The basic problem is that we have a transparency group that<br>
+ contains a softmask. The softmask is larger than the transparency<br>
+ group, so it is restricted to the size of the group and written<br>
+ into the clist as occupying just a small set of bands.<br>
+<br>
+ The content for the softmask is larger, however, so when used with<br>
+ GraphicsAlphaBits, we create various alphabits devices, draw<br>
+ the contents, and then send the results with copy_alpha.<br>
+<br>
+ These copy_alpha calls are NOT restricted to being within the<br>
+ reduced region for the softmask. This therefore upsets the clist<br>
+ reading.<br>
+<br>
+ The fix, as suggested by Michael in his bug report is to limit<br>
+ the size of the softmask contents (by limiting the size of the<br>
+ alphabits buffers).<br>
+<br>
+ Ideally the alphabits device would know what region to limit<br>
+ itself to just by looking at the graphics state it's passed in.<br>
+ Unfortunately, that doesn't work as the current softmask/groups<br>
+ aren't reflected in the graphic state. This feels wrong to me,<br>
+ but that's the way it is.<br>
+<br>
+ Instead, we have to resort to asking the device to limit our<br>
+ bbox according to the current state. We achieve this by adding<br>
+ a new dev_spec_op, and adding the required plumbing to the pdf14<br>
+ device (to pass it on to the target) and the clist device (to<br>
+ actually do the restriction).<br>
+<br>
+base/gdevp14.c<br>
+base/gspaint.c<br>
+base/gxclrect.c<br>
+base/gxdevsop.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-28 07:05:58 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4a9394e6abc6b0107da4f42675bf35eb031fe068">4a9394e6abc6b0107da4f42675bf35eb031fe068</a>
+<blockquote>
+<p>
+ Fix DEPTH is RAW_DUMP_AS_PAM GRAYSCALE_ALPHA header<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-27 13:37:41 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ff07b67892c201a0a16d983b05d121ac409b78a0">ff07b67892c201a0a16d983b05d121ac409b78a0</a>
+<blockquote>
+<p>
+ Bug 697615: color_usage was incorrectly updated for devn with pdf14<br>
+<br>
+ When the pdf14 compositor messes with the color space and color_info,<br>
+ it doesn't change the target (clist) color_info, but sets the new<br>
+ information in cldev-&gt;clist_color_info. In order to properly update the<br>
+ color_usage cmd_drawing_color_usage needs to set the bits according to the<br>
+ clist_color_info num_components and polarity in gx_dc_devn_get_nonzero_comps,<br>
+ so save the cldev-&gt;color_info values, set them to the cldev-&gt;clist_color_info<br>
+ values for the calculation and restore them afterwards<br>
+<br>
+base/gxclpath.c<br>
+base/gxdcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-27 14:15:30 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=97ddb45834c73f697e53839c6b433f65248d9c2a">97ddb45834c73f697e53839c6b433f65248d9c2a</a>
+<blockquote>
+<p>
+ Improve pcl page marking detection.<br>
+<br>
+ Instead of looking at only the character's position to determine if a<br>
+ character marks the page we now look at the extant of the character's<br>
+ width. Thanks to Norbert Janssen for the fix.<br>
+<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpage.h<br>
+pcl/pcl/pctext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-27 18:20:39 +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=8bb1aab8a60810aefb67a6d2764a54abc547878b">8bb1aab8a60810aefb67a6d2764a54abc547878b</a>
+<blockquote>
+<p>
+ Bug 697545: Memory Squeezing fix.<br>
+<br>
+ Fix memory leak for allocation event number 22<br>
+ when memory squeezing:<br>
+<br>
+ gs -sDEVICE=bit -o /dev/null: examples/tiger.eps<br>
+<br>
+base/fapi_ft.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-26 05:23:39 +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=a76a82abca879fcf351fce5aba50a48e7de41963">a76a82abca879fcf351fce5aba50a48e7de41963</a>
+<blockquote>
+<p>
+ Bug 697545: Memory Squeezing fix.<br>
+<br>
+ Fix memory leak for allocation event number 10<br>
+ when memory squeezing:<br>
+<br>
+ gs -sDEVICE=bit -o /dev/null: examples/tiger.eps<br>
+<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-24 18:21: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=009e40a0534e1d11ed5ee353477859b5cdd4faed">009e40a0534e1d11ed5ee353477859b5cdd4faed</a>
+<blockquote>
+<p>
+ Bug 696921: Don't &quot;early decode&quot; when interpolating Lab images<br>
+<br>
+ Applying the decode array to Lab source values during the<br>
+ conversion to fracs that takes place before non-icc based<br>
+ interpolation causes an overflow.<br>
+<br>
+ We therefore leave the application of the decode array until<br>
+ after the interpolation.<br>
+<br>
+ After the interpolation, we don't actually want to apply the<br>
+ decode array though - in that we want the result in the usual<br>
+ 0...1 float form rather than the 0..100/-128..127/-128...127<br>
+ ranges that the color would seem to require.<br>
+<br>
+ One option would be simply to not apply the decode array. This<br>
+ will however go wrong when we meet an Lab file with a<br>
+ non-standard Decode array. We therefore apply the given decode<br>
+ array (which may well be the default), and 'undo' the default<br>
+ one to get the values we actually want.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-24 19:05: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=af3c1d10726b2d932d951bf021193cbd5bcc734d">af3c1d10726b2d932d951bf021193cbd5bcc734d</a>
+<blockquote>
+<p>
+ Bug 697048: Fix compatible overprint blend mode.<br>
+<br>
+ Fix from Michael Vrhel.<br>
+<br>
+ Compatible overprint is operating in subtractive color spaces, so<br>
+ a 'zero' component actually means 0xFF.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-24 18:40: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=9e38426abd977fbc67c0d91103eb7bd3573409bb">9e38426abd977fbc67c0d91103eb7bd3573409bb</a>
+<blockquote>
+<p>
+ Update clusterpush.pl<br>
+<br>
+ Allow &quot;extended&quot;, &quot;cull&quot; and &quot;win32&quot;.<br>
+<br>
+toolbin/localcluster/clusterpush.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-23 15:20: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=1aebfe56c80bb46bba74c23654d9febcf5f761b5">1aebfe56c80bb46bba74c23654d9febcf5f761b5</a>
+<blockquote>
+<p>
+ Correct assert in new scan converter<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-24 09:33:05 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=13686f5374600d41105587c20a15f3c1e55f3534">13686f5374600d41105587c20a15f3c1e55f3534</a>
+<blockquote>
+<p>
+ Return Fatal errors from PS putdeviceparams to avoid potential SEGV<br>
+<br>
+ The change to return Fatal from the display device (commit 269354e)<br>
+ would segfault with the PS interpreter because zputdeviceparams never<br>
+ returned an error code, assuming that the interpreter could handle it,<br>
+ but this resulted in a segfault when setpagedevice tried to erase the<br>
+ page and the display device did not have a valid bitmap. Return the<br>
+ Fatal error so the interpreter can exit cleanly.without performing<br>
+ the usual setpagedevice &quot;configurationerror&quot; recovery.<br>
+<br>
+psi/zdevice.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-24 16:10: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=dabad3f6e9c2bdbd152f67a66b698262f94b816d">dabad3f6e9c2bdbd152f67a66b698262f94b816d</a>
+<blockquote>
+<p>
+ PDF interpreter - remove some (ancient) debug code<br>
+<br>
+ This line seems to have been left in accidentally a long, long, time<br>
+ ago. Surprisingly its never been noticed before....<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-24 15:50: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=269354ea918e4498df67e52a1efd16295e031421">269354ea918e4498df67e52a1efd16295e031421</a>
+<blockquote>
+<p>
+ Fix display device for non-PostScript interpreters<br>
+<br>
+ commit cf279b8c4773e14045dd6b411c3a524c6ac39124 fixed a potential<br>
+ crash when memory was exhausted, but used the gs_abort() routine to<br>
+ tell the interpreter to abort immediately and not carry on.<br>
+<br>
+ Unfortunately, and despite the comment in gsexit.h, gs_abort() is only<br>
+ available in the PostScript interpreter.<br>
+<br>
+ So here we opt to return a fatal error, which *should* cause the<br>
+ interpreter to give up (it does on PCL and PostScript) and will allow<br>
+ us to build GhostPCL on Windows.<br>
+<br>
+devices/gdevdsp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-24 10:12: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=0e9a345e7badf0d53ab19761a938665079883612">0e9a345e7badf0d53ab19761a938665079883612</a>
+<blockquote>
+<p>
+ Bug 694995: Fix 'wrapped' x11 devices' buffered 'mode'<br>
+<br>
+ The x11 devices can either unbuffered (where rendered objects go straight to the<br>
+ screen) or buffered (where objects are rendered to a memory buffer device, and<br>
+ then blitted to the screen).<br>
+<br>
+ Additionally, the 'real' x11 device always uses the resolution and color specs<br>
+ of the X11 server on which it is running. Then devices such as x11mono and<br>
+ x11cmyk using a &quot;wrapper&quot; device in order to keep the x11 device using the<br>
+ specs of the X11 server, whilst presenting an appropriate character to the rest<br>
+ of Ghostscript (so, even though x11 is *probably* running 24bit RBG, x11mono<br>
+ needs to look like a pure monochrome device).<br>
+<br>
+ Because we need the 'real' x11 device to handle get_params/put_params, and we<br>
+ need to temporarily 'patch' the color info of the 'real' x11 device so it<br>
+ retrieves/applies the params correctly.<br>
+<br>
+ The problem arises when we run one of these 'wrapper' devices in buffered mode.<br>
+ The memory buffer device (particularly after a resizing of the page buffer),<br>
+ would end up being configured based on the color settings of the 'wrapper'<br>
+ device, rather than the 'wrapped' device. So we could end up treating a 1bpp<br>
+ mono bitmap (from the memory buffer device) as a 24bpp RGB pixmap and blitting<br>
+ to the screen. Causing a buffer overflow, and segfault.<br>
+<br>
+ To solve that, store the color info we need away from its place in a<br>
+ standard device, and use the x11 device's own dedicated copy for setting up<br>
+ the memory buffer device.<br>
+<br>
+devices/gdevx.c<br>
+devices/gdevx.h<br>
+devices/gdevxalt.c<br>
+devices/gdevxini.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-22 07:17:54 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=670c6b29ebbd29fb3238575cb08a6c2c9586ace7">670c6b29ebbd29fb3238575cb08a6c2c9586ace7</a>
+<blockquote>
+<p>
+ Add support for RGB_TAG PAM files to lib/viewpbm.ps (type from bitrgbtags)<br>
+<br>
+ The bitrgbtags device was changed recently to create a PAM (P7) file rather<br>
+ than a bogus P6 file with 4 components. This means that the pcl/tools/GOT<br>
+ detag.c and tagimage.c no longer worked. Instead of changing these the<br>
+ lib/viewpbm.ps was enhanced to process the RGB_TAG P7 files.<br>
+<br>
+ By default, it shows the image, and with -dTAG it shows pseudo-color for<br>
+ the tag values, UNKNOWN/UNMARKED is white, TEXT is black, PATH is yellow<br>
+ and IMAGE is red.<br>
+<br>
+ example usage:<br>
+ gs -dSCALE=1 -- lib/viewpbm.ps bitrgbags.pam<br>
+ or<br>
+ gs -dSCALE=1 -dTAG -- lib/viewpbm.ps bitrgbags.pam<br>
+<br>
+ This can also be used to convert the P7 image to another format using<br>
+ -sDEVICE=___ -o ___ arguments prior to the -- option.<br>
+<br>
+ Also, fix numerous problems with FITPAGE and SCALE options. They were<br>
+ just WRONG!<br>
+<br>
+lib/viewpbm.ps<br>
+pcl/tools/GOT/README<br>
+pcl/tools/GOT/detag.c<br>
+pcl/tools/GOT/dotags.sh<br>
+pcl/tools/GOT/tagimage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-22 17:51:17 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=862b31689c3f1c6425f5522adc820b73e352e012">862b31689c3f1c6425f5522adc820b73e352e012</a>
+<blockquote>
+<p>
+ Improve bitrgbtags device so that unmarked areas are preserved.<br>
+<br>
+ Similar to pngalpha, the bitrgbtags device needs to have a fillpage<br>
+ procedure to fill the page to &quot;GS_UNTOUCHED_TAG&quot; | white (0xffffff)<br>
+ Without this, the page was entirely set to &quot;PATH&quot; by the default<br>
+ fillpage.<br>
+<br>
+ Note this will change EVERY bitrgbtags output in the regression results.<br>
+<br>
+devices/gdevbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-23 13:04:11 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b0d12644776ab1517e549903ba3262c082759680">b0d12644776ab1517e549903ba3262c082759680</a>
+<blockquote>
+<p>
+ Bug 697607: correctly bounds check glyph index in TTFs<br>
+<br>
+ The update to Freetype removed a bounds check in the Freetype code when the<br>
+ incremental API is in use (leaving it up to the caller to validate the glyph<br>
+ index). This adds that bounds check to our glyph data callback.<br>
+<br>
+ As part of that, return the trueNumGlyphs and numGlyphs varaibles in the<br>
+ Ghostscript type 42 font structure to their (apparent) original intent:<br>
+ trueNumGlyphs is the value read from the maxp table, whilst numGlyphs is a value<br>
+ derived from the size of the loca table (see the bug for a fuller explanation).<br>
+<br>
+base/gstype42.c<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-23 11:30: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=4e646ef8103f3ab2ab9d7de64bd30cc2156f0441">4e646ef8103f3ab2ab9d7de64bd30cc2156f0441</a>
+<blockquote>
+<p>
+ Bug 696915: Fix buffer overread in mapped8_copy01.<br>
+<br>
+ If the stars align, we can overread by 1 source byte<br>
+ in mapped8_copy01. Simple fix.<br>
+<br>
+base/gdevm8.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-22 17:24:24 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cf279b8c4773e14045dd6b411c3a524c6ac39124">cf279b8c4773e14045dd6b411c3a524c6ac39124</a>
+<blockquote>
+<p>
+ Fix SEGV is display device when PageSize needs bitmap &gt; 2Gb<br>
+<br>
+ The display_put_params is supposed to revert to the original settings<br>
+ if an error is encountered, but since it frees the display bitmap before<br>
+ attempting to allocate the new one, if that allocation fails, the device<br>
+ is left with a memory device that has an invald bitmap pointer.<br>
+<br>
+ Instead revert the settings and attempt to allocate a bitmap with those<br>
+ settings. If that fails (unlikely) then gs_abort with an error message.<br>
+<br>
+ NB: It is preferable to free one bitmap before allocating the new one<br>
+ in case we are near a system memory constraint.<br>
+<br>
+devices/gdevdsp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-22 23:54: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=340b7c7f79d45ed36cd247ff0c13586e6b6a4763">340b7c7f79d45ed36cd247ff0c13586e6b6a4763</a>
+<blockquote>
+<p>
+ Bug 696520: Avoid dereferencing NULL in epson devices.<br>
+<br>
+ Adopt Peter Cherepanov's patch to avoid dereferencing NULL.<br>
+<br>
+ Only calculate the pure color if we know we're going to need<br>
+ it - by which time we know it's safe to deference.<br>
+<br>
+contrib/eplaser/gdevescv.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-20 16:32:51 +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=4c99ddc1dbd610d9d677750d6b1dabcb1cda8fb0">4c99ddc1dbd610d9d677750d6b1dabcb1cda8fb0</a>
+<blockquote>
+<p>
+ Bug 697545: Memory Squeezing fix.<br>
+<br>
+ Fix memory leaks for allocation event number 8 and 9<br>
+ when memory squeezing:<br>
+<br>
+ gs -sDEVICE=bit -o /dev/null: examples/tiger.eps<br>
+<br>
+psi/gs.c<br>
+psi/iapi.c<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-22 16:41: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=21901b860ca033ed14168d3c191b39ff714946b5">21901b860ca033ed14168d3c191b39ff714946b5</a>
+<blockquote>
+<p>
+ Bug 697602: Remove 2 instances of variable shadowing.<br>
+<br>
+ Hard to believe these are right because setting code<br>
+ and then falling out of scope doesn't achieve much.<br>
+<br>
+base/gp_wxpsprn.cpp<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-22 08:11:48 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f8d299c399312fdd41958843a101db36353ad8e2">f8d299c399312fdd41958843a101db36353ad8e2</a>
+<blockquote>
+<p>
+ Avoid getenv call in openjpeg<br>
+<br>
+ getenv is not allowed in certain cases causing linking<br>
+ issues. This fix should be pushed to the openjpeg<br>
+ group. Thanks to Chris for the fix.<br>
+<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-21 16:46:07 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8e8831a02f172490d7b175e54c7d15814acacea4">8e8831a02f172490d7b175e54c7d15814acacea4</a>
+<blockquote>
+<p>
+ Update bytes_decoded for the non-cache code path.<br>
+<br>
+ If a glyph is being rendered without going through the glyph cache, we still<br>
+ must update the 'bytes_decoded' entry in the text enumerator.<br>
+<br>
+base/gxchar.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-20 10:16:32 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=948d880467b2436813f7ffe5d1bd694c9475093c">948d880467b2436813f7ffe5d1bd694c9475093c</a>
+<blockquote>
+<p>
+ Bug 694269: valgrind issues in Type 1 charstring interpreter<br>
+<br>
+ 1) Bounds check the charstring data so we don't run off the end of the buffer<br>
+<br>
+ 2) Initialise various entries in the Type 1 hinter state: in a well formed<br>
+ font these will never be used without being set from the charstring, but in<br>
+ a broken font, they can be used without being set.<br>
+<br>
+ 3) Initialise the (sacrificial) path we use when retrieving glyph metrics etc.<br>
+<br>
+ 4) Initialise the contents of the stack<br>
+<br>
+base/gstype1.c<br>
+base/gxhintn.c<br>
+base/gxpath.c<br>
+base/gxtype1.c<br>
+base/gxtype1.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-17 11:07: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=64c433d69b7732ae919a029dbf4b635133c97f03">64c433d69b7732ae919a029dbf4b635133c97f03</a>
+<blockquote>
+<p>
+ Bug 694250: bounds check in TTF hinting code<br>
+<br>
+ Broken font tries to access *way* off the end of the opcode buffer. Check the<br>
+ index before using it<br>
+<br>
+base/ttinterp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-17 11:33:36 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=83b54c55a485a17124321d437e8207515396024a">83b54c55a485a17124321d437e8207515396024a</a>
+<blockquote>
+<p>
+ Bug 694268: init stack based data.<br>
+<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-16 10:27: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=cf60a549d2413ae96b17010f0a69f82b797d33e3">cf60a549d2413ae96b17010f0a69f82b797d33e3</a>
+<blockquote>
+<p>
+ Fix low memory crash in native font enumeration.<br>
+<br>
+psi/zfontenum.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-20 10:24:14 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=12091a85336f5c422545f03b4afcd1ea7362a10e">12091a85336f5c422545f03b4afcd1ea7362a10e</a>
+<blockquote>
+<p>
+ Fix misspelled TUPLTYPE in PAM header for bitrgbtags output.<br>
+<br>
+ Also add in DEPTH 4<br>
+<br>
+devices/gdevbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-20 15:58: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=8e918ac9ca06971534c7e39087ecca05c3809ce7">8e918ac9ca06971534c7e39087ecca05c3809ce7</a>
+<blockquote>
+<p>
+ Update bmpcmp to cope with PAMs with RGB_TAG input.<br>
+<br>
+ We treat these as CMYK PAMs for now. This should be enough for<br>
+ us to spot differences in the false color images produced.<br>
+<br>
+toolbin/bmpcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-20 15:48: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=f21824bbf5bd1c0ba8cb19855a8fbc5e0681ff74">f21824bbf5bd1c0ba8cb19855a8fbc5e0681ff74</a>
+<blockquote>
+<p>
+ Update bitrgbtags device to use better header.<br>
+<br>
+ The bit devices output raw data.<br>
+<br>
+ The bittagsrgb device outputs rgb + a tag plane, with a PPM header.<br>
+ The PPM header tells code to expect 3 bytes of image data, not 4,<br>
+ so is wrong. Here we change it over to use a PAM header (of type<br>
+ RGB_TAG).<br>
+<br>
+ This allows bmpcmp to be amended to cope better.<br>
+<br>
+devices/gdevbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-20 09:45:18 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ecceafe3abba2714ef9b432035fe0739d9b1a283">ecceafe3abba2714ef9b432035fe0739d9b1a283</a>
+<blockquote>
+<p>
+ Resolve image enumerator ownership on error<br>
+<br>
+ Bug #697596 &quot;Use-After-Free in i_free_object()&quot;<br>
+<br>
+ There is confusion over ownership of 'penum' between gx_begin_image1(),<br>
+ gx_begin_image4() and gx_image_enum_begin() which is called from these<br>
+ two functions (and only from these two functions).<br>
+<br>
+ The enumerator is allocated in gx_begin_image?() and freed there if<br>
+ gx_image_enum_begin() returns an error. However, gx_image_enum_begin()<br>
+ also frees the enumerator on an error; except that it doesn't always do<br>
+ so. Its a large function and there are at least 9 ways to exit it, only<br>
+ 4 of which free the enumerator.<br>
+<br>
+ This commit removes the 'free' instances from gx_image_enum_begin()<br>
+ leaving the cleanup as the responsibility of the calling code, which<br>
+ performed the allocation.<br>
+<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-19 10:13: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=8452f9238959a4d518af365812bf031fe4d8d4b7">8452f9238959a4d518af365812bf031fe4d8d4b7</a>
+<blockquote>
+<p>
+ Fix Coverity CID 141336 -- Indentation gripe.<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-06 19:21:43 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eccf38345588ced6595d3414fca10098e9855da3">eccf38345588ced6595d3414fca10098e9855da3</a>
+<blockquote>
+<p>
+ Add -dDumpXML to toolbin/pdf_info.ps options and fix -dDumpFontsNeeded<br>
+<br>
+ As an example of getting even more info from the PDF, add -dDumpXML to<br>
+ dump the PDF Metadata (if any).<br>
+<br>
+ Also a problem found with -dDumpFontsNeeded=false was fixed.<br>
+<br>
+ usage to dump the basic info and Metadata:<br>
+ gs -q -dDumpXML -dDumpMediaSizes=false -dDumpFontsNeeded=false -- \<br>
+ toolbin/pdf_info.ps examples/annots.pdf<br>
+<br>
+toolbin/pdf_info.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-18 17:57:18 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e548d290d7d052a32e65493a703e1276230554c3">e548d290d7d052a32e65493a703e1276230554c3</a>
+<blockquote>
+<p>
+ Fix 697576: false colors with pxlcolor.<br>
+<br>
+ PXL high level image processing does not support DeviceN, fall back to<br>
+ rendering rectangles.<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-18 08:50:48 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cb5ec3dc7d0214ca3a784f9630b0775142c2ec08">cb5ec3dc7d0214ca3a784f9630b0775142c2ec08</a>
+<blockquote>
+<p>
+ Fix bug #687561, bad parsing of intellifont data.<br>
+<br>
+ The previous code read the metric offset field at the wrong positon (8<br>
+ vs. 6) resulting in a value that caused a range check error. Further,<br>
+ the range checking which checked the offsets were ordered is not<br>
+ useful or correct, and has been removed. There is nothing in the<br>
+ documentation to indicate the offsets must be ordered and showing<br>
+ order does not help in preventing out of bounds access.<br>
+<br>
+pcl/pcl/pcsfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-16 21:47:47 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c139c069968a59bc53e45d8373dd70d30278d152">c139c069968a59bc53e45d8373dd70d30278d152</a>
+<blockquote>
+<p>
+ Change -Za output to omit the (mostly useless) opening/closing clump messages<br>
+<br>
+ The -ZA is noisier so, keep these messages for that debug level (for now).<br>
+ I've worked with Ghostscript allocators for MANY years and have yet to<br>
+ find these messages useful. This is a precursor to totally deleting these<br>
+ messages.<br>
+<br>
+base/gsalloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-16 16:37:28 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=88201849f123642dac3920a0bad5e68290280798">88201849f123642dac3920a0bad5e68290280798</a>
+<blockquote>
+<p>
+ Fix incorrect calculation of pdf14 number of components.<br>
+<br>
+ This was seen with DeviceN devices (psdcmyk, tiffsep, ...) with the file:<br>
+ tests_private/comparefiles/Altona_Technical_v20_x4.pdf resulting in<br>
+ Error messages and warnings that &quot;Output may be incorrect&quot;. With the<br>
+ -dPDFSTOPONERROR option, an reangecheck error is reported.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-16 07:56:26 +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=7bb2ad6cce75aae3ebedaa5883e1ecd6ba19b52d">7bb2ad6cce75aae3ebedaa5883e1ecd6ba19b52d</a>
+<blockquote>
+<p>
+ Bug 697545: Memory Squeezing fix.<br>
+<br>
+ Fix for 'red 85546'. This is a SEGV seen at allocation event<br>
+ 85546 when memory squeezing:<br>
+<br>
+ gs -sDEVICE=bit -o /dev/null: examples/tiger.eps<br>
+<br>
+ Also account for all the other places that allocate a new<br>
+ colorspace without checking the returned value.<br>
+<br>
+base/gsgstate.c<br>
+base/gsicc_manage.c<br>
+base/gsimage.c<br>
+base/gsptype1.c<br>
+base/gstrans.c<br>
+base/gxclrast.c<br>
+devices/vector/gdevpdfb.c<br>
+devices/vector/gdevpdfc.c<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpsdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-29 11:14:39 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=40a82d9e72340b8547f0d45709693e456465ccfd">40a82d9e72340b8547f0d45709693e456465ccfd</a>
+<blockquote>
+<p>
+ Fix Bug 697502, problems with NumRenderingThreads exceeding available RAM<br>
+<br>
+ The logic that determined the amount of printer buffer space, and allocated it<br>
+ was including the ESTIMATED pdf14 transparency buffer space, but we only need<br>
+ to make sure that amount of space is available, not actually allocate it (since<br>
+ then it wouldn't be availble when needed).<br>
+<br>
+ if there wasn't enough memory for the band buffer when a thread's clist reader<br>
+ was opened, gdev_prn_setup_as_command_list would try reducing the BufferSpace<br>
+ (by successive dividing by 2) until it could fit. This would result in a<br>
+ reader band size that did not match what was used to write the clist. This<br>
+ so we force the BandBufferSpace to be exactly the same as was used in the writer<br>
+ using the cdev page_info.band_params. The tile_cache_size was added to the<br>
+ space_params used to set up the thread clist device to make it match that used<br>
+ by the writer.<br>
+<br>
+ In order to make sure we don't &quot;over commit&quot; in creating threads we reserve<br>
+ an extra amount per thread, currently 2 Mb plus the ht_cache size times the<br>
+ number of components, plus when the page uses transparency, we increase it by<br>
+ the ESTIMATED_PDF14_ROW_SPACE times the band_height. We further increase it by<br>
+ the size of the link profiles and the size of the icclink profiles (CURRENTLY<br>
+ ESTIMATED). We free the reserve area as we start threads.<br>
+<br>
+ Also when an allocation for a thread failed, the 'band' used for next_band was<br>
+ being decremented but it did not need to be since it was already the correct value.<br>
+ This had caused a problem with threads getting started for the wrong band.<br>
+<br>
+ Fix gx_ht_read_and_install to prevent double free if gx_gstate_dev_ht_install<br>
+ gets an error (VMerror).<br>
+<br>
+ Fix gdevbit so that we don't keep going after get_bits returns an error.<br>
+<br>
+ TODO: collect the size of the icclinks rather than a rather worst case value<br>
+ currently estimated.<br>
+<br>
+base/gdevprn.c<br>
+base/gsht.c<br>
+base/gsicc_manage.c<br>
+base/gxclist.c<br>
+base/gxclthrd.c<br>
+base/gxdevcli.h<br>
+base/gxdhtserial.c<br>
+devices/gdevbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-16 08:52: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=89371a73c6d97606ca61884b555b7c13ec1534ac">89371a73c6d97606ca61884b555b7c13ec1534ac</a>
+<blockquote>
+<p>
+ Fix segfaults in low memory conditions<br>
+<br>
+ Bug 697572 &quot;Segfaults when ps2write runs out of memory&quot;<br>
+<br>
+ Add some return code checks in pdfwrite/ps2write, check a stream when<br>
+ trying to close an 'aside', add a check for error return codes when<br>
+ rendering a cached glyph bitmap.<br>
+<br>
+base/gxccache.c<br>
+devices/vector/gdevpdfb.c<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpdfj.c<br>
+devices/vector/gdevpdfo.c<br>
+devices/vector/gdevpdti.c<br>
+devices/vector/gdevpdtt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-11 04:30:56 +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=4d2b25f06c25e6e3e2b1bf319481a7442d42af8a">4d2b25f06c25e6e3e2b1bf319481a7442d42af8a</a>
+<blockquote>
+<p>
+ Bug 697531 : Tidy up unused code.<br>
+<br>
+ The first patch for this bug made the error return from<br>
+ jbig2_word_stream_buf_get_next_word pointless so this<br>
+ patch removes all the remaining redundant code.<br>
+<br>
+ jbig2_word_stream_buf_get_next_word does not need to return<br>
+ any value so this is now defined as a void type and the rest<br>
+ of the code has been updated accordingly.<br>
+<br>
+jbig2dec/jbig2.c<br>
+jbig2dec/jbig2_arith.c<br>
+jbig2dec/jbig2_arith_iaid.c<br>
+jbig2dec/jbig2_arith_int.c<br>
+jbig2dec/jbig2_generic.c<br>
+jbig2dec/jbig2_huffman.c<br>
+jbig2dec/jbig2_priv.h<br>
+jbig2dec/jbig2_refinement.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-15 06:13:55 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1f8ada0d7e2c19138038bccd585e412b1f7a0267">1f8ada0d7e2c19138038bccd585e412b1f7a0267</a>
+<blockquote>
+<p>
+ Fix ignored return code in pdf14 transparency.<br>
+<br>
+ This fixes segfaults that pop up later. Found when testing multi-threaded<br>
+ rendering with (somewhat) constrained memory (-K256000) on the file:<br>
+ tests_private/pdf/sumatra/x_-_renders_slowly.pdf.ppmraw.300.0<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-15 14:59: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=460ef0691145c8c81e238f61baa5009c29838304">460ef0691145c8c81e238f61baa5009c29838304</a>
+<blockquote>
+<p>
+ pdfwrite - improve commit ad3e0de3e3ca33f00c81c071560bf6c9f4d5a0f0<br>
+<br>
+ Use gs_note_error instead of simply returning an error, and don't<br>
+ bother checking pdfont, since we check for NULL immediately above.<br>
+<br>
+devices/vector/gdevpdtt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-14 16:47: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=120f8533b705142ef83b899736e41e5739df5fc2">120f8533b705142ef83b899736e41e5739df5fc2</a>
+<blockquote>
+<p>
+ Tweak the string that controls the greeting message<br>
+<br>
+ For GPL releases we print a greeting message on execution that states the<br>
+ software is supplied without warranty.<br>
+<br>
+ So, we should check for it being the GPL release before printing it.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-15 10:01: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=ad3e0de3e3ca33f00c81c071560bf6c9f4d5a0f0">ad3e0de3e3ca33f00c81c071560bf6c9f4d5a0f0</a>
+<blockquote>
+<p>
+ pdfwrite - don't seg fault for Line Printer font and UFST<br>
+<br>
+ Using the PCL Line Printer Font, when built to use UFST, can't be<br>
+ handled with pdfwrite currently. In fact, using UFST with pdfwrite<br>
+ results in garbage output anyway.<br>
+<br>
+ However, we should not seg fault. So here we check to see if we have a<br>
+ PDF Font resource associated with a native font, and if we don't have<br>
+ one when we need it, we give up and signal an invalidfont error.<br>
+<br>
+devices/vector/gdevpdtt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-14 11:50:34 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=836e9a34c17b8bc2fdb4376f572982dfe1412ae0">836e9a34c17b8bc2fdb4376f572982dfe1412ae0</a>
+<blockquote>
+<p>
+ Make frac31s hold values in the defined range in all cases.<br>
+<br>
+ frac31s are supposed to hold values where 0x7ff..... represents 1.<br>
+<br>
+ The code, however, currently converts to and from devn values using<br>
+ 0x00007ff8 as 1.<br>
+<br>
+ Either we need to update the docs, or we need to fix the code to be<br>
+ consistent. This is an attempt at the latter.<br>
+<br>
+base/gdevdsha.c<br>
+base/gscicach.c<br>
+base/gxcvalue.h<br>
+base/gxfrac.h<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-14 15:37: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=b969fb501f59d807d54fcfc186b7b97b55cebe0f">b969fb501f59d807d54fcfc186b7b97b55cebe0f</a>
+<blockquote>
+<p>
+ XPS interpreter - fix some Coverity warnings<br>
+<br>
+ Check a few values read from TT tables to satisfy Coverity 'tainted<br>
+ scalar' errors.<br>
+<br>
+ May need some additional changes, but I can't see any way to validate<br>
+ the unsigned 32 bit values.<br>
+<br>
+xps/xpsfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-14 12:48: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=7273aa3cd04e0acb212e335ab6b3f360cbd727c9">7273aa3cd04e0acb212e335ab6b3f360cbd727c9</a>
+<blockquote>
+<p>
+ Fix SAFER issue with filenameforall<br>
+<br>
+ With the change to ensure we only apply SAFER permissions to real file system<br>
+ operations (so only on '%os%' and not on other PS '%&lt;device&gt;%' devices), the<br>
+ way filenameforall called the permission checking function meant it did not<br>
+ work correctly.<br>
+<br>
+ Basically, check_file_permissions() and co must have a valid iodev parameter<br>
+ passed to them to function correctly.<br>
+<br>
+ So, fix that call.<br>
+<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-14 10:22: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=b3acfdeaf1eb63a07e8169ea4c30ace7522054bc">b3acfdeaf1eb63a07e8169ea4c30ace7522054bc</a>
+<blockquote>
+<p>
+ Yet more SAFER problems with .libfile<br>
+<br>
+ With the change to ensure we only apply SAFER permissions to real file system<br>
+ operations (so only on '%os%' and not on other PS '%&lt;device&gt;%' devices), the<br>
+ .libfile call was dropping through without being restricted.<br>
+<br>
+ This changes the .libfile code to call the permissions checking function<br>
+ properly.<br>
+<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-14 09:37:55 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d14e0b20dfdc05cda60f7a9a4c78e9d3ee206e2">3d14e0b20dfdc05cda60f7a9a4c78e9d3ee206e2</a>
+<blockquote>
+<p>
+ Split out $(MAKE) from recursive make calls<br>
+<br>
+ Commit 8acec58309 consolidate the common parts of the various recursive make<br>
+ calls. Turns out, this breaks parallel make, as it defeats the make<br>
+ algorithm which spots a make command line. As a result, none of those recursive<br>
+ make calls would do parallel builds.<br>
+<br>
+ So, this time, we keep the options consolidated into a make variable, but put<br>
+ back the $(MAKE) call explicitly for each recursive call<br>
+<br>
+base/unix-end.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-13 16:02:54 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e36d3979ebcaa1ce28f7c58e7e1c7a5959816eb8">e36d3979ebcaa1ce28f7c58e7e1c7a5959816eb8</a>
+<blockquote>
+<p>
+ Fix Windows UFST build.<br>
+<br>
+psi/msvc.mak<br>
+windows/ghostscript-ufst.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-09 20:32: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=c7d5567fbc5f98488761ab93eaed60f1ac26023e">c7d5567fbc5f98488761ab93eaed60f1ac26023e</a>
+<blockquote>
+<p>
+ Bug 697484: fix mkromfs memory leak<br>
+<br>
+ In commit aa28186288 we missed the need to free some of the memory used during<br>
+ the file name sorting phase.<br>
+<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-09 15:54: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=e476d710841d8be4d4e56c2b9e468e914f977161">e476d710841d8be4d4e56c2b9e468e914f977161</a>
+<blockquote>
+<p>
+ ramfs: fix modes other than (r) and (w)<br>
+<br>
+ The (a), (r+) and (w+) modes were not working correctly. The &quot;core&quot; code of the<br>
+ ramfs was correct, but the &quot;glue&quot; code between the Ghostscript stream API<br>
+ and the ramfs core was not setting flags to support those.<br>
+<br>
+ Conversely, the ramfs &quot;glue&quot; code was not setting the permissions flags<br>
+ correctly in the stream objects it created, when using the &quot;+&quot; modes.<br>
+<br>
+ Also, (w) and (w+) were not truncating the file on opening.<br>
+<br>
+ Finally, tweak the definition of the various read/write/etc flags for the<br>
+ ramfs code so the values match those used in the stream API (this makes fixing<br>
+ the flags in the stream objects much simpler).<br>
+<br>
+base/gsioram.c<br>
+base/lib.mak<br>
+base/ramfs.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-07 15:44:52 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=42fd2f459098bfda17ca8d29195ada57154cfe06">42fd2f459098bfda17ca8d29195ada57154cfe06</a>
+<blockquote>
+<p>
+ Change how we check for artibrary file accesses<br>
+<br>
+ When we apply the SAFER restrictions, we have to *not* apply the rules<br>
+ for Postscript devices (such as %rom%, %calendar% etc), we only want to apply<br>
+ the restrictions to the &quot;real&quot; file system (%os%).<br>
+<br>
+ Previously the code was checking if the iodev's &quot;open_file&quot; method was set to<br>
+ the one for the %os% device, but that is actually not set (it is intentionally<br>
+ NULL), so here we check the i/o device instance to ensure it is not the<br>
+ i/o device instance for %os%<br>
+<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-01 12:46: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=dd3c9ba2839ada5162aaccfeb442a958bfea637c">dd3c9ba2839ada5162aaccfeb442a958bfea637c</a>
+<blockquote>
+<p>
+ Build exes from static lib builds.<br>
+<br>
+ Add targets to build executables linked to the static library builds, meaning we<br>
+ can actually test the static libs we create.<br>
+<br>
+base/unix-end.mak<br>
+base/unixlink.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-12 20:55:11 +0100
+</strong>
+<br>Stefan Brüns &lt;stefan.bruens@rwth-aachen.de&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aa2818628843205283c563865cd56b4091f2e37f">aa2818628843205283c563865cd56b4091f2e37f</a>
+<blockquote>
+<p>
+ Bug 697484: mkromfs: sort gp_enumerate_files output....<br>
+<br>
+ for deterministic ROM contents<br>
+<br>
+ gp_enumerate_files_next returns dir entries in the same order as returned<br>
+ by readdir. Sort by name to generate deterministic output.<br>
+<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-12 18:04:57 +0100
+</strong>
+<br>Stefan Brüns &lt;stefan.bruens@rwth-aachen.de&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=98696f718b5c0f9a5fd9c33d61f81da469b9a4e1">98696f718b5c0f9a5fd9c33d61f81da469b9a4e1</a>
+<blockquote>
+<p>
+ Bug 697484: mkromfs: make build reproducible.....<br>
+<br>
+ use buildtime from SOURCE_DATE_EPOCH<br>
+<br>
+ The environment variable SOURCE_DATE_EPOCH is the common approach for<br>
+ getting reproducible timestamps and thus builds. In case the variable<br>
+ is not set, keep using the current time of the mkromfs run.<br>
+<br>
+ Signed-off-by: Stefan Brüns &lt;stefan.bruens@rwth-aachen.de&gt;<br>
+<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-07 22:15:58 +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=4c7b41dff7d57be0e13de15c45b0296602e63472">4c7b41dff7d57be0e13de15c45b0296602e63472</a>
+<blockquote>
+<p>
+ Bug 697531 : Fix decoder error on JBIG2 compressed image.<br>
+<br>
+ The problem is in jbig2_word_stream_buf_get_next_word<br>
+ returning -1 and sending a fail error causing the whole<br>
+ file to fail.<br>
+<br>
+ Now when the buffer is exhausted, the returned value is set<br>
+ to zero so that the decoder does not try to use an<br>
+ unintialised value.<br>
+<br>
+ This now means the error return is pointless and another<br>
+ commit will follow this one to tidy up the unused code.<br>
+<br>
+jbig2dec/jbig2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-08 10:46:58 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ca4d2cc269effd69273112ec7ad9d40076abbc1">7ca4d2cc269effd69273112ec7ad9d40076abbc1</a>
+<blockquote>
+<p>
+ Increase PDF 1.4 transparency ESTIMATED_ROW_SPACE<br>
+<br>
+ Testing showed that the ESTIMATED_PDF14_ROW_SPACE was too optimistic, so<br>
+ increase NUM_PDF14_BUFFERS to 4 and use the target num_components (primarily<br>
+ for spot color devices such as tiffsep) to try and make this more robust.<br>
+ Still a guess, but works better as tested with multi-threaded rendering.<br>
+<br>
+ Note, the band height chosen based on the BufferSpace will be different<br>
+ when the page has transparency, so there are differences. I have reviewed<br>
+ them and they are all 1 pixel differences or invisible color differences.<br>
+<br>
+base/gstrans.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-08 14:49: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=9284128b1a16c21a95570f4c79258590839a10c7">9284128b1a16c21a95570f4c79258590839a10c7</a>
+<blockquote>
+<p>
+ Further fixes to ramfs.<br>
+<br>
+ All allocations are made using fs-&gt;memory, so all frees should be<br>
+ done with it too. This wasn't caught by memory squeezing (or other<br>
+ tests), because we don't actually use the ramdisc.<br>
+<br>
+base/ramfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-07 20:28:28 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cffb5712bc10c2c2f46adf311fc74aaae74cb784">cffb5712bc10c2c2f46adf311fc74aaae74cb784</a>
+<blockquote>
+<p>
+ Commit a9a58bb95 was incorrect, clearing some values that it shouldn't<br>
+<br>
+ The penum-&gt;rect values were cleared, and this didn't cover all uses of<br>
+ gx_image_enum_alloc. Also, return *ppenum NULL if alloc fails in case the<br>
+ caller doesn't check the return code. Also, if we fail the enum_begin,<br>
+ free the enum and set *pinfo to NULL.<br>
+<br>
+base/gximage1.c<br>
+base/gximage4.c<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-07 19:32:08 +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=a1b951c274a1d48340cfbaddb1308c92836dbc61">a1b951c274a1d48340cfbaddb1308c92836dbc61</a>
+<blockquote>
+<p>
+ Bug 697545: Memory Squeezing fix.<br>
+<br>
+ Fix for 'red 242'. This is a SEGV seen at allocation event<br>
+ 242 when memory squeezing:<br>
+<br>
+ gs -sDEVICE=bit -o /dev/null: examples/tiger.eps<br>
+<br>
+base/ramfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-07 19:52:51 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6084cc0a0cb1cd6e0d5b9be044622c74a16a0573">6084cc0a0cb1cd6e0d5b9be044622c74a16a0573</a>
+<blockquote>
+<p>
+ XPS interpreter - add a reverse GID lookup for the benefit of pdfwrite<br>
+<br>
+ Bug #697304 &quot;Encoding gets lost when generating PDF&quot;<br>
+<br>
+ Prior to this commit the XPS interpreter, like the PCL interpreter, did<br>
+ not really return a character code when asked for an equivalent for a<br>
+ GID. Instead it returned the 'last' character code.<br>
+<br>
+ For strings with multiple characters processed at once, this meant that<br>
+ all the characters in the string were assigned the same 'code' as the<br>
+ last character in the string. Also there was no reason to assume that<br>
+ code was even a Unicode value.<br>
+<br>
+ This commit adds code to reverse the TrueType CMAP subtable lookup;<br>
+ given a GID it will return a character code. We then use the resulting<br>
+ character code in pdfwrite (which is the only device to use this method)<br>
+ to build a ToUnicode CMap in the output PDF file.<br>
+<br>
+ There are a number of caveats with this commit;<br>
+<br>
+ I've only been able to create XPS files with fonts containing format 4<br>
+ CMAP subtables. While I've coded the others (but not 2 or 8 because the<br>
+ normal character code -&gt; GID mapping doesn't support them either) I<br>
+ have no way to actually test whether they work<br>
+<br>
+ I'm not certain whether its possible to get an XPS file containing a<br>
+ font which does not have a 3,1 CMAP. Again I've not been able to create<br>
+ such a file, if we ever encounter one this code will likely not work<br>
+ properly.<br>
+<br>
+<br>
+ I have tested Latin and Far Eastern scripts, and files which use more<br>
+ than 256 glyphs from a single font. All of these appear to work as<br>
+ expected. When more than 256 glyphs are used from the same font, we<br>
+ create a PDF file with multiple simple subsets of the font, each with<br>
+ less than 256 glyphs. Each subset has its own ToUnicode CMap and so<br>
+ cut&amp;paste works as expected.<br>
+<br>
+ No differences expected, we cannot cluster test this code.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpsfont.c<br>
+xps/xpsttf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-07 09:42:43 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a9a58bb95e4a41014f42cae9393767b26da3aa80">a9a58bb95e4a41014f42cae9393767b26da3aa80</a>
+<blockquote>
+<p>
+ Fix dangling pointer in gx_image_enum after malloc fail.<br>
+<br>
+ Yet another, probably a squeezing failure since it failed with:<br>
+ -K30000 -dMaxBitmap=0 -r300 -sDEVICE=pkmraw -o nul: tests/pdf/cmyk_blend.pdf<br>
+<br>
+base/gximage1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-06 19:20: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=a65893f973c65d2ba22f8b2a2c6cf0822fc8c1da">a65893f973c65d2ba22f8b2a2c6cf0822fc8c1da</a>
+<blockquote>
+<p>
+ Bug 697555: Fix UTF-8 handling of args.<br>
+<br>
+ The logic for checking for continuation bytes in UTF-8 was<br>
+ broken. Continuation bytes have the top bit set, but not the top 2<br>
+ bits set.<br>
+<br>
+ This leaves the issue of @files on windows always being taken<br>
+ as UTF-8.<br>
+<br>
+base/gsargs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-01 16:31: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=c1834eb0cf024cf51231a19b975d97f33c559e0c">c1834eb0cf024cf51231a19b975d97f33c559e0c</a>
+<blockquote>
+<p>
+ Fix Luratech Linux build use if &quot;inline&quot;<br>
+<br>
+ Compilers don't seem to like &quot;inline&quot; being used without &quot;static&quot;, so tweak the<br>
+ build flags for Luratech so that doesn't happen.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-06 12:31:12 +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=aaf0b87aa5e0c41a32a290c836a5b3811433c561">aaf0b87aa5e0c41a32a290c836a5b3811433c561</a>
+<blockquote>
+<p>
+ Fix memory leak in psi/imain.c<br>
+<br>
+ Remove unused &quot;paths&quot; allocation.<br>
+<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-06 09:49:45 +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=e4439a505ed3ac582d7f65260678bc9dca03ce54">e4439a505ed3ac582d7f65260678bc9dca03ce54</a>
+<blockquote>
+<p>
+ Bug 697545: Memory Squeezing fix.<br>
+<br>
+ Fix for 'red 62'. This is a SEGV seen at allocation event<br>
+ 62 when memory squeezing:<br>
+<br>
+ gs -sDEVICE=bit -o /dev/null: examples/tiger.eps<br>
+<br>
+ Also, improve the macro for FREE in base/gxclmem.c<br>
+<br>
+base/gsmemory.h<br>
+base/gxclmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-27 16:38:26 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2bf2b4cebe44b74229e086380c3c25110f37aed0">2bf2b4cebe44b74229e086380c3c25110f37aed0</a>
+<blockquote>
+<p>
+ pdfwrite - where possible, preserve annotations<br>
+<br>
+ This allows us to preserve many (but not all) annotation from an<br>
+ input PDF file as annotations in the output PDF file. This only<br>
+ works with the pdfwrite device, the ps2write device does not<br>
+ write pdfmarks to the output.<br>
+<br>
+ Certain kinds of annotations (eg Link annotations) cannot be<br>
+ preserved, because they require a page (or other object) destination<br>
+ which we can't easily know at the time we create the pdfmark.<br>
+<br>
+ Widget annotations are not preserved as these only have relvance<br>
+ in AcroForms, and since we don't preserve AcroForms, its much<br>
+ better to render the Widgets, otherwise their appearance will<br>
+ be lost along with the AcroForm data.<br>
+<br>
+ It is possible that this behaviour may not be desirable, and<br>
+ that there could be bugs in this code, so a new switch<br>
+ '-dPreserveAnnots' is defined for use with the pdfwrite device<br>
+ only. If set to false the old behaviour returns, and annotations<br>
+ will be rendered instead of preserved.<br>
+<br>
+ There are a few differences with this code; a few progressions,<br>
+ a few 'differences' and one file where the Stamp annotation no<br>
+ longer renders. THis is because the Form for the Apperance is<br>
+ invliad (leaves junk on the stack) and attempts to work around<br>
+ this ran into al kinds of trouble. In the end I ran out of time<br>
+ and chose to accept the error, the form is incorrect after all.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_main.ps<br>
+base/gdevp14.c<br>
+base/gsform1.h<br>
+base/gxdevsop.h<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpdfu.c<br>
+devices/vector/gdevpdfx.h<br>
+doc/VectorDevices.htm<br>
+psi/zform.c<br>
+psi/zpdfops.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-04 08:36: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=678e660cd4efcbf155675539c13a584cdffb5258">678e660cd4efcbf155675539c13a584cdffb5258</a>
+<blockquote>
+<p>
+ Fix memento builds.<br>
+<br>
+base/gsrefct.h<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-03 12:29: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=59d509244ddb6fe9719a6205bf5657268efcb6d6">59d509244ddb6fe9719a6205bf5657268efcb6d6</a>
+<blockquote>
+<p>
+ Add missing \n to error message.<br>
+<br>
+psi/interp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-03 02:53:02 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1392f5d2e7fe73bce8ff56cef62e4205f8a53bfd">1392f5d2e7fe73bce8ff56cef62e4205f8a53bfd</a>
+<blockquote>
+<p>
+ Memory squeezing fixes (PCL)<br>
+<br>
+ Harden PCL (and gslibctx etc) against memory failures<br>
+ during initialisation.<br>
+<br>
+base/gsicc_manage.c<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+base/gsmalloc.c<br>
+pcl/pl/plalloc.c<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-03 02:48: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=92ecd60a5218eb5bd1ba5e497e5fd2550112b5ed">92ecd60a5218eb5bd1ba5e497e5fd2550112b5ed</a>
+<blockquote>
+<p>
+ Destructors should cope with being called with NULL.<br>
+<br>
+ Tweak pl level so that neat error closedown is easier.<br>
+<br>
+pcl/pl/pltop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-02 20:12: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=dd6fdc6dd668776d7b9570dd07e1e1790fcba8fb">dd6fdc6dd668776d7b9570dd07e1e1790fcba8fb</a>
+<blockquote>
+<p>
+ Fix Memento builds.<br>
+<br>
+ Some headers were sometimes being used with memento.h having<br>
+ been included, and sometimes not. This lead to differing<br>
+ redefinitions of 'free'.<br>
+<br>
+base/gsfunc.h<br>
+base/lib.mak<br>
+base/ttfoutl.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-27 16:32: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=9060c91ef75d7d36cfc1fd975e3368415df69b3a">9060c91ef75d7d36cfc1fd975e3368415df69b3a</a>
+<blockquote>
+<p>
+ New scan converter fix.<br>
+<br>
+ Don't convert ex and ey from endpoints to distance until *after*<br>
+ we have finished using it as an endpoint.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-02 04:07:47 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d8af3708a4907e98b5db54860d379702355dc077">d8af3708a4907e98b5db54860d379702355dc077</a>
+<blockquote>
+<p>
+ Tweak gs to enable fast Memento memory squeezing.<br>
+<br>
+ Memento can memory squeeze in 2 modes; firstly it can repeatedly<br>
+ run the same job again and again failing at subsequent points.<br>
+<br>
+ This has the advantage of being simple, but it has the problem<br>
+ of being slow, in that processing is repeated again and again.<br>
+<br>
+ A faster mode is available where we run to the point of failure,<br>
+ then fork. The child proceeds to fail, and once failed, the<br>
+ parent then continues for 1 more allocation then repeats the<br>
+ process. Thus the only repeated work is in the failure cases.<br>
+<br>
+ The downside to this is that fork copes very badly with<br>
+ multi-threaded programs. Firstly, it only duplicates the current<br>
+ thread - this means that we can only use it with single<br>
+ threaded programs. Secondly, even with single threaded programs<br>
+ the forked child goes wrong if you try to use mutexes etc.<br>
+<br>
+ This means that in order to use GS with the fast memento memory<br>
+ squeezer, we need to ensure we don't create mutexes etc. We<br>
+ do this by adding a MEMENTO_SQUEEZE_BUILD define to gs.<br>
+<br>
+base/gp_psync.c<br>
+base/gsicc_cache.c<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_manage.c<br>
+base/gsmalloc.c<br>
+base/sjpx_openjpeg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-02 03:34:22 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8cca94c736bb4babc676bd2ce49176d93058b8b3">8cca94c736bb4babc676bd2ce49176d93058b8b3</a>
+<blockquote>
+<p>
+ Memento memory squeezing tweaks.<br>
+<br>
+ Add Memento_bt() - a function to output the backtrace<br>
+ to stderr.<br>
+<br>
+ Call this when we fork for a memory squeeze.<br>
+<br>
+ Forking only clones the active thread, so we can only use<br>
+ the forking memory squeezer on single threaded tasks. Even<br>
+ with single threaded tasks, you can't unlock mutexes in<br>
+ the child that were taken in the parent. This means that<br>
+ we need to disable mutexes in the main application if we<br>
+ want to memory squeeze safely.<br>
+<br>
+ Also tweak the time we spend sleeping while waiting for a child<br>
+ to die. This makes a huge difference to the runtime.<br>
+<br>
+ If we die during squeezing due to a SEGV, then don't bother<br>
+ listing the blocks that we leaked.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-01 19:46:29 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de2314431f400a439cb2bcebb1152fc206b8804d">de2314431f400a439cb2bcebb1152fc206b8804d</a>
+<blockquote>
+<p>
+ Fix ignored return code for ICC profile device parameters.<br>
+<br>
+ All of the uses of gx_default_put_icc_colorants and gx_default_put_icc<br>
+ ignored the return code which might be VMerror. Found when testing with<br>
+ multi-threaded rendering and low memory conditions.<br>
+<br>
+base/gsdparam.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-02-01 08:40:01 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cead170cb9e8dc25e59e3c8d7d8616d8b2f7119a">cead170cb9e8dc25e59e3c8d7d8616d8b2f7119a</a>
+<blockquote>
+<p>
+ Memento: Improve memory squeezing.<br>
+<br>
+ It seems that Memory squeezing can sometimes run into<br>
+ problems with the child hanging after a fork. This seems<br>
+ to be related to the child process SEGVing and the<br>
+ signal handler not picking it up.<br>
+<br>
+ I've introduced a workaround so that the parent now only<br>
+ waits a maximum of 30 seconds before killing the child and<br>
+ continuing.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-25 21:42: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=3a9d6ebe560689930eaf3aca00652b22cef26423">3a9d6ebe560689930eaf3aca00652b22cef26423</a>
+<blockquote>
+<p>
+ Bug 626295 Text Knockout Transparency<br>
+<br>
+ When we have transparency, text knockout set,<br>
+ with either a non-normal blend mode or an<br>
+ opacity less than 1.0, we need to push a<br>
+ non-isolated knockout group. Graphic state<br>
+ changes can occur between the BT and ET commands.<br>
+ As such, we will need to handling the push<br>
+ operation in pdf14_text_begin (and the clist version)<br>
+ when the conditions are right. This is a special<br>
+ group that indicates its uniqueness with a text_group<br>
+ flag. This flag is included through the clist, the<br>
+ group as well as the device. Once set, subsequent<br>
+ calls to pdf14_text_begin will not push another group.<br>
+ The group is popped with ET is encountered through the<br>
+ zendtransparencytextgroup command from the interpreter.<br>
+ If the pdf14 device is not currently in a text group,<br>
+ this group pop is ignored (and not even placed in<br>
+ the clist). The pdfwrite compositor logic, ignores<br>
+ and group pushes that occur with the text_group set<br>
+ as well as all PDF14_END_TRANS_TEXT_GROUP types.<br>
+ Due to confusion of with the annotation text writing<br>
+ methods, I had to add a PDF14_BEGIN_TRANS_TEXT_GROUP<br>
+ to denote when we encounter a BT in the source file<br>
+ to ensure that we are only going to push groups if<br>
+ our conditions are right and we are in a BT/ET pair and<br>
+ not drawing a text annotation.<br>
+<br>
+ One optimization we may want to look at doing later, is<br>
+ determining the bbox for the area between BT and ET.<br>
+ Currently the group push is the same size as the parent<br>
+ group which is likely much to large.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gstparam.h<br>
+base/gstrans.c<br>
+base/gstrans.h<br>
+devices/vector/gdevpdft.c<br>
+psi/ztrans.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-31 19:05: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=04c75cebae5912610526c997604f8d15fb933682">04c75cebae5912610526c997604f8d15fb933682</a>
+<blockquote>
+<p>
+ Fix a typo/thinko in the static lib build changes.<br>
+<br>
+ I'd mistakenly used $(TOP_OBJ) instead of $(XPS_TOP_OBJS) for the XPS<br>
+ static library.<br>
+<br>
+base/unixlink.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-31 15:04:55 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ba07b2df0ea519b1a6e9fcdfe6f7a25be92264fa">ba07b2df0ea519b1a6e9fcdfe6f7a25be92264fa</a>
+<blockquote>
+<p>
+ Fix Windows build<br>
+<br>
+ In adding/tidying the Unix-like static library targets, I forgot to tweak the<br>
+ VS nmake Makefiles to cope with the revisions. Done here.<br>
+<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-31 10:05:11 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8acec5830978b1199b3cda4eae3064deb4d91818">8acec5830978b1199b3cda4eae3064deb4d91818</a>
+<blockquote>
+<p>
+ Consolidate recurive make calls<br>
+<br>
+ We have various classes of target (e.g. debug, profile etc) that rely on<br>
+ recursively calling make with specific sets of options per class.<br>
+<br>
+ Put the make call and the options into a macro for each class<br>
+<br>
+base/unix-end.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-31 09:12: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=d9e40fcbf0a213e6717e1ab3bd234f5b20ca1270">d9e40fcbf0a213e6717e1ab3bd234f5b20ca1270</a>
+<blockquote>
+<p>
+ Add debug static lib targets.<br>
+<br>
+ For neatness, I've moved the &quot;visible&quot; targets to unix-end.mak with the other<br>
+ Unix-like targets.<br>
+<br>
+ And then added the recursive make calls to build debug versions.<br>
+<br>
+base/unix-end.mak<br>
+base/unixlink.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-31 08:57: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=7718fe48373ff62f140d33080af9f49fc21b9f39">7718fe48373ff62f140d33080af9f49fc21b9f39</a>
+<blockquote>
+<p>
+ Tidy/Add static lib target(s).<br>
+<br>
+ Tidy up the libgs target for the gs static library on Unix-like systems (since<br>
+ we're now using it).<br>
+<br>
+ Rejig the PCL, XPS and PDL executable builds to a) more closely match the gs<br>
+ one, and b) facilitate static library targets for those, too.<br>
+<br>
+ Add the static library targets for the PCL/XPS/PDL builds (libgpcl6, libgxps<br>
+ and libgpdl respectively).<br>
+<br>
+base/gs.mak<br>
+base/unixlink.mak<br>
+gpdl/gpdl.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-30 15:05:36 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94278ad478278567dbdfcb87137676ff73e86c22">94278ad478278567dbdfcb87137676ff73e86c22</a>
+<blockquote>
+<p>
+ XPS Transparency check remote resource dictionary<br>
+<br>
+ The XPS interpreter checks for the presence of transparency<br>
+ on the page. It was not checking remote resource dictionaries<br>
+ but rather was assuming that they always had transparency<br>
+ which resulted in an unneeded push of the pdf14 device when<br>
+ going to a raster output device.<br>
+<br>
+xps/xpsanalyze.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-30 14:08:52 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=587d0a7edfd3519bd28981eb2703cfaaf11c747c">587d0a7edfd3519bd28981eb2703cfaaf11c747c</a>
+<blockquote>
+<p>
+ Fix coverity issues 140991 and 140990<br>
+<br>
+ Introduced from http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=91741e126688807cd086dad55158cd0cad63725a<br>
+<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-27 12:17:00 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8cde4bc582904132bd8bb78e6c5da5ab2ebdb6ce">8cde4bc582904132bd8bb78e6c5da5ab2ebdb6ce</a>
+<blockquote>
+<p>
+ XPS Transparency check<br>
+<br>
+ The XPS interpreter code was not setting the device param to<br>
+ indicate if a page had transparency. As such, the fact that<br>
+ a page had transparency was not getting used in the decision<br>
+ to invoke or not invoke the command list.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpspage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-30 07:25:59 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=827ab0227853b9ee5491ceb76b178757aa2ab733">827ab0227853b9ee5491ceb76b178757aa2ab733</a>
+<blockquote>
+<p>
+ Fix a potential de-reference of a NULL pointer with -Zv<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-27 13:24:32 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=91741e126688807cd086dad55158cd0cad63725a">91741e126688807cd086dad55158cd0cad63725a</a>
+<blockquote>
+<p>
+ xps: low memory null dereference<br>
+<br>
+ If the allocation in xps_new_part fails, it returns<br>
+ a null object which is then getting dereferenced.<br>
+<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-26 11:35: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=c27947491f9b4bc87b09bff0648e1816ebd2af19">c27947491f9b4bc87b09bff0648e1816ebd2af19</a>
+<blockquote>
+<p>
+ Segfault in low memory configurations<br>
+<br>
+ Testing with -K values for bug 697504, I was able to reproduce some<br>
+ segfaults, but don't know if they relate to the one mentioned here and<br>
+ on bug 691170 (which was closed as fixed), but these need to get fixed<br>
+ in any case.<br>
+<br>
+ These occured because the init2 had not completed, but the interp was<br>
+ being called to do more stuff than it could reasonably hope to do in<br>
+ this case. Testing with -K values from 15000 down to 100 by 100 now<br>
+ no longer segfaults.<br>
+<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-26 18:09: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=0734126eafa7c9212341886626d15d90ccce400f">0734126eafa7c9212341886626d15d90ccce400f</a>
+<blockquote>
+<p>
+ Add XPS_INDIRECTED_FILE_ACCESS define<br>
+<br>
+ If defined, then the xps interpreter looks to use user<br>
+ supplied xps_{fopen,ftell,fseek,getc,fread,fclose} functions<br>
+ rather than gp_fopen,ftell,fseek,getc,fread,fclose.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpsjxr.c<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-25 14:41:17 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=68af8c3b1584d0b001c7bd96456caf7547a0229e">68af8c3b1584d0b001c7bd96456caf7547a0229e</a>
+<blockquote>
+<p>
+ Bug 697503: Check resource path, and GenericResourceDir...<br>
+<br>
+ ...paths when searching for resources.<br>
+<br>
+ This relates back to bug 694509.<br>
+<br>
+ If GenericResourceDir is set as a relative path, relative to a non-standard<br>
+ GS_LIB search path, we have to prefix the resource path (Category/Key) with<br>
+ the GenericResourceDir for the search path machinery to find the resource<br>
+ file.<br>
+<br>
+ *However*, if the GenericResourceDir is set in the normal way (automagically<br>
+ by the initialization), then just using the plan resource path is required.<br>
+<br>
+ So, try both the plain 'Category/Key' path, and the<br>
+ 'GenericResourceDir/Category/Key' path.<br>
+<br>
+Resource/Init/gs_res.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-25 16:00: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=4d07b45685976bd38e5cec8062b3a61d2ada5575">4d07b45685976bd38e5cec8062b3a61d2ada5575</a>
+<blockquote>
+<p>
+ Hide more JPEG entries.<br>
+<br>
+base/gsjconf.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-24 18:07: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=aeb0bfb6c99e1e1683a21f684c18c1363ccc16cb">aeb0bfb6c99e1e1683a21f684c18c1363ccc16cb</a>
+<blockquote>
+<p>
+ Add more jpeg symbols to be hidden.<br>
+<br>
+ It seems these clash with the devboards software too.<br>
+<br>
+base/gsjconf.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-20 17:02:39 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c7d005ac1c92a6fee43554fffd9a6f38c0a6b962">c7d005ac1c92a6fee43554fffd9a6f38c0a6b962</a>
+<blockquote>
+<p>
+ Add GS_NO_FILESYSTEM define for systems with no FS.<br>
+<br>
+ Some systems (such as ThreadX), have std headers that<br>
+ define FILE, but do not actually have a real filing<br>
+ system implementation. As such, they don't support<br>
+ filing system enumeration.<br>
+<br>
+ We therefore introduce a GS_NO_FILESYSTEM define that<br>
+ stubs out the code in these entrypoints.<br>
+<br>
+ At some point we may split the contents out to a different<br>
+ platform, but this will probably require some careful<br>
+ thinking about other functions in these files to avoid<br>
+ duplication of code.<br>
+<br>
+base/gdevpipe.c<br>
+base/gp_unifs.c<br>
+base/gp_unix.c<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-19 18:49: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=9568153b12b80d477f3031b88631910082a55bc8">9568153b12b80d477f3031b88631910082a55bc8</a>
+<blockquote>
+<p>
+ Add option to hide jpeg entrypoints.<br>
+<br>
+ If we define GS_HIDE_INTERNAL_JPEG on build, then a series of macros<br>
+ is used to rename internal JPEG entrypoints. This can prevent<br>
+ symbol clashes when linking with other libraries.<br>
+<br>
+ There may well be more symbols to add here in future, but this<br>
+ seems to be enough to solve it for me now.<br>
+<br>
+base/gsjconf.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-24 12:41: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=aafd60bddbb3d5cfc0d9fb726d0cf81c51805c4c">aafd60bddbb3d5cfc0d9fb726d0cf81c51805c4c</a>
+<blockquote>
+<p>
+ Remove opj_clock.c from build.<br>
+<br>
+ Only defines one function, that isn't used, and doesn't compile<br>
+ on all platforms.<br>
+<br>
+base/openjpeg.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-24 12:41: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=ea534adfd0a3deed4f2a70d47fc9d78c1911d928">ea534adfd0a3deed4f2a70d47fc9d78c1911d928</a>
+<blockquote>
+<p>
+ Fix icc34.h header to compile on ThreadX.<br>
+<br>
+ Honour HAVE_STDINT_H predefine.<br>
+<br>
+ Also, tweak the #ifdeffery to be more readable (IMHO).<br>
+ Less nesting and rightward creep, and a more straightforward<br>
+<br>
+base/icc34.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-21 15:01:14 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eead75f44a03517ad50702f3c65d8c5784b4bfbb">eead75f44a03517ad50702f3c65d8c5784b4bfbb</a>
+<blockquote>
+<p>
+ Fizes for the ramfs (%ram% device) (Bug 226943)<br>
+<br>
+ There were problems with the GC not tracing the s-&gt;file pointer from the<br>
+ stream (assumed to be an OS item) so change to using non_gc_memory. Also<br>
+ problems with writing buffers more that a single block (not advancing<br>
+ in the source buffer).<br>
+<br>
+ The bytesavailable operator didn't work because there was a bogus file_limit<br>
+ in the stream, and s_ram_available was wrong.<br>
+<br>
+ Change the &quot;this&quot; to &quot;thisdirent&quot; so that C++ debuggers (like VS) can<br>
+ show the structure contents correctly.<br>
+<br>
+ The bug shows an example that can be used to run a PDF file from stdin<br>
+ without needing to write a file to disk.<br>
+<br>
+base/gsioram.c<br>
+base/ramfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-23 12: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=024e9bd9a07ff906e91f78594c9d547f5228b3c6">024e9bd9a07ff906e91f78594c9d547f5228b3c6</a>
+<blockquote>
+<p>
+ Force some typedef enums to be 32 bits.<br>
+<br>
+ Modern C's are allowed to shrink typedef enums so that they are<br>
+ only as large as required to cover all the values in the<br>
+ enumeration. This can mean that typedef enums can now be byte<br>
+ sized.<br>
+<br>
+ This works very badly when we have an array of them, take the<br>
+ address and cast it to an int *. That int * is no longer<br>
+ appropriately aligned for some compilers. This happens in the<br>
+ get_param code.<br>
+<br>
+ We therefore add a trailing 'large' enum value to force the<br>
+ enums to be large. This will break down if we ever have a platform<br>
+ where ints are larger than 32bits.<br>
+<br>
+base/gscms.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-23 11:48: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=24cb576dd60e903466b2d78cc718b3dd4da19529">24cb576dd60e903466b2d78cc718b3dd4da19529</a>
+<blockquote>
+<p>
+ MSVC: Add %ram% FS to VS project.<br>
+<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-16 18: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=e6753115b8a4c72c5e526f2a0a3849391a255962">e6753115b8a4c72c5e526f2a0a3849391a255962</a>
+<blockquote>
+<p>
+ Use consistent types in API and C implementation.<br>
+<br>
+base/gssprintf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-19 11:44:18 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=79d6e96a8db2956c8317fd8bdeb8d8db5fd0e212">79d6e96a8db2956c8317fd8bdeb8d8db5fd0e212</a>
+<blockquote>
+<p>
+ Bug 697489 xps transparency issue<br>
+<br>
+ The xps interpreter was pushing transparency groups without<br>
+ pushing the pdf14 device. The problem was that the interpreter<br>
+ was not checking the glyphs in the resource dictionaries.<br>
+<br>
+ I also optimized the code to stop checking for transparency<br>
+ once it finds transparency.<br>
+<br>
+xps/xpsanalyze.c<br>
+xps/xpspage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-18 14:49:40 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a9bd0b6d95b16d594983682ae387922507e70b98">a9bd0b6d95b16d594983682ae387922507e70b98</a>
+<blockquote>
+<p>
+ Bug 697489 bitrgbtags segv<br>
+<br>
+ The clist compositor call was not returning the existing<br>
+ compositing device in certain cases causing an issue<br>
+ later in the code.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-18 13:24:20 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=56879003723e608173cdc063a8f2da4172f29a95">56879003723e608173cdc063a8f2da4172f29a95</a>
+<blockquote>
+<p>
+ Bug 697488 segv in pattern code<br>
+<br>
+ The transparency code was not updating the bit depth<br>
+ properly when we had a color space change in the presence<br>
+ of spot colors<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-18 09:43:24 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b12adcc4c201e94e1f726c8fa6ad7eea8a5f4ca7">b12adcc4c201e94e1f726c8fa6ad7eea8a5f4ca7</a>
+<blockquote>
+<p>
+ Bug 697435 bitrgbtags device<br>
+<br>
+ The bit depth in the device was not getting set correctly<br>
+ during a color space change in the transparency code when<br>
+ the target device includes tags.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-18 14:18:29 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b5abd7391d4d065e6b4d05c119d2dd243bda2f4d">b5abd7391d4d065e6b4d05c119d2dd243bda2f4d</a>
+<blockquote>
+<p>
+ Bug 697482: handle cff with broken /Private data<br>
+<br>
+ The problem in this case is that the offset into the cff data for the /Private<br>
+ dictionary definition is well beyond the end of the cff stream.<br>
+<br>
+ Bounds check the offset, and if it's nonsense, treat it as a zero length<br>
+ /Private dictionary (in the hope that the font doesn't actually need it.<br>
+<br>
+ NOTE: /Private *is* a required entry, so *using* the font may throw an error.<br>
+<br>
+psi/zfont2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-18 14:29: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=90d3fb2e75aea47501dceb298ccd4f4229d4a6f3">90d3fb2e75aea47501dceb298ccd4f4229d4a6f3</a>
+<blockquote>
+<p>
+ Fix error check/return logic in the CFF parser<br>
+<br>
+psi/zfont2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-17 10:48:07 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=51c5aa09762602b5dd3982ff3b92e182f1637dd4">51c5aa09762602b5dd3982ff3b92e182f1637dd4</a>
+<blockquote>
+<p>
+ Bug 697435 bittags device blending color space<br>
+<br>
+ In the clist case, there was a mixup with the ICC profile<br>
+ during playback. This fixes that issue. While the small<br>
+ file in Bug 697433 works with this fix, the large file<br>
+ (regression3.pdf) still shows 2 issues. When the blending<br>
+ color space is -sBlendColorProfile=default_cmyk.icc at 300dpi<br>
+ we see a dropped band (likely some confusion about the<br>
+ pdf14/clist optimization). When we use no blending color<br>
+ space we end up with a segv in clist_playback_band<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-13 19:16:56 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0dbfbb773e40d23de5052fc5641387dad5d79bae">0dbfbb773e40d23de5052fc5641387dad5d79bae</a>
+<blockquote>
+<p>
+ Code cleanup. Remove unused code in transparency code.<br>
+<br>
+base/gdevp14.c<br>
+base/gscolorbuffer.c<br>
+base/gscolorbuffer.h<br>
+base/lib.mak<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-13 12:33:05 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8aa6b2ae6b27912339548380b602b8e3e6d17db3">8aa6b2ae6b27912339548380b602b8e3e6d17db3</a>
+<blockquote>
+<p>
+ Bug 697435 Tags device with Blending color space<br>
+<br>
+ Allow the use of put_image when we specified a blending color space.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-12 13:25:04 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7d97633daa0679a688a85a8a8805c261bd828a7e">7d97633daa0679a688a85a8a8805c261bd828a7e</a>
+<blockquote>
+<p>
+ Add bitrgbtags device to Windows default build.<br>
+<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-12 13:16:58 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3434578b240b1e4bc34a0ce108595653e0994a11">3434578b240b1e4bc34a0ce108595653e0994a11</a>
+<blockquote>
+<p>
+ Add basic support for CMYK PAM (P7) format files.<br>
+<br>
+ This works for the files generated by Ghostscript and mupdf, so it<br>
+ is useful enough to add.<br>
+<br>
+lib/viewpbm.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-11 09:58:34 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0130e9cc9f196b4bd2e107cd71826210a8274c9d">0130e9cc9f196b4bd2e107cd71826210a8274c9d</a>
+<blockquote>
+<p>
+ Fix SEGV bug 697473 bitrgbtags device with transparency<br>
+<br>
+ The SEGV was caused by setting tos-&gt;n_planes to the wrong value if we<br>
+ converted colors to a different number of color components. Also fix<br>
+ clearing of the tags if the backdrop was NULL (leave it set as it was<br>
+ by pdf14_buf_new to GS_UNKNOWN_TAG).<br>
+<br>
+ Lastly, the pdf14_put_image wasn't setting up the buffer pointers for<br>
+ all of the planes (alpha and tag), so bit_put_image choked. This<br>
+ probably would have caused a problem with pngalpha.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-11 10:08: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=e424a42d269a626db054fb76e481df011ec6f1d6">e424a42d269a626db054fb76e481df011ec6f1d6</a>
+<blockquote>
+<p>
+ pdfwrite: set the 'bytes_decoded' value in the text enum<br>
+<br>
+ For CIDFont subsitutions (and spotting single byte space characters), we need<br>
+ to know how many bytes were read from the input string for the current glyph,<br>
+ hence we have the 'bytes_decoded' value. For one code path, pdfwrite was<br>
+ failing to set the value.<br>
+<br>
+devices/vector/gdevpdtc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-11 09:16: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=aedc5a96d855086711b8accd48bd014dd57b18fa">aedc5a96d855086711b8accd48bd014dd57b18fa</a>
+<blockquote>
+<p>
+ Fix the profile (pg) build.<br>
+<br>
+base/unix-end.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-11 09:19: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=40869fa69cdb74126977e35c2028d4176d350cdb">40869fa69cdb74126977e35c2028d4176d350cdb</a>
+<blockquote>
+<p>
+ Improve CIDFont rearranged font handling slightly<br>
+<br>
+ Noticed while investigating a customer problem. We do not handle<br>
+ rearranged fonts (because they are a hideous hack) but we do have code<br>
+ to at least process them. Unfortunately there's a typo in the code which<br>
+ causes it to throw an error if its ever executed.<br>
+<br>
+ Fix the typo here.<br>
+<br>
+ The fact that this has never come up indicates how often this mess is<br>
+ used; ie never.<br>
+<br>
+Resource/Init/gs_cmap.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-04 13:13: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=8360852efab5643d93cc3b040832075e199cd205">8360852efab5643d93cc3b040832075e199cd205</a>
+<blockquote>
+<p>
+ Bug 697462: pdfwrite: avoid cached glyph use<br>
+<br>
+ When pdfwrite is accumulating a Type 3 font, and we want to try to capture the<br>
+ CharProc (rather than falling back to a bitmap), we need to stop the core<br>
+ font code from using a previously cached glyph bitmap (for example, from an<br>
+ earlier stringwidth operation), so we're sure the CharProc gets executed.<br>
+<br>
+ If we don't ensure the cache doesn't get used, we end up in an infinite loop,<br>
+ where pdfwrite repeatedly returns to the core to run the CharProc.<br>
+<br>
+devices/vector/gdevpdtt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-06 15:37:08 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3f4e699c31368a08b0146ef62f5b196315bd700d">3f4e699c31368a08b0146ef62f5b196315bd700d</a>
+<blockquote>
+<p>
+ Update color document with new GS logo<br>
+<br>
+doc/GS9_Color_Management.pdf<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-06 09:59:29 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=434ae2a49e9b6026a3ae1eeceb0f32b78a894ee1">434ae2a49e9b6026a3ae1eeceb0f32b78a894ee1</a>
+<blockquote>
+<p>
+ Color code clean up.<br>
+<br>
+base/gdevp14.c<br>
+base/gsicc_cache.c<br>
+base/gsicc_manage.c<br>
+base/gsicc_manage.h<br>
+psi/zicc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-06 09:56:15 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=32765969861bee5773b5f1207dae2500fa1fd506">32765969861bee5773b5f1207dae2500fa1fd506</a>
+<blockquote>
+<p>
+ Update color management documentation<br>
+<br>
+doc/GS9_Color_Management.pdf<br>
+doc/GS9_Color_Management.tex<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-05 15:21: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=2259f4c693d02a43c007cab6cb268fa4e6d6c542">2259f4c693d02a43c007cab6cb268fa4e6d6c542</a>
+<blockquote>
+<p>
+ Tidy variable naming in iapi.{c,h}<br>
+<br>
+ Use 'instance' consistently.<br>
+<br>
+psi/iapi.c<br>
+psi/iapi.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-03 14:37:26 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2f45ea017e9691c2b817884746306d27e06e0199">2f45ea017e9691c2b817884746306d27e06e0199</a>
+<blockquote>
+<p>
+ Windows gs: Avoid unininitialised read.<br>
+<br>
+pcl/pl/plwmainc.c<br>
+psi/dpmain.c<br>
+psi/dwmain.c<br>
+psi/dwmainc.c<br>
+psi/dxmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-03 10:17: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=8071bb2950068a3c6a1b5a405d16548177503a14">8071bb2950068a3c6a1b5a405d16548177503a14</a>
+<blockquote>
+<p>
+ New scan converter: Fix some warnings.<br>
+<br>
+ &quot;ey is set and then never used&quot; in some release builds.<br>
+<br>
+ Rejig the code to avoid this.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-02 18:27:50 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=06e756898579cd21dbff40ad30efff9571a549fe">06e756898579cd21dbff40ad30efff9571a549fe</a>
+<blockquote>
+<p>
+ New scan converter: Fix problems in trap fills.<br>
+<br>
+ I was calculating trapezium fills slightly wrong.<br>
+<br>
+ Also, I was filling the 'centre of a pixel' cases edgebuffers<br>
+ with slightly incorrect values. Now the debugging shows that<br>
+ we are getting exactly what we want in the example files I<br>
+ have tried.<br>
+<br>
+ This results in much smoother edges on some shapes.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-01-02 18:25:08 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb1f10f6eaed79016dd924b2e5730160e9267fd3">fb1f10f6eaed79016dd924b2e5730160e9267fd3</a>
+<blockquote>
+<p>
+ New scan converter: Improved debugging.<br>
+<br>
+ Update the debugging output from the new scan converter to be<br>
+ more useful.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-29 14:00:21 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=90fd0c7ca3efc1ddff64a86f4104b13b3ac969eb">90fd0c7ca3efc1ddff64a86f4104b13b3ac969eb</a>
+<blockquote>
+<p>
+ Bug 697456. Dont create new ctx when pdf14 device reenabled<br>
+<br>
+ This bug had yet another weird case where the user created a<br>
+ file that pushed the pdf14 device twice. We were in that case,<br>
+ creating a new ctx and blowing away the original one with out<br>
+ proper clean up. To avoid, only create a new one when we need it.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-29 12:00:40 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d621292fb2c8157d9899dcd83fd04dd250e30fe4">d621292fb2c8157d9899dcd83fd04dd250e30fe4</a>
+<blockquote>
+<p>
+ Bug 697444 Unmatched transparency group pop<br>
+<br>
+ This issue can only occur if there is an unmatched group pop.<br>
+ If the interpreter is doing that, then the interpreter is<br>
+ broken. With this bug the user is intentionally doing it.<br>
+ We now throw and error when it occurs.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-29 15:57: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=4bef1a1d32e29b68855616020dbff574b9cda08f">4bef1a1d32e29b68855616020dbff574b9cda08f</a>
+<blockquote>
+<p>
+ Bug 697453: Avoid divide by 0 in scan conversion code.<br>
+<br>
+ Arithmetic overflow due to extreme values in the scan conversion<br>
+ code can cause a division by 0.<br>
+<br>
+ Avoid this with a simple extra check.<br>
+<br>
+ dx_old=cf814d81<br>
+ endp-&gt;x_next=b0e859b9<br>
+ alp-&gt;x_next=8069a73a<br>
+<br>
+ leads to dx_den = 0<br>
+<br>
+base/gxfill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-29 13:39:50 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0aeb0bbd41cc16e70ab6e4b1d56e0c510bf2a758">0aeb0bbd41cc16e70ab6e4b1d56e0c510bf2a758</a>
+<blockquote>
+<p>
+ Bug 697423: Fix overflow in pngalpha.<br>
+<br>
+ The composite creation maths in the copy_alpha method overflowed<br>
+ due to the alpha range being changed from 0..15 to 0..255 in<br>
+ commit d9f041d6fe7eda89364df1424f85ace974ed0fec. Changing to<br>
+ unsigned solves this.<br>
+<br>
+devices/gdevpng.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-28 18:34: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=a7f3177cb0ae8f56cfec52ea38a4f6f613c91055">a7f3177cb0ae8f56cfec52ea38a4f6f613c91055</a>
+<blockquote>
+<p>
+ New scan converter: Fix problems seen at local minima/maxima.<br>
+<br>
+ Sometimes the fill isn't quite right at the extremes of shapes.<br>
+<br>
+ This is due to a problem when we exactly align with scanlines.<br>
+<br>
+ See the output of tests_private/comparefiles/Bug696174.ps at 300dpi<br>
+ for some examples. Look at the tie lines for the first notes in the<br>
+ last line of page 2 - a scanlines worth of pixels are missing from<br>
+ the top.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-28 14:16: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=79572779090e4f777bfd21996f04ff9bddcd3cbc">79572779090e4f777bfd21996f04ff9bddcd3cbc</a>
+<blockquote>
+<p>
+ New scan converter: Fix zero height rectangle behaviour.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-27 16:18: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=290c044b5156b8111326da25738cbc3c1ad2b182">290c044b5156b8111326da25738cbc3c1ad2b182</a>
+<blockquote>
+<p>
+ Add some debug code to new scan converter.<br>
+<br>
+ Output the rectangles/traps filled by the scan converter as<br>
+ postscript.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-23 19:39: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=deb69ac011df1cc58a0da4c08123e2aebf819c7e">deb69ac011df1cc58a0da4c08123e2aebf819c7e</a>
+<blockquote>
+<p>
+ New scanconverter; fix various problems<br>
+<br>
+ 1) Fix problems seen when stroke and fills don't line up.<br>
+<br>
+ This turns out to be because fills done with traps and &quot;any<br>
+ part of a pixel&quot; (APP) were being rounded wrongly. Fixed here.<br>
+<br>
+ 2) Fix some debug statements.<br>
+<br>
+ 3) Fix some centre of pixel trap filling code - the code to<br>
+ look for the 'end' of traps was failing due to only comparing<br>
+ the first half of the intercepts on a given line.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-22 17:27: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=8d722263343e7c17769cc4026a76cc28046a8e1a">8d722263343e7c17769cc4026a76cc28046a8e1a</a>
+<blockquote>
+<p>
+ Fix new scan converter.<br>
+<br>
+ When filling by traps with any part of a pixel in the new scan<br>
+ converter, we were hitting cases where we we missing parts<br>
+ of lines.<br>
+<br>
+ As seen in the borders of the &quot;CPU&quot; and &quot;CACHE&quot; boxes on:<br>
+<br>
+ gs -dSCANCONVERTERTYPE=2 -o out.png -sDEVICE=png16m -r72<br>
+ -dFirstPage3 -dLastPage3 tests/pdf/Bug6901014_SMP_Warwick_14.pdf<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-22 17:26: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=0c625d998fb85d87b6184bd52bfeee954746a2cd">0c625d998fb85d87b6184bd52bfeee954746a2cd</a>
+<blockquote>
+<p>
+ Improve debugging in new scan converter.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-22 10:34: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=64fcc1460ef1af131c17d3ced0f01ec755243986">64fcc1460ef1af131c17d3ced0f01ec755243986</a>
+<blockquote>
+<p>
+ Fix a scan-build warning<br>
+<br>
+ The return value stored in code wasn't being actioned, move it to<br>
+ code1 instead.<br>
+<br>
+devices/vector/gdevpdfv.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-21 18:16: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=5924a809c21ce8564c72b9917e4a5fbd278049ad">5924a809c21ce8564c72b9917e4a5fbd278049ad</a>
+<blockquote>
+<p>
+ Fix double pixels writes in new scanconverter.<br>
+<br>
+ When scan converting to scanlines with any part of a pixel<br>
+ we have to be careful not to double write pixels. The logic<br>
+ for this was broken. Fix it here.<br>
+<br>
+ Seen with:<br>
+<br>
+ gs -dSCANCONVERTERTYPE=2 -o out.png -sDEVICE=png16m -r72<br>
+ tests_private/comparefiles/Bug687295c.pdf<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-21 16:54: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=daf85701dab05f17e924a48a81edc9195b4a04e8">daf85701dab05f17e924a48a81edc9195b4a04e8</a>
+<blockquote>
+<p>
+ fix crash with bad data supplied to makeimagedevice<br>
+<br>
+ Bug #697450 &quot;Null pointer dereference in gx_device_finalize()&quot;<br>
+<br>
+ The problem here is that the code to finalise a device unconditionally<br>
+ frees the icc_struct member of the device structure. However this<br>
+ particular (weird) device is not setup as a normal device, probably<br>
+ because its very, very ancient. Its possible for the initialisation<br>
+ of the device to abort with an error before calling gs_make_mem_device()<br>
+ which is where the icc_struct member gets allocated (or set to NULL).<br>
+<br>
+ If that happens, then the cleanup code tries to free the device, which<br>
+ calls finalize() which tries to free a garbage pointer.<br>
+<br>
+ Setting the device memory to 0x00 after we allocate it means that the<br>
+ icc_struct member will be NULL&lt; and our memory manager allows for that<br>
+ happily enough, which avoids the problem.<br>
+<br>
+base/gsdevmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-21 15:42:36 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2299c9a25fc9ae7b59752f1795f8b53920901c80">2299c9a25fc9ae7b59752f1795f8b53920901c80</a>
+<blockquote>
+<p>
+ pdfwrite - don't emit degenerate Matrix for type 2 Patterns<br>
+<br>
+ Bug 697451 &quot;shfill with degenerate matrix leads to PDF unreadable with Acrobat&quot;<br>
+<br>
+ The original file deliberately makes the CTM degenerate before drawing<br>
+ a shfill. Although all PostScript consumers handle this without complaint.<br>
+ When converted to PDF most PDF consumers also are happy with the<br>
+ situation, however Adobe Acrobat recoils in horror and aborts the<br>
+ processing of the page stream with an error.<br>
+<br>
+ Adobe Acrobat Distiller simply refuses (silently!) to embed the shfill<br>
+ in the PDF file.<br>
+<br>
+ We don't have a way to drop the fill, so instead, if the Matrix is<br>
+ degenerate, replace it with the smallest scale matrix we can. Acrobat<br>
+ is happy with this.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfv.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-20 10:40:56 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7d820556974dbafaed04cfe5356fc66556907128">7d820556974dbafaed04cfe5356fc66556907128</a>
+<blockquote>
+<p>
+ Fix accuracy of bbox device with curves in filled paths<br>
+<br>
+ Bug #697446 &quot;bbox device is inaccurate with certain curves, when filled&quot;<br>
+<br>
+ The problem here is that, when a path is not clipped, is composed of<br>
+ certain types of flattish curves at the boundary, we used an inaccurate<br>
+ method to determine the bounds of the path.<br>
+<br>
+ The old code used gx_path_bbox, which only considers the points in a path<br>
+ which is a problem for curves, because it considers the control points<br>
+ to be part of the curve, which they are not, and with some curves<br>
+ they can lie a long way from the actual path, as in this case.<br>
+<br>
+ This commit simply forces the code through the scan-converter in order<br>
+ to get an accurate result, the same as the stroked code.<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gdevbbox.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-19 16:24: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=79a594c9bd95239ee975e930563e7fb567018372">79a594c9bd95239ee975e930563e7fb567018372</a>
+<blockquote>
+<p>
+ Fix SEGV seen with new scan converter.<br>
+<br>
+ The following command:<br>
+<br>
+ gs -sOutputFile=out.ppm -dMaxBitmap=400000000 -sDEVICE=ppmraw -r300<br>
+ -Z: -sDEFAULTPAPERSIZE=letter -dNOPAUSE -dBATCH -K2000000 -dClusterJob<br>
+ -dJOBSERVER -dSCANCONVERTERTYPE=2 %rom%Resource/Init/gs_cet.ps ~/11-11.PS<br>
+<br>
+ was failing, due to a problem in the scan conversion code with<br>
+ extreme paths.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-17 10:33:18 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2d46dd9e83edc813f2047a89cd260ab4de48fdf4">2d46dd9e83edc813f2047a89cd260ab4de48fdf4</a>
+<blockquote>
+<p>
+ More heuristic fixes from ToUnicode CMap changes<br>
+<br>
+ Bug #697436 &quot;Chinese character can not be copied out correctly&quot;<br>
+<br>
+ The changes in commit 9dba57f0f9a53c130ec2771c0ed1d7bd6bbef6ab to<br>
+ properly handle ToUnicde CMaps had rippling effects throughout the<br>
+ code wherever ToUnicode CMaps are read or generated. In this case the<br>
+ code which turned glyph names of the form uniXXXX into Unicode code<br>
+ point XXXX (in the absence of a GlyphNames2Unicode table) was not<br>
+ updated correctly.<br>
+<br>
+ This commit changes the allocation from two shorts to a single unsigned<br>
+ short, and fill sin the data from the glyph name in big-endian format<br>
+ (as required throughout the ToUnicode code now), which results in<br>
+ the correct ToUnicode CMap being generated.<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-13 09:20:45 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=00dfdefe5d38871c0c67b08ede10a208b6897d10">00dfdefe5d38871c0c67b08ede10a208b6897d10</a>
+<blockquote>
+<p>
+ Bug 693307 Overprint issues<br>
+<br>
+ Remove the portions of code used to simulate<br>
+ the overprinting of CMYK and spot colorants while<br>
+ in an RGB device. This really can't work and<br>
+ we are doing a real separation compositor device for<br>
+ this process. The code parts removed only confuse<br>
+ understanding of the overprint compositor. Also fix<br>
+ problems related to Bug 693307 which were caused by<br>
+ some confusion in the code with regard to the overprint<br>
+ mode. Fix other issues related to the Ghent overprint<br>
+ tests where we were not handling properly the case<br>
+ of overprinting with a gray color when the output<br>
+ device was CMYK based. Finally there were multiple<br>
+ issues with the testing and setting of the overprint<br>
+ settings and the use of the effective overprint mode<br>
+<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gscdevn.c<br>
+base/gscolor.c<br>
+base/gscsepr.c<br>
+base/gscspace.c<br>
+base/gsicc.c<br>
+base/gsovrc.c<br>
+base/gsovrc.h<br>
+base/gstrans.h<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+base/gxcmap.c<br>
+base/gxcspace.h<br>
+base/gxdevcli.h<br>
+base/gxoprect.c<br>
+base/gxoprect.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-15 13:56:43 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=46de0c56a0132356084b320a9f7e4d2ac1396c1c">46de0c56a0132356084b320a9f7e4d2ac1396c1c</a>
+<blockquote>
+<p>
+ Bug 697435 add blending color space<br>
+<br>
+ This adds the ability to specify the default (based) blending<br>
+ color space for a target device when we have transparency blending.<br>
+ -sBlendColorProfile=&quot;my_profile.icc&quot; is used for the specification.<br>
+ Only Gray, RGB, or CMYK ICC profiles are allowed. Also, separation<br>
+ devices (e.g. tiffsep and psdcmyk) will not support the use of this<br>
+ at this time. Note also that if a target device has a put_image<br>
+ procedure where it did its own blending or tag processing, this command<br>
+ proc is not called if the blending color space is specified as the final color<br>
+ conversion is applied through begin_typed_image.<br>
+<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gscms.h<br>
+base/gsdparam.c<br>
+base/gsequivc.c<br>
+base/gsicc_manage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-14 15:56:31 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=73060a27e554f8e64ae2aba4a1b03822207346c7">73060a27e554f8e64ae2aba4a1b03822207346c7</a>
+<blockquote>
+<p>
+ Fix warnings: remove unsigned &lt; 0 tests that are always false.<br>
+<br>
+jbig2dec/jbig2_image.c<br>
+jbig2dec/jbig2_mmr.c<br>
+jbig2dec/jbig2_symbol_dict.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-12 17:47: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=cecf6b592945d247bf932f6a4f50065db4acfba8">cecf6b592945d247bf932f6a4f50065db4acfba8</a>
+<blockquote>
+<p>
+ Squash signed/unsigned warnings in MSVC jbig2 build.<br>
+<br>
+ Also rename &quot;new&quot; to &quot;new_dict&quot;, because &quot;new&quot; is a bad<br>
+ variable name.<br>
+<br>
+jbig2dec/jbig2.c<br>
+jbig2dec/jbig2.h<br>
+jbig2dec/jbig2_generic.c<br>
+jbig2dec/jbig2_halftone.c<br>
+jbig2dec/jbig2_huffman.c<br>
+jbig2dec/jbig2_huffman.h<br>
+jbig2dec/jbig2_image.c<br>
+jbig2dec/jbig2_mmr.c<br>
+jbig2dec/jbig2_page.c<br>
+jbig2dec/jbig2_priv.h<br>
+jbig2dec/jbig2_segment.c<br>
+jbig2dec/jbig2_symbol_dict.c<br>
+jbig2dec/jbig2_symbol_dict.h<br>
+jbig2dec/jbig2_text.c<br>
+jbig2dec/jbig2_text.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-12 08:31:34 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0efaa8dff5b82169313a086861597e0f455892d3">0efaa8dff5b82169313a086861597e0f455892d3</a>
+<blockquote>
+<p>
+ Bug 697350. Fix isolated knockout group rendering<br>
+<br>
+ The blending code in the knockout isolate case had issues<br>
+ and the only difference compared to the non-isolated case<br>
+ is that we don't need to do the blend with the backdrop.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-12 17:53: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=15d9aaac64334776284310f5cbfe8ae79edae540">15d9aaac64334776284310f5cbfe8ae79edae540</a>
+<blockquote>
+<p>
+ Squash annoying MSVC warning.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-09 19:29: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=f5ac81f27674c54540c6313ed31b027f1385ceb5">f5ac81f27674c54540c6313ed31b027f1385ceb5</a>
+<blockquote>
+<p>
+ Add ETS to Downscaler.<br>
+<br>
+ Currently only hooked up for tiffscaled and tiffscaled4.<br>
+<br>
+ Enable using -dDownScaleETS=1 along with the usual other downscaler<br>
+ hooks.<br>
+<br>
+ No control over all the myriad ETS flags as yet.<br>
+<br>
+base/ets.c<br>
+base/ets.h<br>
+base/ets_tm.h<br>
+base/gxdownscale.c<br>
+base/gxdownscale.h<br>
+base/lib.mak<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-12-09 12:33:41 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd50b33582901eda25fce78a40552de91db3c8e5">dd50b33582901eda25fce78a40552de91db3c8e5</a>
+<blockquote>
+<p>
+ Use normal blend mode for spots when mode is non-white preserving<br>
+<br>
+ When we are doing the group compositing, make sure to catch the<br>
+ cases where we have spot colorants and the blend modes is either<br>
+ non-separable or non-white preserving. In those cases, the spot<br>
+ colorants have to use the normal blend mode.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-09 10:43: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=8894abf2985a58900e778957f93151b6cec1c17a">8894abf2985a58900e778957f93151b6cec1c17a</a>
+<blockquote>
+<p>
+ Address a segfault and error introduced in 4b3be09<br>
+<br>
+ In the zbegintransparencymaskgroup with a '/None' SMask parameter with the clist<br>
+ in use, we get to clist_create_compositor().<br>
+<br>
+ In there, the return value of the get_cropping method can be either an error<br>
+ (negative) or a specific cropping operation (positive). We assign it to 'code',<br>
+ and if it's an error, return it, if not, assign it to another variable. But<br>
+ don't set 'code' to anything else. It is then possible to get to the end of the<br>
+ function without going through the path where 'code' is used again.<br>
+<br>
+ Setting 'code' to 0 after storing the cropping op solves the problem.<br>
+<br>
+base/gxclimag.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-08 18:09:58 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b3be091fa0384e679baaf04b14ea195da5adf21">4b3be091fa0384e679baaf04b14ea195da5adf21</a>
+<blockquote>
+<p>
+ Bug 697415: 'clean up' after images with SMask entries<br>
+<br>
+ Our handling of images with SMasks depends on telling the transparency<br>
+ compositor to expect an SMask image, draw the SMask as a regular image,<br>
+ tell the compositor the SMask is done, and then draw the 'main' image (to<br>
+ which the compositor will apply the SMask).<br>
+<br>
+ The problem was that the compositor treats SMasks from images and SMasks from<br>
+ ExtGState as the same (which they really are), but the image drawing code<br>
+ took no action to inform the compositor we were done with the SMask, thus<br>
+ leaving it place.<br>
+<br>
+ By adding a call to &quot;unset&quot; the SMask from the current graphics state (in this<br>
+ case, it's really the current group in the compositor), we ensure the SMask<br>
+ is only applied to the current image).<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-05 18:30: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=c875bf7490447579e850fa4722874848c3be4657">c875bf7490447579e850fa4722874848c3be4657</a>
+<blockquote>
+<p>
+ PDF Interpreter - more indirect object foolishness<br>
+<br>
+ Bug #697402 &quot;PDF rendered as blank in PDF with unusual font width array&quot;<br>
+<br>
+ Not ony the /Widths array of one of the fonts, but also an entry in a<br>
+ /W array for a CIDFont specify a value using an indirect object<br>
+ reference.<br>
+<br>
+ While this is silly (it makes the PDF file larger and slower) it is legal<br>
+ so this commit copes with it by dereferencing any indirect references.<br>
+<br>
+ We alos now handle W2 arrays with references, even though this file<br>
+ doesn't use one.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-03 06:40:17 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e16bd592aaccde9b384415a87d8a9bef9c57f83">0e16bd592aaccde9b384415a87d8a9bef9c57f83</a>
+<blockquote>
+<p>
+ Fix debug output for pattern bitmaps<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-03 12:25: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=cc746214644deacd5233a1453ce660573af09443">cc746214644deacd5233a1453ce660573af09443</a>
+<blockquote>
+<p>
+ txtwrite - sort out endian-ness of Unicode based on architecture<br>
+<br>
+ Bug #697339 &quot;Device txtwrite seems to be broken&quot;<br>
+<br>
+ decode_glyph sppears always to return big-endian shorts for Unicode<br>
+ code points. On litlee-endian platforms, reverse the byte order so<br>
+ that we can treat the data as shorts instead of bytes.<br>
+<br>
+ As I don't have a big endian device to test this on, further work may<br>
+ be required.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-02 09:00:20 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d05c99ba9f3c1539a5b02a96ed050422677d9704">d05c99ba9f3c1539a5b02a96ed050422677d9704</a>
+<blockquote>
+<p>
+ Remove MarginsHWResolution non-standard device parameter<br>
+<br>
+base/gdevp14.c<br>
+base/gscoord.c<br>
+base/gsdevice.c<br>
+base/gsdevmem.c<br>
+base/gsdparam.c<br>
+base/gspath.c<br>
+base/gxclist.c<br>
+base/gxdevcli.h<br>
+base/gxdevice.h<br>
+devices/gdevbit.c<br>
+devices/gdevupd.c<br>
+devices/gdevxalt.c<br>
+devices/gdevxini.c<br>
+lib/align.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-02 19:03:42 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b880332b899e0e59d17c7e48033e5cc816e5a831">b880332b899e0e59d17c7e48033e5cc816e5a831</a>
+<blockquote>
+<p>
+ pdfwrite - adjust Mono Subsample resolution to integer<br>
+<br>
+ Bug #697351 &quot;/Subsample filter needs to make non-integer scales integer for monochrome images&quot;<br>
+<br>
+ The only downsampling filter available for monochrome images and<br>
+ imagemasks (1 bpp images and masks) is the /Subsample filter. However<br>
+ the Subsample filter only works when the downsampling factor is an<br>
+ exact integer.<br>
+<br>
+ Its unreasonable to insist that all the monochrome images in a given<br>
+ document can be downsampled to a specific resolution and that the downsample<br>
+ factor for all those images will be an integer.<br>
+<br>
+ So here, if the image is monochrome (so we canot switch to the Bicubic<br>
+ filter) and the factor is not an integer, we force the factor to the<br>
+ nearest integer.<br>
+<br>
+ Also, update the documentation which incorrectly stated that when<br>
+ /PDFSETTINGS was set to 'prepress', monochrome images used the Bicubic<br>
+ filter, it actually uses the Subsample filter.<br>
+<br>
+devices/vector/gdevpsdi.c<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-02 17:13:35 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=26acbbb980a44d9610080876afeef5bb834d21e3">26acbbb980a44d9610080876afeef5bb834d21e3</a>
+<blockquote>
+<p>
+ Documentation - Document the fact that setpagedevice resets distiller params<br>
+<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-02 16:33:25 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=336c69b8be32c7193909a7f25b1a073b0ac2d92f">336c69b8be32c7193909a7f25b1a073b0ac2d92f</a>
+<blockquote>
+<p>
+ PDF Interpreter - have warning messages respect QUIET<br>
+<br>
+ Bug #697394 &quot;stderr is included with stdout when result is set to stdout&quot;<br>
+<br>
+ We do want the warnings to go to stdout, for debugging purposes,<br>
+ because it is easier to use -dPDFDEBUG if the warnings are interleaved.<br>
+<br>
+ For the benefit of user piping the output to stdout, have the warning<br>
+ messages respect -dQUIET so they don't end up in the output file.<br>
+<br>
+ Error messages (which are directed to stderr anyway) are not suppressed<br>
+ as these are important.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-24 12:26:17 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a8d6c4074ee8cfc251ebdd44ce4d2f97cdf20517">a8d6c4074ee8cfc251ebdd44ce4d2f97cdf20517</a>
+<blockquote>
+<p>
+ Revert commit 3cde6d6d, require %d OutputFile spec for multi-page tiffsep<br>
+<br>
+ The previous commit allowed multi-page separation files, but this would only<br>
+ work if all pages had the same spot colors. If a later page added a spot color<br>
+ it would be appended to the set of spot colors, but then the separation layer<br>
+ would be emitted with the previous spot color name (according to the order)<br>
+ and the CMYK equivalent for that previous spot color would be used to make the<br>
+ CMYK composite.<br>
+<br>
+ Now multi-page tiffsep requires the use of %d (or some other format that uses<br>
+ the page number in the filename). The first page can be output without %d, and<br>
+ the second page will issue an error message and quit with ioerror.<br>
+<br>
+ In theory we could wait to issue the error until we encounter a spot color order<br>
+ that was not the same as the first page, but this is of little utility, and<br>
+ this change makes tiffsep operate similarly to the psdcmyk device.<br>
+<br>
+devices/gdevtsep.c<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-24 09:56: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=f42898997f249062f5da8fcf9c3a46cd6443fb39">f42898997f249062f5da8fcf9c3a46cd6443fb39</a>
+<blockquote>
+<p>
+ PDF interpreter - skip 'R' operator in invalid context<br>
+<br>
+ Bug #697365 &quot;corrupted content stream causes error&quot;<br>
+<br>
+ The file has 2 Form XObject whose content streams have a single garbage<br>
+ byte at the end of the stream, and which forms part of the 'endstream'.<br>
+<br>
+ In one case this simply leads to garbage on the stack, which we deal with<br>
+ already, but in the other case the garbage happens to be a 'R character<br>
+ which we attempt to process as a token.<br>
+<br>
+ Now attempting to process an R operator fails in this case, because the<br>
+ stack contents are not a pair of integers. However, in the process, it<br>
+ removes two stack objects which we require for further processing.<br>
+<br>
+ There's no way to restore those to the operand stack, and there is no<br>
+ way to not process the 'R' as a token. We also cannot temporarily<br>
+ define 'R' as a no-op for the course of a stream, because if the<br>
+ stream uses named objects which have not already been dereferenced<br>
+ we need to execute the R operator to resolve them.<br>
+<br>
+ This commit modifies the definition of R so that it checks the type<br>
+ of the expected operands before consuming them. If they are not both<br>
+ integers then it flags an error, leaves the stack alone and exits.<br>
+<br>
+ THis will, of course, be slightly slower than the current approach<br>
+ which doesn't check types, but it should only be executed once<br>
+ for each object in the file. Even for a large file that should only<br>
+ be a few tens of thousands, and this is likely to be lost among<br>
+ the processing time for real operations. However, shuold this<br>
+ causew significant performance problems we may remove this in the<br>
+ future.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-23 09:26:16 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b7ea690782c306241ed94fa3bdaf296f6bcc455f">b7ea690782c306241ed94fa3bdaf296f6bcc455f</a>
+<blockquote>
+<p>
+ Bug 697366<br>
+<br>
+ Partial fix. Pattern now renders correctly. Issues<br>
+ with a few other spots though.<br>
+<br>
+base/gdevdsha.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-23 06:58:19 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2237813596c8703de6008dd6c05460f9dac3ed75">2237813596c8703de6008dd6c05460f9dac3ed75</a>
+<blockquote>
+<p>
+ Fix segv due to improper depth computation<br>
+<br>
+ Commit<br>
+ 47294ff5b168d25bfc7db64f51572d64b8ebde91<br>
+ had an issue that was found when running<br>
+ eci_altona-test-suite-v2_technical2_x4.pdf<br>
+ (the Altona file with ALL the pages on one page)<br>
+ with tiffsep and psdcmyk. This fixes the segv.<br>
+ A rending issue remains on this issue.<br>
+ Bug http://bugs.ghostscript.com/show_bug.cgi?id=697366<br>
+ was opened to address.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-21 10:03: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=5b87f18df814aaa9f0036c843a4b24b1638aa4cf">5b87f18df814aaa9f0036c843a4b24b1638aa4cf</a>
+<blockquote>
+<p>
+ libtiff: update to 4.0.7<br>
+<br>
+ Add in portability changes to tiffiop.h<br>
+<br>
+ Portability tiffiop.h<br>
+<br>
+ Remove globals from tif_pixarlog.c<br>
+<br>
+tiff/CMakeLists.txt<br>
+tiff/ChangeLog<br>
+tiff/HOWTO-RELEASE<br>
+tiff/Makefile.am<br>
+tiff/Makefile.in<br>
+tiff/RELEASE-DATE<br>
+tiff/VERSION<br>
+tiff/aclocal.m4<br>
+tiff/build/CMakeLists.txt<br>
+tiff/build/Makefile.am<br>
+tiff/build/Makefile.in<br>
+tiff/config/compile<br>
+tiff/config/depcomp<br>
+tiff/config/ltmain.sh<br>
+tiff/config/missing<br>
+tiff/config/test-driver<br>
+tiff/configure<br>
+tiff/configure.ac<br>
+tiff/configure.com<br>
+tiff/contrib/CMakeLists.txt<br>
+tiff/contrib/Makefile.am<br>
+tiff/contrib/Makefile.in<br>
+tiff/contrib/addtiffo/CMakeLists.txt<br>
+tiff/contrib/addtiffo/Makefile.am<br>
+tiff/contrib/addtiffo/Makefile.in<br>
+tiff/contrib/addtiffo/addtiffo.c<br>
+tiff/contrib/addtiffo/tif_overview.c<br>
+tiff/contrib/addtiffo/tif_ovrcache.c<br>
+tiff/contrib/dbs/CMakeLists.txt<br>
+tiff/contrib/dbs/Makefile.am<br>
+tiff/contrib/dbs/Makefile.in<br>
+tiff/contrib/dbs/xtiff/CMakeLists.txt<br>
+tiff/contrib/dbs/xtiff/Makefile.am<br>
+tiff/contrib/dbs/xtiff/Makefile.in<br>
+tiff/contrib/dbs/xtiff/xtiff.c<br>
+tiff/contrib/iptcutil/CMakeLists.txt<br>
+tiff/contrib/iptcutil/Makefile.am<br>
+tiff/contrib/iptcutil/Makefile.in<br>
+tiff/contrib/iptcutil/iptcutil.c<br>
+tiff/contrib/mfs/CMakeLists.txt<br>
+tiff/contrib/mfs/Makefile.am<br>
+tiff/contrib/mfs/Makefile.in<br>
+tiff/contrib/pds/CMakeLists.txt<br>
+tiff/contrib/pds/Makefile.am<br>
+tiff/contrib/pds/Makefile.in<br>
+tiff/contrib/ras/CMakeLists.txt<br>
+tiff/contrib/ras/Makefile.am<br>
+tiff/contrib/ras/Makefile.in<br>
+tiff/contrib/stream/CMakeLists.txt<br>
+tiff/contrib/stream/Makefile.am<br>
+tiff/contrib/stream/Makefile.in<br>
+tiff/contrib/tags/CMakeLists.txt<br>
+tiff/contrib/tags/Makefile.am<br>
+tiff/contrib/tags/Makefile.in<br>
+tiff/contrib/win_dib/CMakeLists.txt<br>
+tiff/contrib/win_dib/Makefile.am<br>
+tiff/contrib/win_dib/Makefile.in<br>
+tiff/html/CMakeLists.txt<br>
+tiff/html/Makefile.am<br>
+tiff/html/Makefile.in<br>
+tiff/html/addingtags.html<br>
+tiff/html/bugs.html<br>
+tiff/html/build.html<br>
+tiff/html/contrib.html<br>
+tiff/html/document.html<br>
+tiff/html/images.html<br>
+tiff/html/images/CMakeLists.txt<br>
+tiff/html/images/Makefile.am<br>
+tiff/html/images/Makefile.in<br>
+tiff/html/index.html<br>
+tiff/html/internals.html<br>
+tiff/html/intro.html<br>
+tiff/html/libtiff.html<br>
+tiff/html/man/CMakeLists.txt<br>
+tiff/html/man/HtmlDoc.cmake<br>
+tiff/html/man/Makefile.am<br>
+tiff/html/man/Makefile.in<br>
+tiff/html/man/TIFFClose.3tiff.html<br>
+tiff/html/man/TIFFDataWidth.3tiff.html<br>
+tiff/html/man/TIFFError.3tiff.html<br>
+tiff/html/man/TIFFFieldDataType.3tiff.html<br>
+tiff/html/man/TIFFFieldName.3tiff.html<br>
+tiff/html/man/TIFFFieldPassCount.3tiff.html<br>
+tiff/html/man/TIFFFieldReadCount.3tiff.html<br>
+tiff/html/man/TIFFFieldTag.3tiff.html<br>
+tiff/html/man/TIFFFieldWriteCount.3tiff.html<br>
+tiff/html/man/TIFFFlush.3tiff.html<br>
+tiff/html/man/TIFFGetField.3tiff.html<br>
+tiff/html/man/TIFFRGBAImage.3tiff.html<br>
+tiff/html/man/TIFFReadDirectory.3tiff.html<br>
+tiff/html/man/TIFFReadEncodedStrip.3tiff.html<br>
+tiff/html/man/TIFFReadEncodedTile.3tiff.html<br>
+tiff/html/man/TIFFReadRGBAImage.3tiff.html<br>
+tiff/html/man/TIFFReadRGBAStrip.3tiff.html<br>
+tiff/html/man/TIFFReadRGBATile.3tiff.html<br>
+tiff/html/man/TIFFReadRawStrip.3tiff.html<br>
+tiff/html/man/TIFFReadRawTile.3tiff.html<br>
+tiff/html/man/TIFFReadScanline.3tiff.html<br>
+tiff/html/man/TIFFReadTile.3tiff.html<br>
+tiff/html/man/TIFFSetDirectory.3tiff.html<br>
+tiff/html/man/TIFFSetField.3tiff.html<br>
+tiff/html/man/TIFFWarning.3tiff.html<br>
+tiff/html/man/TIFFWriteDirectory.3tiff.html<br>
+tiff/html/man/TIFFWriteEncodedStrip.3tiff.html<br>
+tiff/html/man/TIFFWriteEncodedTile.3tiff.html<br>
+tiff/html/man/TIFFWriteRawStrip.3tiff.html<br>
+tiff/html/man/TIFFWriteRawTile.3tiff.html<br>
+tiff/html/man/TIFFWriteScanline.3tiff.html<br>
+tiff/html/man/TIFFWriteTile.3tiff.html<br>
+tiff/html/man/TIFFbuffer.3tiff.html<br>
+tiff/html/man/TIFFcodec.3tiff.html<br>
+tiff/html/man/TIFFcolor.3tiff.html<br>
+tiff/html/man/TIFFmemory.3tiff.html<br>
+tiff/html/man/TIFFsize.3tiff.html<br>
+tiff/html/man/TIFFstrip.3tiff.html<br>
+tiff/html/man/TIFFswab.3tiff.html<br>
+tiff/html/man/TIFFtile.3tiff.html<br>
+tiff/html/man/fax2ps.1.html<br>
+tiff/html/man/fax2tiff.1.html<br>
+tiff/html/man/gif2tiff.1.html<br>
+tiff/html/man/index.html<br>
+tiff/html/man/pal2rgb.1.html<br>
+tiff/html/man/ppm2tiff.1.html<br>
+tiff/html/man/ras2tiff.1.html<br>
+tiff/html/man/raw2tiff.1.html<br>
+tiff/html/man/rgb2ycbcr.1.html<br>
+tiff/html/man/sgi2tiff.1.html<br>
+tiff/html/man/thumbnail.1.html<br>
+tiff/html/man/tiff2bw.1.html<br>
+tiff/html/man/tiff2pdf.1.html<br>
+tiff/html/man/tiff2ps.1.html<br>
+tiff/html/man/tiff2rgba.1.html<br>
+tiff/html/man/tiffcmp.1.html<br>
+tiff/html/man/tiffcp.1.html<br>
+tiff/html/man/tiffcrop.1.html<br>
+tiff/html/man/tiffdither.1.html<br>
+tiff/html/man/tiffdump.1.html<br>
+tiff/html/man/tiffgt.1.html<br>
+tiff/html/man/tiffinfo.1.html<br>
+tiff/html/man/tiffmedian.1.html<br>
+tiff/html/man/tiffset.1.html<br>
+tiff/html/man/tiffsplit.1.html<br>
+tiff/html/man/tiffsv.1.html<br>
+tiff/html/misc.html<br>
+tiff/html/support.html<br>
+tiff/html/tools.html<br>
+tiff/html/v3.4beta007.html<br>
+tiff/html/v3.4beta016.html<br>
+tiff/html/v3.4beta018.html<br>
+tiff/html/v3.4beta024.html<br>
+tiff/html/v3.4beta028.html<br>
+tiff/html/v3.4beta029.html<br>
+tiff/html/v3.4beta031.html<br>
+tiff/html/v3.4beta032.html<br>
+tiff/html/v3.4beta033.html<br>
+tiff/html/v3.4beta034.html<br>
+tiff/html/v3.4beta035.html<br>
+tiff/html/v3.4beta036.html<br>
+tiff/html/v3.5.1.html<br>
+tiff/html/v3.5.2.html<br>
+tiff/html/v3.5.3.html<br>
+tiff/html/v3.5.4.html<br>
+tiff/html/v3.5.5.html<br>
+tiff/html/v3.5.6-beta.html<br>
+tiff/html/v3.5.7.html<br>
+tiff/html/v3.6.0.html<br>
+tiff/html/v3.6.1.html<br>
+tiff/html/v3.7.0.html<br>
+tiff/html/v3.7.0alpha.html<br>
+tiff/html/v3.7.0beta.html<br>
+tiff/html/v3.7.0beta2.html<br>
+tiff/html/v3.7.1.html<br>
+tiff/html/v3.7.2.html<br>
+tiff/html/v3.7.3.html<br>
+tiff/html/v3.7.4.html<br>
+tiff/html/v3.8.0.html<br>
+tiff/html/v3.8.1.html<br>
+tiff/html/v3.8.2.html<br>
+tiff/html/v3.9.0beta.html<br>
+tiff/html/v3.9.1.html<br>
+tiff/html/v3.9.2.html<br>
+tiff/html/v4.0.0.html<br>
+tiff/html/v4.0.1.html<br>
+tiff/html/v4.0.2.html<br>
+tiff/html/v4.0.3.html<br>
+tiff/html/v4.0.4.html<br>
+tiff/html/v4.0.4beta.html<br>
+tiff/html/v4.0.5.html<br>
+tiff/html/v4.0.6.html<br>
+tiff/html/v4.0.7.html<br>
+tiff/libtiff/CMakeLists.txt<br>
+tiff/libtiff/Makefile.am<br>
+tiff/libtiff/Makefile.in<br>
+tiff/libtiff/Makefile.vc<br>
+tiff/libtiff/libtiff.def<br>
+tiff/libtiff/mkg3states.c<br>
+tiff/libtiff/tif_aux.c<br>
+tiff/libtiff/tif_close.c<br>
+tiff/libtiff/tif_codec.c<br>
+tiff/libtiff/tif_color.c<br>
+tiff/libtiff/tif_compress.c<br>
+tiff/libtiff/tif_config.h.cmake.in<br>
+tiff/libtiff/tif_config.h.in<br>
+tiff/libtiff/tif_config.vc.h<br>
+tiff/libtiff/tif_dir.c<br>
+tiff/libtiff/tif_dirinfo.c<br>
+tiff/libtiff/tif_dirread.c<br>
+tiff/libtiff/tif_dirwrite.c<br>
+tiff/libtiff/tif_dumpmode.c<br>
+tiff/libtiff/tif_extension.c<br>
+tiff/libtiff/tif_fax3.c<br>
+tiff/libtiff/tif_fax3.h<br>
+tiff/libtiff/tif_getimage.c<br>
+tiff/libtiff/tif_jpeg.c<br>
+tiff/libtiff/tif_jpeg_12.c<br>
+tiff/libtiff/tif_luv.c<br>
+tiff/libtiff/tif_lzma.c<br>
+tiff/libtiff/tif_lzw.c<br>
+tiff/libtiff/tif_next.c<br>
+tiff/libtiff/tif_ojpeg.c<br>
+tiff/libtiff/tif_open.c<br>
+tiff/libtiff/tif_packbits.c<br>
+tiff/libtiff/tif_pixarlog.c<br>
+tiff/libtiff/tif_predict.c<br>
+tiff/libtiff/tif_predict.h<br>
+tiff/libtiff/tif_print.c<br>
+tiff/libtiff/tif_read.c<br>
+tiff/libtiff/tif_stream.cxx<br>
+tiff/libtiff/tif_strip.c<br>
+tiff/libtiff/tif_swab.c<br>
+tiff/libtiff/tif_thunder.c<br>
+tiff/libtiff/tif_tile.c<br>
+tiff/libtiff/tif_unix.c<br>
+tiff/libtiff/tif_win32.c<br>
+tiff/libtiff/tif_write.c<br>
+tiff/libtiff/tif_zip.c<br>
+tiff/libtiff/tiff.h<br>
+tiff/libtiff/tiffconf.h.cmake.in<br>
+tiff/libtiff/tiffconf.vc.h<br>
+tiff/libtiff/tiffio.h<br>
+tiff/libtiff/tiffiop.h<br>
+tiff/libtiff/tiffvers.h<br>
+tiff/libtiff/uvcode.h<br>
+tiff/man/CMakeLists.txt<br>
+tiff/man/Makefile.am<br>
+tiff/man/Makefile.in<br>
+tiff/man/TIFFClose.3tiff<br>
+tiff/man/TIFFDataWidth.3tiff<br>
+tiff/man/TIFFError.3tiff<br>
+tiff/man/TIFFFieldDataType.3tiff<br>
+tiff/man/TIFFFieldName.3tiff<br>
+tiff/man/TIFFFieldPassCount.3tiff<br>
+tiff/man/TIFFFieldReadCount.3tiff<br>
+tiff/man/TIFFFieldTag.3tiff<br>
+tiff/man/TIFFFieldWriteCount.3tiff<br>
+tiff/man/TIFFFlush.3tiff<br>
+tiff/man/TIFFGetField.3tiff<br>
+tiff/man/TIFFRGBAImage.3tiff<br>
+tiff/man/TIFFReadDirectory.3tiff<br>
+tiff/man/TIFFReadEncodedStrip.3tiff<br>
+tiff/man/TIFFReadEncodedTile.3tiff<br>
+tiff/man/TIFFReadRGBAImage.3tiff<br>
+tiff/man/TIFFReadRGBAStrip.3tiff<br>
+tiff/man/TIFFReadRGBATile.3tiff<br>
+tiff/man/TIFFReadRawStrip.3tiff<br>
+tiff/man/TIFFReadRawTile.3tiff<br>
+tiff/man/TIFFReadScanline.3tiff<br>
+tiff/man/TIFFReadTile.3tiff<br>
+tiff/man/TIFFSetDirectory.3tiff<br>
+tiff/man/TIFFSetField.3tiff<br>
+tiff/man/TIFFWarning.3tiff<br>
+tiff/man/TIFFWriteDirectory.3tiff<br>
+tiff/man/TIFFWriteEncodedStrip.3tiff<br>
+tiff/man/TIFFWriteEncodedTile.3tiff<br>
+tiff/man/TIFFWriteRawStrip.3tiff<br>
+tiff/man/TIFFWriteRawTile.3tiff<br>
+tiff/man/TIFFWriteScanline.3tiff<br>
+tiff/man/TIFFWriteTile.3tiff<br>
+tiff/man/TIFFbuffer.3tiff<br>
+tiff/man/TIFFcodec.3tiff<br>
+tiff/man/TIFFcolor.3tiff<br>
+tiff/man/TIFFmemory.3tiff<br>
+tiff/man/TIFFsize.3tiff<br>
+tiff/man/TIFFstrip.3tiff<br>
+tiff/man/TIFFswab.3tiff<br>
+tiff/man/TIFFtile.3tiff<br>
+tiff/man/bmp2tiff.1<br>
+tiff/man/fax2ps.1<br>
+tiff/man/fax2tiff.1<br>
+tiff/man/gif2tiff.1<br>
+tiff/man/libtiff.3tiff<br>
+tiff/man/pal2rgb.1<br>
+tiff/man/ppm2tiff.1<br>
+tiff/man/ras2tiff.1<br>
+tiff/man/raw2tiff.1<br>
+tiff/man/rgb2ycbcr.1<br>
+tiff/man/sgi2tiff.1<br>
+tiff/man/thumbnail.1<br>
+tiff/man/tiff2bw.1<br>
+tiff/man/tiff2pdf.1<br>
+tiff/man/tiff2ps.1<br>
+tiff/man/tiff2rgba.1<br>
+tiff/man/tiffcmp.1<br>
+tiff/man/tiffcp.1<br>
+tiff/man/tiffcrop.1<br>
+tiff/man/tiffdither.1<br>
+tiff/man/tiffdump.1<br>
+tiff/man/tiffgt.1<br>
+tiff/man/tiffinfo.1<br>
+tiff/man/tiffmedian.1<br>
+tiff/man/tiffset.1<br>
+tiff/man/tiffsplit.1<br>
+tiff/man/tiffsv.1<br>
+tiff/nmake.opt<br>
+tiff/port/CMakeLists.txt<br>
+tiff/port/Makefile.am<br>
+tiff/port/Makefile.in<br>
+tiff/port/Makefile.vc<br>
+tiff/port/libport.h<br>
+tiff/port/snprintf.c<br>
+tiff/port/strcasecmp.c<br>
+tiff/test/CMakeLists.txt<br>
+tiff/test/Makefile.am<br>
+tiff/test/Makefile.in<br>
+tiff/test/TiffSplitTest.cmake<br>
+tiff/test/TiffTest.cmake<br>
+tiff/test/TiffTestCommon.cmake<br>
+tiff/test/ascii_tag.c<br>
+tiff/test/bmp2tiff_palette.sh<br>
+tiff/test/bmp2tiff_rgb.sh<br>
+tiff/test/common.sh<br>
+tiff/test/custom_dir.c<br>
+tiff/test/gif2tiff.sh<br>
+tiff/test/images/palette-1c-8b.bmp<br>
+tiff/test/images/palette-1c-8b.gif<br>
+tiff/test/images/quad-tile.jpg.tiff<br>
+tiff/test/images/rgb-3c-8b.bmp<br>
+tiff/test/long_tag.c<br>
+tiff/test/raw_decode.c<br>
+tiff/test/rewrite_tag.c<br>
+tiff/test/short_tag.c<br>
+tiff/test/strip.c<br>
+tiff/test/tiff2rgba-quad-tile.jpg.sh<br>
+tiff/tools/CMakeLists.txt<br>
+tiff/tools/Makefile.am<br>
+tiff/tools/Makefile.in<br>
+tiff/tools/Makefile.vc<br>
+tiff/tools/bmp2tiff.c<br>
+tiff/tools/fax2ps.c<br>
+tiff/tools/fax2tiff.c<br>
+tiff/tools/gif2tiff.c<br>
+tiff/tools/pal2rgb.c<br>
+tiff/tools/ppm2tiff.c<br>
+tiff/tools/ras2tiff.c<br>
+tiff/tools/rasterfile.h<br>
+tiff/tools/raw2tiff.c<br>
+tiff/tools/rgb2ycbcr.c<br>
+tiff/tools/sgi2tiff.c<br>
+tiff/tools/sgisv.c<br>
+tiff/tools/thumbnail.c<br>
+tiff/tools/tiff2bw.c<br>
+tiff/tools/tiff2pdf.c<br>
+tiff/tools/tiff2ps.c<br>
+tiff/tools/tiff2rgba.c<br>
+tiff/tools/tiffcmp.c<br>
+tiff/tools/tiffcp.c<br>
+tiff/tools/tiffcrop.c<br>
+tiff/tools/tiffdither.c<br>
+tiff/tools/tiffdump.c<br>
+tiff/tools/tiffgt.c<br>
+tiff/tools/tiffinfo.c<br>
+tiff/tools/tiffmedian.c<br>
+tiff/tools/tiffset.c<br>
+tiff/tools/tiffsplit.c<br>
+tiff/tools/ycbcr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-08 09:50: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=6655712ee1d0bf2a7818044613bbed226b7abddd">6655712ee1d0bf2a7818044613bbed226b7abddd</a>
+<blockquote>
+<p>
+ Update freetype to 2.7.0<br>
+<br>
+ Tweak makefile for new freetype version<br>
+<br>
+ Force use of the v35 Freetype bytecode interpreter<br>
+<br>
+base/fapi_ft.c<br>
+base/freetype.mak<br>
+freetype/CMakeLists.txt<br>
+freetype/ChangeLog<br>
+freetype/ChangeLog.20<br>
+freetype/ChangeLog.21<br>
+freetype/ChangeLog.22<br>
+freetype/ChangeLog.23<br>
+freetype/ChangeLog.24<br>
+freetype/ChangeLog.25<br>
+freetype/ChangeLog.26<br>
+freetype/Jamfile<br>
+freetype/Jamrules<br>
+freetype/Makefile<br>
+freetype/README<br>
+freetype/README.git<br>
+freetype/autogen.sh<br>
+freetype/builds/amiga/README<br>
+freetype/builds/amiga/include/config/ftconfig.h<br>
+freetype/builds/amiga/include/config/ftmodule.h<br>
+freetype/builds/amiga/makefile<br>
+freetype/builds/amiga/makefile.os4<br>
+freetype/builds/amiga/smakefile<br>
+freetype/builds/amiga/src/base/ftdebug.c<br>
+freetype/builds/amiga/src/base/ftsystem.c<br>
+freetype/builds/ansi/ansi-def.mk<br>
+freetype/builds/ansi/ansi.mk<br>
+freetype/builds/atari/ATARI.H<br>
+freetype/builds/atari/README.TXT<br>
+freetype/builds/beos/beos-def.mk<br>
+freetype/builds/beos/beos.mk<br>
+freetype/builds/beos/detect.mk<br>
+freetype/builds/cmake/FindHarfBuzz.cmake<br>
+freetype/builds/cmake/iOS.cmake<br>
+freetype/builds/cmake/testbuild.sh<br>
+freetype/builds/compiler/ansi-cc.mk<br>
+freetype/builds/compiler/bcc-dev.mk<br>
+freetype/builds/compiler/bcc.mk<br>
+freetype/builds/compiler/emx.mk<br>
+freetype/builds/compiler/gcc-dev.mk<br>
+freetype/builds/compiler/gcc.mk<br>
+freetype/builds/compiler/intelc.mk<br>
+freetype/builds/compiler/unix-lcc.mk<br>
+freetype/builds/compiler/visualage.mk<br>
+freetype/builds/compiler/visualc.mk<br>
+freetype/builds/compiler/watcom.mk<br>
+freetype/builds/compiler/win-lcc.mk<br>
+freetype/builds/detect.mk<br>
+freetype/builds/dos/detect.mk<br>
+freetype/builds/dos/dos-def.mk<br>
+freetype/builds/dos/dos-emx.mk<br>
+freetype/builds/dos/dos-gcc.mk<br>
+freetype/builds/dos/dos-wat.mk<br>
+freetype/builds/exports.mk<br>
+freetype/builds/freetype.mk<br>
+freetype/builds/link_dos.mk<br>
+freetype/builds/link_std.mk<br>
+freetype/builds/mac/FreeType.m68k_cfm.make.txt<br>
+freetype/builds/mac/FreeType.m68k_far.make.txt<br>
+freetype/builds/mac/FreeType.ppc_carbon.make.txt<br>
+freetype/builds/mac/FreeType.ppc_classic.make.txt<br>
+freetype/builds/mac/ftmac.c<br>
+freetype/builds/modules.mk<br>
+freetype/builds/os2/detect.mk<br>
+freetype/builds/os2/os2-def.mk<br>
+freetype/builds/os2/os2-dev.mk<br>
+freetype/builds/os2/os2-gcc.mk<br>
+freetype/builds/symbian/bld.inf<br>
+freetype/builds/symbian/freetype.mmp<br>
+freetype/builds/toplevel.mk<br>
+freetype/builds/unix/aclocal.m4<br>
+freetype/builds/unix/config.guess<br>
+freetype/builds/unix/config.sub<br>
+freetype/builds/unix/configure.ac<br>
+freetype/builds/unix/configure.raw<br>
+freetype/builds/unix/detect.mk<br>
+freetype/builds/unix/freetype-config.in<br>
+freetype/builds/unix/freetype2.in<br>
+freetype/builds/unix/freetype2.m4<br>
+freetype/builds/unix/ft-munmap.m4<br>
+freetype/builds/unix/ftconfig.in<br>
+freetype/builds/unix/ftsystem.c<br>
+freetype/builds/unix/install-sh<br>
+freetype/builds/unix/install.mk<br>
+freetype/builds/unix/ltmain.sh<br>
+freetype/builds/unix/mkinstalldirs<br>
+freetype/builds/unix/unix-cc.in<br>
+freetype/builds/unix/unix-def.in<br>
+freetype/builds/unix/unix-dev.mk<br>
+freetype/builds/unix/unix-lcc.mk<br>
+freetype/builds/unix/unix.mk<br>
+freetype/builds/unix/unixddef.mk<br>
+freetype/builds/vms/ftconfig.h<br>
+freetype/builds/vms/ftsystem.c<br>
+freetype/builds/wince/ftdebug.c<br>
+freetype/builds/wince/vc2005-ce/freetype.sln<br>
+freetype/builds/wince/vc2005-ce/freetype.vcproj<br>
+freetype/builds/wince/vc2005-ce/index.html<br>
+freetype/builds/wince/vc2008-ce/freetype.sln<br>
+freetype/builds/wince/vc2008-ce/freetype.vcproj<br>
+freetype/builds/wince/vc2008-ce/index.html<br>
+freetype/builds/windows/detect.mk<br>
+freetype/builds/windows/ftdebug.c<br>
+freetype/builds/windows/vc2005/freetype.vcproj<br>
+freetype/builds/windows/vc2005/index.html<br>
+freetype/builds/windows/vc2008/freetype.vcproj<br>
+freetype/builds/windows/vc2008/index.html<br>
+freetype/builds/windows/vc2010/freetype.sln<br>
+freetype/builds/windows/vc2010/freetype.vcxproj<br>
+freetype/builds/windows/vc2010/freetype.vcxproj.filters<br>
+freetype/builds/windows/vc2010/index.html<br>
+freetype/builds/windows/visualc/freetype.dsp<br>
+freetype/builds/windows/visualc/freetype.vcproj<br>
+freetype/builds/windows/visualc/index.html<br>
+freetype/builds/windows/visualce/freetype.dsp<br>
+freetype/builds/windows/visualce/freetype.vcproj<br>
+freetype/builds/windows/visualce/index.html<br>
+freetype/builds/windows/w32-bcc.mk<br>
+freetype/builds/windows/w32-bccd.mk<br>
+freetype/builds/windows/w32-dev.mk<br>
+freetype/builds/windows/w32-gcc.mk<br>
+freetype/builds/windows/w32-icc.mk<br>
+freetype/builds/windows/w32-intl.mk<br>
+freetype/builds/windows/w32-lcc.mk<br>
+freetype/builds/windows/w32-mingw32.mk<br>
+freetype/builds/windows/w32-vcc.mk<br>
+freetype/builds/windows/w32-wat.mk<br>
+freetype/builds/windows/win32-def.mk<br>
+freetype/configure<br>
+freetype/devel/ft2build.h<br>
+freetype/devel/ftoption.h<br>
+freetype/docs/CHANGES<br>
+freetype/docs/CUSTOMIZE<br>
+freetype/docs/DEBUG<br>
+freetype/docs/FTL.TXT<br>
+freetype/docs/INSTALL<br>
+freetype/docs/INSTALL.ANY<br>
+freetype/docs/INSTALL.CROSS<br>
+freetype/docs/INSTALL.GNU<br>
+freetype/docs/INSTALL.UNIX<br>
+freetype/docs/INSTALL.VMS<br>
+freetype/docs/LICENSE.TXT<br>
+freetype/docs/TODO<br>
+freetype/docs/VERSION.DLL<br>
+freetype/docs/VERSIONS.TXT<br>
+freetype/docs/formats.txt<br>
+freetype/docs/freetype-config.1<br>
+freetype/docs/raster.txt<br>
+freetype/docs/reference/ft2-auto_hinter.html<br>
+freetype/docs/reference/ft2-base_interface.html<br>
+freetype/docs/reference/ft2-basic_types.html<br>
+freetype/docs/reference/ft2-bdf_fonts.html<br>
+freetype/docs/reference/ft2-bitmap_handling.html<br>
+freetype/docs/reference/ft2-bzip2.html<br>
+freetype/docs/reference/ft2-cache_subsystem.html<br>
+freetype/docs/reference/ft2-cff_driver.html<br>
+freetype/docs/reference/ft2-cid_fonts.html<br>
+freetype/docs/reference/ft2-computations.html<br>
+freetype/docs/reference/ft2-error_code_values.html<br>
+freetype/docs/reference/ft2-error_enumerations.html<br>
+freetype/docs/reference/ft2-font_formats.html<br>
+freetype/docs/reference/ft2-gasp_table.html<br>
+freetype/docs/reference/ft2-glyph_management.html<br>
+freetype/docs/reference/ft2-glyph_stroker.html<br>
+freetype/docs/reference/ft2-glyph_variants.html<br>
+freetype/docs/reference/ft2-gx_validation.html<br>
+freetype/docs/reference/ft2-gzip.html<br>
+freetype/docs/reference/ft2-header_file_macros.html<br>
+freetype/docs/reference/ft2-header_inclusion.html<br>
+freetype/docs/reference/ft2-incremental.html<br>
+freetype/docs/reference/ft2-index.html<br>
+freetype/docs/reference/ft2-lcd_filtering.html<br>
+freetype/docs/reference/ft2-list_processing.html<br>
+freetype/docs/reference/ft2-lzw.html<br>
+freetype/docs/reference/ft2-mac_specific.html<br>
+freetype/docs/reference/ft2-module_management.html<br>
+freetype/docs/reference/ft2-multiple_masters.html<br>
+freetype/docs/reference/ft2-ot_validation.html<br>
+freetype/docs/reference/ft2-outline_processing.html<br>
+freetype/docs/reference/ft2-pfr_fonts.html<br>
+freetype/docs/reference/ft2-quick_advance.html<br>
+freetype/docs/reference/ft2-raster.html<br>
+freetype/docs/reference/ft2-sfnt_names.html<br>
+freetype/docs/reference/ft2-sizes_management.html<br>
+freetype/docs/reference/ft2-system_interface.html<br>
+freetype/docs/reference/ft2-toc.html<br>
+freetype/docs/reference/ft2-truetype_engine.html<br>
+freetype/docs/reference/ft2-truetype_tables.html<br>
+freetype/docs/reference/ft2-tt_driver.html<br>
+freetype/docs/reference/ft2-type1_tables.html<br>
+freetype/docs/reference/ft2-user_allocation.html<br>
+freetype/docs/reference/ft2-version.html<br>
+freetype/docs/reference/ft2-winfnt_fonts.html<br>
+freetype/docs/release<br>
+freetype/include/config/ftconfig.h<br>
+freetype/include/config/ftheader.h<br>
+freetype/include/config/ftmodule.h<br>
+freetype/include/config/ftoption.h<br>
+freetype/include/config/ftstdlib.h<br>
+freetype/include/freetype.h<br>
+freetype/include/freetype/config/ftconfig.h<br>
+freetype/include/freetype/config/ftheader.h<br>
+freetype/include/freetype/config/ftmodule.h<br>
+freetype/include/freetype/config/ftoption.h<br>
+freetype/include/freetype/config/ftstdlib.h<br>
+freetype/include/freetype/freetype.h<br>
+freetype/include/freetype/ftadvanc.h<br>
+freetype/include/freetype/ftautoh.h<br>
+freetype/include/freetype/ftbbox.h<br>
+freetype/include/freetype/ftbdf.h<br>
+freetype/include/freetype/ftbitmap.h<br>
+freetype/include/freetype/ftbzip2.h<br>
+freetype/include/freetype/ftcache.h<br>
+freetype/include/freetype/ftcffdrv.h<br>
+freetype/include/freetype/ftchapters.h<br>
+freetype/include/freetype/ftcid.h<br>
+freetype/include/freetype/fterrdef.h<br>
+freetype/include/freetype/fterrors.h<br>
+freetype/include/freetype/ftfntfmt.h<br>
+freetype/include/freetype/ftgasp.h<br>
+freetype/include/freetype/ftglyph.h<br>
+freetype/include/freetype/ftgxval.h<br>
+freetype/include/freetype/ftgzip.h<br>
+freetype/include/freetype/ftimage.h<br>
+freetype/include/freetype/ftincrem.h<br>
+freetype/include/freetype/ftlcdfil.h<br>
+freetype/include/freetype/ftlist.h<br>
+freetype/include/freetype/ftlzw.h<br>
+freetype/include/freetype/ftmac.h<br>
+freetype/include/freetype/ftmm.h<br>
+freetype/include/freetype/ftmodapi.h<br>
+freetype/include/freetype/ftmoderr.h<br>
+freetype/include/freetype/ftotval.h<br>
+freetype/include/freetype/ftoutln.h<br>
+freetype/include/freetype/ftpfr.h<br>
+freetype/include/freetype/ftrender.h<br>
+freetype/include/freetype/ftsizes.h<br>
+freetype/include/freetype/ftsnames.h<br>
+freetype/include/freetype/ftstroke.h<br>
+freetype/include/freetype/ftsynth.h<br>
+freetype/include/freetype/ftsystem.h<br>
+freetype/include/freetype/fttrigon.h<br>
+freetype/include/freetype/ftttdrv.h<br>
+freetype/include/freetype/fttypes.h<br>
+freetype/include/freetype/ftwinfnt.h<br>
+freetype/include/freetype/internal/autohint.h<br>
+freetype/include/freetype/internal/ftcalc.h<br>
+freetype/include/freetype/internal/ftdebug.h<br>
+freetype/include/freetype/internal/ftdriver.h<br>
+freetype/include/freetype/internal/ftgloadr.h<br>
+freetype/include/freetype/internal/fthash.h<br>
+freetype/include/freetype/internal/ftmemory.h<br>
+freetype/include/freetype/internal/ftobjs.h<br>
+freetype/include/freetype/internal/ftpic.h<br>
+freetype/include/freetype/internal/ftrfork.h<br>
+freetype/include/freetype/internal/ftserv.h<br>
+freetype/include/freetype/internal/ftstream.h<br>
+freetype/include/freetype/internal/fttrace.h<br>
+freetype/include/freetype/internal/ftvalid.h<br>
+freetype/include/freetype/internal/internal.h<br>
+freetype/include/freetype/internal/psaux.h<br>
+freetype/include/freetype/internal/pshints.h<br>
+freetype/include/freetype/internal/services/svbdf.h<br>
+freetype/include/freetype/internal/services/svcid.h<br>
+freetype/include/freetype/internal/services/svfntfmt.h<br>
+freetype/include/freetype/internal/services/svgldict.h<br>
+freetype/include/freetype/internal/services/svgxval.h<br>
+freetype/include/freetype/internal/services/svkern.h<br>
+freetype/include/freetype/internal/services/svmm.h<br>
+freetype/include/freetype/internal/services/svotval.h<br>
+freetype/include/freetype/internal/services/svpfr.h<br>
+freetype/include/freetype/internal/services/svpostnm.h<br>
+freetype/include/freetype/internal/services/svprop.h<br>
+freetype/include/freetype/internal/services/svpscmap.h<br>
+freetype/include/freetype/internal/services/svpsinfo.h<br>
+freetype/include/freetype/internal/services/svsfnt.h<br>
+freetype/include/freetype/internal/services/svttcmap.h<br>
+freetype/include/freetype/internal/services/svtteng.h<br>
+freetype/include/freetype/internal/services/svttglyf.h<br>
+freetype/include/freetype/internal/services/svwinfnt.h<br>
+freetype/include/freetype/internal/sfnt.h<br>
+freetype/include/freetype/internal/t1types.h<br>
+freetype/include/freetype/internal/tttypes.h<br>
+freetype/include/freetype/t1tables.h<br>
+freetype/include/freetype/ttnameid.h<br>
+freetype/include/freetype/tttables.h<br>
+freetype/include/freetype/tttags.h<br>
+freetype/include/freetype/ttunpat.h<br>
+freetype/include/ft2build.h<br>
+freetype/include/ftadvanc.h<br>
+freetype/include/ftautoh.h<br>
+freetype/include/ftbbox.h<br>
+freetype/include/ftbdf.h<br>
+freetype/include/ftbitmap.h<br>
+freetype/include/ftbzip2.h<br>
+freetype/include/ftcache.h<br>
+freetype/include/ftcffdrv.h<br>
+freetype/include/ftchapters.h<br>
+freetype/include/ftcid.h<br>
+freetype/include/fterrdef.h<br>
+freetype/include/fterrors.h<br>
+freetype/include/ftgasp.h<br>
+freetype/include/ftglyph.h<br>
+freetype/include/ftgxval.h<br>
+freetype/include/ftgzip.h<br>
+freetype/include/ftimage.h<br>
+freetype/include/ftincrem.h<br>
+freetype/include/ftlcdfil.h<br>
+freetype/include/ftlist.h<br>
+freetype/include/ftlzw.h<br>
+freetype/include/ftmac.h<br>
+freetype/include/ftmm.h<br>
+freetype/include/ftmodapi.h<br>
+freetype/include/ftmoderr.h<br>
+freetype/include/ftotval.h<br>
+freetype/include/ftoutln.h<br>
+freetype/include/ftpfr.h<br>
+freetype/include/ftrender.h<br>
+freetype/include/ftsizes.h<br>
+freetype/include/ftsnames.h<br>
+freetype/include/ftstroke.h<br>
+freetype/include/ftsynth.h<br>
+freetype/include/ftsystem.h<br>
+freetype/include/fttrigon.h<br>
+freetype/include/ftttdrv.h<br>
+freetype/include/fttypes.h<br>
+freetype/include/ftwinfnt.h<br>
+freetype/include/ftxf86.h<br>
+freetype/include/internal/autohint.h<br>
+freetype/include/internal/ftcalc.h<br>
+freetype/include/internal/ftdebug.h<br>
+freetype/include/internal/ftdriver.h<br>
+freetype/include/internal/ftgloadr.h<br>
+freetype/include/internal/ftmemory.h<br>
+freetype/include/internal/ftobjs.h<br>
+freetype/include/internal/ftpic.h<br>
+freetype/include/internal/ftrfork.h<br>
+freetype/include/internal/ftserv.h<br>
+freetype/include/internal/ftstream.h<br>
+freetype/include/internal/fttrace.h<br>
+freetype/include/internal/ftvalid.h<br>
+freetype/include/internal/internal.h<br>
+freetype/include/internal/psaux.h<br>
+freetype/include/internal/pshints.h<br>
+freetype/include/internal/services/svbdf.h<br>
+freetype/include/internal/services/svcid.h<br>
+freetype/include/internal/services/svgldict.h<br>
+freetype/include/internal/services/svgxval.h<br>
+freetype/include/internal/services/svkern.h<br>
+freetype/include/internal/services/svmm.h<br>
+freetype/include/internal/services/svotval.h<br>
+freetype/include/internal/services/svpfr.h<br>
+freetype/include/internal/services/svpostnm.h<br>
+freetype/include/internal/services/svprop.h<br>
+freetype/include/internal/services/svpscmap.h<br>
+freetype/include/internal/services/svpsinfo.h<br>
+freetype/include/internal/services/svsfnt.h<br>
+freetype/include/internal/services/svttcmap.h<br>
+freetype/include/internal/services/svtteng.h<br>
+freetype/include/internal/services/svttglyf.h<br>
+freetype/include/internal/services/svwinfnt.h<br>
+freetype/include/internal/services/svxf86nm.h<br>
+freetype/include/internal/sfnt.h<br>
+freetype/include/internal/t1types.h<br>
+freetype/include/internal/tttypes.h<br>
+freetype/include/t1tables.h<br>
+freetype/include/ttnameid.h<br>
+freetype/include/tttables.h<br>
+freetype/include/tttags.h<br>
+freetype/include/ttunpat.h<br>
+freetype/modules.cfg<br>
+freetype/src/Jamfile<br>
+freetype/src/autofit/Jamfile<br>
+freetype/src/autofit/afangles.c<br>
+freetype/src/autofit/afblue.c<br>
+freetype/src/autofit/afblue.cin<br>
+freetype/src/autofit/afblue.dat<br>
+freetype/src/autofit/afblue.h<br>
+freetype/src/autofit/afblue.hin<br>
+freetype/src/autofit/afcjk.c<br>
+freetype/src/autofit/afcjk.h<br>
+freetype/src/autofit/afcover.h<br>
+freetype/src/autofit/afdummy.c<br>
+freetype/src/autofit/afdummy.h<br>
+freetype/src/autofit/aferrors.h<br>
+freetype/src/autofit/afglobal.c<br>
+freetype/src/autofit/afglobal.h<br>
+freetype/src/autofit/afhints.c<br>
+freetype/src/autofit/afhints.h<br>
+freetype/src/autofit/afindic.c<br>
+freetype/src/autofit/afindic.h<br>
+freetype/src/autofit/aflatin.c<br>
+freetype/src/autofit/aflatin.h<br>
+freetype/src/autofit/aflatin2.c<br>
+freetype/src/autofit/aflatin2.h<br>
+freetype/src/autofit/afloader.c<br>
+freetype/src/autofit/afloader.h<br>
+freetype/src/autofit/afmodule.c<br>
+freetype/src/autofit/afmodule.h<br>
+freetype/src/autofit/afpic.c<br>
+freetype/src/autofit/afpic.h<br>
+freetype/src/autofit/afranges.c<br>
+freetype/src/autofit/afranges.h<br>
+freetype/src/autofit/afscript.h<br>
+freetype/src/autofit/afshaper.c<br>
+freetype/src/autofit/afshaper.h<br>
+freetype/src/autofit/afstyles.h<br>
+freetype/src/autofit/aftypes.h<br>
+freetype/src/autofit/afwarp.c<br>
+freetype/src/autofit/afwarp.h<br>
+freetype/src/autofit/afwrtsys.h<br>
+freetype/src/autofit/autofit.c<br>
+freetype/src/autofit/hbshim.c<br>
+freetype/src/autofit/hbshim.h<br>
+freetype/src/autofit/module.mk<br>
+freetype/src/autofit/rules.mk<br>
+freetype/src/base/Jamfile<br>
+freetype/src/base/basepic.c<br>
+freetype/src/base/basepic.h<br>
+freetype/src/base/ftadvanc.c<br>
+freetype/src/base/ftapi.c<br>
+freetype/src/base/ftbase.c<br>
+freetype/src/base/ftbase.h<br>
+freetype/src/base/ftbbox.c<br>
+freetype/src/base/ftbdf.c<br>
+freetype/src/base/ftbitmap.c<br>
+freetype/src/base/ftcalc.c<br>
+freetype/src/base/ftcid.c<br>
+freetype/src/base/ftdbgmem.c<br>
+freetype/src/base/ftdebug.c<br>
+freetype/src/base/ftfntfmt.c<br>
+freetype/src/base/ftfstype.c<br>
+freetype/src/base/ftgasp.c<br>
+freetype/src/base/ftgloadr.c<br>
+freetype/src/base/ftglyph.c<br>
+freetype/src/base/ftgxval.c<br>
+freetype/src/base/fthash.c<br>
+freetype/src/base/ftinit.c<br>
+freetype/src/base/ftlcdfil.c<br>
+freetype/src/base/ftmac.c<br>
+freetype/src/base/ftmm.c<br>
+freetype/src/base/ftobjs.c<br>
+freetype/src/base/ftotval.c<br>
+freetype/src/base/ftoutln.c<br>
+freetype/src/base/ftpatent.c<br>
+freetype/src/base/ftpfr.c<br>
+freetype/src/base/ftpic.c<br>
+freetype/src/base/ftrfork.c<br>
+freetype/src/base/ftsnames.c<br>
+freetype/src/base/ftstream.c<br>
+freetype/src/base/ftstroke.c<br>
+freetype/src/base/ftsynth.c<br>
+freetype/src/base/ftsystem.c<br>
+freetype/src/base/fttrigon.c<br>
+freetype/src/base/fttype1.c<br>
+freetype/src/base/ftutil.c<br>
+freetype/src/base/ftwinfnt.c<br>
+freetype/src/base/ftxf86.c<br>
+freetype/src/base/md5.c<br>
+freetype/src/base/rules.mk<br>
+freetype/src/bdf/Jamfile<br>
+freetype/src/bdf/bdf.h<br>
+freetype/src/bdf/bdfdrivr.c<br>
+freetype/src/bdf/bdfdrivr.h<br>
+freetype/src/bdf/bdferror.h<br>
+freetype/src/bdf/bdflib.c<br>
+freetype/src/bdf/rules.mk<br>
+freetype/src/bzip2/Jamfile<br>
+freetype/src/bzip2/ftbzip2.c<br>
+freetype/src/bzip2/rules.mk<br>
+freetype/src/cache/Jamfile<br>
+freetype/src/cache/ftcache.c<br>
+freetype/src/cache/ftcbasic.c<br>
+freetype/src/cache/ftccache.c<br>
+freetype/src/cache/ftccache.h<br>
+freetype/src/cache/ftccback.h<br>
+freetype/src/cache/ftccmap.c<br>
+freetype/src/cache/ftcerror.h<br>
+freetype/src/cache/ftcglyph.c<br>
+freetype/src/cache/ftcglyph.h<br>
+freetype/src/cache/ftcimage.c<br>
+freetype/src/cache/ftcimage.h<br>
+freetype/src/cache/ftcmanag.c<br>
+freetype/src/cache/ftcmanag.h<br>
+freetype/src/cache/ftcmru.c<br>
+freetype/src/cache/ftcmru.h<br>
+freetype/src/cache/ftcsbits.c<br>
+freetype/src/cache/ftcsbits.h<br>
+freetype/src/cache/rules.mk<br>
+freetype/src/cff/Jamfile<br>
+freetype/src/cff/cf2arrst.c<br>
+freetype/src/cff/cf2arrst.h<br>
+freetype/src/cff/cf2blues.h<br>
+freetype/src/cff/cf2error.h<br>
+freetype/src/cff/cf2fixed.h<br>
+freetype/src/cff/cf2font.h<br>
+freetype/src/cff/cf2ft.c<br>
+freetype/src/cff/cf2ft.h<br>
+freetype/src/cff/cf2glue.h<br>
+freetype/src/cff/cf2hints.c<br>
+freetype/src/cff/cf2hints.h<br>
+freetype/src/cff/cf2intrp.c<br>
+freetype/src/cff/cf2intrp.h<br>
+freetype/src/cff/cf2read.h<br>
+freetype/src/cff/cf2stack.c<br>
+freetype/src/cff/cf2stack.h<br>
+freetype/src/cff/cf2types.h<br>
+freetype/src/cff/cff.c<br>
+freetype/src/cff/cffcmap.c<br>
+freetype/src/cff/cffcmap.h<br>
+freetype/src/cff/cffdrivr.c<br>
+freetype/src/cff/cffdrivr.h<br>
+freetype/src/cff/cfferrs.h<br>
+freetype/src/cff/cffgload.c<br>
+freetype/src/cff/cffgload.h<br>
+freetype/src/cff/cffload.c<br>
+freetype/src/cff/cffload.h<br>
+freetype/src/cff/cffobjs.c<br>
+freetype/src/cff/cffobjs.h<br>
+freetype/src/cff/cffparse.c<br>
+freetype/src/cff/cffparse.h<br>
+freetype/src/cff/cffpic.c<br>
+freetype/src/cff/cffpic.h<br>
+freetype/src/cff/cfftoken.h<br>
+freetype/src/cff/cfftypes.h<br>
+freetype/src/cff/module.mk<br>
+freetype/src/cff/rules.mk<br>
+freetype/src/cid/Jamfile<br>
+freetype/src/cid/ciderrs.h<br>
+freetype/src/cid/cidgload.c<br>
+freetype/src/cid/cidgload.h<br>
+freetype/src/cid/cidload.c<br>
+freetype/src/cid/cidload.h<br>
+freetype/src/cid/cidobjs.c<br>
+freetype/src/cid/cidobjs.h<br>
+freetype/src/cid/cidparse.c<br>
+freetype/src/cid/cidparse.h<br>
+freetype/src/cid/cidriver.c<br>
+freetype/src/cid/cidriver.h<br>
+freetype/src/cid/cidtoken.h<br>
+freetype/src/cid/module.mk<br>
+freetype/src/cid/rules.mk<br>
+freetype/src/cid/type1cid.c<br>
+freetype/src/gxvalid/Jamfile<br>
+freetype/src/gxvalid/README<br>
+freetype/src/gxvalid/gxvalid.c<br>
+freetype/src/gxvalid/gxvalid.h<br>
+freetype/src/gxvalid/gxvbsln.c<br>
+freetype/src/gxvalid/gxvcommn.c<br>
+freetype/src/gxvalid/gxvcommn.h<br>
+freetype/src/gxvalid/gxverror.h<br>
+freetype/src/gxvalid/gxvfeat.c<br>
+freetype/src/gxvalid/gxvfeat.h<br>
+freetype/src/gxvalid/gxvfgen.c<br>
+freetype/src/gxvalid/gxvjust.c<br>
+freetype/src/gxvalid/gxvkern.c<br>
+freetype/src/gxvalid/gxvlcar.c<br>
+freetype/src/gxvalid/gxvmod.c<br>
+freetype/src/gxvalid/gxvmod.h<br>
+freetype/src/gxvalid/gxvmort.c<br>
+freetype/src/gxvalid/gxvmort.h<br>
+freetype/src/gxvalid/gxvmort0.c<br>
+freetype/src/gxvalid/gxvmort1.c<br>
+freetype/src/gxvalid/gxvmort2.c<br>
+freetype/src/gxvalid/gxvmort4.c<br>
+freetype/src/gxvalid/gxvmort5.c<br>
+freetype/src/gxvalid/gxvmorx.c<br>
+freetype/src/gxvalid/gxvmorx.h<br>
+freetype/src/gxvalid/gxvmorx0.c<br>
+freetype/src/gxvalid/gxvmorx1.c<br>
+freetype/src/gxvalid/gxvmorx2.c<br>
+freetype/src/gxvalid/gxvmorx4.c<br>
+freetype/src/gxvalid/gxvmorx5.c<br>
+freetype/src/gxvalid/gxvopbd.c<br>
+freetype/src/gxvalid/gxvprop.c<br>
+freetype/src/gxvalid/gxvtrak.c<br>
+freetype/src/gxvalid/module.mk<br>
+freetype/src/gxvalid/rules.mk<br>
+freetype/src/gzip/Jamfile<br>
+freetype/src/gzip/ftgzip.c<br>
+freetype/src/gzip/rules.mk<br>
+freetype/src/gzip/zlib.h<br>
+freetype/src/lzw/Jamfile<br>
+freetype/src/lzw/ftlzw.c<br>
+freetype/src/lzw/ftzopen.c<br>
+freetype/src/lzw/ftzopen.h<br>
+freetype/src/lzw/rules.mk<br>
+freetype/src/otvalid/Jamfile<br>
+freetype/src/otvalid/module.mk<br>
+freetype/src/otvalid/otvalid.c<br>
+freetype/src/otvalid/otvalid.h<br>
+freetype/src/otvalid/otvbase.c<br>
+freetype/src/otvalid/otvcommn.c<br>
+freetype/src/otvalid/otvcommn.h<br>
+freetype/src/otvalid/otverror.h<br>
+freetype/src/otvalid/otvgdef.c<br>
+freetype/src/otvalid/otvgpos.c<br>
+freetype/src/otvalid/otvgpos.h<br>
+freetype/src/otvalid/otvgsub.c<br>
+freetype/src/otvalid/otvjstf.c<br>
+freetype/src/otvalid/otvmath.c<br>
+freetype/src/otvalid/otvmod.c<br>
+freetype/src/otvalid/otvmod.h<br>
+freetype/src/otvalid/rules.mk<br>
+freetype/src/pcf/Jamfile<br>
+freetype/src/pcf/pcf.h<br>
+freetype/src/pcf/pcfdrivr.c<br>
+freetype/src/pcf/pcfdrivr.h<br>
+freetype/src/pcf/pcferror.h<br>
+freetype/src/pcf/pcfread.c<br>
+freetype/src/pcf/pcfread.h<br>
+freetype/src/pcf/pcfutil.h<br>
+freetype/src/pcf/rules.mk<br>
+freetype/src/pfr/Jamfile<br>
+freetype/src/pfr/module.mk<br>
+freetype/src/pfr/pfr.c<br>
+freetype/src/pfr/pfrcmap.c<br>
+freetype/src/pfr/pfrcmap.h<br>
+freetype/src/pfr/pfrdrivr.c<br>
+freetype/src/pfr/pfrdrivr.h<br>
+freetype/src/pfr/pfrerror.h<br>
+freetype/src/pfr/pfrgload.c<br>
+freetype/src/pfr/pfrgload.h<br>
+freetype/src/pfr/pfrload.c<br>
+freetype/src/pfr/pfrload.h<br>
+freetype/src/pfr/pfrobjs.c<br>
+freetype/src/pfr/pfrobjs.h<br>
+freetype/src/pfr/pfrsbit.c<br>
+freetype/src/pfr/pfrsbit.h<br>
+freetype/src/pfr/pfrtypes.h<br>
+freetype/src/pfr/rules.mk<br>
+freetype/src/psaux/Jamfile<br>
+freetype/src/psaux/afmparse.c<br>
+freetype/src/psaux/afmparse.h<br>
+freetype/src/psaux/module.mk<br>
+freetype/src/psaux/psaux.c<br>
+freetype/src/psaux/psauxerr.h<br>
+freetype/src/psaux/psauxmod.c<br>
+freetype/src/psaux/psauxmod.h<br>
+freetype/src/psaux/psconv.c<br>
+freetype/src/psaux/psconv.h<br>
+freetype/src/psaux/psobjs.c<br>
+freetype/src/psaux/psobjs.h<br>
+freetype/src/psaux/rules.mk<br>
+freetype/src/psaux/t1cmap.c<br>
+freetype/src/psaux/t1cmap.h<br>
+freetype/src/psaux/t1decode.c<br>
+freetype/src/psaux/t1decode.h<br>
+freetype/src/pshinter/Jamfile<br>
+freetype/src/pshinter/module.mk<br>
+freetype/src/pshinter/pshalgo.c<br>
+freetype/src/pshinter/pshalgo.h<br>
+freetype/src/pshinter/pshglob.c<br>
+freetype/src/pshinter/pshglob.h<br>
+freetype/src/pshinter/pshinter.c<br>
+freetype/src/pshinter/pshmod.c<br>
+freetype/src/pshinter/pshmod.h<br>
+freetype/src/pshinter/pshnterr.h<br>
+freetype/src/pshinter/pshpic.c<br>
+freetype/src/pshinter/pshpic.h<br>
+freetype/src/pshinter/pshrec.c<br>
+freetype/src/pshinter/pshrec.h<br>
+freetype/src/pshinter/rules.mk<br>
+freetype/src/psnames/Jamfile<br>
+freetype/src/psnames/module.mk<br>
+freetype/src/psnames/psmodule.c<br>
+freetype/src/psnames/psmodule.h<br>
+freetype/src/psnames/psnamerr.h<br>
+freetype/src/psnames/psnames.c<br>
+freetype/src/psnames/pspic.c<br>
+freetype/src/psnames/pspic.h<br>
+freetype/src/psnames/pstables.h<br>
+freetype/src/psnames/rules.mk<br>
+freetype/src/raster/Jamfile<br>
+freetype/src/raster/ftmisc.h<br>
+freetype/src/raster/ftraster.c<br>
+freetype/src/raster/ftraster.h<br>
+freetype/src/raster/ftrend1.c<br>
+freetype/src/raster/ftrend1.h<br>
+freetype/src/raster/module.mk<br>
+freetype/src/raster/raster.c<br>
+freetype/src/raster/rasterrs.h<br>
+freetype/src/raster/rastpic.c<br>
+freetype/src/raster/rastpic.h<br>
+freetype/src/raster/rules.mk<br>
+freetype/src/sfnt/Jamfile<br>
+freetype/src/sfnt/module.mk<br>
+freetype/src/sfnt/pngshim.c<br>
+freetype/src/sfnt/pngshim.h<br>
+freetype/src/sfnt/rules.mk<br>
+freetype/src/sfnt/sfdriver.c<br>
+freetype/src/sfnt/sfdriver.h<br>
+freetype/src/sfnt/sferrors.h<br>
+freetype/src/sfnt/sfnt.c<br>
+freetype/src/sfnt/sfntpic.c<br>
+freetype/src/sfnt/sfntpic.h<br>
+freetype/src/sfnt/sfobjs.c<br>
+freetype/src/sfnt/sfobjs.h<br>
+freetype/src/sfnt/ttbdf.c<br>
+freetype/src/sfnt/ttbdf.h<br>
+freetype/src/sfnt/ttcmap.c<br>
+freetype/src/sfnt/ttcmap.h<br>
+freetype/src/sfnt/ttcmapc.h<br>
+freetype/src/sfnt/ttkern.c<br>
+freetype/src/sfnt/ttkern.h<br>
+freetype/src/sfnt/ttload.c<br>
+freetype/src/sfnt/ttload.h<br>
+freetype/src/sfnt/ttmtx.c<br>
+freetype/src/sfnt/ttmtx.h<br>
+freetype/src/sfnt/ttpost.c<br>
+freetype/src/sfnt/ttpost.h<br>
+freetype/src/sfnt/ttsbit.c<br>
+freetype/src/sfnt/ttsbit.h<br>
+freetype/src/smooth/Jamfile<br>
+freetype/src/smooth/ftgrays.c<br>
+freetype/src/smooth/ftgrays.h<br>
+freetype/src/smooth/ftsmerrs.h<br>
+freetype/src/smooth/ftsmooth.c<br>
+freetype/src/smooth/ftsmooth.h<br>
+freetype/src/smooth/ftspic.c<br>
+freetype/src/smooth/ftspic.h<br>
+freetype/src/smooth/module.mk<br>
+freetype/src/smooth/rules.mk<br>
+freetype/src/smooth/smooth.c<br>
+freetype/src/tools/afblue.pl<br>
+freetype/src/tools/apinames.c<br>
+freetype/src/tools/chktrcmp.py<br>
+freetype/src/tools/docmaker/content.py<br>
+freetype/src/tools/docmaker/docmaker.py<br>
+freetype/src/tools/docmaker/formatter.py<br>
+freetype/src/tools/docmaker/sources.py<br>
+freetype/src/tools/docmaker/tohtml.py<br>
+freetype/src/tools/docmaker/utils.py<br>
+freetype/src/tools/ftfuzzer/README<br>
+freetype/src/tools/ftfuzzer/ftfuzzer.cc<br>
+freetype/src/tools/ftfuzzer/ftmutator.cc<br>
+freetype/src/tools/ftfuzzer/rasterfuzzer.cc<br>
+freetype/src/tools/ftfuzzer/runinput.cc<br>
+freetype/src/tools/ftrandom/Makefile<br>
+freetype/src/tools/ftrandom/README<br>
+freetype/src/tools/ftrandom/ftrandom.c<br>
+freetype/src/tools/glnames.py<br>
+freetype/src/tools/no-copyright<br>
+freetype/src/tools/test_afm.c<br>
+freetype/src/tools/update-copyright<br>
+freetype/src/tools/update-copyright-year<br>
+freetype/src/truetype/Jamfile<br>
+freetype/src/truetype/module.mk<br>
+freetype/src/truetype/rules.mk<br>
+freetype/src/truetype/truetype.c<br>
+freetype/src/truetype/ttdriver.c<br>
+freetype/src/truetype/ttdriver.h<br>
+freetype/src/truetype/tterrors.h<br>
+freetype/src/truetype/ttgload.c<br>
+freetype/src/truetype/ttgload.h<br>
+freetype/src/truetype/ttgxvar.c<br>
+freetype/src/truetype/ttgxvar.h<br>
+freetype/src/truetype/ttinterp.c<br>
+freetype/src/truetype/ttinterp.h<br>
+freetype/src/truetype/ttobjs.c<br>
+freetype/src/truetype/ttobjs.h<br>
+freetype/src/truetype/ttpic.c<br>
+freetype/src/truetype/ttpic.h<br>
+freetype/src/truetype/ttpload.c<br>
+freetype/src/truetype/ttpload.h<br>
+freetype/src/truetype/ttsubpix.c<br>
+freetype/src/truetype/ttsubpix.h<br>
+freetype/src/type1/Jamfile<br>
+freetype/src/type1/module.mk<br>
+freetype/src/type1/rules.mk<br>
+freetype/src/type1/t1afm.c<br>
+freetype/src/type1/t1afm.h<br>
+freetype/src/type1/t1driver.c<br>
+freetype/src/type1/t1driver.h<br>
+freetype/src/type1/t1errors.h<br>
+freetype/src/type1/t1gload.c<br>
+freetype/src/type1/t1gload.h<br>
+freetype/src/type1/t1load.c<br>
+freetype/src/type1/t1load.h<br>
+freetype/src/type1/t1objs.c<br>
+freetype/src/type1/t1objs.h<br>
+freetype/src/type1/t1parse.c<br>
+freetype/src/type1/t1parse.h<br>
+freetype/src/type1/t1tokens.h<br>
+freetype/src/type1/type1.c<br>
+freetype/src/type42/Jamfile<br>
+freetype/src/type42/module.mk<br>
+freetype/src/type42/rules.mk<br>
+freetype/src/type42/t42drivr.c<br>
+freetype/src/type42/t42drivr.h<br>
+freetype/src/type42/t42error.h<br>
+freetype/src/type42/t42objs.c<br>
+freetype/src/type42/t42objs.h<br>
+freetype/src/type42/t42parse.c<br>
+freetype/src/type42/t42parse.h<br>
+freetype/src/type42/t42types.h<br>
+freetype/src/type42/type42.c<br>
+freetype/src/winfonts/Jamfile<br>
+freetype/src/winfonts/fnterrs.h<br>
+freetype/src/winfonts/module.mk<br>
+freetype/src/winfonts/rules.mk<br>
+freetype/src/winfonts/winfnt.c<br>
+freetype/src/winfonts/winfnt.h<br>
+freetype/vms_make.com<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-15 09:58:58 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=99c6a18eb430a9091c79369b2bdd2952d481c7d5">99c6a18eb430a9091c79369b2bdd2952d481c7d5</a>
+<blockquote>
+<p>
+ Document use of string for subsituted CIDFont name<br>
+<br>
+ Add a comment and example at the top of cidfmap with details of dealing with<br>
+ CIDFont names with spaces in them.<br>
+<br>
+Resource/Init/cidfmap<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-07 14:52:28 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=23dc144b3c3d3dbafd83dca7b9c09e6977b774d6">23dc144b3c3d3dbafd83dca7b9c09e6977b774d6</a>
+<blockquote>
+<p>
+ Update lcms2 to 2.8<br>
+<br>
+ Tweak makefile for lcms2 2.8<br>
+<br>
+ Delete mac file system specific files from lcms2 tree<br>
+<br>
+ Bug 697056: Fix LCMS static init of critical section.<br>
+<br>
+ LCMS2 relies on being able to statically init a mutex<br>
+ (actually a Critical Section on windows). Windows has<br>
+ no official API for statically initing a critical<br>
+ section, so lcms2 uses a hack (albeit it a safe one)<br>
+ to do this.<br>
+<br>
+ Unfortunately ApplicationVerifier (and presumably other<br>
+ similar tools) don't understand this idiom, and get<br>
+ confused by not seeing an explicit initialisation call.<br>
+ This is causing problems for a customer.<br>
+<br>
+ This commit therefore introduces code to properly<br>
+ initialise it on Windows. In order to avoid any possible<br>
+ multithreaded startup issues, we use the Windows<br>
+ InterlockedCompareExchangePointer API (introduced in<br>
+ Windows XP).<br>
+<br>
+ If anyone wants to avoid this code (so they can work<br>
+ on pre-Windows XP), they can build with:<br>
+<br>
+ CMS_RELY_ON_WINDOWS_STATIC_MUTEX_INIT<br>
+<br>
+ defined, and get the old behaviour. We automatically<br>
+ set this when building with any version of MSVC older<br>
+ than VS2005 (i.e. those that don't have that API<br>
+ available).<br>
+<br>
+base/lcms2.mak<br>
+lcms2/AUTHORS<br>
+lcms2/ChangeLog<br>
+lcms2/Makefile.am<br>
+lcms2/Makefile.in<br>
+lcms2/Projects/BorlandC_5.5/lcms2.rc<br>
+lcms2/Projects/BorlandC_5.5/lcmsdll.lst<br>
+lcms2/Projects/VC2008/jpegicc/jpegicc.vcproj<br>
+lcms2/Projects/VC2008/lcms2.rc<br>
+lcms2/Projects/VC2008/lcms2.sln<br>
+lcms2/Projects/VC2008/lcms2_DLL/lcms2_DLL.vcproj<br>
+lcms2/Projects/VC2008/lcms2_static/lcms2_static.vcproj<br>
+lcms2/Projects/VC2008/linkicc/linkicc.vcproj<br>
+lcms2/Projects/VC2008/psicc/psicc.vcproj<br>
+lcms2/Projects/VC2008/resource.h<br>
+lcms2/Projects/VC2008/testbed/testbed.vcproj<br>
+lcms2/Projects/VC2008/tiffdiff/tiffdiff.vcproj<br>
+lcms2/Projects/VC2008/tifficc/tifficc.vcproj<br>
+lcms2/Projects/VC2008/transicc/transicc.vcproj<br>
+lcms2/Projects/VC2010/jpegicc/jpegicc.vcproj<br>
+lcms2/Projects/VC2010/jpegicc/jpegicc.vcxproj<br>
+lcms2/Projects/VC2010/lcms2.rc<br>
+lcms2/Projects/VC2010/lcms2.sln<br>
+lcms2/Projects/VC2010/lcms2_DLL/lcms2_DLL.vcproj<br>
+lcms2/Projects/VC2010/lcms2_static/lcms2_static.vcproj<br>
+lcms2/Projects/VC2010/linkicc/linkicc.vcproj<br>
+lcms2/Projects/VC2010/psicc/psicc.vcproj<br>
+lcms2/Projects/VC2010/testbed/testbed.vcproj<br>
+lcms2/Projects/VC2010/tiffdiff/tiffdiff.vcproj<br>
+lcms2/Projects/VC2010/tifficc/tifficc.vcproj<br>
+lcms2/Projects/VC2010/transicc/transicc.vcproj<br>
+lcms2/Projects/VC2012/jpegicc/jpegicc.vcproj<br>
+lcms2/Projects/VC2012/jpegicc/jpegicc.vcxproj<br>
+lcms2/Projects/VC2012/jpegicc/jpegicc.vcxproj.filters<br>
+lcms2/Projects/VC2012/lcms2.rc<br>
+lcms2/Projects/VC2012/lcms2.sln<br>
+lcms2/Projects/VC2012/lcms2_DLL/lcms2_DLL.vcproj<br>
+lcms2/Projects/VC2012/lcms2_DLL/lcms2_DLL.vcxproj<br>
+lcms2/Projects/VC2012/lcms2_DLL/lcms2_DLL.vcxproj.filters<br>
+lcms2/Projects/VC2012/lcms2_static/lcms2_static.vcproj<br>
+lcms2/Projects/VC2012/lcms2_static/lcms2_static.vcxproj<br>
+lcms2/Projects/VC2012/lcms2_static/lcms2_static.vcxproj.filters<br>
+lcms2/Projects/VC2012/linkicc/linkicc.vcproj<br>
+lcms2/Projects/VC2012/linkicc/linkicc.vcxproj<br>
+lcms2/Projects/VC2012/linkicc/linkicc.vcxproj.filters<br>
+lcms2/Projects/VC2012/psicc/psicc.vcproj<br>
+lcms2/Projects/VC2012/psicc/psicc.vcxproj<br>
+lcms2/Projects/VC2012/psicc/psicc.vcxproj.filters<br>
+lcms2/Projects/VC2012/resource.h<br>
+lcms2/Projects/VC2012/testbed/testbed.vcproj<br>
+lcms2/Projects/VC2012/testbed/testbed.vcxproj<br>
+lcms2/Projects/VC2012/testbed/testbed.vcxproj.filters<br>
+lcms2/Projects/VC2012/tiffdiff/tiffdiff.vcproj<br>
+lcms2/Projects/VC2012/tiffdiff/tiffdiff.vcxproj<br>
+lcms2/Projects/VC2012/tiffdiff/tiffdiff.vcxproj.filters<br>
+lcms2/Projects/VC2012/tifficc/tifficc.vcproj<br>
+lcms2/Projects/VC2012/tifficc/tifficc.vcxproj<br>
+lcms2/Projects/VC2012/tifficc/tifficc.vcxproj.filters<br>
+lcms2/Projects/VC2012/transicc/transicc.vcproj<br>
+lcms2/Projects/VC2012/transicc/transicc.vcxproj<br>
+lcms2/Projects/VC2012/transicc/transicc.vcxproj.filters<br>
+lcms2/Projects/VC2013/jpegicc/jpegicc.vcxproj<br>
+lcms2/Projects/VC2013/jpegicc/jpegicc.vcxproj.filters<br>
+lcms2/Projects/VC2013/lcms2.rc<br>
+lcms2/Projects/VC2013/lcms2.sln<br>
+lcms2/Projects/VC2013/lcms2_DLL/lcms2_DLL.vcxproj<br>
+lcms2/Projects/VC2013/lcms2_DLL/lcms2_DLL.vcxproj.filters<br>
+lcms2/Projects/VC2013/lcms2_static/lcms2_static.vcxproj<br>
+lcms2/Projects/VC2013/lcms2_static/lcms2_static.vcxproj.filters<br>
+lcms2/Projects/VC2013/linkicc/linkicc.vcxproj<br>
+lcms2/Projects/VC2013/linkicc/linkicc.vcxproj.filters<br>
+lcms2/Projects/VC2013/psicc/psicc.vcxproj<br>
+lcms2/Projects/VC2013/psicc/psicc.vcxproj.filters<br>
+lcms2/Projects/VC2013/resource.h<br>
+lcms2/Projects/VC2013/testbed/testbed.vcxproj<br>
+lcms2/Projects/VC2013/testbed/testbed.vcxproj.filters<br>
+lcms2/Projects/VC2013/tiffdiff/tiffdiff.vcxproj<br>
+lcms2/Projects/VC2013/tiffdiff/tiffdiff.vcxproj.filters<br>
+lcms2/Projects/VC2013/tifficc/tifficc.vcxproj<br>
+lcms2/Projects/VC2013/tifficc/tifficc.vcxproj.filters<br>
+lcms2/Projects/VC2013/transicc/transicc.vcxproj<br>
+lcms2/Projects/VC2013/transicc/transicc.vcxproj.filters<br>
+lcms2/Projects/VC2015/jpegicc/jpegicc.vcxproj<br>
+lcms2/Projects/VC2015/jpegicc/jpegicc.vcxproj.filters<br>
+lcms2/Projects/VC2015/lcms2.rc<br>
+lcms2/Projects/VC2015/lcms2.sln<br>
+lcms2/Projects/VC2015/lcms2_DLL/lcms2_DLL.vcxproj<br>
+lcms2/Projects/VC2015/lcms2_DLL/lcms2_DLL.vcxproj.filters<br>
+lcms2/Projects/VC2015/lcms2_static/lcms2_static.vcxproj<br>
+lcms2/Projects/VC2015/lcms2_static/lcms2_static.vcxproj.filters<br>
+lcms2/Projects/VC2015/linkicc/linkicc.vcxproj<br>
+lcms2/Projects/VC2015/linkicc/linkicc.vcxproj.filters<br>
+lcms2/Projects/VC2015/psicc/psicc.vcxproj<br>
+lcms2/Projects/VC2015/psicc/psicc.vcxproj.filters<br>
+lcms2/Projects/VC2015/resource.h<br>
+lcms2/Projects/VC2015/testbed/testbed.vcxproj<br>
+lcms2/Projects/VC2015/testbed/testbed.vcxproj.filters<br>
+lcms2/Projects/VC2015/tiffdiff/tiffdiff.vcxproj<br>
+lcms2/Projects/VC2015/tiffdiff/tiffdiff.vcxproj.filters<br>
+lcms2/Projects/VC2015/tifficc/tifficc.vcxproj<br>
+lcms2/Projects/VC2015/tifficc/tifficc.vcxproj.filters<br>
+lcms2/Projects/VC2015/transicc/transicc.vcxproj<br>
+lcms2/Projects/VC2015/transicc/transicc.vcxproj.filters<br>
+lcms2/Projects/cppcheck/lcms2.cppcheck<br>
+lcms2/Projects/mac/LittleCMS/._Info.plist<br>
+lcms2/Projects/mac/LittleCMS/._LittleCMS.xcodeproj<br>
+lcms2/Projects/mac/LittleCMS/English.lproj/InfoPlist.strings<br>
+lcms2/Projects/mac/LittleCMS/Info.plist<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/mariama.mode1v3<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/mariama.pbxuser<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.pbxproj<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/contents.xcworkspacedata<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/UserInterfaceState.xcuserstate<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/WorkspaceSettings.xcsettings<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/LittleCMS.xcscheme<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/testbed.xcscheme<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/xcschememanagement.plist<br>
+lcms2/Projects/mac/LittleCMS/LittleCMS_Prefix.pch<br>
+lcms2/Projects/mac/LittleCMS/TestBed-Info.plist<br>
+lcms2/aclocal.m4<br>
+lcms2/autogen.sh<br>
+lcms2/compile<br>
+lcms2/config.guess<br>
+lcms2/config.sub<br>
+lcms2/configure<br>
+lcms2/configure.ac<br>
+lcms2/depcomp<br>
+lcms2/doc/LittleCMS2.6 API.pdf<br>
+lcms2/doc/LittleCMS2.6 Plugin API.pdf<br>
+lcms2/doc/LittleCMS2.6 tutorial.pdf<br>
+lcms2/doc/LittleCMS2.8 API.pdf<br>
+lcms2/doc/LittleCMS2.8 Plugin API.pdf<br>
+lcms2/doc/LittleCMS2.8 tutorial.pdf<br>
+lcms2/doc/src.zip<br>
+lcms2/include/Makefile.in<br>
+lcms2/include/lcms2.h<br>
+lcms2/include/lcms2_plugin.h<br>
+lcms2/install-sh<br>
+lcms2/ltmain.sh<br>
+lcms2/m4/acx_pthread.m4<br>
+lcms2/m4/libtool.m4<br>
+lcms2/m4/ltoptions.m4<br>
+lcms2/m4/ltsugar.m4<br>
+lcms2/m4/ltversion.m4<br>
+lcms2/m4/lt~obsolete.m4<br>
+lcms2/missing<br>
+lcms2/src/Makefile.am<br>
+lcms2/src/Makefile.in<br>
+lcms2/src/cmsalpha.c<br>
+lcms2/src/cmscam02.c<br>
+lcms2/src/cmscgats.c<br>
+lcms2/src/cmscnvrt.c<br>
+lcms2/src/cmserr.c<br>
+lcms2/src/cmsgamma.c<br>
+lcms2/src/cmsgmt.c<br>
+lcms2/src/cmshalf.c<br>
+lcms2/src/cmsintrp.c<br>
+lcms2/src/cmsio0.c<br>
+lcms2/src/cmsio1.c<br>
+lcms2/src/cmslut.c<br>
+lcms2/src/cmsmd5.c<br>
+lcms2/src/cmsmtrx.c<br>
+lcms2/src/cmsnamed.c<br>
+lcms2/src/cmsopt.c<br>
+lcms2/src/cmspack.c<br>
+lcms2/src/cmspcs.c<br>
+lcms2/src/cmsplugin.c<br>
+lcms2/src/cmsps2.c<br>
+lcms2/src/cmssamp.c<br>
+lcms2/src/cmssm.c<br>
+lcms2/src/cmstypes.c<br>
+lcms2/src/cmsvirt.c<br>
+lcms2/src/cmswtpnt.c<br>
+lcms2/src/cmsxform.c<br>
+lcms2/src/extra_xform.h<br>
+lcms2/src/lcms2.def<br>
+lcms2/src/lcms2_internal.h<br>
+lcms2/testbed/Makefile.am<br>
+lcms2/testbed/Makefile.in<br>
+lcms2/testbed/crayons.icc<br>
+lcms2/testbed/ibm-t61.icc<br>
+lcms2/testbed/new.icc<br>
+lcms2/testbed/test1.icc<br>
+lcms2/testbed/test2.icc<br>
+lcms2/testbed/test3.icc<br>
+lcms2/testbed/test4.icc<br>
+lcms2/testbed/test5.icc<br>
+lcms2/testbed/testcms2.c<br>
+lcms2/testbed/testcms2.h<br>
+lcms2/testbed/testplugin.c<br>
+lcms2/testbed/toosmall.icc<br>
+lcms2/testbed/zoo_icc.c<br>
+lcms2/utils/common/utils.h<br>
+lcms2/utils/common/vprf.c<br>
+lcms2/utils/delphi/delphidemo.res<br>
+lcms2/utils/delphi/demo1.dfm<br>
+lcms2/utils/delphi/lcms2.dll<br>
+lcms2/utils/delphi/lcms2dll.pas<br>
+lcms2/utils/jpgicc/LICENSE_iccjpeg<br>
+lcms2/utils/jpgicc/Makefile.am<br>
+lcms2/utils/jpgicc/Makefile.in<br>
+lcms2/utils/jpgicc/iccjpeg.c<br>
+lcms2/utils/jpgicc/jpgicc.1<br>
+lcms2/utils/jpgicc/jpgicc.c<br>
+lcms2/utils/linkicc/Makefile.am<br>
+lcms2/utils/linkicc/Makefile.in<br>
+lcms2/utils/linkicc/linkicc.1<br>
+lcms2/utils/linkicc/linkicc.c<br>
+lcms2/utils/psicc/Makefile.am<br>
+lcms2/utils/psicc/Makefile.in<br>
+lcms2/utils/psicc/psicc.1<br>
+lcms2/utils/psicc/psicc.c<br>
+lcms2/utils/samples/Makefile.am<br>
+lcms2/utils/samples/roundtrip.c<br>
+lcms2/utils/samples/wtpt.c<br>
+lcms2/utils/tificc/Makefile.am<br>
+lcms2/utils/tificc/Makefile.in<br>
+lcms2/utils/tificc/tifdiff.c<br>
+lcms2/utils/tificc/tificc.1<br>
+lcms2/utils/tificc/tificc.c<br>
+lcms2/utils/transicc/Makefile.am<br>
+lcms2/utils/transicc/Makefile.in<br>
+lcms2/utils/transicc/transicc.1<br>
+lcms2/utils/transicc/transicc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-07 10:42: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=64ad2a92195fd05e9ba34995ae994eb250fc9c7c">64ad2a92195fd05e9ba34995ae994eb250fc9c7c</a>
+<blockquote>
+<p>
+ Update libpng to 1.6.26<br>
+<br>
+libpng/ANNOUNCE<br>
+libpng/CHANGES<br>
+libpng/CMakeLists.txt<br>
+libpng/INSTALL<br>
+libpng/LICENSE<br>
+libpng/Makefile.am<br>
+libpng/Makefile.in<br>
+libpng/README<br>
+libpng/TODO<br>
+libpng/arm/arm_init.c<br>
+libpng/arm/filter_neon_intrinsics.c<br>
+libpng/autogen.sh<br>
+libpng/config.h.in<br>
+libpng/configure<br>
+libpng/configure.ac<br>
+libpng/contrib/README.txt<br>
+libpng/contrib/arm-neon/README<br>
+libpng/contrib/arm-neon/linux-auxv.c<br>
+libpng/contrib/arm-neon/linux.c<br>
+libpng/contrib/conftest/pngcp.dfa<br>
+libpng/contrib/examples/README.txt<br>
+libpng/contrib/examples/iccfrompng.c<br>
+libpng/contrib/examples/pngpixel.c<br>
+libpng/contrib/examples/pngtopng.c<br>
+libpng/contrib/examples/simpleover.c<br>
+libpng/contrib/gregbook/README<br>
+libpng/contrib/gregbook/readpng2.c<br>
+libpng/contrib/gregbook/rpng-win.c<br>
+libpng/contrib/gregbook/rpng2-win.c<br>
+libpng/contrib/gregbook/rpng2-x.c<br>
+libpng/contrib/intel/INSTALL<br>
+libpng/contrib/intel/filter_sse2_intrinsics.c<br>
+libpng/contrib/intel/intel_init.c<br>
+libpng/contrib/intel/intel_sse.patch<br>
+libpng/contrib/libtests/fakepng.c<br>
+libpng/contrib/libtests/makepng.c<br>
+libpng/contrib/libtests/pngimage.c<br>
+libpng/contrib/libtests/pngstest-errors.h<br>
+libpng/contrib/libtests/pngstest.c<br>
+libpng/contrib/libtests/pngunknown.c<br>
+libpng/contrib/libtests/pngvalid.c<br>
+libpng/contrib/libtests/readpng.c<br>
+libpng/contrib/libtests/tarith.c<br>
+libpng/contrib/libtests/timepng.c<br>
+libpng/contrib/mips-msa/README<br>
+libpng/contrib/mips-msa/linux.c<br>
+libpng/contrib/pngminus/README<br>
+libpng/contrib/pngminus/png2pnm.c<br>
+libpng/contrib/pngminus/pnm2png.c<br>
+libpng/contrib/pngsuite/README<br>
+libpng/contrib/tools/README.txt<br>
+libpng/contrib/tools/chkfmt<br>
+libpng/contrib/tools/genpng.c<br>
+libpng/contrib/tools/png-fix-itxt.c<br>
+libpng/contrib/tools/pngcp.c<br>
+libpng/contrib/tools/pngfix.c<br>
+libpng/contrib/tools/reindent<br>
+libpng/contrib/visupng/PngFile.c<br>
+libpng/example.c<br>
+libpng/libpng-manual.txt<br>
+libpng/libpng.3<br>
+libpng/libpngpf.3<br>
+libpng/mips/filter_msa_intrinsics.c<br>
+libpng/mips/mips_init.c<br>
+libpng/png.5<br>
+libpng/png.c<br>
+libpng/png.h<br>
+libpng/pngconf.h<br>
+libpng/pngdebug.h<br>
+libpng/pngerror.c<br>
+libpng/pngget.c<br>
+libpng/pnginfo.h<br>
+libpng/pngmem.c<br>
+libpng/pngpread.c<br>
+libpng/pngpriv.h<br>
+libpng/pngread.c<br>
+libpng/pngrio.c<br>
+libpng/pngrtran.c<br>
+libpng/pngrutil.c<br>
+libpng/pngset.c<br>
+libpng/pngstruct.h<br>
+libpng/pngtest.c<br>
+libpng/pngtrans.c<br>
+libpng/pngwio.c<br>
+libpng/pngwrite.c<br>
+libpng/pngwtran.c<br>
+libpng/pngwutil.c<br>
+libpng/projects/vstudio/README.txt<br>
+libpng/projects/vstudio/WARNING<br>
+libpng/projects/vstudio/libpng/libpng.vcxproj<br>
+libpng/projects/vstudio/pnglibconf/pnglibconf.vcxproj<br>
+libpng/projects/vstudio/pngstest/pngstest.vcxproj<br>
+libpng/projects/vstudio/pngtest/pngtest.vcxproj<br>
+libpng/projects/vstudio/pngunknown/pngunknown.vcxproj<br>
+libpng/projects/vstudio/pngvalid/pngvalid.vcxproj<br>
+libpng/projects/vstudio/readme.txt<br>
+libpng/projects/vstudio/zlib.props<br>
+libpng/projects/vstudio/zlib/zlib.vcxproj<br>
+libpng/scripts/README.txt<br>
+libpng/scripts/def.c<br>
+libpng/scripts/genchk.cmake.in<br>
+libpng/scripts/genout.cmake.in<br>
+libpng/scripts/gensrc.cmake.in<br>
+libpng/scripts/libpng-config-head.in<br>
+libpng/scripts/libpng.pc.in<br>
+libpng/scripts/makefile.cegcc<br>
+libpng/scripts/makefile.linux<br>
+libpng/scripts/makefile.msys<br>
+libpng/scripts/makefile.ne12bsd<br>
+libpng/scripts/makefile.netbsd<br>
+libpng/scripts/makefile.openbsd<br>
+libpng/scripts/makefile.sco<br>
+libpng/scripts/pnglibconf.dfa<br>
+libpng/scripts/pnglibconf.h.prebuilt<br>
+libpng/scripts/symbols.def<br>
+libpng/scripts/test.cmake.in<br>
+libpng/tests/pngimage-full<br>
+libpng/tests/pngimage-quick<br>
+libpng/tests/pngstest<br>
+libpng/tests/pngstest-0g01<br>
+libpng/tests/pngstest-0g02<br>
+libpng/tests/pngstest-0g04<br>
+libpng/tests/pngstest-0g08<br>
+libpng/tests/pngstest-0g16<br>
+libpng/tests/pngstest-2c08<br>
+libpng/tests/pngstest-2c16<br>
+libpng/tests/pngstest-3p01<br>
+libpng/tests/pngstest-3p02<br>
+libpng/tests/pngstest-3p04<br>
+libpng/tests/pngstest-3p08<br>
+libpng/tests/pngstest-4a08<br>
+libpng/tests/pngstest-4a16<br>
+libpng/tests/pngstest-6a08<br>
+libpng/tests/pngstest-6a16<br>
+libpng/tests/pngstest-error<br>
+libpng/tests/pngtest<br>
+libpng/tests/pngunknown-IDAT<br>
+libpng/tests/pngunknown-discard<br>
+libpng/tests/pngunknown-if-safe<br>
+libpng/tests/pngunknown-sAPI<br>
+libpng/tests/pngunknown-sTER<br>
+libpng/tests/pngunknown-save<br>
+libpng/tests/pngunknown-vpAg<br>
+libpng/tests/pngvalid-gamma-16-to-8<br>
+libpng/tests/pngvalid-gamma-alpha-mode<br>
+libpng/tests/pngvalid-gamma-background<br>
+libpng/tests/pngvalid-gamma-expand16-alpha-mode<br>
+libpng/tests/pngvalid-gamma-expand16-background<br>
+libpng/tests/pngvalid-gamma-expand16-transform<br>
+libpng/tests/pngvalid-gamma-sbit<br>
+libpng/tests/pngvalid-gamma-threshold<br>
+libpng/tests/pngvalid-gamma-transform<br>
+libpng/tests/pngvalid-progressive-interlace-size<br>
+libpng/tests/pngvalid-progressive-interlace-standard<br>
+libpng/tests/pngvalid-progressive-interlace-transform<br>
+libpng/tests/pngvalid-progressive-standard<br>
+libpng/tests/pngvalid-standard<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-22 09:14: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=1b1e7f3f4abf7a97101ff7f4e2389ca2edd9af0a">1b1e7f3f4abf7a97101ff7f4e2389ca2edd9af0a</a>
+<blockquote>
+<p>
+ PDF Interpreter - ensure /Separation ink names are not indirect objects<br>
+<br>
+ Bug #697358 &quot;PDF interpreter throws an error on a colour space&quot;<br>
+<br>
+ Another bizarre file that thinks its a good idea to reference items<br>
+ as indirect objects instead of a simple inclusion. This time its the<br>
+ ink name in a /Separation space.<br>
+<br>
+ Simply make sure it is not an indirect object.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-20 13:53:06 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=47294ff5b168d25bfc7db64f51572d64b8ebde91">47294ff5b168d25bfc7db64f51572d64b8ebde91</a>
+<blockquote>
+<p>
+ Bug 697345 Blend Color Space Support for Separation devices<br>
+<br>
+ This is a rather large commit that brings support for transparency<br>
+ blend color spaces to the separation devices. Previously the<br>
+ transparency compositor always used CMYK for the blend color space<br>
+ if the output device was a separation device.<br>
+<br>
+ With this commit:<br>
+<br>
+ If the blend space is RGB or Gray based, then we now ensure that the<br>
+ alternate tint transform is not used when we encounter a separation or DeviceN color space.<br>
+ (assuming we have not run out of spot color space at the target device). Note that<br>
+ if the any of the spot colors in a DeviceN color space are CMYK process colorants and the<br>
+ blend space is Gray or RGB, the alternate tint transform IS used.<br>
+<br>
+ 2) The pdf14 compositor now handles a mixture of additive and subtractive components.<br>
+ I.e. RGB + spots or Gray + spots.<br>
+<br>
+ 3) If the blend mode is non white preserving or not separable, then the spot colors<br>
+ use the normal blend mode while the process colorants use the specified blend mode.<br>
+<br>
+ 4) In the process there was a bit of code clean up. But much remains to be cleaned.<br>
+<br>
+base/gdevdevn.c<br>
+base/gdevdevn.h<br>
+base/gdevdsha.c<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gscdevn.c<br>
+base/gscsepr.c<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+base/gxclrast.c<br>
+base/gxcmap.h<br>
+base/gxdcolor.c<br>
+base/gxdevsop.h<br>
+base/gxshade6.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-17 16:45: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=c9d8618934ebf682f72dd9b3ebef48b2be535a8d">c9d8618934ebf682f72dd9b3ebef48b2be535a8d</a>
+<blockquote>
+<p>
+ Change API for put_image<br>
+<br>
+base/gdevflp.c<br>
+base/gdevmpla.c<br>
+base/gdevoflt.c<br>
+base/gdevp14.c<br>
+base/gdevsclass.c<br>
+base/gxblend1.c<br>
+base/gxdevcli.h<br>
+devices/gdevbit.c<br>
+devices/gdevpng.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-21 15:43: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=b33ffc0e958b613cd6ba114d42720694b11219ff">b33ffc0e958b613cd6ba114d42720694b11219ff</a>
+<blockquote>
+<p>
+ PDF interpreter - ensure Rect array entries are not indirect objects<br>
+<br>
+ Bug #697357 &quot;Can't handle annots where /Rect entries are indirect&quot;<br>
+<br>
+ The example file has an insanely constructed Rect entry, where not only<br>
+ is the /Rect value itself an indirect object, but each of the entries<br>
+ in the array is also an indirect object.<br>
+<br>
+ Here we ensure that the entries in a /Rect for an annotation are<br>
+ fully resolved.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-21 11:30: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=737da8a64a873ea128c5830519d3327baecc6444">737da8a64a873ea128c5830519d3327baecc6444</a>
+<blockquote>
+<p>
+ PDF interpreter - when detecting transparent pages, include Form 'Groups'<br>
+<br>
+ Bug #697354 &quot;PDF Interpreter fails to push pdf14 compositor&quot;<br>
+<br>
+ We have an optimisation in the PDF interpreter which ignores page<br>
+ level Group definitions, as these have no effect on the output.<br>
+<br>
+ However, the way this is performed meant that we also did not detect<br>
+ Group entries in Form XObjects. So if the only transparency on a page<br>
+ was a Form XObject with a Group entry, then we would incorrectly<br>
+ decide that the page had no transparency.<br>
+<br>
+ We do still want to do the performance check at the page level, but its<br>
+ important that we include Form XObject Groups in the resources check. So<br>
+ here we specifically check Form XObjects to see if they have a Group.<br>
+<br>
+ This produces differences in a few files, surprisingly miniscule<br>
+ differences. It appears that we have a number of files which include<br>
+ Forms with Group entries which, as is so often the case with PDF<br>
+ files produced by naive graphics libraries, don't actually *do* any<br>
+ real transparency.<br>
+<br>
+ Unfortunately this does mean we now process those files slower than<br>
+ we did before (and ps2write now produces images for them), but I don't<br>
+ see any real prospect of detecting pointless transparency at this depth<br>
+ in a PDF file.<br>
+<br>
+ So the only differences are small colour changes depending on the<br>
+ ProcessColorModel of the destination device. None of these appear to<br>
+ be significant to me.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-16 14:13:18 -0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=36269a8e76b7b495eba9cc061ebf52163188876a">36269a8e76b7b495eba9cc061ebf52163188876a</a>
+<blockquote>
+<p>
+ &quot;rpdl&quot; output device: Allow 5pt tolerance for page size selection<br>
+<br>
+ The &quot;rpdl&quot; printer driver required an exact match of the page size in<br>
+ points so that the correct command for selecting the page size was<br>
+ sent to the printer. Otherwise the printer received the command for a<br>
+ custom size. Tis is fixed now, allowing a 5-point tolerance (Bug<br>
+ 697348).<br>
+<br>
+contrib/japanese/gdevrpdl.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-15 15:06: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=99e9ca317adbd28b5faf3e9eda4c63d636478f43">99e9ca317adbd28b5faf3e9eda4c63d636478f43</a>
+<blockquote>
+<p>
+ Bug 697045: Skip over broken tile data rather than aborting.<br>
+<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-01 18:50: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=2f6ddae95676585717159445001fda2ebb00db8d">2f6ddae95676585717159445001fda2ebb00db8d</a>
+<blockquote>
+<p>
+ Squash compiler warning.<br>
+<br>
+base/gxccman.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-14 16:59: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=90b7603c1afb3ad79a6a0dfee97560b1c3565379">90b7603c1afb3ad79a6a0dfee97560b1c3565379</a>
+<blockquote>
+<p>
+ PCL - fix pdfmark parsing for PUTFILE<br>
+<br>
+ Bug #697285 &quot;Not able to produce a valid PDF/A - Invalid ColorSpace error opening a PDF&quot;<br>
+<br>
+ We have a special pdfmark type '/PUTFILE' for dealing with files,<br>
+ because unlike PostScript we can't deal with these as file objects in<br>
+ PJL. The code reading the file had a bug, I think caused by altering<br>
+ for error detection.<br>
+<br>
+ Fixed here, and returned the error back up the tree. However, note that<br>
+ the PCL interpreter still ignores error returns from PJL parsing.<br>
+<br>
+ No differences expected.<br>
+<br>
+pcl/pl/plparams.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-14 15:06:49 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0f6067d2531298060392d0e25fa759d320e03021">0f6067d2531298060392d0e25fa759d320e03021</a>
+<blockquote>
+<p>
+ ps2write - don't try to alter /pagesave when modifying media size<br>
+<br>
+ Bug #697245 &quot; Generated postscript by ps2write causes limitcheck for save error&quot;<br>
+<br>
+ When altering the media size for a page the code defined the save object<br>
+ 'pagesave' with the new media size. I believe the intention was probably<br>
+ to have the new media size persist, in order to avoid calling setpagdevice<br>
+ for every subsequent page with the modified media.<br>
+<br>
+ Unfortunately, this does not remove the prior 'save' object attached to<br>
+ /pagesave. The only way to get rid of that is to actually 'restore' it.<br>
+<br>
+ So, fundamentally, we need to remove the definition of pagesave from<br>
+ the code which sets the media size. We can achieve the same effect in a<br>
+ rather more roundabout fashion by also moving the definition of pagesave<br>
+ within the page stream to a point after the definition of the page<br>
+ dictionary.<br>
+<br>
+ Less neat, but it works.<br>
+<br>
+ For some obscure reason this results in some pages being rendered<br>
+ very slightly different sizes on the cluster. I've checked and the<br>
+ current sizes are correct. I have no idea why this was wrong before<br>
+ and I'm not interested enough to go looking, since they are now<br>
+ correct.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/opdfread.h<br>
+lib/opdfread.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-14 10:14: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=8cefc79359e14fdb8b967697bba33b754e83bcad">8cefc79359e14fdb8b967697bba33b754e83bcad</a>
+<blockquote>
+<p>
+ pdfwrite - fix calculation of a bounding box<br>
+<br>
+ Bug #697237 &quot;ps2pdf not producing correct PDF with a rotated character in the PS&quot;<br>
+<br>
+ The code for detecting a glyph which is completely clipped out of the<br>
+ output had a fault; after calculating the Font BoundingBox in current<br>
+ user space, it only considered three of the points of the resulting<br>
+ rectangle to calculate the largest rectangle.<br>
+<br>
+ This erroneous rectangle was then used to decide if a glyph was entirely<br>
+ outside the clipping area. Since the top left corner was not considered<br>
+ a sufficiently large glyph rotated to an acute enough anti-clockwise<br>
+ angle could appear to be totally clipped when in fact it is only<br>
+ partially clipped.<br>
+<br>
+ Fix this here by considering all four points.<br>
+<br>
+ This show two very minor progressions in Quality Logic tests and some<br>
+ PXL-&gt;PDF conversions are now larger. The reason is that we use the<br>
+ font bounding box and a couple of glyphs are now considered to be<br>
+ unclipped when in fact they are totally clipped out, but we can't tell.<br>
+ This results in not only the glyphs but also a font being embedded<br>
+ in the output and increasing the size slightly.<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-12 11:24:18 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a46245139253b2ec607fcd06c549a6293d05a3a8">a46245139253b2ec607fcd06c549a6293d05a3a8</a>
+<blockquote>
+<p>
+ Fix a bug in device subclassing<br>
+<br>
+ If we free the memory used by a child device, we must not then try<br>
+ to write to that memory.<br>
+<br>
+ Chanced upon while working on bug #697279<br>
+<br>
+base/gdevdflt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-10 17:45:38 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=513d6fd7ddfc5a59fbf8bf6ce72eda6c97fea9f8">513d6fd7ddfc5a59fbf8bf6ce72eda6c97fea9f8</a>
+<blockquote>
+<p>
+ remove a bunch of now unused variables from the earlier shading code<br>
+ commit.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-10 14:42:49 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8a26fa67398970f357e1292310ef20556a8e5d96">8a26fa67398970f357e1292310ef20556a8e5d96</a>
+<blockquote>
+<p>
+ Fix 'corner' radial gradient case.<br>
+<br>
+ Bug #697144 &quot; Some incorrectly rendered radial shadings&quot;<br>
+<br>
+ This is to address 'radialshade4.ps, but fixed (the customer had managed<br>
+ to create incorrect PostScript for this specific test, see radialshade4b.ps).<br>
+<br>
+ In the case where the two circles defining a radial gradient are<br>
+ tangential, and the larger circle has 'extend' set to true, the extended<br>
+ area should be limited to the tangent which touches the two circles, and<br>
+ the smaller circle should not be filled.<br>
+<br>
+ Getting this corre4ct with our existing method for drawing gradients<br>
+ has been difficult. It 'looks like' all gradients are defined in terms<br>
+ of tensor patches, rather than having a dedicated plotter for each<br>
+ gradient type.<br>
+<br>
+ In order to generate a proper 'truncated' annulus for this case, it is<br>
+ necessary to construct a number of different 'quadrilaterals' and fit<br>
+ them carefully around the larger circle. To ensure no 'cracks' appear<br>
+ between the quads, we must also take care to ensure that they join at<br>
+ horizontal or vertical boundaries (in user space).<br>
+<br>
+ There's some trigonometry involved to get this correct, and to avoid<br>
+ having to check for infinity returns from tan(alpha), and generally<br>
+ avoid the complex work required in the general case, we handle the<br>
+ cases where the tangent point of the circles is on a horizontal or<br>
+ vertical axis.<br>
+<br>
+ This passes cluster tests, the customer test suite, and my own hand<br>
+ created PostScript files which exercise the code rather more thoroughly<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-09 22:02:47 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d4d8b7d51f79b47d21d3c82fe652a79e1f890df5">d4d8b7d51f79b47d21d3c82fe652a79e1f890df5</a>
+<blockquote>
+<p>
+ Fix bug 697323, Segfault after pattern with transparency.<br>
+<br>
+ While the pdfwrite device usage may have contributed to the path being<br>
+ taken, the segfault was in the GC and was due to a pattern-clist device<br>
+ still existing in the allocator, but no longer referenced (at least as<br>
+ seen with a debug build. The fix was to set gx_device_retain false for<br>
+ the adev (pattern accum device, which may be a pattern-clist device) for<br>
+ the case where the pattern uses transparency so the freeing the saved<br>
+ gstate would free the pdf14 device and it would rc_decrement its target,<br>
+ thus freeing the accumulator device.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-07 14:03: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=0e2523b9dae517f91bd7da78323e5207d099a10e">0e2523b9dae517f91bd7da78323e5207d099a10e</a>
+<blockquote>
+<p>
+ Fix expat build on Windows<br>
+<br>
+ The new version of expat uses time/date API calls to seed a hash function. That<br>
+ means we need a extra CFLAG (/DWIN32) and to drop the /Za CFLAG as we do for<br>
+ LCMS2.<br>
+<br>
+base/expat.mak<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 10:40:36 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c9f7be4f4de8e98df9d34ff8e4a7f781c0a33899">c9f7be4f4de8e98df9d34ff8e4a7f781c0a33899</a>
+<blockquote>
+<p>
+ Bring master up to date with 9.20 release branch<br>
+<br>
+ Docs, dates, copyrights etc.<br>
+<br>
+ Copyrights, dates etc<br>
+<br>
+ Update News and changelog<br>
+<br>
+ Fix a type in the release comments<br>
+<br>
+ Changelog update for 9.20 RC2<br>
+<br>
+ Update date and product string for 9.20 release<br>
+<br>
+ Copyrights, dates etc<br>
+<br>
+base/gscdef.c<br>
+base/version.mak<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/sample_downscale_device.htm<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/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-04 13:18:21 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=21b582ca561214aa9c5b9c8987a1c0cdce43ace6">21b582ca561214aa9c5b9c8987a1c0cdce43ace6</a>
+<blockquote>
+<p>
+ Add expat endian settings.<br>
+<br>
+ And fix the logic for the LCMS2 endian setting (noticed in passing).<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-04 12:41: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=c99d0ad7d5f5187e5e0279b6f9c8092798badc2f">c99d0ad7d5f5187e5e0279b6f9c8092798badc2f</a>
+<blockquote>
+<p>
+ Bug 697181: allow xps build with shared expat.<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-04 12:13: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=00b5d81646bb936577cbea2476e13f0a5dd4b9f1">00b5d81646bb936577cbea2476e13f0a5dd4b9f1</a>
+<blockquote>
+<p>
+ Update to expat 2.2.0<br>
+<br>
+expat/CMake.README<br>
+expat/CMakeLists.txt<br>
+expat/COPYING<br>
+expat/Changes<br>
+expat/ConfigureChecks.cmake<br>
+expat/MANIFEST<br>
+expat/Makefile.in<br>
+expat/README<br>
+expat/aclocal.m4<br>
+expat/amiga/Makefile<br>
+expat/amiga/README.txt<br>
+expat/amiga/expat_68k.c<br>
+expat/amiga/expat_68k.h<br>
+expat/amiga/expat_68k_handler_stubs.c<br>
+expat/amiga/expat_base.h<br>
+expat/amiga/expat_lib.c<br>
+expat/amiga/expat_vectors.c<br>
+expat/amiga/launch.c<br>
+expat/amiga/stdlib.c<br>
+expat/bcb5/elements.bpr<br>
+expat/bcb5/expat.bpr<br>
+expat/bcb5/expat.mak<br>
+expat/bcb5/expat_static.bpr<br>
+expat/bcb5/expat_static.mak<br>
+expat/bcb5/expatw.bpr<br>
+expat/bcb5/expatw.mak<br>
+expat/bcb5/expatw_static.bpr<br>
+expat/bcb5/expatw_static.mak<br>
+expat/bcb5/outline.bpr<br>
+expat/bcb5/xmlwf.bpr<br>
+expat/bcb5/xmlwf.mak<br>
+expat/configure<br>
+expat/configure.ac<br>
+expat/configure.in<br>
+expat/conftools/PrintPath<br>
+expat/conftools/ac_c_bigendian_cross.m4<br>
+expat/conftools/config.guess<br>
+expat/conftools/config.sub<br>
+expat/conftools/expat.m4<br>
+expat/conftools/get-version.sh<br>
+expat/conftools/install-sh<br>
+expat/conftools/libtool.m4<br>
+expat/conftools/ltmain.sh<br>
+expat/conftools/mkinstalldirs<br>
+expat/doc/expat.png<br>
+expat/doc/reference.html<br>
+expat/doc/valid-xhtml10.png<br>
+expat/doc/xmlwf.1<br>
+expat/doc/xmlwf.sgml<br>
+expat/doc/xmlwf.xml<br>
+expat/examples/elements.c<br>
+expat/examples/elements.dsp<br>
+expat/examples/outline.c<br>
+expat/examples/outline.dsp<br>
+expat/expat.dsw<br>
+expat/expat.pc.in<br>
+expat/expat_config.h.cmake<br>
+expat/expat_config.h.in<br>
+expat/lib/amigaconfig.h<br>
+expat/lib/expat.dsp<br>
+expat/lib/expat.h<br>
+expat/lib/expat_external.h<br>
+expat/lib/expat_static.dsp<br>
+expat/lib/expatw.dsp<br>
+expat/lib/expatw_static.dsp<br>
+expat/lib/internal.h<br>
+expat/lib/libexpat.def<br>
+expat/lib/libexpatw.def<br>
+expat/lib/xmlparse.c<br>
+expat/lib/xmlrole.c<br>
+expat/lib/xmltok.c<br>
+expat/lib/xmltok.h<br>
+expat/lib/xmltok_impl.c<br>
+expat/m4/libtool.m4<br>
+expat/m4/ltoptions.m4<br>
+expat/m4/ltsugar.m4<br>
+expat/m4/ltversion.m4<br>
+expat/m4/lt~obsolete.m4<br>
+expat/tests/README.txt<br>
+expat/tests/benchmark/README.txt<br>
+expat/tests/benchmark/benchmark.dsp<br>
+expat/tests/chardata.c<br>
+expat/tests/minicheck.c<br>
+expat/tests/minicheck.h<br>
+expat/tests/runtests.c<br>
+expat/tests/xmltest.sh<br>
+expat/win32/README.txt<br>
+expat/win32/expat.iss<br>
+expat/xmlwf/codepage.c<br>
+expat/xmlwf/readfilemap.c<br>
+expat/xmlwf/unixfilemap.c<br>
+expat/xmlwf/xmlfile.c<br>
+expat/xmlwf/xmlwf.c<br>
+expat/xmlwf/xmlwf.dsp<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-03 13:09: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=a73e3cf1ca91bbdb51d5a999a491e58fb9a7ce35">a73e3cf1ca91bbdb51d5a999a491e58fb9a7ce35</a>
+<blockquote>
+<p>
+ Bug 697286: handle GlyphDirectory as an array<br>
+<br>
+ For high level devices that need to copy CIDFonts, we need to establish the<br>
+ highest CID in a given CIDFont. If the font has a GlyphDirectory dictionary<br>
+ the only way to do so is to iterate through the keys to find the highest.<br>
+<br>
+ The code handling this ignored that the GlyphDirectory could be an array,<br>
+ which confused the dictionary content iterator, and caused a segfault.<br>
+<br>
+ In the case of an array, set the high CID to the highest index available in the<br>
+ array.<br>
+<br>
+psi/zfcid.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-02 16:19: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=dc62c90930512f4b571f68c9110022b234cbd411">dc62c90930512f4b571f68c9110022b234cbd411</a>
+<blockquote>
+<p>
+ Bug 697186: Tweak to previous JPEG fix.<br>
+<br>
+ Only clamp the DC coefficient. This shouldn't make a difference<br>
+ in any real world cases, but is more correct.<br>
+<br>
+jpeg/jidctint.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-11-01 18:40: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=8dcec8cc076a0cf8350ca7a6ec1d3136812e2a24">8dcec8cc076a0cf8350ca7a6ec1d3136812e2a24</a>
+<blockquote>
+<p>
+ Bug 697186: Workaround JPEG lib bug.<br>
+<br>
+ Commit fix for overflow. Awaiting response from IJG.<br>
+<br>
+jpeg/jidctint.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-26 16:35:38 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1eebbfa373d295bdd2bad88aaef1edc368450568">1eebbfa373d295bdd2bad88aaef1edc368450568</a>
+<blockquote>
+<p>
+ Bug 697231: Introduce caching to use of clipping paths.<br>
+<br>
+ When we create a clipping device from a path, we copy over the<br>
+ pointers to the rectangle list, and start searching them from<br>
+ the start.<br>
+<br>
+ This means that if we perform an operation that causes lots of<br>
+ calls to something with the same clipping path (like for instance<br>
+ a stroke operation with a clipping path that calls down to a fill<br>
+ path with a clipping path), then we will repeatedly search from<br>
+ the top of the rectangle list.<br>
+<br>
+ This massively slows stuff down.<br>
+<br>
+ This commit introduces a 'cached' entry in the clipping path<br>
+ that can be updated after a clipping device has been used to show<br>
+ the last place in the list that was found. Subsequent creations<br>
+ start searching from this point.<br>
+<br>
+ This gives us the desired locality of reference, and massively<br>
+ speeds up the test file.<br>
+<br>
+base/gxacpath.c<br>
+base/gxclip.c<br>
+base/gxcpath.c<br>
+base/gxcpath.h<br>
+base/gxfill.c<br>
+base/gzcpath.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-26 12:14:48 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=71629c04758788b238d6ff3537d9708f430a4db7">71629c04758788b238d6ff3537d9708f430a4db7</a>
+<blockquote>
+<p>
+ Tweak to clip device nesting.<br>
+<br>
+ Any call through clip_call_fill_path will be safely nested<br>
+ in terms of the clippers used. Reflect this in the<br>
+ initialisation of the local device. This avoids an error given<br>
+ with the next commit.<br>
+<br>
+base/gxclip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-26 17:39:29 -0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0726780b28920045ee6f344a34bc5e8565bc4ed5">0726780b28920045ee6f344a34bc5e8565bc4ed5</a>
+<blockquote>
+<p>
+ &quot;cups&quot; output device: When creating PWG Raster output, always output the bitmap of the full page, ignoring any unprintable margins suggested by the PPD file.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-26 08:37:46 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f0b49c3cf4e0602627c4dc5b6ff910074d298398">f0b49c3cf4e0602627c4dc5b6ff910074d298398</a>
+<blockquote>
+<p>
+ set GX_DOWNSCALER_PARAMS_DEFAULTS to remaining JPEG devices<br>
+<br>
+ Michael's fix in commit 45268652fcddf2031f5edb592bc61e53d9ac4f5b<br>
+ resolves the problem for jpeg, but didn't fix the jpeggray or jpegcmyk<br>
+ devices, as shown by the all devices test.<br>
+<br>
+ I believe copying the same fix to the other devices should resolve those<br>
+ too.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/gdevjpeg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-25 15:34:10 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=45268652fcddf2031f5edb592bc61e53d9ac4f5b">45268652fcddf2031f5edb592bc61e53d9ac4f5b</a>
+<blockquote>
+<p>
+ Set GX_DOWNSCALER_PARAMS_DEFAULTS in jpeg<br>
+<br>
+ Fix for crash caused by division by zero<br>
+<br>
+devices/gdevjpeg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-25 18:25:36 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cb8022f3e15b761adf4bbc78621cf0699f69e21c">cb8022f3e15b761adf4bbc78621cf0699f69e21c</a>
+<blockquote>
+<p>
+ Fix SEGV caused by previous commit.<br>
+<br>
+ Running:<br>
+<br>
+ gs --debug<br>
+<br>
+ would cause a SEGV in gs_finit_push_systemdict due to<br>
+ i_ctx_p being NULL.<br>
+<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-25 11:16:13 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2f3679b53632c5b7b9e9a416311ae82f36645fc9">2f3679b53632c5b7b9e9a416311ae82f36645fc9</a>
+<blockquote>
+<p>
+ Bug 697220(2): Fix returning execstackoverflow<br>
+<br>
+ In one case of returning execstackoverflow from the main interpreter loop,<br>
+ we'd set the interpreter's private count value of objects to execute, *before*<br>
+ we try to push the ref array onto the stack. As a consequence the object<br>
+ count was for the new array, but the top of the exec stack was still the<br>
+ previous array. This meant when we sync'ed the interpreter loop's internal<br>
+ state with the state in the interpreter context, the size of the top object<br>
+ on the exec stack could be wrong, causing problems in the garbager - especially<br>
+ if the length was too long.<br>
+<br>
+ To resolve, move the exec stack bounds check before the count gets set.<br>
+<br>
+psi/interp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-25 11:10:54 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3f09e7022e39412af98602cdfe22adfb34a7fa63">3f09e7022e39412af98602cdfe22adfb34a7fa63</a>
+<blockquote>
+<p>
+ Bug 697220(1): Push systemdict onto dict stack before we cleanup.<br>
+<br>
+ As part of shutting down the Postscript interpreter, we run some Postscript<br>
+ from the C code. We really don't want to stumble across random redefinitions<br>
+ of operators (especially if the definitions trigger errors) at this point.<br>
+<br>
+ So, push systemdict onto the top of the dict stack before we start our cleanup.<br>
+<br>
+ Do it in C, to further ensure we don't trip over redefinitions in the Postscipt<br>
+ world.<br>
+<br>
+ This *should* resolve the segfaults, but leaves a garbage collector error<br>
+<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-25 11:10:07 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d1ae930711d492d01110ef054c0add3c7615910">5d1ae930711d492d01110ef054c0add3c7615910</a>
+<blockquote>
+<p>
+ Fix BOBBIN undefined warnings.<br>
+<br>
+base/bobbin.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-23 00:58:23 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3216c2b692fe5a4c87936819b2fe14d0963a347a">3216c2b692fe5a4c87936819b2fe14d0963a347a</a>
+<blockquote>
+<p>
+ Bug 697144: Fix fix for previous radial shading fix.<br>
+<br>
+ This fixes the final case in page_create_color.ps<br>
+<br>
+ In some cases R_tensor_annulus can be called twice; avoid<br>
+ flipping function_arg_shift back and forth.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-22 15:47:35 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5915f971fa47c8ad1561e403bc7aacd86325c428">5915f971fa47c8ad1561e403bc7aacd86325c428</a>
+<blockquote>
+<p>
+ Bug 697144: Fix radial shadings broken by previous fix.<br>
+<br>
+ The previous fix addressed the fact that monotonicity of a<br>
+ filled quad was being tested based on splitting on u rather<br>
+ than v (or vice versa). It turns out that in some<br>
+ circumstances (when circles are entirely nested), we reverse<br>
+ u and v, and hence need to reverse the test.<br>
+<br>
+ The previous fix did not allow for this.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-21 17:00:15 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=898cdaedf52a37c84923d75aa2942e48b0fec91c">898cdaedf52a37c84923d75aa2942e48b0fec91c</a>
+<blockquote>
+<p>
+ Bug 697144: Fix radialshade2.ps<br>
+<br>
+ Many many moons ago, a fix was committed for bug 690831. The<br>
+ commit message for that was lost in the great svn -&gt; git<br>
+ migration, but the bug itself makes the history clear.<br>
+<br>
+ Looking back at this again now, it appears that the fix was<br>
+ incorrect. Ghostscript was in fact doing the right thing by<br>
+ the letter of the standard, but Acrobat was applying a fudge<br>
+ factor.<br>
+<br>
+ When filling a radial shade, the code tests to see if the<br>
+ two circles are nested. If so, then when the shade is 'extended',<br>
+ the entire area outside the final circle is filled. If not,<br>
+ a different fill operation has to happen.<br>
+<br>
+ The file given in the bug has a shade where the two circles are<br>
+ very close to being nested, but are not strictly so. Acrobat is<br>
+ choosing to treat them as if they were.<br>
+<br>
+ We therefore revert the code to 'unbreak' it, and adjust the<br>
+ fudge factor in our code to give the same results as Acrobat does.<br>
+<br>
+ This causes no changes in the cluster tests.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-25 10:59:23 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c3c4bf022a631be939ebb4bf6f59e41514cb1e48">c3c4bf022a631be939ebb4bf6f59e41514cb1e48</a>
+<blockquote>
+<p>
+ Bug 696508: improve configure cross compile support<br>
+<br>
+ This is a squashing of the commits on the branch:<br>
+<br>
+ CCAUX-configure<br>
+<br>
+ This allows CCAUX and related settings to be set on the configure command<br>
+ line, or in the environment.<br>
+<br>
+ Also, using configure to guess at creating an arch.h file which gets used<br>
+ rather than genarch generating one. A couple of things in that file will<br>
+ not be as accurate as using genarch, but those are rare, and almost<br>
+ certainly for outdated systems (such as whether floats use IEEE<br>
+ representation).<br>
+<br>
+ Better documentation to follow, but as an example, building for Android would<br>
+ work with:<br>
+<br>
+ ./configure --host=arm-linux-gnu --build=x86_64-linux-gnu \<br>
+ CC=/opt/android-ndk-r10e/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc \<br>
+ CFLAGS=&quot;--sysroot=/home/cliddell/bin/android-ndk-r10e/platforms/android-18/arch-arm -MMD -MP -MF -fpic \<br>
+ -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp \<br>
+ -mfpu=vfpv3-d16 -mthumb -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Wa,--noexecstack&quot; LDFLAGS=&quot; \<br>
+ --sysroot=/home/cliddell/bin/android-ndk-r10e/platforms/android-18/arch-arm -MMD -MP -MF -fpic -ffunction-sections \<br>
+ -funwind-tables -fstack-protector -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb \<br>
+ -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Wa,--noexecstack&quot; CCAUX=gcc CFLAGSAUX=&quot; &quot;<br>
+<br>
+.gitignore<br>
+Makefile.in<br>
+arch/arch_autoconf.h.in<br>
+base/gsroprun.c<br>
+base/unix-aux.mak<br>
+base/unix-end.mak<br>
+configure.ac<br>
+xps/xps.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-20 16:45:09 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0845a1c90f7a22a5b50fddbf7809d985b98290cd">0845a1c90f7a22a5b50fddbf7809d985b98290cd</a>
+<blockquote>
+<p>
+ Bug 697144: Fix radialshade1.ps<br>
+<br>
+ When filling a radial shading, we form 4 tensor patches, one for<br>
+ each quadrant. The points for these are represented as poles of<br>
+ the tensor patches as p-&gt;poles[v][u].<br>
+<br>
+ One quadrant might look like (excuse the ascii art)<br>
+<br>
+ J I H G p-&gt;poles[0][0] = A p-&gt;poles[3][0] = J<br>
+ F p-&gt;poles[0][1] = B p-&gt;poles[2][0] = K<br>
+ K ED p-&gt;poles[0][2] = C p-&gt;poles[1][0] = L<br>
+ p-&gt;poles[0][3] = D<br>
+ C p-&gt;poles[1][3] = E (plus 4 more points<br>
+ p-&gt;poles[2][3] = F internal to the<br>
+ B p-&gt;poles[3][3] = G patch, not shown<br>
+ p-&gt;poles[3][2] = H here)<br>
+ L A p-&gt;poles[3][1] = I<br>
+<br>
+ Thus 'u' controls how far along the radius of the radial shading<br>
+ we are, and 'v' controls how far 'around' the shading we are.<br>
+<br>
+ The shading code first subdivides the patch on v (using the<br>
+ split_patch routine). This gives us a succession of slices running<br>
+ from the centre of the radial fill to the outside (like slices of<br>
+ pizza).<br>
+<br>
+ It then subdivides these slices (using split_slice) to give small<br>
+ quadrangles to fill.<br>
+<br>
+ The code then checks to see whether these quadrangles need to be<br>
+ further divided by checking to see whether the color change across<br>
+ such quadrangles is monotonic or not. If it is, and the quadrangles<br>
+ are 'not big' (for some definition of big) then it is considered<br>
+ reasonable to fill them using a linear fill.<br>
+<br>
+ For simple radial fills, the color changes across 'u' not 'v'.<br>
+ We thefore check for the color change in the given range to see<br>
+ if it is monotonic, and if it not, we divide the patch.<br>
+<br>
+ As part of the work for bug 689189 (see commit 36375961a02091)<br>
+ Igor had identified some uses of the radial fill code where the<br>
+ tensor patches are constructed such that the color varies across<br>
+ 'v' rather than 'u', and had therefore amended the code so allow<br>
+ for this.<br>
+<br>
+ Unfortunately the setup for this appears to have got it wrong<br>
+ for the normal radial case. Fixing that here solves the problem.<br>
+<br>
+base/gxshade1.c<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-20 11:45:54 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cca05810721874cabcc377615cac050bd775ed37">cca05810721874cabcc377615cac050bd775ed37</a>
+<blockquote>
+<p>
+ Add -dNoSeparationFiles to tiffsep device<br>
+<br>
+ If -dNoSeparationFiles is specified when using the tiffsep<br>
+ device, only the composite file will be created, no<br>
+ separations are created in this case.<br>
+<br>
+devices/gdevtsep.c<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-17 16:34:14 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6d1822faa68c17b945aea2713985b7095ca424aa">6d1822faa68c17b945aea2713985b7095ca424aa</a>
+<blockquote>
+<p>
+ ASAN segfault: add missing pointer to pclxl_image_enum_t gc info<br>
+<br>
+ The pclxl_image_enum_t stores a pointer to an icclink which is allocated in gc<br>
+ memory, so the garbager needs to know about that.<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-17 15:14:54 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e6460567fcec3b4c96dd4912e556e3b846adaef2">e6460567fcec3b4c96dd4912e556e3b846adaef2</a>
+<blockquote>
+<p>
+ Refine SAFER file access permissions<br>
+<br>
+ SAFER (amongst other things) is to stop arbitrary file accesses on the host<br>
+ system (in Postscript terms '%os%....') but it should not limit access to<br>
+ other Postscript devices (most importantly '%rom%').<br>
+<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-17 16:21:30 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ed425fcd620837bf63a18a3ee2a2202fa91b1207">ed425fcd620837bf63a18a3ee2a2202fa91b1207</a>
+<blockquote>
+<p>
+ Add -sPostRenderICCProfile support to tiffsep<br>
+<br>
+ Customer would like to have this capability.<br>
+<br>
+devices/devs.mak<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-17 20:10:46 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=937efa62c23c2c79c7487895421041896e8c14b7">937efa62c23c2c79c7487895421041896e8c14b7</a>
+<blockquote>
+<p>
+ Fix previous JPEG commit.<br>
+<br>
+ The previous commit did not even compile. I have no idea how<br>
+ I managed to get that to pass the tests I ran!<br>
+<br>
+ Apologies.<br>
+<br>
+devices/gdevjpeg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-17 18:11:08 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6f14fb471faedbe9657d32743dba609ddd3a0465">6f14fb471faedbe9657d32743dba609ddd3a0465</a>
+<blockquote>
+<p>
+ Add Downscaler functionality to jpeg devices.<br>
+<br>
+devices/gdevjpeg.c<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-12 14:15:50 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=910f459d535cec757b8e5f541dd39be6fa2fb0c9">910f459d535cec757b8e5f541dd39be6fa2fb0c9</a>
+<blockquote>
+<p>
+ Bug 697012: Fix buffer overflow in gxps.<br>
+<br>
+ Port back same fix already applied to muxps.<br>
+<br>
+xps/xpsglyphs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-17 10:03:53 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9388ecefe9d8659d8434aa78d07a1fa247c8ea4e">9388ecefe9d8659d8434aa78d07a1fa247c8ea4e</a>
+<blockquote>
+<p>
+ Rework openjpeg subsampled decode.<br>
+<br>
+ The current code performs the yuv -&gt; rgb step on the data<br>
+ within openjpegs buffers. Unfortunately, this means that<br>
+ subsampled data is &quot;expanded&quot; into rgb, converted, and then<br>
+ redecimated. The R plane stays intact, and the G and the B<br>
+ are degraded. The code is then desubsampled again when copying<br>
+ out into the stream, but the damage has been done.<br>
+<br>
+ This gives awful results.<br>
+<br>
+ Instead here, we simplify the code to decode a row at a time<br>
+ into a row buffer. We then convert that row buffer to rgb, and<br>
+ copy that out. We never redecimate the output.<br>
+<br>
+ This looks much better.<br>
+<br>
+base/sjpx_openjpeg.c<br>
+base/sjpx_openjpeg.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-16 11:36:34 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=08b3f4a91fc65f36da13dfb02a1273c70638c6af">08b3f4a91fc65f36da13dfb02a1273c70638c6af</a>
+<blockquote>
+<p>
+ Bug 697217(4): deal with negative index in context ops<br>
+<br>
+ In this case the join operator was being passed a negative index.<br>
+<br>
+psi/zcontext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-16 11:30:36 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a7a8b148c368d313f913c23a754e14394d6fb5a1">a7a8b148c368d313f913c23a754e14394d6fb5a1</a>
+<blockquote>
+<p>
+ Bug 697217(3): guard against stack underflow in debug info dump<br>
+<br>
+ In the event of an error exit, we dump out the contents of the stacks.<br>
+<br>
+ *But* in the event of an error, we can already be into the &quot;guard&quot; entries<br>
+ below the bottom of the normal operand stack - so protect against that<br>
+ when dumping out the stack.<br>
+<br>
+psi/idebug.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-16 13:11:46 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=86ea41068f8ee8930aa169ad3a106db4f7d6c7db">86ea41068f8ee8930aa169ad3a106db4f7d6c7db</a>
+<blockquote>
+<p>
+ Bug 697217(2): cleanup exec stack on currentcolor* error<br>
+<br>
+ If an error occurs when retrieving currentcolor values, we have to clean up<br>
+ the exec stack before returning the error.<br>
+<br>
+psi/zcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-16 11:18:43 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=060cfdc002d29158d9d7f6c5fb15f187c165d408">060cfdc002d29158d9d7f6c5fb15f187c165d408</a>
+<blockquote>
+<p>
+ Bug 697217(1): Match signs when checking lengths in binary sequences<br>
+<br>
+psi/iscanbin.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-14 15:50: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=1f6581f9b77868b56a2f6269f3d1440c9eaad8b0">1f6581f9b77868b56a2f6269f3d1440c9eaad8b0</a>
+<blockquote>
+<p>
+ Bug 692721: remove SMask specific stuff from form dict<br>
+<br>
+ When we get an SMask group, we have to store the graphics state and the contents<br>
+ of the ExtGState, and reset all that before we execute the content stream<br>
+ for the group XObject. So it all gets setup in the correct place, that<br>
+ information needs to be added to the group's form dictionary.<br>
+<br>
+ It turns out we also need to *remove* these entries from the group's form<br>
+ dictionary, in case it gets reused as a normal for XObject.<br>
+<br>
+ The gstate and extended gstate values remain in the SMask parameter dictionary,<br>
+ so any reuse of the SMask will still work correctly.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-14 08:38:29 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3bf51ac09d8759761057bbf1817434415616258e">3bf51ac09d8759761057bbf1817434415616258e</a>
+<blockquote>
+<p>
+ pdfwrite - fix SMask handling, when painting with a Pattern<br>
+<br>
+ Bug #697212 &quot;Error in SMask during ExtGState&quot;<br>
+<br>
+ The title is misleading, the error occurs with a Pattern, but there must<br>
+ be an SMask preceding it. This appears to have been a very long-standing<br>
+ problem in the code, but it was hidden by ignoring an error return code.<br>
+ Fixing Coverity reports meant that the return code was actioned, and that<br>
+ is what revealed the problem.<br>
+<br>
+ When we start a new substream to capture a Pattern PaintProc we need to<br>
+ reset the 'soft_mask_id' (the ID assigned to the SMask pdfwrite has<br>
+ created) in the graphics state. If we don't do that then the code (in<br>
+ effect) tries to handle the SMask twice, once for the correct stream<br>
+ and once for the pattern PaintProc stream, and this results in the<br>
+ stack of pdfwrite internal gstate copies becoming unsynchronised, as well<br>
+ as creating a PDF file with unbalanced q/Q operators.<br>
+<br>
+ Ignoring the return code had masked this problem.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-13 16:47:47 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=84fec37351ebd502c70ac16347fae4b1b5f5cbe6">84fec37351ebd502c70ac16347fae4b1b5f5cbe6</a>
+<blockquote>
+<p>
+ Fix for Bug 695154<br>
+<br>
+ The pngalpha device should really have its separable_and_linear setting<br>
+ set to GX_CINFO_UNKNOWN_SEP_LIN. In this case, the device will get its shifting<br>
+ and mask color info settings set up and in this case the gradient<br>
+ code will actually work in the manner to which it is designed.<br>
+<br>
+devices/gdevpng.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-12 11:02:09 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=06add83a38437ccd2e7f0f1deb5e2d7bc7a8546d">06add83a38437ccd2e7f0f1deb5e2d7bc7a8546d</a>
+<blockquote>
+<p>
+ Bug 695340. Avoid NULL dereferences<br>
+<br>
+base/gsptype1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-09 08:22:03 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6d5b4ffeb00f50faf45b72191d38dea422f28405">6d5b4ffeb00f50faf45b72191d38dea422f28405</a>
+<blockquote>
+<p>
+ Bug 694189 catch NULL of pinst<br>
+<br>
+ If an error occurs and we dig through the saved<br>
+ gstates to find the pattern but come up empty<br>
+ then return an error<br>
+<br>
+psi/zpcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-11 11:16:59 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=62e787ce74c5c22aaba9377a709bc06217bd46f8">62e787ce74c5c22aaba9377a709bc06217bd46f8</a>
+<blockquote>
+<p>
+ Fix Bug 696866: patterns need to set color_usage.or over the entire area<br>
+<br>
+ Thanks to Michael Vrhel for the simplified file and suggesting the cause of<br>
+ the problem.<br>
+<br>
+base/gxclpath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-11 16:07: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=a48d5240229d2a5cf9413ff2a425c40e2db03b8e">a48d5240229d2a5cf9413ff2a425c40e2db03b8e</a>
+<blockquote>
+<p>
+ xpswrite: Add color space to enumerated pointers<br>
+<br>
+ In the xps_image_enum_s the pointer to the color space (pcs) was not<br>
+ declared to the garbage collector, so could end up moving with the<br>
+ object being updated.<br>
+<br>
+ Caused a segfault spotted in the weekly regression test (for EPSCrop, but<br>
+ that's not relevant)<br>
+<br>
+devices/vector/gdevxps.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-10 14:03:51 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a34f71c530409a559c4cb35cb1a23296541d53c3">a34f71c530409a559c4cb35cb1a23296541d53c3</a>
+<blockquote>
+<p>
+ Fix Bug 696864: Use Default colorspaces when processing SMask<br>
+<br>
+ This is done by saving the OverrideICC user parameter before setting the<br>
+ colorspace, etc. so as to ignore the ICC profile, which may have a gamma<br>
+ that we don't expect, and restore it after the SMask has been rendered.<br>
+ Note this file rendered correctly with -dOverrideICC on the command line,<br>
+ but this patch automatically applies that during execmaskgroup.<br>
+<br>
+ Thanks to Michael Vrhel for identifying the problem and coming up with a<br>
+ simplified test case.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-08 17:27:34 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a87e380acd5e326f7d4e4380348bac393fac3058">a87e380acd5e326f7d4e4380348bac393fac3058</a>
+<blockquote>
+<p>
+ Remove the appledmp, iwlo, iwhi, iwlq devices<br>
+<br>
+base/unix-gcc.mak<br>
+configure.ac<br>
+devices/contrib.mak<br>
+devices/gdevadmp.c<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-07 15:52:42 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad13de0b7a11675f34a29a03d1597a780da54851">ad13de0b7a11675f34a29a03d1597a780da54851</a>
+<blockquote>
+<p>
+ Update docs to reflect removal mswindll device<br>
+<br>
+doc/DLL.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-07 15:38:14 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0f5118c432d4f17d8038871691517d84ce01918">e0f5118c432d4f17d8038871691517d84ce01918</a>
+<blockquote>
+<p>
+ Remove the os2prn device<br>
+<br>
+base/pcwin.mak<br>
+devices/devs.mak<br>
+devices/gdevos2p.c<br>
+doc/Develop.htm<br>
+psi/os2.mak<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-07 15:31:06 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5be37082980552a9d8a21b70a7ee93fbf4320e8f">5be37082980552a9d8a21b70a7ee93fbf4320e8f</a>
+<blockquote>
+<p>
+ Remove the mswindll and mswin devices<br>
+<br>
+ As well as the (long non-functional/non-useful) Windows &quot;xfont&quot; code.<br>
+<br>
+base/pcwin.mak<br>
+devices/devs.mak<br>
+devices/gdevmswn.c<br>
+devices/gdevmswn.h<br>
+devices/gdevmsxf.c<br>
+devices/gdevwddb.c<br>
+devices/gdevwdib.c<br>
+devices/gdevwprn.c<br>
+doc/DLL.htm<br>
+doc/Develop.htm<br>
+psi/gsdll32.def<br>
+psi/gsdll32metro.def<br>
+psi/gsdll32w.lnk<br>
+psi/gsdll64.def<br>
+psi/gsdll64metro.def<br>
+psi/gsdllARM32metro.def<br>
+psi/msvc.mak<br>
+toolbin/pre.chk<br>
+toolbin/tests/check_comments.py<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-07 15:07: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=ff59e2a9f86a4476aa67b5e768811fe43b0b4f0c">ff59e2a9f86a4476aa67b5e768811fe43b0b4f0c</a>
+<blockquote>
+<p>
+ Remove the macos device<br>
+<br>
+devices/gdevmac.c<br>
+devices/gdevmac.h<br>
+devices/gdevmacpictop.h<br>
+devices/gdevmacttf.h<br>
+doc/Develop.htm<br>
+toolbin/tests/check_comments.py<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-07 15:01:26 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c0d6e66d219006acfa3201963a0a7123dce3cc9">6c0d6e66d219006acfa3201963a0a7123dce3cc9</a>
+<blockquote>
+<p>
+ Remove sgirgb device<br>
+<br>
+base/unix-gcc.mak<br>
+configure.ac<br>
+devices/contrib.mak<br>
+devices/gdevsgi.c<br>
+devices/gdevsgi.h<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 15:05:23 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fa981020ef9f96cb2d4d92bd48da81b025bc267a">fa981020ef9f96cb2d4d92bd48da81b025bc267a</a>
+<blockquote>
+<p>
+ Remove the various &quot;vga&quot; devices<br>
+<br>
+devices/devs.mak<br>
+devices/gdevevga.c<br>
+devices/gdevpcfb.c<br>
+devices/gdevpcfb.h<br>
+devices/gdevs3ga.c<br>
+devices/gdevsco.c<br>
+devices/gdevsvga.h<br>
+doc/Develop.htm<br>
+toolbin/pre.chk<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:52:09 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3488db574bf6d7291f51180395da9aa7fd6816cc">3488db574bf6d7291f51180395da9aa7fd6816cc</a>
+<blockquote>
+<p>
+ Remove svga device(s)<br>
+<br>
+devices/devs.mak<br>
+devices/gdevsvga.c<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:40:14 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=323a1cb0e1fbd96bed87f818874f51543b286949">323a1cb0e1fbd96bed87f818874f51543b286949</a>
+<blockquote>
+<p>
+ Remove the sunview device<br>
+<br>
+devices/contrib.mak<br>
+devices/gdevsun.c<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:37:29 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=74aa1c0b1f71f59f866c800bd698712cdb5c9405">74aa1c0b1f71f59f866c800bd698712cdb5c9405</a>
+<blockquote>
+<p>
+ Remove the sunhmono device<br>
+<br>
+base/unix-gcc.mak<br>
+configure.ac<br>
+devices/contrib.mak<br>
+devices/gdevsunr.c<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:32:43 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4010f1e52592197537e1af639fe3228b8b5fc727">4010f1e52592197537e1af639fe3228b8b5fc727</a>
+<blockquote>
+<p>
+ Remove sparc (printer) device<br>
+<br>
+devices/contrib.mak<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:28: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=5c6b4d035b6c8c3466e77bc4a581732659d3687e">5c6b4d035b6c8c3466e77bc4a581732659d3687e</a>
+<blockquote>
+<p>
+ Remove the att3b1 device<br>
+<br>
+configure.ac<br>
+devices/contrib.mak<br>
+devices/gdev3b1.c<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:25: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=6e98f2159d615b4bedd6e5d83c95a511d4f9ea6f">6e98f2159d615b4bedd6e5d83c95a511d4f9ea6f</a>
+<blockquote>
+<p>
+ Remove the herc device<br>
+<br>
+devices/contrib.mak<br>
+devices/gdevherc.c<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:16:48 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8901d9044df836f9ee8988f1ce9f6bbebbc6c314">8901d9044df836f9ee8988f1ce9f6bbebbc6c314</a>
+<blockquote>
+<p>
+ Remove lvga256 device<br>
+<br>
+devices/devs.mak<br>
+devices/gdevl256.c<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:09: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=a6b63be35e0278b4018863cf9b197e90686cc374">a6b63be35e0278b4018863cf9b197e90686cc374</a>
+<blockquote>
+<p>
+ Remove the s3ga device<br>
+<br>
+devices/devs.mak<br>
+doc/Develop.htm<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 14:04:23 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=461b6c19ab09b19ac436b6ccba234f36ad70c197">461b6c19ab09b19ac436b6ccba234f36ad70c197</a>
+<blockquote>
+<p>
+ Remove vgalib device<br>
+<br>
+devices/devs.mak<br>
+devices/gdevvglb.c<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 13:47:19 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f659ff57a2e3fa011255569dcdf54cc825aaa9af">f659ff57a2e3fa011255569dcdf54cc825aaa9af</a>
+<blockquote>
+<p>
+ Remove omni device<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+contrib/contrib.mak<br>
+contrib/defs.h<br>
+contrib/gomni.c<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 13:43:59 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ec346cc09daada7c16e7213be154e86f644c6d04">ec346cc09daada7c16e7213be154e86f644c6d04</a>
+<blockquote>
+<p>
+ Remove mag16 and mag256 devices<br>
+<br>
+configure.ac<br>
+contrib/contrib.mak<br>
+contrib/japanese/gdevmag.c<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-06 13:05: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=c0448269dd1928b2aff0307ed1206118f329af14">c0448269dd1928b2aff0307ed1206118f329af14</a>
+<blockquote>
+<p>
+ Remove the moribund Mac Classic specific files.<br>
+<br>
+base/gp_mac.c<br>
+base/gp_mac.h<br>
+base/gp_macio.c<br>
+base/gp_macpoll.c<br>
+base/macos-mcp.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-10 09:45: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=ed539f1b8d29b2f03cd22ac2d54ee9036000d565">ed539f1b8d29b2f03cd22ac2d54ee9036000d565</a>
+<blockquote>
+<p>
+ Remove doc sections about making SAFER the default<br>
+<br>
+man/gs.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-10 09:40:31 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7119a01ae110a4c81b002f86464e684259626b30">7119a01ae110a4c81b002f86464e684259626b30</a>
+<blockquote>
+<p>
+ Remove from the documentation the stated intention to make -dSAFER the<br>
+ default.<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-10 08:45:46 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9572484beac8fda920cbca3f6c6d09a5dc424825">9572484beac8fda920cbca3f6c6d09a5dc424825</a>
+<blockquote>
+<p>
+ Fix pdfmark argument validation<br>
+<br>
+ This doesn't fit neatly into any category, its a PostScript 'operator'<br>
+ but it is only implemented for the pdfwrite device...<br>
+<br>
+ The pdfmark operator takes a mark, a series of arguments and a name<br>
+ object. Zero argument sis valid, but the absence of a name object is<br>
+ not. We weren't checking for the absence of a name object, or<br>
+ validating its type.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/gs_pdfwr.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-10 08:09: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=ec6ba697311d2424189583f8fc26d373a584a4ce">ec6ba697311d2424189583f8fc26d373a584a4ce</a>
+<blockquote>
+<p>
+ Coverity ID 137703 - remove some dead code<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-08 16:35:39 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b60d50b7567369ad856cebe1efb6cd7dd2284219">b60d50b7567369ad856cebe1efb6cd7dd2284219</a>
+<blockquote>
+<p>
+ Bug 697193: status operator honour SAFER option<br>
+<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-08 16:18:25 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4ea759bbd40746410fb2beb82e3ba9ebb6788107">4ea759bbd40746410fb2beb82e3ba9ebb6788107</a>
+<blockquote>
+<p>
+ Bug 697204: fully init lock object<br>
+<br>
+ The scheduler field (which is relocatable) was not being initialisedm causing a<br>
+ segfault in teh garbage collector<br>
+<br>
+psi/zcontext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-08 16:10: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=f5c7555c30393e64ec1f5ab0dfae5b55b3b3fc78">f5c7555c30393e64ec1f5ab0dfae5b55b3b3fc78</a>
+<blockquote>
+<p>
+ Bug 697203: check for sufficient params in .sethalftone5<br>
+<br>
+ and param types<br>
+<br>
+psi/zht2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-08 16:01:12 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a5360401495654e89301b2516703c1d2877fc5ba">a5360401495654e89301b2516703c1d2877fc5ba</a>
+<blockquote>
+<p>
+ Check for NULL return from memory allocation<br>
+<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-05 09:36:33 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f3de2191afc0d8fcf0285736d2d25fa6071a7981">f3de2191afc0d8fcf0285736d2d25fa6071a7981</a>
+<blockquote>
+<p>
+ Bug 696860 remove memcmp of structs in gscrdp.c<br>
+<br>
+base/gscie.c<br>
+base/gscie.h<br>
+base/gscrdp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-05 09:59:25 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6f749c0c44e7b9e09737b9f29edf29925a34f0cf">6f749c0c44e7b9e09737b9f29edf29925a34f0cf</a>
+<blockquote>
+<p>
+ Bug 697179: Reference count device icc profile<br>
+<br>
+ when copying a device<br>
+<br>
+base/gsdevice.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-05 09:55: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=6d444c273da5499a4cd72f21cb6d4c9a5256807d">6d444c273da5499a4cd72f21cb6d4c9a5256807d</a>
+<blockquote>
+<p>
+ Bug 697178: Add a file permissions callback<br>
+<br>
+ For the rare occasions when the graphics library directly opens a file<br>
+ (currently for reading), this allows us to apply any restrictions on<br>
+ file access normally applied in the interpteter.<br>
+<br>
+base/gsicc_manage.c<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+psi/imain.c<br>
+psi/int.mak<br>
+psi/zfile.c<br>
+psi/zfile.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-03 01:46:28 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8abd22010eb4db0fb1b10e430d5f5d83e015ef70">8abd22010eb4db0fb1b10e430d5f5d83e015ef70</a>
+<blockquote>
+<p>
+ Bug 697169: Be rigorous with SAFER permissions<br>
+<br>
+ Once we've opened our input file from the command line, enforce the SAFER<br>
+ rules.<br>
+<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-19 08:43:35 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d609a3d4c1b8583d1c22db6b4d3bce4b239cf88c">d609a3d4c1b8583d1c22db6b4d3bce4b239cf88c</a>
+<blockquote>
+<p>
+ Use ToUnicode for substituted CIDFonts<br>
+<br>
+ When we substitute a CIDFont in a PDF file with a TTF from disk, use the<br>
+ ToUnicode CMap (if available) to extract Unicode values. In a lot of case, this<br>
+ gets a more accurate character code to glyph mapping than the previous reliance<br>
+ on the low level glyph ordering from the TTF.<br>
+<br>
+ This also meant being more robust for broken ToUnicode CMap. Also, an additional<br>
+ option (-dIgnoreToUnicode) to skip parsing of the ToUnicode CMap - for cases<br>
+ where a correctly formed ToUnicode is semantically wrong.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+base/gstext.c<br>
+base/gxfapi.c<br>
+base/gxfapi.h<br>
+pcl/pl/plfapi.c<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-05 08:32:39 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3089131dc90ec008ff540d41df0f1a9fbc2dd47b">3089131dc90ec008ff540d41df0f1a9fbc2dd47b</a>
+<blockquote>
+<p>
+ Bug 696859 memcmp of struct removal in gscrd.c<br>
+<br>
+base/gscrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-05 13:15: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=799531ffc1240933786cd2121add9d7e3cba778e">799531ffc1240933786cd2121add9d7e3cba778e</a>
+<blockquote>
+<p>
+ Coverity ID 137283 - pdfwrite - remove some redundant code<br>
+<br>
+ I had left some code that catered for a UTF16 surrogate pair promoted to<br>
+ UTF32, converting the result to UTF8. But I didn't implement the UTF32<br>
+ promotion, leaving it as a potential future enhancement.<br>
+<br>
+ However, Coverity whinges about the test always being true, so here<br>
+ just remove the code. Its trivial enough to add in if we ever need it.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-05 10:10:58 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=875a0095f37626a721c7ff57d606a0f95af03913">875a0095f37626a721c7ff57d606a0f95af03913</a>
+<blockquote>
+<p>
+ DSC parser - validate parameters<br>
+<br>
+ Bug #697190 &quot;.initialize_dsc_parser doesn't validate the parameter is a dict type before using it.&quot;<br>
+<br>
+ Regardless of any security implications, its simply wrong for a PostScript<br>
+ operator not to validate its parameter(s).<br>
+<br>
+ No differences expected.<br>
+<br>
+psi/zdscpars.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-05 09:41:18 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aef8f6cfbff9080e4b9c54053bc909875c09a2be">aef8f6cfbff9080e4b9c54053bc909875c09a2be</a>
+<blockquote>
+<p>
+ Prevent dereference of NULL device method<br>
+<br>
+ Bug #697189 &quot;.gethardwareparams crashes with any special device&quot;<br>
+<br>
+ Another NULL device method problem. As noted previously, the original<br>
+ design intended that device methods should never be NULL, but this<br>
+ has been ignored over the years leading to the current mess of some<br>
+ methods being NULL accidentally, some being NULL deliberately and<br>
+ having different effects when NULL, and some methods never being NULL.<br>
+<br>
+ While I do still intend to try and rectify this one day, in the meantime<br>
+ add a check to make sure the method is not NULL before trying to<br>
+ execute it in this case.<br>
+<br>
+ No differences expected<br>
+<br>
+base/gsdparam.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-04 16:24:13 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=36a2c94c4ebea8aa1c9cb2ca98e124a5b363000e">36a2c94c4ebea8aa1c9cb2ca98e124a5b363000e</a>
+<blockquote>
+<p>
+ Fix misplace parenthesis and missing const<br>
+<br>
+base/gdevdevn.c<br>
+base/gscie.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-04 15:54:56 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e4ab4499f9f33c51cdb95020c99cf0f4f1e6ee77">e4ab4499f9f33c51cdb95020c99cf0f4f1e6ee77</a>
+<blockquote>
+<p>
+ Bug 696858 remove memcmp struct in gscie.c<br>
+<br>
+base/gscie.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-04 14:39:54 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e9a339b766fb7a4d791c5ba1d85bdd24e6dbbaa">2e9a339b766fb7a4d791c5ba1d85bdd24e6dbbaa</a>
+<blockquote>
+<p>
+ Bug 696854 remove memcmp of structs in gdevdevn.c<br>
+<br>
+base/gdevdevn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-04 12:04:03 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4fd414107c5b36419896a9c46956cb254adf201f">4fd414107c5b36419896a9c46956cb254adf201f</a>
+<blockquote>
+<p>
+ Bug 696862 remove memcmp() color info structure<br>
+<br>
+base/gsdevice.c<br>
+base/gxclpage.c<br>
+base/gxdevcli.h<br>
+base/gximage2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-10-03 16:21:49 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a8642064fe21752b00e28d05483baca029fe0891">a8642064fe21752b00e28d05483baca029fe0891</a>
+<blockquote>
+<p>
+ pdfwrite - fix ToUnicode CMap sequence consolidation<br>
+<br>
+ Bug #697176 &quot;ToUnicode CMap generation broken in 9.20&quot;<br>
+<br>
+ The reworking to handle the current version of ToUnicode CMap missed<br>
+ a case where the size of a code pair had changed. This led to a loop<br>
+ comparing incorrect values, instead of comparing two consecutive<br>
+ values, it compared a value with one much earlier.<br>
+<br>
+ In general this led to a loss of efficient, causing us to emit two or<br>
+ more entries when it was possible to emit a single range. However in the<br>
+ rare case when the comparison happened to compare two values that were<br>
+ consecutive, but shouldn't have been, this led to us writing an incorrect<br>
+ ToUnicode CMap.<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gsfcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-29 21:57:20 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=309edf631cf1160087ede69384f502aa1d64006c">309edf631cf1160087ede69384f502aa1d64006c</a>
+<blockquote>
+<p>
+ pdfwrite - Fix handling of Separation /All alternate space conversion<br>
+<br>
+ Bug #697118 &quot;Separation colorspace is not converted correctly by pdfwrite&quot;<br>
+<br>
+ The /All Separation space wasn't getting the components of the tint<br>
+ transform colour space correctly set. For rendering we never need to<br>
+ do that, and simply set the relevant component of the Separation<br>
+ (or DeviceN) space to be the tint value.<br>
+<br>
+ This commit forces the CMS to run the tint transform when we need to<br>
+ create a new, different, alternate for the Separation space.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-29 19:22: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=727aeab76c39026722e3e492a30ae2f7c218c1ec">727aeab76c39026722e3e492a30ae2f7c218c1ec</a>
+<blockquote>
+<p>
+ Fix UTF16 surrogate pair detection<br>
+<br>
+ Flagged by clang, the use of a short would fail to detect surrogate<br>
+ pairs, this shuold be an unsigned short.<br>
+<br>
+ Bizarrely this worked as expected on Windows, I have no idea how.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-29 17:35:05 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=273a133110838ee5702e7eb6409a853c598211b2">273a133110838ee5702e7eb6409a853c598211b2</a>
+<blockquote>
+<p>
+ Remove (and re-implement) ConvertUTF.c<br>
+<br>
+ Bug #697122 &quot; embedded ConvertUTF.c is buggy and licensed incompatibly with GPL/APGL&quot;<br>
+<br>
+ Its not clear that this code is incompatible with GPL, nor do we think<br>
+ any 'bugginess' in the code affects us, since we are using a comparatively<br>
+ small part of the included code.<br>
+<br>
+ Nevertheless its possible to remove the code, and re-implement the small<br>
+ part we actually need, and that is done here.<br>
+<br>
+ Also removed the DSCEncodingToUnicode option which was insanely difficult<br>
+ to use, and incorrectly documented.<br>
+<br>
+ Yhis shows one difference, 692486_-_heap_overflow_in_pdf_to_ucs2.pdf<br>
+ now correctly throws an error, because the PDF file contains document<br>
+ information (Application) which has an invalid UTF16-BE sequence.<br>
+<br>
+base/ConvertUTF.c<br>
+base/ConvertUTF.h<br>
+base/lib.mak<br>
+devices/devs.mak<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfe.c<br>
+devices/vector/gdevpdfp.c<br>
+devices/vector/gdevpdfx.h<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-27 17:07:02 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=27e01aa77d0cf1668f60d87cf7417c90bf309d1b">27e01aa77d0cf1668f60d87cf7417c90bf309d1b</a>
+<blockquote>
+<p>
+ Squash 2 warnings in the openjpeg code.<br>
+<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+openjpeg/src/lib/openjp2/thread.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-27 16:08:57 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9a78bfb8698061e22e3d460b8c15825992e44def">9a78bfb8698061e22e3d460b8c15825992e44def</a>
+<blockquote>
+<p>
+ Import new OpenJPEG version.<br>
+<br>
+ Squashed version of openjpeg-update-20160927<br>
+<br>
+ This squashes the following commits:<br>
+<br>
+ * Import new OpenJPEG version.<br>
+<br>
+ From https://github.com/uclouvain/openjpeg<br>
+<br>
+ Final commit is:<br>
+<br>
+ commit 34dae137a9a8c04feaa9763ae7e09a86ecb10400<br>
+ Author: Mathieu Malaterre &lt;mathieu.malaterre@gmail.com&gt;<br>
+ Date: Mon Sep 26 12:01:31 2016 +0200<br>
+<br>
+ OPENJPEG_NAMESPACE is configurable by user<br>
+<br>
+ * Zap the OpenJPEG stuff we don't need<br>
+<br>
+ * Add predefined openjpeg headers.<br>
+<br>
+ * Import patches from Sumatra's tree.<br>
+<br>
+ * Update Makefiles for new openjpeg<br>
+<br>
+ * Update MSVC for new files<br>
+<br>
+ * OpenJPEG allocation fixes.<br>
+<br>
+ The old version of openjpeg allocates using malloc/free.<br>
+<br>
+ The new version of openjpeg allocates via opj_malloc (and co).<br>
+<br>
+ We can capture these and pass them down to our own allocators,<br>
+ but we cannot get openjpeg to pass us a gs_memory_t * to use.<br>
+<br>
+ We therefore resort to using a static to hold 'the current<br>
+ gs_memory_t *' before we call openjpeg. To keep this threadsafe<br>
+ we add some private data to the gslibctx, which the openjpeg<br>
+ implementation can use to hold a lock.<br>
+<br>
+ We add calls to both jpx decode implementations to init this<br>
+ private data (where the luratech implementation is null).<br>
+<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+base/openjpeg.mak<br>
+base/sjpx_luratech.c<br>
+base/sjpx_openjpeg.c<br>
+openjpeg/AUTHORS<br>
+openjpeg/AUTHORS.md<br>
+openjpeg/CHANGELOG.md<br>
+openjpeg/CHANGES<br>
+openjpeg/NEWS<br>
+openjpeg/NEWS.md<br>
+openjpeg/THANKS<br>
+openjpeg/THANKS.md<br>
+openjpeg/src/lib/openjp2/CMakeLists.txt<br>
+openjpeg/src/lib/openjp2/bio.c<br>
+openjpeg/src/lib/openjp2/cidx_manager.c<br>
+openjpeg/src/lib/openjp2/cio.c<br>
+openjpeg/src/lib/openjp2/cio.h<br>
+openjpeg/src/lib/openjp2/dwt.c<br>
+openjpeg/src/lib/openjp2/dwt.h<br>
+openjpeg/src/lib/openjp2/event.h<br>
+openjpeg/src/lib/openjp2/function_list.c<br>
+openjpeg/src/lib/openjp2/function_list.h<br>
+openjpeg/src/lib/openjp2/image.c<br>
+openjpeg/src/lib/openjp2/indexbox_manager.h<br>
+openjpeg/src/lib/openjp2/invert.c<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+openjpeg/src/lib/openjp2/j2k.h<br>
+openjpeg/src/lib/openjp2/jp2.c<br>
+openjpeg/src/lib/openjp2/jp2.h<br>
+openjpeg/src/lib/openjp2/libopenjp2.pc.cmake.in<br>
+openjpeg/src/lib/openjp2/mct.c<br>
+openjpeg/src/lib/openjp2/mct.h<br>
+openjpeg/src/lib/openjp2/mqc.c<br>
+openjpeg/src/lib/openjp2/mqc.h<br>
+openjpeg/src/lib/openjp2/mqc_inl.h<br>
+openjpeg/src/lib/openjp2/openjpeg.c<br>
+openjpeg/src/lib/openjp2/openjpeg.h<br>
+openjpeg/src/lib/openjp2/opj_clock.c<br>
+openjpeg/src/lib/openjp2/opj_codec.h<br>
+openjpeg/src/lib/openjp2/opj_config.h.cmake.in<br>
+openjpeg/src/lib/openjp2/opj_config_private.h.cmake.in<br>
+openjpeg/src/lib/openjp2/opj_includes.h<br>
+openjpeg/src/lib/openjp2/opj_intmath.h<br>
+openjpeg/src/lib/openjp2/opj_malloc.c<br>
+openjpeg/src/lib/openjp2/opj_malloc.h<br>
+openjpeg/src/lib/openjp2/phix_manager.c<br>
+openjpeg/src/lib/openjp2/pi.c<br>
+openjpeg/src/lib/openjp2/pi.h<br>
+openjpeg/src/lib/openjp2/ppix_manager.c<br>
+openjpeg/src/lib/openjp2/raw.c<br>
+openjpeg/src/lib/openjp2/t1.c<br>
+openjpeg/src/lib/openjp2/t1.h<br>
+openjpeg/src/lib/openjp2/t1_generate_luts.c<br>
+openjpeg/src/lib/openjp2/t1_luts.h<br>
+openjpeg/src/lib/openjp2/t2.c<br>
+openjpeg/src/lib/openjp2/t2.h<br>
+openjpeg/src/lib/openjp2/tcd.c<br>
+openjpeg/src/lib/openjp2/tcd.h<br>
+openjpeg/src/lib/openjp2/tgt.c<br>
+openjpeg/src/lib/openjp2/tgt.h<br>
+openjpeg/src/lib/openjp2/thix_manager.c<br>
+openjpeg/src/lib/openjp2/thread.c<br>
+openjpeg/src/lib/openjp2/thread.h<br>
+openjpeg/src/lib/openjp2/tls_keys.h<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-27 11:22:18 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b4cc6d28e9a456a34a7348d98ff78ada9da727bb">b4cc6d28e9a456a34a7348d98ff78ada9da727bb</a>
+<blockquote>
+<p>
+ Add pre-processor define for shared OpenJPEG<br>
+<br>
+Makefile.in<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-23 17:17:19 -0300
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9e00367c3f598dc5e7b80d492e2b2d7321015fb3">9e00367c3f598dc5e7b80d492e2b2d7321015fb3</a>
+<blockquote>
+<p>
+ pxlcolor/pxlmono output devices: Make MediaPosition, ManualFeed, and MediaType work<br>
+<br>
+ In the pxlcolor and pxlmono output devices (for PCL-XL printers) the<br>
+ support for the attributes MediaPosition, ManualFeed, and MediaType<br>
+ got broken when ESP Ghostscript got merged into GPL Ghostscript (Bug<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-22 09:21:18 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c1a79c6ab5ffadde8e296cd3e0b9e52a87c4ef66">c1a79c6ab5ffadde8e296cd3e0b9e52a87c4ef66</a>
+<blockquote>
+<p>
+ Bug 697087: Apply PDF TTF rules when loading from disk<br>
+<br>
+ When we substitute a TTF from disk for a (non-embedded) TTF in a PDF, apply the<br>
+ same rules (if possible) as when reading a TTF embedded in a PDF. So, selection<br>
+ of cmap table, font encoding, whether or not to draw the notdef etc.<br>
+<br>
+ This applies *only* to fonts, *not* to CIDFonts.<br>
+<br>
+Resource/Init/gs_ttf.ps<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-22 15:24:45 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=abffa3e76c3e33b683333be329b39efaf762eca7">abffa3e76c3e33b683333be329b39efaf762eca7</a>
+<blockquote>
+<p>
+ Remove Android logging code.<br>
+<br>
+ Bow to protestations from my colleagues and move code into<br>
+ the caller. Probably nicer. If anyone ever needs the code they<br>
+ can grab it from git.<br>
+<br>
+ Revert &quot;Tweak android logging code logic.&quot;<br>
+ This reverts commit 4d08bfd98b5fcd7cd4c2bd5faf72ac9615354ee3.<br>
+<br>
+ Revert &quot;Add android logging code.&quot;<br>
+ This reverts commit 2c52876b77d348866941fb85f6d0349a51df0455.<br>
+<br>
+psi/iapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-21 16:22:48 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4d08bfd98b5fcd7cd4c2bd5faf72ac9615354ee3">4d08bfd98b5fcd7cd4c2bd5faf72ac9615354ee3</a>
+<blockquote>
+<p>
+ Tweak android logging code logic.<br>
+<br>
+ It seems we don't set NDEBUG in release builds for android.<br>
+ Revert to #ifdef DEBUG rather than #ifndef NDEBUG as a guard.<br>
+<br>
+psi/iapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-21 12:01:47 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2c52876b77d348866941fb85f6d0349a51df0455">2c52876b77d348866941fb85f6d0349a51df0455</a>
+<blockquote>
+<p>
+ Add android logging code.<br>
+<br>
+ Update stdio redirection so that stdout and stderr go to<br>
+ Android.log in DEBUG builds.<br>
+<br>
+psi/iapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 18:07:51 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1bd7f32d70549971b4a384c5865e1fd030f49f20">1bd7f32d70549971b4a384c5865e1fd030f49f20</a>
+<blockquote>
+<p>
+ Bug 697138: Fix --disable-sse2 to work with openjpeg<br>
+<br>
+ OpenJPEG enables it's SSE code based on the compiler defining __SSE__ so we<br>
+ want to undefine that if we're not using SSE operations.<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 19:57:14 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=20b0255206254ebcce1cde0a4a63d74b0aedcecf">20b0255206254ebcce1cde0a4a63d74b0aedcecf</a>
+<blockquote>
+<p>
+ Fix splay tree traversal (again)<br>
+<br>
+ When setting up a traversal from a midpoint of the tree, we'd<br>
+ immediately trip into the &quot;has hit the endpoint&quot; code.<br>
+<br>
+ Fix that.<br>
+<br>
+base/gsalloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 09:03:31 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e1153bf2d344044cd9fdfb7706f829b63348118">0e1153bf2d344044cd9fdfb7706f829b63348118</a>
+<blockquote>
+<p>
+ FitPage should not add in rotation if destination page is square.<br>
+<br>
+ If the PageSize was square, it would be treated as &quot;not landscape&quot;,<br>
+ but landscape pages in would be arbitrarily rotated.<br>
+<br>
+ Note this does not change the bahavior of PS or EPS page fitting.<br>
+ TBD: Add an option to fit to a page and never rotate (FitPageNR)<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 16:48:45 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=570041cc341557da8521fdace380f837cc572a69">570041cc341557da8521fdace380f837cc572a69</a>
+<blockquote>
+<p>
+ Fix Memento crash<br>
+<br>
+ When reallocing set the rawsize before attempting to write<br>
+ the post guard block.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 13:41:31 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3dd5f4c6b02179422bd8686fceed1f4955221d90">3dd5f4c6b02179422bd8686fceed1f4955221d90</a>
+<blockquote>
+<p>
+ Sync Memento with MuPDF.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 13:04:51 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4e01c57e0f0773e29bc6f921cfc677576e72739d">4e01c57e0f0773e29bc6f921cfc677576e72739d</a>
+<blockquote>
+<p>
+ Bug 697134: Tweak MEMENTO_GS_HACKS inclusion.<br>
+<br>
+ Rather than rolling our own memset prototype in this case, use<br>
+ the one that gs provides.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-16 15:23: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=1a0104084a4dfdff77165d931bdc87849c8ad824">1a0104084a4dfdff77165d931bdc87849c8ad824</a>
+<blockquote>
+<p>
+ Clump has_refs - follow up to commit 63f74ce6<br>
+<br>
+ The function save_set_new() (where the original fix for 'has_refs' is located)<br>
+ is called in two circumstances: when creating a save level, and when destroying<br>
+ a save level.<br>
+<br>
+ We have to retain the 'has_refs' value for the latter case for the garbager to<br>
+ function correctly, but doing so in the former results in the garbager<br>
+ sometimes scanning more memory than is really necessary (it can end up scanning<br>
+ ref memory from the previous save state, which is pointless since that cannot<br>
+ change).<br>
+<br>
+ This change means that 'has_refs == true' will only be retained in the<br>
+ 'destroying a save level' case (which works correctly because, by the time the<br>
+ function is called, we've already returned the relevant allocated to its<br>
+ previous state).<br>
+<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-15 14:14:35 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bfffe2011e1c8ffe53a432424b049f3989d6174a">bfffe2011e1c8ffe53a432424b049f3989d6174a</a>
+<blockquote>
+<p>
+ Fix bug 697097. SMask subpixel offset must match image offset.<br>
+<br>
+ The dda used to select the source pixel for mapping into the image<br>
+ must use the same stepping for gray (monochrome) and color images<br>
+ since an SMask is monochrome and the image may be in color. This is<br>
+ primarily evident with the bug file since Matte is used to indicate<br>
+ that the source data is premuliplied. Colors can shift a LOT since<br>
+ the removal of the premultiplication can expand mistaked.<br>
+<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 16:31:56 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5521e702af192e06f186d0d741f24097eb5b8e26">5521e702af192e06f186d0d741f24097eb5b8e26</a>
+<blockquote>
+<p>
+ PDF interpreter - fix for GSView 5<br>
+<br>
+ Commit 093bd18bd923644fcd25c507088c0ebc63b4c320 included an<br>
+ 'optimisation' to prevent rescanning for transparency if we had already<br>
+ scanned. However, this assumed that the function pdfshowpage_setup<br>
+ had already been executed in order to set a variable.<br>
+<br>
+ This is always true when running files via Ghostscript, but any<br>
+ application (such as GSView 5) which executes the PDF operations<br>
+ individually need not execute this function. If the function was not<br>
+ executed then an error occurred. From other comments in pdf_main.ps<br>
+ its possible that customers may be using these functions as well (see<br>
+ the comments above the definition of /pdfshowpage)<br>
+<br>
+ This commit checks to see if the variable has been set, if it has then<br>
+ it is used, otherwise we rescan for transparency. This prevents the<br>
+ error, but uses the optimisation if its possible to do so.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 10:28:43 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=04117ec705cfc89ce4bb4b451ba95af61b937fe0">04117ec705cfc89ce4bb4b451ba95af61b937fe0</a>
+<blockquote>
+<p>
+ Bump version number to 9.21<br>
+<br>
+Resource/Init/gs_init.ps<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-26 11: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=5deee306126e09f95e40e69fe04a7d26c842fb56">5deee306126e09f95e40e69fe04a7d26c842fb56</a>
+<blockquote>
+<p>
+ Update date and product string for 9.20 release<br>
+<br>
+base/gscdef.c<br>
+base/version.mak<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/sample_downscale_device.htm<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>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 20:33:21 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3263f33ba60aafe7b671d2c9b7a3b25fb39a7bee">3263f33ba60aafe7b671d2c9b7a3b25fb39a7bee</a>
+<blockquote>
+<p>
+ Changelog update for 9.20 RC2<br>
+<br>
+doc/History9.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 17:35: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=457cc95668fbf26cf9cf5e4ee10709ad8c8e2c58">457cc95668fbf26cf9cf5e4ee10709ad8c8e2c58</a>
+<blockquote>
+<p>
+ Fix a type in the release comments<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 12:14: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=eedf4c16032d2a8ec356705f28cee3fdbec248d2">eedf4c16032d2a8ec356705f28cee3fdbec248d2</a>
+<blockquote>
+<p>
+ Update News and changelog<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 10:40:36 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7658715de338f9cd3a62d44f7c503f81d03a3fae">7658715de338f9cd3a62d44f7c503f81d03a3fae</a>
+<blockquote>
+<p>
+ Copyrights, dates etc<br>
+<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/sample_downscale_device.htm<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/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 10:34: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=8749511b204f255740a1555520a9b1d7adcceacf">8749511b204f255740a1555520a9b1d7adcceacf</a>
+<blockquote>
+<p>
+ Change product family for RC<br>
+<br>
+ Plus dates<br>
+<br>
+base/gscdef.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 18:07:51 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65898de27797a835d2029676d4380b3c7806dc9e">65898de27797a835d2029676d4380b3c7806dc9e</a>
+<blockquote>
+<p>
+ Bug 697138: Fix --disable-sse2 to work with openjpeg<br>
+<br>
+ OpenJPEG enables it's SSE code based on the compiler defining __SSE__ so we<br>
+ want to undefine that if we're not using SSE operations.<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 19:57:14 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ed866d7ab135edebd9c53f52026426d403f53a49">ed866d7ab135edebd9c53f52026426d403f53a49</a>
+<blockquote>
+<p>
+ Fix splay tree traversal (again)<br>
+<br>
+ When setting up a traversal from a midpoint of the tree, we'd<br>
+ immediately trip into the &quot;has hit the endpoint&quot; code.<br>
+<br>
+ Fix that.<br>
+<br>
+base/gsalloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 09:03:31 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ba8a97dc6f67e044d567e38c68cfd5b785835615">ba8a97dc6f67e044d567e38c68cfd5b785835615</a>
+<blockquote>
+<p>
+ FitPage should not add in rotation if destination page is square.<br>
+<br>
+ If the PageSize was square, it would be treated as &quot;not landscape&quot;,<br>
+ but landscape pages in would be arbitrarily rotated.<br>
+<br>
+ Note this does not change the bahavior of PS or EPS page fitting.<br>
+ TBD: Add an option to fit to a page and never rotate (FitPageNR)<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 16:48:45 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=029f4ec2d6b8165b0cfff02173cde68edaebc108">029f4ec2d6b8165b0cfff02173cde68edaebc108</a>
+<blockquote>
+<p>
+ Fix Memento crash<br>
+<br>
+ When reallocing set the rawsize before attempting to write<br>
+ the post guard block.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 13:41:31 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5547040a0de52d588401ea9f1dfd20bc8168f455">5547040a0de52d588401ea9f1dfd20bc8168f455</a>
+<blockquote>
+<p>
+ Sync Memento with MuPDF.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 13:04:51 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f763382b616c35e9a021bde4e5347c1d67df5a0a">f763382b616c35e9a021bde4e5347c1d67df5a0a</a>
+<blockquote>
+<p>
+ Bug 697134: Tweak MEMENTO_GS_HACKS inclusion.<br>
+<br>
+ Rather than rolling our own memset prototype in this case, use<br>
+ the one that gs provides.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-16 15:23: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=c3c48bbdda6915abfe39b4a0de9978555fc071ba">c3c48bbdda6915abfe39b4a0de9978555fc071ba</a>
+<blockquote>
+<p>
+ Clump has_refs - follow up to commit 63f74ce6<br>
+<br>
+ The function save_set_new() (where the original fix for 'has_refs' is located)<br>
+ is called in two circumstances: when creating a save level, and when destroying<br>
+ a save level.<br>
+<br>
+ We have to retain the 'has_refs' value for the latter case for the garbager to<br>
+ function correctly, but doing so in the former results in the garbager<br>
+ sometimes scanning more memory than is really necessary (it can end up scanning<br>
+ ref memory from the previous save state, which is pointless since that cannot<br>
+ change).<br>
+<br>
+ This change means that 'has_refs == true' will only be retained in the<br>
+ 'destroying a save level' case (which works correctly because, by the time the<br>
+ function is called, we've already returned the relevant allocated to its<br>
+ previous state).<br>
+<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-15 14:14:35 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=974843fc7c06bc7354bd5f74f87a22014b0a1e16">974843fc7c06bc7354bd5f74f87a22014b0a1e16</a>
+<blockquote>
+<p>
+ Fix bug 697097. SMask subpixel offset must match image offset.<br>
+<br>
+ The dda used to select the source pixel for mapping into the image<br>
+ must use the same stepping for gray (monochrome) and color images<br>
+ since an SMask is monochrome and the image may be in color. This is<br>
+ primarily evident with the bug file since Matte is used to indicate<br>
+ that the source data is premuliplied. Colors can shift a LOT since<br>
+ the removal of the premultiplication can expand mistaked.<br>
+<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 16:31:56 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8079f5a688d54ba7ab5358d59a7773caa2176d23">8079f5a688d54ba7ab5358d59a7773caa2176d23</a>
+<blockquote>
+<p>
+ PDF interpreter - fix for GSView 5<br>
+<br>
+ Commit 093bd18bd923644fcd25c507088c0ebc63b4c320 included an<br>
+ 'optimisation' to prevent rescanning for transparency if we had already<br>
+ scanned. However, this assumed that the function pdfshowpage_setup<br>
+ had already been executed in order to set a variable.<br>
+<br>
+ This is always true when running files via Ghostscript, but any<br>
+ application (such as GSView 5) which executes the PDF operations<br>
+ individually need not execute this function. If the function was not<br>
+ executed then an error occurred. From other comments in pdf_main.ps<br>
+ its possible that customers may be using these functions as well (see<br>
+ the comments above the definition of /pdfshowpage)<br>
+<br>
+ This commit checks to see if the variable has been set, if it has then<br>
+ it is used, otherwise we rescan for transparency. This prevents the<br>
+ error, but uses the optimisation if its possible to do so.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<hr size=20>
+
<h2><a name="Version9.20"></a>Version 9.20 (2016-09-26)</h2>
<p>This is the fourteenth full release in the stable 9.x series, and is purely
diff --git a/doc/News.htm b/doc/News.htm
index 2b5e882de..ca525271b 100644
--- a/doc/News.htm
+++ b/doc/News.htm
@@ -56,14 +56,40 @@ overview</a>.
<!-- [2.0 begin contents] ================================================== -->
-<h2><a name="Version9.20"></a>Version 9.21 (2017-03-06)</h2>
+<h2><a name="Version9.21"></a>Version 9.21 (2017-03-06)</h2>
-<p>This is the fourteenth full release in the stable 9.x series, and is purely
-a maintenance release.
+<p>This is the fifteenth full release in the stable 9.x series.
<p> Highlights in this release include:
<ul>
<li>
+<p>pdfwrite now preserves annotations from input PDFs (where possible).
+</li>
+<li>
+<p>The GhostXPS interpreter now provides the pdfwrite device with the data
+it requires to emit a ToUnicode CMap: thus allowing fully searchable PDFs to
+be created from XPS input (in the vast majority of cases).
+</li>
+<li>
+<p>Ghostscript now allows the default color space for PDF transparency blends.
+</li>
+<li>
+<p>The Ghostscript/GhostPDL configure script now has much better/fuller support
+for cross compiling.
+</li>
+<li>
+<p>The tiffscaled and tiffscaled4 devices can now use ETS (Even Tone Screening)
+</li>
+<li>
+<p>The toolbin/pdf_info.ps utility can now emit the PDF XML metadata.
+</li>
+<li>
+<p>Ghostscript has a new scan converter available (currently optional, but will
+become the default in a near future release). It can be enabled by using the command
+line option: '-dSCANCONVERTERTYPE=2'. This new implementation provides vastly improved
+performance with large and complex paths.
+</li>
+<li>
<p>The usual round of bug fixes, compatibility changes, and incremental improvements.
</li>
</ul>
@@ -74,7 +100,7 @@ please visit <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a>.
<ul>
<li>
<p>
-The planned device API tidy did not happen for this release, due to time pressures,
+The planned device API tidy (still!) did not happen for this release, due to time pressures,
but we still intend to undertake the following:
We plan to somewhat tidy up the device API. We intend to remove deprecated device
procs (methods/function pointers) and change the device API so every device proc
@@ -86,7 +112,7 @@ Devices using only the non-deprecated procs should be trivial to update.
</li>
</ul>
-<h3><a name="9.20_changelog"></a>Changelog</h3>
+<h3><a name="9.21_changelog"></a>Changelog</h3>
<p>See the <a href="History9.htm">history file</a> for complete log
of changes.