summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2018-03-07 14:40:21 +0000
committerChris Liddell <chris.liddell@artifex.com>2018-03-07 14:40:21 +0000
commit7a6acdfce9344574638c2553f605d86f801f7393 (patch)
treee0127d6f53c394a0c5a8f12bc079e42e98d7de11
parentc6285cdd7ae7b1c97ffcf0c824234659b03d6d6a (diff)
downloadghostpdl-7a6acdfce9344574638c2553f605d86f801f7393.tar.gz
News and Changelog for 9.23 rc1ghostpdl-9.23rc1
-rw-r--r--doc/History9.htm11847
-rw-r--r--doc/News.htm44
2 files changed, 11876 insertions, 15 deletions
diff --git a/doc/History9.htm b/doc/History9.htm
index c96b7e5c8..2daf42dde 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.22">Version 9.23 (2018-03-07)</a>
<li><a href="#Version9.22">Version 9.22 (2017-10-04)</a>
<li><a href="#Version9.21">Version 9.21 (2017-03-16)</a>
<li><a href="#Version9.20">Version 9.20 (2016-09-26)</a>
@@ -77,6 +78,11852 @@ overview</a>.
<!-- [1.0 end visible header] ============================================== -->
<!-- [2.0 begin contents] ================================================== -->
+<h2><a name="Version9.23"></a>Version 9.23 (2018-03-07)</h2>
+
+<p>This is the seventeenth full release in the stable 9.x series.
+
+<p> Highlights in this release include:
+<ul>
+<li>
+<p>Ghostscript now has a family of 'pdfimage' devices (pdfimage8, pdfimage24 and pdfimage32)
+which produce rendered output wrapped up as an image in a PDF. Additionally, there is a 'pclm'
+device which produces PCLm format output.
+</li>
+<li>
+<p>There is now a ColorAccuracy parameter allowing the user to decide between speed or accuracy
+in ICC color transforms.
+</li>
+<li>
+<p>JPEG Passthrough: devices which support it can now receive the 'raw' JPEG stream from the
+interpreter. The main use of this is the pdfwrite/ps2write family of devices that can now
+take JPEG streams from the input file(s) and write them unchanged to the output (thus avoiding
+additional quantization effects).
+</li>
+<li>
+<p>PDF transparency performance improvements
+</li>
+<li>
+<p>IMPORTANT: We are in the process of forking LittleCMS. LCMS2 is not thread safe, and
+cannot be made thread safe without breaking the ABI. Our fork will be thread safe, and include
+performance enhancements (these changes have all be been offered and rejected upstream). We
+will maintain compatibility between Ghostscript and LCMS2 for a time, but not in perpetuity.
+Our fork will be available as its own package separately from Ghostscript (and MuPDF).
+</li>
+<li>
+<p>We have continued the focus on code hygiene in this release cleaning up security issues,
+ignored return values, and compiler warnings.
+</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.23_Incompatible_changes"></a>Incompatible changes</h3>
+<ul>
+<li>
+<p>
+The planned device API tidy has, unfortunately, been indefinitely postponed, until
+appropriate resources are available.
+</li>
+</ul>
+<h3><a name="9.22_changelog"></a>Changelog</h3>
+
+<p><strong>2018-03-07 12:19:48 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c6285cdd7ae7b1c97ffcf0c824234659b03d6d6a">c6285cdd7ae7b1c97ffcf0c824234659b03d6d6a</a>
+<blockquote>
+<p>
+ Dates and versions for 9.23 rc1<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/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.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>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-03-07 09:59: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=0df45c3d11246d773110d5b1a563d7462f3acac1">0df45c3d11246d773110d5b1a563d7462f3acac1</a>
+<blockquote>
+<p>
+ Revision date and product for release candidate<br>
+<br>
+base/gscdef.c<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-26 15:48:45 +0100
+</strong>
+<br>David Kaspar [Dee'Kej] &lt;dkaspar@redhat.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8c206ceeeac12b048aeafc9ea51080b624750ff4">8c206ceeeac12b048aeafc9ea51080b624750ff4</a>
+<blockquote>
+<p>
+ Bug 699068: configure.ac: forcibly disable strict aliasing via CFLAGS<br>
+<br>
+ In case user specifies their own CFLAGS that contains -O2, -O3, -Os or<br>
+ -fstrict-aliasing, the default behaviour to disable the strict<br>
+ aliasing will be overriden and enabled, which is not correct...<br>
+<br>
+ This commit will append the -fno-strict-aliasing option to CFLAGS set<br>
+ by user, which will effectively force the disabling of strict aliasing.<br>
+<br>
+ NOTE: originally the patch issued a warning when appending -fno-strict-aliasing<br>
+ and I've changed it to a normal checking/result message pattern - it seems less<br>
+ likely to cause end user confusion/panic<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-03-05 21:48:02 +0000
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=39686173fd26eb6e5eee91202433f5e5f307f61c">39686173fd26eb6e5eee91202433f5e5f307f61c</a>
+<blockquote>
+<p>
+ Bug 697545 : Update functions to return error codes.<br>
+<br>
+ Prevent numerous SEGV points by ensuring error codes are returned and<br>
+ handled appropriately.<br>
+<br>
+base/gscolor.c<br>
+base/gsdparam.c<br>
+base/gsptype1.c<br>
+pcl/pcl/pcbiptrn.c<br>
+pcl/pcl/pcpatrn.c<br>
+pcl/pcl/pginit.c<br>
+pcl/pcl/pglabel.c<br>
+pcl/pcl/rtraster.c<br>
+pcl/pl/plparams.c<br>
+pcl/pxl/pxgstate.c<br>
+pcl/pxl/pxink.c<br>
+pcl/pxl/pxpthr.c<br>
+psi/ztrans.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-21 19:59:25 +0100
+</strong>
+<br>David Kaspar [Dee'Kej] &lt;dkaspar@redhat.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=469bd6ecf5b223b3e6e3f32ec5a4900866c35e57">469bd6ecf5b223b3e6e3f32ec5a4900866c35e57</a>
+<blockquote>
+<p>
+ Bug 699057: Makefile.in: @LDFLAGS@ added into GCFLAGS<br>
+<br>
+ Previously, the 'gsc' and 'gsx' binaries were not using LDFLAGS when<br>
+ they were built with shared library. Adding LDFLAGS into GCFLAGS fixes<br>
+ this issue, and specifying LDFLAGS now works for these binaries as well.<br>
+<br>
+Makefile.in<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-03-06 10:16: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=71e152462e2b47e8e31aec7cf1238934640aa480">71e152462e2b47e8e31aec7cf1238934640aa480</a>
+<blockquote>
+<p>
+ Update zlib to 1.2.11<br>
+<br>
+zlib/CMakeLists.txt<br>
+zlib/ChangeLog<br>
+zlib/Makefile.in<br>
+zlib/README<br>
+zlib/adler32.c<br>
+zlib/as400/bndsrc<br>
+zlib/as400/compile.clp<br>
+zlib/as400/readme.txt<br>
+zlib/compress.c<br>
+zlib/configure<br>
+zlib/contrib/README.contrib<br>
+zlib/contrib/ada/zlib-streams.ads<br>
+zlib/contrib/ada/zlib-thin.ads<br>
+zlib/contrib/blast/blast.c<br>
+zlib/contrib/blast/blast.h<br>
+zlib/contrib/delphi/ZLib.pas<br>
+zlib/contrib/dotzlib/DotZLib/UnitTests.cs<br>
+zlib/contrib/infback9/inftree9.c<br>
+zlib/contrib/minizip/configure.ac<br>
+zlib/contrib/minizip/iowin32.c<br>
+zlib/contrib/minizip/unzip.c<br>
+zlib/contrib/minizip/zip.c<br>
+zlib/contrib/pascal/zlibpas.pas<br>
+zlib/contrib/puff/puff.c<br>
+zlib/contrib/vstudio/readme.txt<br>
+zlib/contrib/vstudio/vc10/zlib.rc<br>
+zlib/contrib/vstudio/vc10/zlibvc.def<br>
+zlib/contrib/vstudio/vc11/zlib.rc<br>
+zlib/contrib/vstudio/vc11/zlibvc.def<br>
+zlib/contrib/vstudio/vc12/miniunz.vcxproj<br>
+zlib/contrib/vstudio/vc12/minizip.vcxproj<br>
+zlib/contrib/vstudio/vc12/testzlib.vcxproj<br>
+zlib/contrib/vstudio/vc12/testzlibdll.vcxproj<br>
+zlib/contrib/vstudio/vc12/zlib.rc<br>
+zlib/contrib/vstudio/vc12/zlibstat.vcxproj<br>
+zlib/contrib/vstudio/vc12/zlibvc.def<br>
+zlib/contrib/vstudio/vc12/zlibvc.sln<br>
+zlib/contrib/vstudio/vc12/zlibvc.vcxproj<br>
+zlib/contrib/vstudio/vc14/miniunz.vcxproj<br>
+zlib/contrib/vstudio/vc14/minizip.vcxproj<br>
+zlib/contrib/vstudio/vc14/testzlib.vcxproj<br>
+zlib/contrib/vstudio/vc14/testzlibdll.vcxproj<br>
+zlib/contrib/vstudio/vc14/zlib.rc<br>
+zlib/contrib/vstudio/vc14/zlibstat.vcxproj<br>
+zlib/contrib/vstudio/vc14/zlibvc.def<br>
+zlib/contrib/vstudio/vc14/zlibvc.sln<br>
+zlib/contrib/vstudio/vc14/zlibvc.vcxproj<br>
+zlib/contrib/vstudio/vc9/zlib.rc<br>
+zlib/contrib/vstudio/vc9/zlibvc.def<br>
+zlib/crc32.c<br>
+zlib/deflate.c<br>
+zlib/deflate.h<br>
+zlib/examples/gun.c<br>
+zlib/examples/gzlog.c<br>
+zlib/examples/zran.c<br>
+zlib/gzguts.h<br>
+zlib/gzlib.c<br>
+zlib/gzread.c<br>
+zlib/gzwrite.c<br>
+zlib/infback.c<br>
+zlib/inffast.c<br>
+zlib/inflate.c<br>
+zlib/inflate.h<br>
+zlib/inftrees.c<br>
+zlib/msdos/Makefile.dj2<br>
+zlib/msdos/Makefile.emx<br>
+zlib/old/Makefile.emx<br>
+zlib/old/os2/Makefile.os2<br>
+zlib/os400/README400<br>
+zlib/os400/bndsrc<br>
+zlib/os400/make.sh<br>
+zlib/os400/zlib.inc<br>
+zlib/qnx/package.qpg<br>
+zlib/test/example.c<br>
+zlib/test/infcover.c<br>
+zlib/test/minigzip.c<br>
+zlib/treebuild.xml<br>
+zlib/trees.c<br>
+zlib/uncompr.c<br>
+zlib/win32/Makefile.gcc<br>
+zlib/win32/Makefile.msc<br>
+zlib/win32/README-WIN32.txt<br>
+zlib/win32/VisualC.txt<br>
+zlib/win32/zlib.def<br>
+zlib/win32/zlib1.rc<br>
+zlib/zconf.h<br>
+zlib/zconf.h.cmakein<br>
+zlib/zconf.h.in<br>
+zlib/zlib.3<br>
+zlib/zlib.3.pdf<br>
+zlib/zlib.h<br>
+zlib/zlib.map<br>
+zlib/zutil.c<br>
+zlib/zutil.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-03-06 12:36: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=08482c582115a1396d0fd9186011008f889a61c5">08482c582115a1396d0fd9186011008f889a61c5</a>
+<blockquote>
+<p>
+ Work around a change in the zlib API for 1.2.11<br>
+<br>
+ where it's used in the Freetype/zlib interface debugging code.<br>
+<br>
+freetype/src/gzip/zutil.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-03-02 10:54: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=3da667d889e54fb1a323769fbb4f93b971d0fff4">3da667d889e54fb1a323769fbb4f93b971d0fff4</a>
+<blockquote>
+<p>
+ CCITT Fax - ensure calculation rounds up<br>
+<br>
+ Still Bug #696413, follows on from commit 0221c9<br>
+<br>
+ When calculating the number of bytes required to store the encoded lines<br>
+ we multiply the number of columns byt the number of bits required<br>
+ for 2 pixels, then divide by 16 to get the required number of bytes.<br>
+<br>
+ This commit simply ensures that the division by 16 is rounded *up* and<br>
+ not down. Previously we could end up dropping up to 7 bits of required<br>
+ space. Generally this is not likely to be a problem but it is technically<br>
+ a problem, and can be demonstrated on pathological cases.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-03-01 18:13:13 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0221c9e4c43b25375dab6c9d15a777eecf20d261">0221c9e4c43b25375dab6c9d15a777eecf20d261</a>
+<blockquote>
+<p>
+ Fix CCITT Fax Encoder<br>
+<br>
+ Bug #696413 &quot;Seg faults found by fuzzing in pdf_store_page_resources (gdevpdfu.c:1663)&quot;<br>
+<br>
+ As noted it eh bug report, the problem is that the encoding buffer is<br>
+ allocated with a size based on the maximum number of bits for horizontal<br>
+ encoding (6 bits per pixel), but for 2D encoding some of the bits might<br>
+ use vertical encoding. Vertically encoded bits with an offset of 3 use<br>
+ 7 bits per pixel, not 6.<br>
+<br>
+ If we get a line with sufficient 7-bit encodings, where the horizontal<br>
+ bits are encoded with 6 bits (eg runs of 1 pixel), then we can end up<br>
+ running off the end of the buffer. Make the allocation assume a maximum<br>
+ of 7 encoded bits per pixel instead.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-27 20:56:07 +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=e27f0530e3410547563daf757dc5c121c21d2f1c">e27f0530e3410547563daf757dc5c121c21d2f1c</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in show_proceed.<br>
+<br>
+ Fix memory leak and SEGV when gs_newpath returns an error code.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=9017 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gxchar.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-27 21:12: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=49974a63cad8c792067fbf63905a271022b0e806">49974a63cad8c792067fbf63905a271022b0e806</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leaks in hpgl_print_char.<br>
+<br>
+ Fix memory leak when pcl_mark_page_for_current_pos returns an error code.<br>
+ Also prevent path becoming orphaned in cpath_set_rectangle.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=9010 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gxcpath.c<br>
+pcl/pcl/pglabel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-28 17:17:23 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=03194b72312b6777021f0554bdd30fecc89db486">03194b72312b6777021f0554bdd30fecc89db486</a>
+<blockquote>
+<p>
+ txtwrite - guard against infinite loop<br>
+<br>
+ vertical text could result in an advance width of 0, which would cause<br>
+ us to try and write an infinite number of spaces.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-28 14:04:32 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d57bd7ce641d8134d559f5e8190e2578137e1d39">d57bd7ce641d8134d559f5e8190e2578137e1d39</a>
+<blockquote>
+<p>
+ txtwrite - better dynamic resizing<br>
+<br>
+ A better fix for bug #699078, this implemnets the thought I had while<br>
+ writing up the description of the problem. In this case we check whether<br>
+ the current 'effective size' of the monospaced font would lead to<br>
+ the end of the current run of text lying to the right of the 'next' run<br>
+ of text on this line. If it would, then use the newly calculated<br>
+ effective size, no matter how small it is, to avoid collisions.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-28 09:34: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=d0d4e282f98487ca2979edbaf6834d9341bcee53">d0d4e282f98487ca2979edbaf6834d9341bcee53</a>
+<blockquote>
+<p>
+ txtwrite - slacken a restriction on minimum width selection<br>
+<br>
+ Bug #699078 &quot; Extracted text is not properly seperated&quot;<br>
+<br>
+ Allow the minimum size assigned to the monospaced output to be smaller<br>
+ than previously (previously we limited it to .75 of the smallest point<br>
+ size of any used font).<br>
+<br>
+ This will reduce the number of horizontal text collisions at the cost<br>
+ of potentially making the text output wider.<br>
+<br>
+ Essentially this is caused by using a monospaced font to represent the<br>
+ original proportionally spaced input. A sufficiently long run of<br>
+ characters which are significantly less than the M width could result in<br>
+ the position being further to the right (when converted to monspaced<br>
+ text) than the neext horizontal fragment. So we wouldn't try to<br>
+ space it any further.<br>
+<br>
+ Previously we limited the calculation of the minimum character size in<br>
+ a run to 3/4 of the M space. Here we reduce that to 1/2 which will<br>
+ permit more flexibility, but as stated, at the potential cost of the<br>
+ output text being 'wider' (containing more spaces).<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-26 21:25:19 +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=a16736bc4ea251c46f1aa1d3b6176aadf5f0b914">a16736bc4ea251c46f1aa1d3b6176aadf5f0b914</a>
+<blockquote>
+<p>
+ Bug 697545 : Update PCL to return error codes (Patch VI).<br>
+<br>
+ Prevent numerous SEGV points by ensuring error codes are returned and<br>
+ handled appropriately.<br>
+<br>
+pcl/pl/plparams.c<br>
+pcl/pl/pluchar.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-25 20:36:29 +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=50f7fc4f7a99d874af86e4a874067ba3a7760c42">50f7fc4f7a99d874af86e4a874067ba3a7760c42</a>
+<blockquote>
+<p>
+ Bug 697545 : Update PCL to return error codes (Patch V).<br>
+<br>
+ Prevent numerous SEGV points by ensuring error codes are returned and<br>
+ handled appropriately.<br>
+<br>
+pcl/pcl/rtraster.c<br>
+pcl/pl/plchar.c<br>
+pcl/pl/plht.c<br>
+pcl/pl/pllfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-23 18:02:47 +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=0edcf910b80a1656c9441f32bd1770d2600ab915">0edcf910b80a1656c9441f32bd1770d2600ab915</a>
+<blockquote>
+<p>
+ Bug 697545 : Update PCL to return error codes (Patch IV).<br>
+<br>
+ Prevent numerous SEGV points by ensuring error codes are returned and<br>
+ handled appropriately.<br>
+<br>
+pcl/pcl/pginit.c<br>
+pcl/pcl/pginit.h<br>
+pcl/pcl/pglabel.c<br>
+pcl/pcl/pglfill.c<br>
+pcl/pcl/pgmand.h<br>
+pcl/pcl/pgmisc.c<br>
+pcl/pcl/pgpoly.c<br>
+pcl/pcl/pgvector.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-22 20:34:53 +0000
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9f90d1361564289e6dbe56863a5fe1be1ca28f83">9f90d1361564289e6dbe56863a5fe1be1ca28f83</a>
+<blockquote>
+<p>
+ Bug 697545 : Update PCL to return error codes (Patch III).<br>
+<br>
+ Prevent numerous SEGV points by ensuring error codes are returned and<br>
+ handled appropriately.<br>
+<br>
+pcl/pcl/pgchar.c<br>
+pcl/pcl/pgconfig.c<br>
+pcl/pcl/pgdraw.c<br>
+pcl/pcl/pgfdata.c<br>
+pcl/pcl/pgfont.c<br>
+pcl/pcl/pgframe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-23 14:35:57 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6375e295893a71b5695fba2ca117747e326c8ec2">6375e295893a71b5695fba2ca117747e326c8ec2</a>
+<blockquote>
+<p>
+ pdfwrite - gracefully handle inappropriate PDFA command line<br>
+<br>
+ If a user sets -dPDFA, but does not set ColorConversionStrategy, and<br>
+ then processes an input file which has a DeviceN space with an alternate<br>
+ space which does not match the ProcessColorModel, then we would write<br>
+ an invalid PDF file (invalid function for the colour space).<br>
+<br>
+ Now technically this shouldn't happen, but we can guard against this<br>
+ specific user error by spotting the problem and returning a rangecheck<br>
+ error instead, which will cause the earlier code to fall back to<br>
+ writing a device colour instead.<br>
+<br>
+ No diffrences expected.<br>
+<br>
+devices/vector/gdevpdfc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-20 22:13: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=03607549d598b14ebbb6d4aea9591e10fc35c6cc">03607549d598b14ebbb6d4aea9591e10fc35c6cc</a>
+<blockquote>
+<p>
+ Bug 697545 : Update PCL to return error codes (Patch II).<br>
+<br>
+ Prevent numerous SEGV points by ensuring error codes are returned and<br>
+ handled appropriately.<br>
+<br>
+pcl/pcl/pcsfont.c<br>
+pcl/pcl/pcsymbol.c<br>
+pcl/pcl/pctext.c<br>
+pcl/pcl/pctop.c<br>
+pcl/pcl/pcuptrn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-20 18:40:37 +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=de2c3c2c536d5aff97091b146ed259270228dcb9">de2c3c2c536d5aff97091b146ed259270228dcb9</a>
+<blockquote>
+<p>
+ Bug 697545 : Update PCL to return error codes (Patch I).<br>
+<br>
+ Prevent numerous SEGV points by ensuring error codes are returned and<br>
+ handled appropriately.<br>
+<br>
+pcl/pcl/pccolor.c<br>
+pcl/pcl/pcdraw.c<br>
+pcl/pcl/pcfontpg.c<br>
+pcl/pcl/pcindxed.c<br>
+pcl/pcl/pcjob.c<br>
+pcl/pcl/pcmacros.c<br>
+pcl/pcl/pcpalet.c<br>
+pcl/pcl/pcparse.c<br>
+pcl/pcl/pcpatrn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-14 17:26:23 +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=8f2f27a730fc7ba76847d39fc46d6d7183cd27a3">8f2f27a730fc7ba76847d39fc46d6d7183cd27a3</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leaks during font loading.<br>
+<br>
+ Fix memory leaks for numerous allocation events.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=1564 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gstype42.c<br>
+base/gxfapi.c<br>
+pcl/pl/plfapi.c<br>
+pcl/pl/plfont.c<br>
+pcl/pl/pllfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-18 16:05:18 +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=cceb3db394d9547d309f596001b02c63dec4d7f5">cceb3db394d9547d309f596001b02c63dec4d7f5</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in gx_path_new.<br>
+<br>
+ During a memory allocation event failure the orginal path would not be<br>
+ decremented and hence become orphaned.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=8959 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gxpath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-19 15:43:20 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3f5736cb8a255cdfe00d59896dc39d050d1db00e">3f5736cb8a255cdfe00d59896dc39d050d1db00e</a>
+<blockquote>
+<p>
+ Add more bounds checking to type 2 font interpreter<br>
+<br>
+ Bug #699042 &quot;stack out of bounds read in gs_type2_interpret, gstype2.c line 701&quot;<br>
+<br>
+ The warning is caused by 'csp' being below the cstack bottom bound.<br>
+ Adding a check for that prevents this warning. While we're here, add<br>
+ checks to the bounds of 'transient_array' which wasn't being checked<br>
+ previously.<br>
+<br>
+base/gstype2.c<br>
+base/gxtype1.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-19 14:26:29 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc2bfef83b1dca09e016e43238f71ca6c7a622b3">cc2bfef83b1dca09e016e43238f71ca6c7a622b3</a>
+<blockquote>
+<p>
+ PDF interpreter - fix ToUnicode processing of bfrange with high byte set<br>
+<br>
+ Bug #699041 &quot;Cyrilic text not respected&quot;<br>
+<br>
+ The title is a misnomer, the problem is not Cyrillic fonts as such.<br>
+<br>
+ The example file has an unusually complex ToUnicode CMap, which includes<br>
+ bfrange entries where the CID has a value &gt; 0xFF. The code in pdf_font.ps<br>
+ to create our internal GlyphNames2Unicode table was adding the 'offset'<br>
+ (The high byte of the index) to the CID, which basically means we were<br>
+ adding the high byte twice (the key already included the high byte).<br>
+<br>
+ Fix this by simply not adding the offset to the keys.<br>
+<br>
+ Its surprisingly hard to find examples of this, I can't immediately see<br>
+ any in our test suite. I have gone through some of the files which<br>
+ have been reported as problems with ToUnicode processing in the past<br>
+ but none of them fall into this condition.<br>
+<br>
+ A couple of files show difference, but these are irrelevant, they are of<br>
+ the 'wrong before, differently wrong now' category.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-18 14:18:10 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eb2aa457387429b84c043430354b8476ac918961">eb2aa457387429b84c043430354b8476ac918961</a>
+<blockquote>
+<p>
+ Squash a couple of build warnings<br>
+<br>
+ Sort out negation of the PDFA flag<br>
+<br>
+ Ensure a variable is initialised under all conceivable circumstances<br>
+<br>
+devices/vector/gdevpdtd.c<br>
+devices/vector/gdevpdtt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-16 19:32:11 +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=f006720c87026a67cdcaeab983fe888d4401cb0e">f006720c87026a67cdcaeab983fe888d4401cb0e</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent SEGV by returning error codes.<br>
+<br>
+ Prevent numerous SEGV points by ensuring error codes are returned and<br>
+ handled appropriately.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=8961 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pgconfig.c<br>
+pcl/pcl/pgframe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-16 18:56:23 +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=833333a6df506ad9525bb797245042442a0f31cb">833333a6df506ad9525bb797245042442a0f31cb</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent SEGV in palette_do_reset.<br>
+<br>
+ Prevent SEGV when trying to access contents of empty palette.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=8956 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pcpalet.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-16 18:39:30 +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=0ebfdae6fceedbbe7036c487916193b4349d4dd3">0ebfdae6fceedbbe7036c487916193b4349d4dd3</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in alloc_indexed_cspace.<br>
+<br>
+ Fix memory leak for allocation event 8953.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=8954 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pcindxed.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-13 15:53:09 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9f9daedfdf98bab590eba53e34fba76b96307ec0">9f9daedfdf98bab590eba53e34fba76b96307ec0</a>
+<blockquote>
+<p>
+ Fix Bug 698969 SEGV caused by overflow in mark_line_*** functions<br>
+<br>
+ Clipping needs to be performed in 64-bit to allow for the original<br>
+ line segment being larger than can fit in signed 32-bit.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-16 10:29:00 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad07c06b7f898eeb663ee7eed336c2c602a91551">ad07c06b7f898eeb663ee7eed336c2c602a91551</a>
+<blockquote>
+<p>
+ pdf_info.ps - check for null DescendantFonts after oforce<br>
+<br>
+ pdf_info.ps was modified to check for circular references when resolving<br>
+ indirect objects. Now if we find recursion we return a null.<br>
+<br>
+ However, we weren't checking that when resolving DescendantFonts which<br>
+ could lead to a typecheck error if we had two different CIDFonts on<br>
+ the same page, and the CIDFonts used the same DescendantFonts array<br>
+ (which is silly, of course).<br>
+<br>
+toolbin/pdf_info.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-15 10:15:28 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6a8c1d6be02fc7020ab4cf5cfbecf91790f7dc10">6a8c1d6be02fc7020ab4cf5cfbecf91790f7dc10</a>
+<blockquote>
+<p>
+ Bug 696654 - PCL/PXL fails to build with system-shared libjpeg.<br>
+<br>
+ Remove the HP CLJ 3500/3500/3600 emulation until it can be properly<br>
+ integrated with libjpeg.<br>
+<br>
+base/gdevpxat.h<br>
+base/gdevpxen.h<br>
+pcl/pxl/pxl.mak<br>
+pcl/pxl/pxptable.c<br>
+pcl/pxl/pxsessio.c<br>
+pcl/pxl/pxstate.h<br>
+pcl/pxl/pxvendor.c<br>
+pcl/pxl/pxvendor.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-15 14:36:10 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=094aebef5c058ad312e5d2bfd46d897c21fac398">094aebef5c058ad312e5d2bfd46d897c21fac398</a>
+<blockquote>
+<p>
+ pdfwrite - remove dead code<br>
+<br>
+ Commit efb9bf3949617b4c733a6dcce04acd142c50115d changed the flow of<br>
+ control to avoid going through code which could not work, since it left<br>
+ a variable unassigned (and didn't do any part of the work that would<br>
+ be required to give the variable a sensible value).<br>
+<br>
+ That left some code unreachable leading to a coverity warning (Coverity<br>
+ ID 262411). I was unable to find any way to trigger the original<br>
+ condition, and the code as it stands should at least work, even if it<br>
+ might be sub-optimal in some cases. So remove the dead code to prevent<br>
+ the warning, if this needs fixing in future there will need to be more<br>
+ code written anyway.<br>
+<br>
+devices/vector/gdevpdfb.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-15 09:02: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=4384f85cbb9383cbeefea80e45e8893a5d64c7af">4384f85cbb9383cbeefea80e45e8893a5d64c7af</a>
+<blockquote>
+<p>
+ PDF interpreter - remove a debug pstack<br>
+<br>
+ accidentally left some debugging code in place, remove it now.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-14 17:01: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=7d1b64fe9474d4c1e6d5f4185c77cb42a8ac5bc0">7d1b64fe9474d4c1e6d5f4185c77cb42a8ac5bc0</a>
+<blockquote>
+<p>
+ Remove a long obselete C source file<br>
+<br>
+ Also remove a documentation reference and Windows project references<br>
+<br>
+doc/Develop.htm<br>
+psi/zhsb.c<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-14 17:26:23 +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=ecf45b80c55bc79c17bed5143426cd9f8060ec2f">ecf45b80c55bc79c17bed5143426cd9f8060ec2f</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leaks during tt font loading.<br>
+<br>
+ Fix memory leak for allocation event numbers 1551, 1552 and 1553.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=1554 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/plfont.c<br>
+pcl/pl/pllfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-14 15:38: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=bb8f0822a31e0e976cb659000532fde2fdbccd8c">bb8f0822a31e0e976cb659000532fde2fdbccd8c</a>
+<blockquote>
+<p>
+ PDF interpreter - detect and ignore circular references in Outlines<br>
+<br>
+ Bug #699029 &quot;infinite loop on pdfium test file&quot;<br>
+<br>
+ If the /Next in an Outline points to any previously encountered<br>
+ Outline entry, terminate processing of Outlines and warn the user.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-14 10:28:37 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=06ceaa2715fcbe2056214b0f958edc7deb4fa085">06ceaa2715fcbe2056214b0f958edc7deb4fa085</a>
+<blockquote>
+<p>
+ pdfwrite - improve stack bounds checking on font interpreters<br>
+<br>
+ Bug #699020 &quot;stack buffer underflow (read) in gs_type2_interpret / gstype2.c line 567&quot;<br>
+<br>
+ The internal type 1 and type 2 font interpreters are only used by<br>
+ the vector devices (in particular pdfwrite), for rendering we use<br>
+ FreeType.<br>
+<br>
+ This commit improves the bounds checking of the operand stacks used<br>
+ by these interpreters, to catch more cases of badly formed or<br>
+ corrupted fonts and throw an error in these cases.<br>
+<br>
+ This addresses the stated bug, but should actually prevent a lot<br>
+ more problems which we haven't yet seen test cases for.<br>
+<br>
+base/gstype1.c<br>
+base/gstype2.c<br>
+base/gxtype1.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-13 12:00:10 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c1a8dc52c0e320c41d04b6f32086622150962d61">c1a8dc52c0e320c41d04b6f32086622150962d61</a>
+<blockquote>
+<p>
+ fix commit bcef41ad72a16472a3003d357bf8d8680174ab85<br>
+<br>
+ Accidentally left currentdict on the operand stack afetr startup.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-13 10:48: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=16586a6a0d8fac17d5201f102e0775e527d3a529">16586a6a0d8fac17d5201f102e0775e527d3a529</a>
+<blockquote>
+<p>
+ Bug 699019: bounds check stack access in Type 2 vmoveto<br>
+<br>
+base/gstype2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-13 10:22: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=bcef41ad72a16472a3003d357bf8d8680174ab85">bcef41ad72a16472a3003d357bf8d8680174ab85</a>
+<blockquote>
+<p>
+ PS interpreter - fix setpagedevice with -dDELAYBIND<br>
+<br>
+ When a user sets a fixed resolution using -r, then the setpagedevice<br>
+ code looks for the existence of a /HWResolution key in the page device<br>
+ dictionary and attempts to remove it using .undef to prevent the<br>
+ resolution being altered.<br>
+<br>
+ However, if DELAYBIND is set, then the .undef operator is removed<br>
+ before .bindnow is run, which means that, when setpagedevice executes,<br>
+ the .undef operator is not defined.<br>
+<br>
+ So add the same code for .undef as we use for other similar operators<br>
+ (eg .forceundef), don't remove the definition if DELAYBIND is set, but<br>
+ do remove it when .bindnow executes.<br>
+<br>
+ This is, of course, a security hole, but then the whole DELAYBIND<br>
+ situation is.<br>
+<br>
+ While we are here, add a key /NOBIND with the value false to systemdict.<br>
+ This is because some ancient, badly-behaved and no longer maintained<br>
+ software checks this key unconditionally, if its not present it fails<br>
+ with an undefined error. Setting it to false pacifies that software.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-13 08:52: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=310a0bcaba3527903fc66fed2984f30d0bd4e4ab">310a0bcaba3527903fc66fed2984f30d0bd4e4ab</a>
+<blockquote>
+<p>
+ Bug 699016: add stack bounds check for Type 1 seac<br>
+<br>
+ The macro for checking the stack bounds is now called from both the Type 1 and<br>
+ Type 2 charstring code, so move it to a common header, and tweak the name to<br>
+ fit.<br>
+<br>
+base/gstype2.c<br>
+base/gxtype1.c<br>
+base/gxtype1.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-13 08:35: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=9bbf14bc7210bc54613b0f64a5ad95368891982a">9bbf14bc7210bc54613b0f64a5ad95368891982a</a>
+<blockquote>
+<p>
+ Bug 699015: bounds check stack for Type 2 callsubr<br>
+<br>
+base/gstype2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-12 21:47:29 +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=0e9ba7084176c7834db00927a8326310c6b83a67">0e9ba7084176c7834db00927a8326310c6b83a67</a>
+<blockquote>
+<p>
+ Fix memory leak in xps_imp_set_device.<br>
+<br>
+ The param list can become orphaned if an error occurs early on in the code.<br>
+<br>
+xps/xpstop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-11 20:44: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=5e9639e974afaa89027a5ccd573e50ff98e3ca3f">5e9639e974afaa89027a5ccd573e50ff98e3ca3f</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in pcl_load_built_in_symbol_sets.<br>
+<br>
+ Fix memory leak for allocation event number 1266.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=1267 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pcsymbol.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-11 20:20:36 +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=3e4c6beff724a4e0078a48e6f5200c23ae73f52b">3e4c6beff724a4e0078a48e6f5200c23ae73f52b</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in pl_top_create_device.<br>
+<br>
+ The param list can become orphaned if an error occurs early on in the code.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=676 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-12 15:23:19 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a4445fe0a312af901a79d6f41ace975a50d88a31">a4445fe0a312af901a79d6f41ace975a50d88a31</a>
+<blockquote>
+<p>
+ Bug 699012: bounds check point index in Move_Zp2_Point()<br>
+<br>
+base/ttinterp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-12 12:05:44 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e7abbb92e92ba326b4fc06491bd3c3cde61932b3">e7abbb92e92ba326b4fc06491bd3c3cde61932b3</a>
+<blockquote>
+<p>
+ Bug 699013: Check glyph has a contour before accessing it.<br>
+<br>
+ in Ins_IUP()<br>
+<br>
+base/ttinterp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-12 15:20:23 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=edf3684305414731fbdb9b90de7dbcbab0dace5f">edf3684305414731fbdb9b90de7dbcbab0dace5f</a>
+<blockquote>
+<p>
+ Fix comments<br>
+<br>
+ The comments in zinitgrpahics and the PostScript definition of<br>
+ initgraphics in gs_cspace.ps were incorrect, now that gs_initgraphics<br>
+ does reset the colour space properly.<br>
+<br>
+ However, we do still need the /initgraphics override in gs_cspace.ps<br>
+ in order to correctly set the colour space which we store in the<br>
+ 'interpreter' graphics state. We only use that to hand back in response<br>
+ to a currentcolorspace, but we do need it.<br>
+<br>
+Resource/Init/gs_cspace.ps<br>
+psi/zgstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-12 13:47: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=b7a0556297296d8355748b9b130de02923a1c4cd">b7a0556297296d8355748b9b130de02923a1c4cd</a>
+<blockquote>
+<p>
+ Check for error case in gs_cspace_new_ICC()<br>
+<br>
+ If we fail to allocate memory for a new colour space, simply return<br>
+ NULL, don't try to use the failed allocation!<br>
+<br>
+base/gscspace.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-12 12:21: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=7a708d9fdcba9efbe21f236830e47eb4f4085672">7a708d9fdcba9efbe21f236830e47eb4f4085672</a>
+<blockquote>
+<p>
+ More work with initgraphics<br>
+<br>
+ Firstly, remove the kludgy gs_initgraphics_no_cspace() and have the<br>
+ PostScript operator zinitgraphics() call gs_initgraphics().<br>
+<br>
+ This meant fixing the gs_initgraphics routine; the previous commit<br>
+ d527031607a881237819835c2b1045c81e24c387 simply overwrote the existing<br>
+ colour spaces in the graphics state with the new DeviceGray space. This<br>
+ could lead to memory leaks if the previous colour space had been<br>
+ reference counted up. So now we call gs_setcolorspace instead, which also<br>
+ correctly sets the current colour.<br>
+<br>
+ This led to the interesting discovery that the null brush in PXL has<br>
+ never been handled properly by the high level devices. This is<br>
+ handled by the PXL interpreter setting a DeviceGray colour space, and<br>
+ then directly editing the device colour 'type' field and setting it to<br>
+ 'typ_null'. This doesn't seem like the best way to proceed to me, I<br>
+ would have expected us to push the nulldevice, but its what is done.<br>
+<br>
+ No in gx_hld_is_hl_color_available() the code simply tested whether<br>
+ the device color 'ccolor_valid' flag was set. Since the PXL interpreter<br>
+ simply stomped on the type field, and did not update any of the other<br>
+ fields, the result of this was unknown. Sometimes we would decide it<br>
+ was valid, and sometimes not. If we did decide it was valid then we<br>
+ used the DeviceGray space and colour (0, black) which was also set up<br>
+ by the null brush code to draw the object, which means that we could<br>
+ end up drawing objects which should not be drawn.<br>
+<br>
+ 'Fixed' this by having the code explicitly test for the device color<br>
+ type being 'null' as well as being valid. In passing, it did appear<br>
+ to me that we do not always update the ccolor_valid flag in the device<br>
+ color structure, which may well lead to more problems of this kind.<br>
+<br>
+ This does result in a number of differences in the output. Mostly<br>
+ these are due to the error page now always being rendered in DeviceGray<br>
+ which results in a slightly (invisible) difference in printed gray text.<br>
+ A very large number of the Quality Logic files exhibit progressions<br>
+ due to the fact that we are now correctly processing the null brush.<br>
+<br>
+base/gsstate.c<br>
+base/gxhldevc.c<br>
+psi/zgstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-04 18:45: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=1af4fced38d9d842195e5635c9e0aa4b5e13f21b">1af4fced38d9d842195e5635c9e0aa4b5e13f21b</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in pcl interpreter.<br>
+<br>
+ If an error occurs during pl_set_device then the new interpreter is partially<br>
+ set up but the old interpreter is still listed as current so the cleanup<br>
+ code does not reclaim the partially set up memory. The patch ensures the<br>
+ correct interpreter is cleaned up and also zeros out unset fields to prevent<br>
+ a SEGV during memory freeing.<br>
+<br>
+ Fix memory leak for allocation event number 1265.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=1266 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pctop.c<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-10 22:28: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=98d8f8d12a40bf36f0acdaefc0c63a7562326cab">98d8f8d12a40bf36f0acdaefc0c63a7562326cab</a>
+<blockquote>
+<p>
+ Fix compile warning about possible uninitialized procedure pointers<br>
+<br>
+ Setting to NULL is OK since it will trigger a SEGV, but it looks<br>
+ like the code will always set the procedures if it needs the source<br>
+ colors.<br>
+<br>
+base/gdevmpla.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-10 11:43:15 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2fe4c53757ef143071517216cacdbb228dfc4243">2fe4c53757ef143071517216cacdbb228dfc4243</a>
+<blockquote>
+<p>
+ Fix compiler warning: mlut_size<br>
+<br>
+ This is OK because mlut_size is only used when 'clut' is non-NULL<br>
+ but if so, it is initialized in line 1179.<br>
+<br>
+base/gsicc_create.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-10 11:28:48 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d3fb0f876971f604597c10519259520a8035cb58">d3fb0f876971f604597c10519259520a8035cb58</a>
+<blockquote>
+<p>
+ Fix gcc warning: gscms_is_threadsafe prototype<br>
+<br>
+base/gsicc_cms.h<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_lcms2art.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-06 11:53: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=01a71ecbfe576d0a840946a0089f23ce131e995d">01a71ecbfe576d0a840946a0089f23ce131e995d</a>
+<blockquote>
+<p>
+ Change from CMM_THREAD_SAFE #define to a gscms_is_threadsafe function<br>
+<br>
+ In preparation for enabling sharing the profiles and link cache among<br>
+ rendering threads, switch from a compile time flag to a function that<br>
+ is returned by the CMS interface module linked in (e.g gsicc_lcms2.c)<br>
+<br>
+ This avoids more build machinery to propagate the flag, and ensures<br>
+ that the flag won't be mis-matched to the CMS in use.<br>
+<br>
+ Also flag a few FIXME places identified that relate to multi-threaded<br>
+ sharing of profiles and the profile link cache. Initially, even though<br>
+ lcms2art is thread safe, return &quot;false&quot; until the multi-threaded<br>
+ rendering works.<br>
+<br>
+base/gdevp14.c<br>
+base/gsicc_cms.h<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_lcms2art.c<br>
+base/gxcldev.h<br>
+base/gxclthrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-10 10:59:29 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=da66356a665432f998642b2e9c45756f876f0996">da66356a665432f998642b2e9c45756f876f0996</a>
+<blockquote>
+<p>
+ PCL interpreter - correctly identify high level devices<br>
+<br>
+ Pointed out by Chris, the code in here explicitly tested the name of the<br>
+ device to decide if it was a high level device. We deprecated that<br>
+ approach some time ago, replacing it with a spec_op call instead.<br>
+<br>
+ The comment said 'this needs a better solution' and this is it.<br>
+<br>
+ Should work correctly now with any device which identifies itself as a<br>
+ high level device.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-08 13:57:54 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b4a301c90a8905d6b7ba703342ddc9cb1c8ff69">4b4a301c90a8905d6b7ba703342ddc9cb1c8ff69</a>
+<blockquote>
+<p>
+ Fix 694689 - Seg faults found by fuzzing.<br>
+<br>
+ Allow clients of the decompression routines to pass in a parameter to<br>
+ indicate no further input or output is expected. The decompression<br>
+ routines should produce an error if the parameter is set and more<br>
+ processing is needed. The pattern code uses this to indicate indicate<br>
+ the final scanline has been processed, it is not needed by the image<br>
+ code.<br>
+<br>
+pcl/pxl/pximage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-07 17:03:04 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8e4764d61562a44c77920ee67884ca846184b25c">8e4764d61562a44c77920ee67884ca846184b25c</a>
+<blockquote>
+<p>
+ Add line pointer to the pattern enumerator.<br>
+<br>
+ This tracks the scan line position within the pattern while reading,<br>
+ simplifying bounds checking.<br>
+<br>
+pcl/pxl/pximage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 13:28:52 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=faef871274167e12e93fc24026096474d00b794d">faef871274167e12e93fc24026096474d00b794d</a>
+<blockquote>
+<p>
+ Remove pushed argument.<br>
+<br>
+ No need to push the filename simply run the file and use a do while<br>
+ loop.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 10:35:28 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f29e2296e81378ed42b93215137361ab586b2393">f29e2296e81378ed42b93215137361ab586b2393</a>
+<blockquote>
+<p>
+ Warning cleanup.<br>
+<br>
+pcl/pcl/pcpalet.c<br>
+pcl/pcl/pcparse.c<br>
+pcl/pcl/pglabel.c<br>
+pcl/pl/pllfont.c<br>
+pcl/pxl/pxtop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-07 21:08:46 +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=b808ea741efe357cf71254d9064e782dfd753584">b808ea741efe357cf71254d9064e782dfd753584</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in gs_state_alloc.<br>
+<br>
+ The colour allocation code in gs_gstate_alloc was being repeated in the call<br>
+ to gs_initgraphics leading to the first set of allocated colours becoming<br>
+ orphaned. Given that gs_initigraphics is always called from gs_gstate_alloc<br>
+ the duplicate code can be safely removed.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=419 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gsstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-06 18:04:07 +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=98e5b234b27d82e52d660a9e0bfc6c14e3d7a5cd">98e5b234b27d82e52d660a9e0bfc6c14e3d7a5cd</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent SEGV in pcpage_do_reset.<br>
+<br>
+ Prevent SEGV if memory allocation fails and returns a NULL paper size.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=1215 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pcpage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-07 15:46: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=10dcb4943e552a3d53fbaf0b4e8741258238f7a7">10dcb4943e552a3d53fbaf0b4e8741258238f7a7</a>
+<blockquote>
+<p>
+ Handle a potential error condition in PXL<br>
+<br>
+ Bug #698995 &quot;Fixing error returns in gxicolor.c can cause PXL to enter an infinite loop or seg fault&quot;<br>
+<br>
+ This started off as a fix to a scanbuild warning and spiralled somewhat.<br>
+<br>
+ Fixing gs_image_class_4_color() so that it didn't ignore an error return<br>
+ led to the possibility of the PXL interpreter seg faulting or ending up<br>
+ in an infinte loop.<br>
+<br>
+ Initially this turned out to be because gs_initgraphics() was no longer<br>
+ setting the colour space to the proper default, leading to us trying<br>
+ to use the very pattern space which failed. That was fixed in the<br>
+ previous commit.<br>
+<br>
+ After that it turned out that in an error condition we were freeing<br>
+ an image enumerator twice. This didn't seem to cause the PostScript<br>
+ interpreter a problem, though it seems likely it did really, it simply<br>
+ didn't exhibit before the interpreter exited. The PXL interpreter<br>
+ however threw an error in the memory manager rather rapidly.<br>
+<br>
+ Fixed that by not calling gx_default_end_image in gx_enum_begin()<br>
+ when we hit this particular error condition (no handler for an image).<br>
+<br>
+ This removes one of the free instances, and seems more reasonable anyway<br>
+ it seems wrong to end an image we haven't yet begun.<br>
+<br>
+ This allows us to now propagate the error up from px_remap_pattern<br>
+ without causing a seg fault or infinite loop. (finally)<br>
+<br>
+base/gxipixel.c<br>
+pcl/pxl/pxink.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-07 09:55:41 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d527031607a881237819835c2b1045c81e24c387">d527031607a881237819835c2b1045c81e24c387</a>
+<blockquote>
+<p>
+ Alter gs_initgraphcis to once again set the colour space and colour<br>
+<br>
+ At some time in the past gs_initgraphics was altered for 'colour substitution'<br>
+ so that it did not reset the colour space and current colour. This is<br>
+ surprising because the PostScript initgraphics operator is supposed to<br>
+ do exactly that.<br>
+<br>
+ Restoring the code resulted in many seg faults with the PDF interpreter<br>
+ so this is obviously a requirement, even though I can't see why.<br>
+<br>
+ However, leaving gs_initgraphics as it is would mean that (as per the<br>
+ comment above the procedure) that all the interpreters (clients) would<br>
+ have to reset the colour space and colour after calling it, which is<br>
+ entirely unreasonable. Not only that, it hasn't been done leading to<br>
+ the PXL interpreter printing error pages in the wrong colour.<br>
+<br>
+ This commit restores the setting of the colour space and colour to<br>
+ gs_initgraphics, but introduces a new gs_initgraphics_no_cpsace()<br>
+ procedure to be called from zinitgraphics, which behaves exactly as<br>
+ the modified gs_initgraphics did, and does not set the colour space<br>
+ or colour values.<br>
+<br>
+ The PDF interpreter now continues to work and the PXL interpreter now<br>
+ prints a number of error pages in black where it previously was using a<br>
+ pattern, grey or in one case green colour.<br>
+<br>
+base/gsstate.c<br>
+base/gsstate.h<br>
+psi/zgstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-07 09:49:34 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=28c58b4114ec145b8597372b6e29cec9e1f5df15">28c58b4114ec145b8597372b6e29cec9e1f5df15</a>
+<blockquote>
+<p>
+ Yet more scanbuild warnings<br>
+<br>
+ gxhintn.c remove some unnecessary assignemnts<br>
+<br>
+ gxicolor.c remove an assignement, add an error check<br>
+<br>
+ gximono.c add an error check<br>
+<br>
+ gxiscale.c refactor code to remove some unnecessary assignments<br>
+<br>
+ gdevpsft.c remove unnecessary assignment<br>
+<br>
+base/gxhintn.c<br>
+base/gxicolor.c<br>
+base/gximono.c<br>
+base/gxiscale.c<br>
+devices/vector/gdevpsft.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-29 15:32: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=1b1015dc0e07b5269c4ee2009d5b896702550a3a">1b1015dc0e07b5269c4ee2009d5b896702550a3a</a>
+<blockquote>
+<p>
+ Tweak scale parameters in structure.<br>
+<br>
+ Be consistent with naming. Add PatchHeightOut and TopMarginOut so<br>
+ we have the complete set. These are required for forthcoming work.<br>
+<br>
+base/gxiscale.c<br>
+base/sidscale.c<br>
+base/siscale.c<br>
+base/sisparam.h<br>
+devices/vector/gdevpsdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 12:48:07 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=38e0c643e62087c089c59c9ad44fc468dd09cd37">38e0c643e62087c089c59c9ad44fc468dd09cd37</a>
+<blockquote>
+<p>
+ Tweak bitmap interpolater patch size.<br>
+<br>
+ When we interpolate an image, we restrict the interpolation to<br>
+ the &quot;patch&quot; of the destination image that is actually visible.<br>
+ Previously, the calculation of this patch has been inaccurate,<br>
+ resulting in a larger area being decoded than was actually<br>
+ needed.<br>
+<br>
+ While this extra work was largely mitigated by the &quot;Active&quot; area<br>
+ detection code, it has meant that the contribution calculations<br>
+ within the scaler were 'wrapping' the outside pixels in the<br>
+ region to avoid accessing out of bounds.<br>
+<br>
+ This upsets the new library we are working on to do the scaling,<br>
+ and it's basically inelegant. Instead we fix the destination<br>
+ patch calculations so that the patch is correctly sized based<br>
+ upon the available source data. This is safe to do because we<br>
+ know the source data was already expanded.<br>
+<br>
+base/gxiscale.c<br>
+base/sisparam.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-06 11:46: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=f6005484617ada241d2f5f4deee4808616474831">f6005484617ada241d2f5f4deee4808616474831</a>
+<blockquote>
+<p>
+ Address more scanbuild/gcc/clang warnings<br>
+<br>
+ gdevkrnlsclass.c Change a while...do into a do...while to see if it<br>
+ pacifies a 'dereference of NULL pointer' in scanbuild<br>
+<br>
+ gsparamx.c Incorrect return code could lead to an earlier error not<br>
+ being preserved. Fortunately this is currently only called by claptrap.<br>
+<br>
+ gsptype1.c remove unnecessary assignments<br>
+ gssprintf.c &quot; &quot; &quot;<br>
+ gstype2.c &quot; &quot; &quot;<br>
+ gstype42.c &quot; &quot; &quot;<br>
+ gxfill.c &quot; &quot; &quot;<br>
+<br>
+ gsptype2.c rejig the code to avoid setting a return code that isn't used.<br>
+ Add a check on a return code that was missing.<br>
+<br>
+ gxchar.c add return code checking<br>
+ gxcmap.c &quot; &quot; &quot; &quot;<br>
+<br>
+base/gdevkrnlsclass.c<br>
+base/gsparamx.c<br>
+base/gsptype1.c<br>
+base/gsptype2.c<br>
+base/gssprintf.c<br>
+base/gstype2.c<br>
+base/gstype42.c<br>
+base/gxchar.c<br>
+base/gxcmap.c<br>
+base/gxfill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-06 10:30:32 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=16688a8b833cf4e8950265e933604c32b1f2392e">16688a8b833cf4e8950265e933604c32b1f2392e</a>
+<blockquote>
+<p>
+ Address more scanbuild/gcc/clang warnings<br>
+<br>
+ gp_os2.c free buffer and close file on memory full (as per other<br>
+ error conditions).<br>
+<br>
+ gscicach.c remove unnecessary assignment<br>
+ gsdparam.c &quot; &quot; &quot; &quot;<br>
+ gxfapi.c &quot; &quot; &quot; &quot;<br>
+<br>
+ gscscie.c check a return code<br>
+ zicc.c &quot; &quot; &quot; &quot;<br>
+ zpcolor.c &quot; &quot; &quot; &quot;<br>
+<br>
+ mkromfs.c If realloc should fail in process_path, free working memory<br>
+ print an error and exit as per other error conditions.<br>
+<br>
+ zcolor.c ensure depth cannot be 0. This should not be possible, no<br>
+ existing code causes this, but its best to be safe and it prevents a<br>
+ possible unassigned pointer dereference (possibly NULL) which is what<br>
+ scanbuild complains of. Best to catch this in the interpreter.<br>
+<br>
+base/gp_os2.c<br>
+base/gscicach.c<br>
+base/gscscie.c<br>
+base/gsdparam.c<br>
+base/gxfapi.c<br>
+base/mkromfs.c<br>
+psi/zcolor.c<br>
+psi/zicc.c<br>
+psi/zpcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 16:09: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=650aae633131396b802b2cae6e09afbd5aae6ad6">650aae633131396b802b2cae6e09afbd5aae6ad6</a>
+<blockquote>
+<p>
+ Coverity ID #261212<br>
+<br>
+ This probably showed up because of Ray's work adding return value<br>
+ checking. Previously there were probably enough places not checking<br>
+ the return code for Coverity to decide it was deliberate, now it is<br>
+ raising a warning.<br>
+<br>
+ Add a check and take action on an error return.<br>
+<br>
+psi/zcrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 16:08: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=d7a5f0a14e873c7f5f557c4b635f4b4f166b41d2">d7a5f0a14e873c7f5f557c4b635f4b4f166b41d2</a>
+<blockquote>
+<p>
+ Coverity ID #261211 - unchecked return value<br>
+<br>
+ This probably showed up because of Ray's work adding return value<br>
+ checking. Previously there were probably enough places not checking<br>
+ the return code for Coverity to decide t was deliberate, now it is<br>
+ raising a warning.<br>
+<br>
+ Add a check of the return code.<br>
+<br>
+devices/vector/gdevpsdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 15:34: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=b8e36896913713f46a43dbbc0c0ed83f34ab4f10">b8e36896913713f46a43dbbc0c0ed83f34ab4f10</a>
+<blockquote>
+<p>
+ Try to squash 3 identical scanbuild warnings<br>
+<br>
+ I think scanbuild is deciding that 'depth' could be less than 0, leading<br>
+ us to not enter the loop which assigns 'obj'. This is not true, the<br>
+ depth cannot be less than 0.<br>
+<br>
+ Try making 'depth' an unsigned int as a hint to scanbuild, and see if<br>
+ the warning goes away.<br>
+<br>
+psi/zcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 15:32:44 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=88e7812d362483d07ce63b47ae75c4852fe01a8f">88e7812d362483d07ce63b47ae75c4852fe01a8f</a>
+<blockquote>
+<p>
+ txtwrite - honour error conditions<br>
+<br>
+ 2 warnings from scanbuild, we were ignoring a potential error return in<br>
+ two places.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 11:55: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=9c38c79741193010b23dabceb76996488415bd09">9c38c79741193010b23dabceb76996488415bd09</a>
+<blockquote>
+<p>
+ Clean up another scanbuild warning<br>
+<br>
+ We increment a local variable just before it goes out of scope, which is<br>
+ clearly pointless.<br>
+<br>
+devices/vector/gdevpsft.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 11: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=0b4c59be1793c81e9d8cfeba04e74b6020571f5d">0b4c59be1793c81e9d8cfeba04e74b6020571f5d</a>
+<blockquote>
+<p>
+ Fix another scanbuild warning<br>
+<br>
+ We don't seem to have any test cases which hit this, but it does look<br>
+ possible from the code that we can end up trying to dereference<br>
+ p_tile, and we don't check to see if its not NULL, which we do in a<br>
+ lot of other places in this fucntion.<br>
+<br>
+ To be safe, test it first and return an error if its NULL.<br>
+<br>
+devices/vector/gdevpdfv.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 10:39: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=5d9d4bc1bbd272478bb9fd24fc1c0e44b0edc22a">5d9d4bc1bbd272478bb9fd24fc1c0e44b0edc22a</a>
+<blockquote>
+<p>
+ Remove an unused function, clear a scanbuild warning<br>
+<br>
+ The function cos_write_stream_from_pipeline was never used, so remove<br>
+ its definition.<br>
+<br>
+ At the same time try to squash a harmless scanbuild warning. We us a<br>
+ 'while(s....' loop to try and find a stream, scanbuild regards this as<br>
+ implying that 's' might be NULL *initially*, which is not true. This<br>
+ leads to a 'NULL pointer dereference' warning in the line after the<br>
+ loop, because scanbuild thinks we can get to s-&gt;state with s being an<br>
+ inital NULL.<br>
+<br>
+ Since we already check for s becoming NULL inside the loop, we don't<br>
+ need to check it in while condition.<br>
+<br>
+devices/vector/gdevpdfo.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 10:35:16 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=43b2b593743433f45590b02b788c54d6bcf563a7">43b2b593743433f45590b02b788c54d6bcf563a7</a>
+<blockquote>
+<p>
+ Prevent potential garbage pointer dereference<br>
+<br>
+ Picked up by scanbuild, if pdf_enter_substream failed then pres would be<br>
+ left uninitialised, but we would then try to dereference it and assign a<br>
+ value to a member before acting on the error return code.<br>
+<br>
+ Change the order of execution to test the return code first.<br>
+<br>
+devices/vector/gdevpdti.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 09:43: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=efb9bf3949617b4c733a6dcce04acd142c50115d">efb9bf3949617b4c733a6dcce04acd142c50115d</a>
+<blockquote>
+<p>
+ Remove faulty code picked up by scanbuild<br>
+<br>
+ scanbuild correctly warned that a variable was uninitialised. In fact<br>
+ it looks to me like the code that was flagged simply can't work.<br>
+<br>
+ Fortunately it isn't exercised by any files in our test suite, and has<br>
+ never been reported as a bug, so its clearly an uncommon (perhaps even<br>
+ impossible) case.<br>
+<br>
+ All the same, lets fall back to the default handling if we hit it,<br>
+ because at least that works, which the old code definitely didn't.<br>
+<br>
+devices/vector/gdevpdfb.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-05 09:40: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=ba6d8c5ec0fa27822041cb3bbc620e531fabcf0a">ba6d8c5ec0fa27822041cb3bbc620e531fabcf0a</a>
+<blockquote>
+<p>
+ remove a scanbuild warning<br>
+<br>
+ We don't care about errors in this case, we are already aborting due<br>
+ to an error. So just discard the status return.<br>
+<br>
+devices/vector/gdevpdfj.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-03 10:46:23 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b119c51e5ce8d671bc33e38b7ebf7a5bdf5f9af5">b119c51e5ce8d671bc33e38b7ebf7a5bdf5f9af5</a>
+<blockquote>
+<p>
+ Remove unused variable<br>
+<br>
+ another scanbuild warning<br>
+<br>
+base/gsdevice.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-03 10:26: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=dde422bb086ce0b2f56609fa3fc9af87867fc757">dde422bb086ce0b2f56609fa3fc9af87867fc757</a>
+<blockquote>
+<p>
+ partially revert 07f9da3cb5647b18458cd52d1be35ab5365790eb<br>
+<br>
+ This was a scanbuild false positive, the original code was in fact<br>
+ correct.<br>
+<br>
+base/gdevkrnlsclass.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 15:29:09 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fa4941c607680159ed62bfe79b754a099adf5a4e">fa4941c607680159ed62bfe79b754a099adf5a4e</a>
+<blockquote>
+<p>
+ squash more scanbuild warnings<br>
+<br>
+ check some return values.<br>
+<br>
+ Remove some initialisations that aren't required.<br>
+<br>
+ Remove soem unused variables.<br>
+<br>
+base/gsdparam.c<br>
+base/gsfunc0.c<br>
+base/gsht.c<br>
+base/gsht1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 14:43: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=3f38e3eeb6e6e7d88abbe1dca7675e237d5274e7">3f38e3eeb6e6e7d88abbe1dca7675e237d5274e7</a>
+<blockquote>
+<p>
+ Remove spurious semi-colons introduced in 63f0fcc87e7c<br>
+<br>
+ I mistakenly left the trailing semi-colon in the macros defining the contents<br>
+ of two pairs of structures.<br>
+<br>
+ Oddly, this caused a warning on VS2017, but not gcc/clang.<br>
+<br>
+ Thanks to Shailesh Mistry for pointing it out.<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 13:11: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=452efeca35ee7e3fe381cae9a71d6efbcce68cd0">452efeca35ee7e3fe381cae9a71d6efbcce68cd0</a>
+<blockquote>
+<p>
+ Address warning in gdevbit.c<br>
+<br>
+ Fix the &quot;missing braces in initializer&quot; warning - the explicit declaration of<br>
+ the gs_bitrgbtags_device initializer had gotten out of step with the<br>
+ gx_device_printer_s definition.<br>
+<br>
+devices/gdevbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 14:10:44 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9036e05dfbcfa7968e00a53ef7ae9f6146740e94">9036e05dfbcfa7968e00a53ef7ae9f6146740e94</a>
+<blockquote>
+<p>
+ Remove the 'device filter chain'<br>
+<br>
+ This was an early attempt to allow the possibility of 'chaining'<br>
+ devices together. I believe it was never actually completed, although<br>
+ the stack existed and was carefully preserved in the graphcis state,<br>
+ the only code which accessed it was '.popdevicefilter'.<br>
+<br>
+ No C code or PostScript code ever actually pushed a device onto the<br>
+ device filter stack, and nothing ever examined the stack to pass<br>
+ operations through the 'chain'.<br>
+<br>
+ Since its been superseded by device subclassing, and didn't actually<br>
+ seem to do anything anyway, remove it altogether. In addition to<br>
+ removing clutter this also reduces the amount of 'magic' surrounding<br>
+ reference counted objects in gstates.<br>
+<br>
+base/gdevp14.c<br>
+base/gsgstate.c<br>
+base/gsstate.c<br>
+base/gxgstate.h<br>
+base/lib.mak<br>
+doc/Develop.htm<br>
+doc/who_owns_what.txt<br>
+psi/int.mak<br>
+psi/zdfilter.c<br>
+psi/ztrans.c<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 11:55:05 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=154f27478bdf5b27858a9f446433d5b62febb89d">154f27478bdf5b27858a9f446433d5b62febb89d</a>
+<blockquote>
+<p>
+ remove some unused code - scanbuild warnings....<br>
+<br>
+base/gsdevice.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 11:17:19 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=84370aa9d391c37eccd467760c471e99e355a8ec">84370aa9d391c37eccd467760c471e99e355a8ec</a>
+<blockquote>
+<p>
+ Fix some debug prints - scanbuild warning fix<br>
+<br>
+ The number of parameters and number of format specifiers didn't match,<br>
+ this would only be apparent when built with DISPLAY_DEBUG defined.<br>
+<br>
+psi/dpmain.c<br>
+psi/dwmainc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 11:16: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=1552615d4ae39a50a5f7bb40e5f481919ef0cb58">1552615d4ae39a50a5f7bb40e5f481919ef0cb58</a>
+<blockquote>
+<p>
+ Fix memory leak - scanbuild warning<br>
+<br>
+ Not really a leak as such, but it prevents the warning.<br>
+<br>
+psi/apitest.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 11:15:13 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab8d4f968c01900e94438575ce33ae7a4fd63167">ab8d4f968c01900e94438575ce33ae7a4fd63167</a>
+<blockquote>
+<p>
+ LCMS2art - fix some warnings from scanbuild<br>
+<br>
+ Make three functions static, to avoid 'no prototype' warnings.<br>
+<br>
+lcms2art/src/cmsalpha.c<br>
+lcms2art/src/cmssamp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 09:45: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=0c9d19b947f9ca5bfe6ed1ba221e303d60bfc0cb">0c9d19b947f9ca5bfe6ed1ba221e303d60bfc0cb</a>
+<blockquote>
+<p>
+ Remove the Mitsubishi CP50 colour dot matrix printer device<br>
+<br>
+ Recent changes caused this device to enter clist mode more frequently<br>
+ and our automated testing revealed that in clist mode this device<br>
+ does not work. It calls a device method which should never be called.<br>
+<br>
+ Its possible to remove the call, but we have no way to determine whether<br>
+ the resulting output actually works.<br>
+<br>
+ Given the age of this device (and Mitsubishi have reused the model<br>
+ number for a different device, so it must be old) we are removing<br>
+ support for this device and deleting it fro the build.<br>
+<br>
+ If someone is still using this device, we'll reinstate support if they<br>
+ are prepared to test the outptu for us.<br>
+<br>
+base/unix-gcc.mak<br>
+configure.ac<br>
+devices/contrib.mak<br>
+devices/gdevcp50.c<br>
+doc/Develop.htm<br>
+psi/msvc.mak<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-02 08:54:35 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=252527b4257133a722f4f03dce1e8abcbcc3f3c8">252527b4257133a722f4f03dce1e8abcbcc3f3c8</a>
+<blockquote>
+<p>
+ Fix jmp_buf related compiler warning (setjmp_.h)<br>
+<br>
+ The compiler (gcc/clang) considers the alignment of entries in a structure to<br>
+ be a run-time &quot;variable&quot;, thus gives a warning when that value is used to<br>
+ size an array used in a globally available data type.<br>
+<br>
+ The solution (suggested by Robin) is to use a buffer twice the size of a jmpbuf,<br>
+ thus guaranteeing we have enough space to offset into the buffer, and get the<br>
+ required alignment.<br>
+<br>
+base/setjmp_.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-01 14:56:31 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f52a7ccf96f1b9bb90194ba1dd6a50040dd63896">f52a7ccf96f1b9bb90194ba1dd6a50040dd63896</a>
+<blockquote>
+<p>
+ Fix debug flag for TTF loading<br>
+<br>
+ Two places were erroneously using PDFDEBUG instead of TTFDEBUG<br>
+<br>
+Resource/Init/gs_ttf.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-01 09:46: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=5b546c80e79e6d1f1c6c3a9a71bfb58ee23a328c">5b546c80e79e6d1f1c6c3a9a71bfb58ee23a328c</a>
+<blockquote>
+<p>
+ Address the popen prototype warning<br>
+<br>
+ Only include the hacky popen() prototype if it doesn't already exist in the<br>
+ standard header files.<br>
+<br>
+Makefile.in<br>
+base/pipe_.h<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-02-01 11:40:20 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=88aea05567f36d4d37c00a51b818c80f88291f6b">88aea05567f36d4d37c00a51b818c80f88291f6b</a>
+<blockquote>
+<p>
+ Remove another unused procedure from the OpenJPEG interface<br>
+<br>
+base/sjpx_openjpeg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-31 09:56: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=63f0fcc87e7c6a0ca38e92b7b3d72f1e936f2d0e">63f0fcc87e7c6a0ca38e92b7b3d72f1e936f2d0e</a>
+<blockquote>
+<p>
+ Fix discarded qualifier warnings in pcl/pl/pjparse.c<br>
+<br>
+ Create separate structure definitions for the normal and default PJL<br>
+ environment and PJL font sources data.<br>
+<br>
+ The only difference between the two is the default one qualifies string<br>
+ values as const.<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-31 11:59: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=4d2f9f48fc272b7bb396f36704de03a7c15d2b3f">4d2f9f48fc272b7bb396f36704de03a7c15d2b3f</a>
+<blockquote>
+<p>
+ Fix _MSC_VER undefined warnings on non-MSC compilers<br>
+<br>
+lcms2art/src/lcms2_internal.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-31 10:22: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=b272292d9294e88e32d177d8b5e916f8bfaeb78b">b272292d9294e88e32d177d8b5e916f8bfaeb78b</a>
+<blockquote>
+<p>
+ Add a zlib specific CFLAGS and avoid discarded const warning<br>
+<br>
+ zlib has a table initialization with string literals that gcc<br>
+ automatically makes const, but the structure definition for the table does not<br>
+ qualify those entries as const. Hence we get warnings.<br>
+<br>
+ This adds ZLIB_CFLAGS and, with a gcc compatible compiler, sets it to:<br>
+ -Wno-write-strings<br>
+<br>
+ which kills that warning.<br>
+<br>
+ Done this way because we want to retain that warning in the Ghostscript code.<br>
+<br>
+Makefile.in<br>
+base/zlib.mak<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-31 09:34:39 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aea7d587749819b7e59d24720efe86b1f8555186">aea7d587749819b7e59d24720efe86b1f8555186</a>
+<blockquote>
+<p>
+ Add a TIFF specific CFLAGS and avoid discarded const warning<br>
+<br>
+ libtiff has a large table initialization with string literals that gcc<br>
+ automatically makes const, but the structure definition for the table does not<br>
+ qualify those entries as const. Hence we get warnings.<br>
+<br>
+ This adds TIFF_CFLAGS and, with a gcc compatible compiler, sets it to:<br>
+ -Wno-write-strings<br>
+<br>
+ which kills that warning.<br>
+<br>
+ Done this way because we want to retain that warning in the Ghostscript code.<br>
+<br>
+Makefile.in<br>
+base/tiff.mak<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-27 23:11:13 +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=865c3a83a449dc2c28f58095183b7493ccd970c4">865c3a83a449dc2c28f58095183b7493ccd970c4</a>
+<blockquote>
+<p>
+ Update error code checking to use hpgl_call within pgdraw.c file. Also<br>
+ revert error code check in hpgl_draw_current_path to prevent failures<br>
+ during cluster run.<br>
+<br>
+pcl/pcl/pgdraw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-27 17:50:41 +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=4ae64a398e6d5693c1dd4dd9348054cd21ef2443">4ae64a398e6d5693c1dd4dd9348054cd21ef2443</a>
+<blockquote>
+<p>
+ Check all return code from param_write_float_array.<br>
+<br>
+pcl/pcl/pcommand.c<br>
+pcl/pxl/pxsessio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-27 16:50:23 +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=d372efa33d9e2550b887154e2d6a3b9d03bc6438">d372efa33d9e2550b887154e2d6a3b9d03bc6438</a>
+<blockquote>
+<p>
+ Check all return codes from pxPassthrough_init.<br>
+<br>
+pcl/pxl/pxpthr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-27 16:27: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=cc620400517cd76a5276602aea59f1231f934c46">cc620400517cd76a5276602aea59f1231f934c46</a>
+<blockquote>
+<p>
+ Check all return codes from pcl_enter_graphics_mode.<br>
+<br>
+pcl/pcl/rtgmode.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-27 15:18:02 +0000
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=db10b7b56e5de12f92c1df83237ec4ff4b0dcf2a">db10b7b56e5de12f92c1df83237ec4ff4b0dcf2a</a>
+<blockquote>
+<p>
+ Check all return codes from pcl_end_graphics_mode.<br>
+<br>
+pcl/pcl/pctop.c<br>
+pcl/pcl/rtgmode.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-26 22:45:54 +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=1df8810b79c5ef5979b1cad5ffe22a1fed824871">1df8810b79c5ef5979b1cad5ffe22a1fed824871</a>
+<blockquote>
+<p>
+ Update propagation of error codes from pcl_end_page.<br>
+<br>
+pcl/pcl/pcjob.c<br>
+pcl/pcl/pcpage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-26 22:17:36 +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=e63064cfa3142e7a893a1666570f390d83662360">e63064cfa3142e7a893a1666570f390d83662360</a>
+<blockquote>
+<p>
+ Update pcl_mark_page_for_character to propagate error codes.<br>
+<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpage.h<br>
+pcl/pcl/pctext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-26 21:57: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=6f514a99fdb079d76df981a39dcb45f090766849">6f514a99fdb079d76df981a39dcb45f090766849</a>
+<blockquote>
+<p>
+ Update functionality to propagate error codes.<br>
+<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpage.h<br>
+pcl/pcl/pgdraw.c<br>
+pcl/pcl/pglabel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-26 21:20:02 +0000
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=193d143d1843edb2515138e6b4b9e7c4f5c06aa5">193d143d1843edb2515138e6b4b9e7c4f5c06aa5</a>
+<blockquote>
+<p>
+ Update functionality to propagate error codes returned from new_page_size.<br>
+<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpage.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-26 17:59:15 +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=0d3c2753172bb9e22aa879d7503ec44f4b33e8f4">0d3c2753172bb9e22aa879d7503ec44f4b33e8f4</a>
+<blockquote>
+<p>
+ Update pcl_transform_rect to remove unused memory variable.<br>
+<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpatxfm.c<br>
+pcl/pcl/pcpatxfm.h<br>
+pcl/pcl/rtgmode.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-31 15:37:17 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=961b01a6e50e640afac0e696f9ce74a677e648ec">961b01a6e50e640afac0e696f9ce74a677e648ec</a>
+<blockquote>
+<p>
+ Squash more scan build warnings<br>
+<br>
+ Remove initialisations which aren't required (sometimes due to multiple<br>
+ initialisations.<br>
+<br>
+ In interp.c, store the error value in the actual return code.<br>
+<br>
+ Action error return codes.<br>
+<br>
+ Fix a few white space oddities.<br>
+<br>
+psi/dscparse.c<br>
+psi/gs.c<br>
+psi/imain.c<br>
+psi/interp.c<br>
+psi/zcie.c<br>
+psi/zcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-31 14:47:41 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7220e8e037ccee1c234872d143ec0ca14682604b">7220e8e037ccee1c234872d143ec0ca14682604b</a>
+<blockquote>
+<p>
+ Squash some more warnings<br>
+<br>
+ scan build this time, none of them serious.<br>
+<br>
+ Check some return codes and remove some unused variables.<br>
+<br>
+devices/gdevpdfimg.c<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfc.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdft.c<br>
+devices/vector/gdevpdfu.c<br>
+devices/vector/gdevpsdp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-31 09:59: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=68fcaea85611267eec9f4bac3443977fe15627dc">68fcaea85611267eec9f4bac3443977fe15627dc</a>
+<blockquote>
+<p>
+ squash GCC warnings<br>
+<br>
+ remove an unused variable from a (large) macro in gxfilltr.h<br>
+<br>
+ remove some unused variables, and an entire unused function in<br>
+ sjpx_openjpeg.c<br>
+<br>
+ remove an unused variable in gdevbit.c<br>
+<br>
+ remove an unused variable in gdevjpeg.c<br>
+<br>
+ bracket a variable declaration and usage with #ifdef DEBUG to prevent<br>
+ the compiler warning that the variable is set but not read on non-debug<br>
+ builds. gdevxps.c<br>
+<br>
+ preserve 'const' when passing a memory pointer to a procedure to<br>
+ avoid a warning about discarding const. zcie.c<br>
+<br>
+base/gxfilltr.h<br>
+base/sjpx_openjpeg.c<br>
+devices/gdevbit.c<br>
+devices/gdevjpeg.c<br>
+devices/vector/gdevxps.c<br>
+psi/zcie.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-31 09:55:34 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=07f9da3cb5647b18458cd52d1be35ab5365790eb">07f9da3cb5647b18458cd52d1be35ab5365790eb</a>
+<blockquote>
+<p>
+ Device subclassing - fix potential problems<br>
+<br>
+ Flagged by scan build, the code to work a chain of devices had a<br>
+ potential problem in walking up and down the chain.<br>
+<br>
+ Also flagged by scan build, the create_compositor method checked the<br>
+ target child device before trying to use it to set the saved target<br>
+ color info, but didn't check it before trying to set the procs.<br>
+<br>
+base/gdevdflt.c<br>
+base/gdevkrnlsclass.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-30 11:49:19 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=67daf3d995d83da98988085e68548a4920fe1747">67daf3d995d83da98988085e68548a4920fe1747</a>
+<blockquote>
+<p>
+ Get rid of some gcc warnings.<br>
+<br>
+ Add initializers for variables that confuse gcc. Also get rid of the<br>
+ clist_reinit_output_file which was only needed for the RETRYING code<br>
+ and the partial page rendering (this function had unused variable<br>
+ warnings). THis should have been part of commit 7eda41b.<br>
+<br>
+base/gxclist.c<br>
+base/gxclpath.c<br>
+base/gxclrast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-30 16:37: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=22cf826fe4d0c0206be582d35c99954199dee999">22cf826fe4d0c0206be582d35c99954199dee999</a>
+<blockquote>
+<p>
+ Update copyright notice with new head office address.<br>
+<br>
+ Also update copyright dates.<br>
+<br>
+ Remove gs_cmdl.ps as we no longer use it, and remove its entry from<br>
+ psfiles.htm.<br>
+<br>
+ Remove xfonts.htm as this feature (xfont support) is long, long gone.<br>
+<br>
+Makefile.in<br>
+Resource/CIDFont/ArtifexBullet<br>
+Resource/CMap/Identity-UTF16-H<br>
+Resource/ColorSpace/DefaultCMYK<br>
+Resource/ColorSpace/DefaultGray<br>
+Resource/ColorSpace/DefaultRGB<br>
+Resource/ColorSpace/TrivialCMYK<br>
+Resource/ColorSpace/sGray<br>
+Resource/ColorSpace/sRGB<br>
+Resource/Decoding/FCO_Dingbats<br>
+Resource/Decoding/FCO_Symbol<br>
+Resource/Decoding/FCO_Unicode<br>
+Resource/Decoding/FCO_Wingdings<br>
+Resource/Decoding/Latin1<br>
+Resource/Decoding/StandardEncoding<br>
+Resource/Decoding/Unicode<br>
+Resource/Encoding/CEEncoding<br>
+Resource/Encoding/ExpertEncoding<br>
+Resource/Encoding/ExpertSubsetEncoding<br>
+Resource/Encoding/NotDefEncoding<br>
+Resource/Encoding/Wingdings<br>
+Resource/Init/FCOfontmap-PCLPS2<br>
+Resource/Init/Fontmap.GS<br>
+Resource/Init/gs_agl.ps<br>
+Resource/Init/gs_btokn.ps<br>
+Resource/Init/gs_cff.ps<br>
+Resource/Init/gs_cidcm.ps<br>
+Resource/Init/gs_ciddc.ps<br>
+Resource/Init/gs_cidfm.ps<br>
+Resource/Init/gs_cidfn.ps<br>
+Resource/Init/gs_cidtt.ps<br>
+Resource/Init/gs_cmap.ps<br>
+Resource/Init/gs_cspace.ps<br>
+Resource/Init/gs_dbt_e.ps<br>
+Resource/Init/gs_diskn.ps<br>
+Resource/Init/gs_dpnxt.ps<br>
+Resource/Init/gs_dps.ps<br>
+Resource/Init/gs_dps1.ps<br>
+Resource/Init/gs_dps2.ps<br>
+Resource/Init/gs_dscp.ps<br>
+Resource/Init/gs_epsf.ps<br>
+Resource/Init/gs_fapi.ps<br>
+Resource/Init/gs_fntem.ps<br>
+Resource/Init/gs_fonts.ps<br>
+Resource/Init/gs_frsd.ps<br>
+Resource/Init/gs_icc.ps<br>
+Resource/Init/gs_il1_e.ps<br>
+Resource/Init/gs_img.ps<br>
+Resource/Init/gs_init.ps<br>
+Resource/Init/gs_l2img.ps<br>
+Resource/Init/gs_lev2.ps<br>
+Resource/Init/gs_ll3.ps<br>
+Resource/Init/gs_mex_e.ps<br>
+Resource/Init/gs_mgl_e.ps<br>
+Resource/Init/gs_mro_e.ps<br>
+Resource/Init/gs_pdf_e.ps<br>
+Resource/Init/gs_pdfwr.ps<br>
+Resource/Init/gs_res.ps<br>
+Resource/Init/gs_resmp.ps<br>
+Resource/Init/gs_setpd.ps<br>
+Resource/Init/gs_statd.ps<br>
+Resource/Init/gs_std_e.ps<br>
+Resource/Init/gs_sym_e.ps<br>
+Resource/Init/gs_trap.ps<br>
+Resource/Init/gs_ttf.ps<br>
+Resource/Init/gs_typ32.ps<br>
+Resource/Init/gs_typ42.ps<br>
+Resource/Init/gs_type1.ps<br>
+Resource/Init/gs_wan_e.ps<br>
+Resource/Init/pdf_base.ps<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_font.ps<br>
+Resource/Init/pdf_main.ps<br>
+Resource/Init/pdf_ops.ps<br>
+Resource/Init/pdf_rbld.ps<br>
+Resource/Init/pdf_sec.ps<br>
+Resource/SubstCID/CNS1-WMode<br>
+Resource/SubstCID/GB1-WMode<br>
+Resource/SubstCID/Japan1-WMode<br>
+Resource/SubstCID/Korea1-WMode<br>
+arch/arch_autoconf.h.in<br>
+arch/windows-arm-msvc.h<br>
+arch/windows-x64-msvc.h<br>
+arch/windows-x86-msvc.h<br>
+base/all-arch.mak<br>
+base/assert_.h<br>
+base/bench.c<br>
+base/bobbin.c<br>
+base/bobbin.h<br>
+base/claptrap-init.c<br>
+base/claptrap-planar.c<br>
+base/claptrap.c<br>
+base/claptrap.h<br>
+base/ctype_.h<br>
+base/dirent_.h<br>
+base/dos_.h<br>
+base/echogs.c<br>
+base/errno_.h<br>
+base/expat.mak<br>
+base/fapi_bs.mak<br>
+base/fapi_ft.c<br>
+base/fapibstm.c<br>
+base/fapiufst.c<br>
+base/fcntl_.h<br>
+base/freetype.mak<br>
+base/gconf.c<br>
+base/gconf.h<br>
+base/gdbflags.h<br>
+base/gdebug.h<br>
+base/gdevabuf.c<br>
+base/gdevbbox.c<br>
+base/gdevbbox.h<br>
+base/gdevdbit.c<br>
+base/gdevdcrd.c<br>
+base/gdevdcrd.h<br>
+base/gdevddrw.c<br>
+base/gdevddrw.h<br>
+base/gdevdevn.c<br>
+base/gdevdevn.h<br>
+base/gdevdevnprn.h<br>
+base/gdevdflt.c<br>
+base/gdevdgbr.c<br>
+base/gdevdrop.c<br>
+base/gdevdsha.c<br>
+base/gdevemap.c<br>
+base/gdevflp.c<br>
+base/gdevflp.h<br>
+base/gdevhit.c<br>
+base/gdevkrnlsclass.c<br>
+base/gdevkrnlsclass.h<br>
+base/gdevm1.c<br>
+base/gdevm16.c<br>
+base/gdevm2.c<br>
+base/gdevm24.c<br>
+base/gdevm32.c<br>
+base/gdevm4.c<br>
+base/gdevm40.c<br>
+base/gdevm48.c<br>
+base/gdevm56.c<br>
+base/gdevm64.c<br>
+base/gdevm8.c<br>
+base/gdevmem.c<br>
+base/gdevmem.h<br>
+base/gdevmpla.c<br>
+base/gdevmpla.h<br>
+base/gdevmplt.c<br>
+base/gdevmplt.h<br>
+base/gdevmr1.c<br>
+base/gdevmr2n.c<br>
+base/gdevmr8n.c<br>
+base/gdevmrop.h<br>
+base/gdevmrun.c<br>
+base/gdevmrun.h<br>
+base/gdevmx.c<br>
+base/gdevnfwd.c<br>
+base/gdevoflt.c<br>
+base/gdevoflt.h<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gdevpccm.c<br>
+base/gdevpccm.h<br>
+base/gdevpipe.c<br>
+base/gdevplnx.c<br>
+base/gdevplnx.h<br>
+base/gdevppla.c<br>
+base/gdevppla.h<br>
+base/gdevprn.c<br>
+base/gdevprn.h<br>
+base/gdevpxat.h<br>
+base/gdevpxen.h<br>
+base/gdevpxop.h<br>
+base/gdevrops.c<br>
+base/gdevsclass.c<br>
+base/gdevsclass.h<br>
+base/gdevvec.c<br>
+base/gdevvec.h<br>
+base/gen_ordered.c<br>
+base/gen_ordered.h<br>
+base/genarch.c<br>
+base/genconf.c<br>
+base/gendev.c<br>
+base/genht.c<br>
+base/gp.h<br>
+base/gp_dosfe.c<br>
+base/gp_dosfs.c<br>
+base/gp_dvx.c<br>
+base/gp_getnv.c<br>
+base/gp_mktmp.c<br>
+base/gp_msdll.c<br>
+base/gp_msdos.c<br>
+base/gp_mshdl.c<br>
+base/gp_mslib.c<br>
+base/gp_mspol.c<br>
+base/gp_msprn.c<br>
+base/gp_mswin.c<br>
+base/gp_mswin.h<br>
+base/gp_nsync.c<br>
+base/gp_ntfs.c<br>
+base/gp_nxpsprn.c<br>
+base/gp_os2.c<br>
+base/gp_os2.h<br>
+base/gp_os2fs.c<br>
+base/gp_os2pr.c<br>
+base/gp_os9.c<br>
+base/gp_paper.c<br>
+base/gp_psync.c<br>
+base/gp_stdia.c<br>
+base/gp_stdin.c<br>
+base/gp_strdl.c<br>
+base/gp_sysv.c<br>
+base/gp_unifn.c<br>
+base/gp_unifs.c<br>
+base/gp_unix.c<br>
+base/gp_upapr.c<br>
+base/gp_vms.c<br>
+base/gp_wgetv.c<br>
+base/gp_win32.c<br>
+base/gp_wpapr.c<br>
+base/gp_wsync.c<br>
+base/gp_wutf8.c<br>
+base/gp_wxpsprn.cpp<br>
+base/gpcheck.h<br>
+base/gpgetenv.h<br>
+base/gpmisc.c<br>
+base/gpmisc.h<br>
+base/gpsync.h<br>
+base/gs.mak<br>
+base/gs_dll_call.h<br>
+base/gs_mgl_e.h<br>
+base/gs_mro_e.h<br>
+base/gsalloc.c<br>
+base/gsalloc.h<br>
+base/gsalpha.c<br>
+base/gsalpha.h<br>
+base/gsalphac.c<br>
+base/gsalphac.h<br>
+base/gsargs.c<br>
+base/gsargs.h<br>
+base/gsbitcom.c<br>
+base/gsbitmap.h<br>
+base/gsbitops.c<br>
+base/gsbitops.h<br>
+base/gsbittab.c<br>
+base/gsbittab.h<br>
+base/gsccode.h<br>
+base/gsccolor.h<br>
+base/gscdef.c<br>
+base/gscdefs.h<br>
+base/gscdevn.c<br>
+base/gscdevn.h<br>
+base/gscedata.c<br>
+base/gscedata.h<br>
+base/gscencs.c<br>
+base/gscencs.h<br>
+base/gschar.c<br>
+base/gschar.h<br>
+base/gschar0.c<br>
+base/gscicach.c<br>
+base/gscicach.h<br>
+base/gscie.c<br>
+base/gscie.h<br>
+base/gsciemap.c<br>
+base/gscindex.h<br>
+base/gsclipsr.c<br>
+base/gsclipsr.h<br>
+base/gscms.h<br>
+base/gscolor.c<br>
+base/gscolor.h<br>
+base/gscolor1.c<br>
+base/gscolor1.h<br>
+base/gscolor2.c<br>
+base/gscolor2.h<br>
+base/gscolor3.c<br>
+base/gscolor3.h<br>
+base/gscompt.h<br>
+base/gscoord.c<br>
+base/gscoord.h<br>
+base/gscparam.c<br>
+base/gscpixel.c<br>
+base/gscpixel.h<br>
+base/gscpm.h<br>
+base/gscrd.c<br>
+base/gscrd.h<br>
+base/gscrdp.c<br>
+base/gscrdp.h<br>
+base/gscrypt1.c<br>
+base/gscrypt1.h<br>
+base/gscscie.c<br>
+base/gscsel.h<br>
+base/gscsepr.c<br>
+base/gscsepr.h<br>
+base/gscspace.c<br>
+base/gscspace.h<br>
+base/gscssub.c<br>
+base/gscssub.h<br>
+base/gsdcolor.h<br>
+base/gsdevice.c<br>
+base/gsdevice.h<br>
+base/gsdevmem.c<br>
+base/gsdfilt.c<br>
+base/gsdfilt.h<br>
+base/gsdll.h<br>
+base/gsdllwin.h<br>
+base/gsdparam.c<br>
+base/gsdpnext.h<br>
+base/gsdps.c<br>
+base/gsdps.h<br>
+base/gsdps1.c<br>
+base/gsdsrc.c<br>
+base/gsdsrc.h<br>
+base/gsequivc.c<br>
+base/gsequivc.h<br>
+base/gserrors.h<br>
+base/gsexit.h<br>
+base/gsfcid.c<br>
+base/gsfcid2.c<br>
+base/gsfcmap.c<br>
+base/gsfcmap.h<br>
+base/gsfcmap1.c<br>
+base/gsflip.c<br>
+base/gsflip.h<br>
+base/gsfname.c<br>
+base/gsfname.h<br>
+base/gsfont.c<br>
+base/gsfont.h<br>
+base/gsfont0.c<br>
+base/gsfont0c.c<br>
+base/gsform1.h<br>
+base/gsfunc.c<br>
+base/gsfunc.h<br>
+base/gsfunc0.c<br>
+base/gsfunc0.h<br>
+base/gsfunc3.c<br>
+base/gsfunc3.h<br>
+base/gsfunc4.c<br>
+base/gsfunc4.h<br>
+base/gsgc.h<br>
+base/gsgcache.c<br>
+base/gsgcache.h<br>
+base/gsgdata.c<br>
+base/gsgdata.h<br>
+base/gsgstate.c<br>
+base/gshsb.c<br>
+base/gshsb.h<br>
+base/gsht.c<br>
+base/gsht.h<br>
+base/gsht1.c<br>
+base/gsht1.h<br>
+base/gshtscr.c<br>
+base/gshtx.c<br>
+base/gshtx.h<br>
+base/gsicc.c<br>
+base/gsicc.h<br>
+base/gsicc_cache.c<br>
+base/gsicc_cache.h<br>
+base/gsicc_cms.h<br>
+base/gsicc_create.c<br>
+base/gsicc_create.h<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_lcms2art.c<br>
+base/gsicc_manage.c<br>
+base/gsicc_manage.h<br>
+base/gsicc_monitorcm.c<br>
+base/gsicc_nocm.c<br>
+base/gsicc_profilecache.c<br>
+base/gsicc_profilecache.h<br>
+base/gsicc_replacecm.c<br>
+base/gsimage.c<br>
+base/gsimage.h<br>
+base/gsimpath.c<br>
+base/gsinit.c<br>
+base/gsio.h<br>
+base/gsiodev.c<br>
+base/gsiodevs.c<br>
+base/gsiodisk.c<br>
+base/gsioram.c<br>
+base/gsiorom.c<br>
+base/gsiorom.h<br>
+base/gsipar3x.h<br>
+base/gsiparam.h<br>
+base/gsiparm2.h<br>
+base/gsiparm3.h<br>
+base/gsiparm4.h<br>
+base/gsjconf.h<br>
+base/gsjmorec.h<br>
+base/gslib.c<br>
+base/gslib.h<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+base/gsline.c<br>
+base/gsline.h<br>
+base/gslparam.h<br>
+base/gsmalloc.c<br>
+base/gsmalloc.h<br>
+base/gsmatrix.c<br>
+base/gsmatrix.h<br>
+base/gsmchunk.c<br>
+base/gsmchunk.h<br>
+base/gsmd5.c<br>
+base/gsmd5.h<br>
+base/gsmdebug.h<br>
+base/gsmemory.c<br>
+base/gsmemory.h<br>
+base/gsmemraw.h<br>
+base/gsmemret.c<br>
+base/gsmemret.h<br>
+base/gsmisc.c<br>
+base/gsnamecl.c<br>
+base/gsnamecl.h<br>
+base/gsncdummy.c<br>
+base/gsncdummy.h<br>
+base/gsnogc.c<br>
+base/gsnogc.h<br>
+base/gsnotify.c<br>
+base/gsnotify.h<br>
+base/gsovrc.c<br>
+base/gsovrc.h<br>
+base/gspaint.c<br>
+base/gspaint.h<br>
+base/gsparam.c<br>
+base/gsparam.h<br>
+base/gsparam2.c<br>
+base/gsparams.c<br>
+base/gsparams.h<br>
+base/gsparamx.c<br>
+base/gsparamx.h<br>
+base/gspath.c<br>
+base/gspath.h<br>
+base/gspath1.c<br>
+base/gspath2.h<br>
+base/gspcolor.c<br>
+base/gspcolor.h<br>
+base/gspenum.h<br>
+base/gspmdrv.c<br>
+base/gspmdrv.h<br>
+base/gspmdrv.rc<br>
+base/gsptype1.c<br>
+base/gsptype1.h<br>
+base/gsptype2.c<br>
+base/gsptype2.h<br>
+base/gsrect.h<br>
+base/gsrefct.h<br>
+base/gsromfs0.c<br>
+base/gsrop.c<br>
+base/gsrop.h<br>
+base/gsroprun.c<br>
+base/gsroprun1.h<br>
+base/gsroprun24.h<br>
+base/gsroprun8.h<br>
+base/gsropt.h<br>
+base/gsroptab.c<br>
+base/gsserial.c<br>
+base/gsserial.h<br>
+base/gsshade.c<br>
+base/gsshade.h<br>
+base/gssprintf.h<br>
+base/gsstate.c<br>
+base/gsstate.h<br>
+base/gsstrl.h<br>
+base/gsstrtok.h<br>
+base/gsstruct.h<br>
+base/gsstype.h<br>
+base/gstext.c<br>
+base/gstext.h<br>
+base/gstiffio.c<br>
+base/gstiffio.h<br>
+base/gstparam.h<br>
+base/gstrans.c<br>
+base/gstrans.h<br>
+base/gstrap.c<br>
+base/gstrap.h<br>
+base/gstype1.c<br>
+base/gstype1.h<br>
+base/gstype2.c<br>
+base/gstype42.c<br>
+base/gstypes.h<br>
+base/gsuid.h<br>
+base/gsutil.c<br>
+base/gsutil.h<br>
+base/gswin.rc<br>
+base/gsxfont.h<br>
+base/gx.h<br>
+base/gxacpath.c<br>
+base/gxalloc.h<br>
+base/gxalpha.h<br>
+base/gxarith.h<br>
+base/gxband.h<br>
+base/gxbcache.c<br>
+base/gxbcache.h<br>
+base/gxbitfmt.h<br>
+base/gxbitmap.h<br>
+base/gxbitops.h<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+base/gxccache.c<br>
+base/gxccman.c<br>
+base/gxcdevn.h<br>
+base/gxchar.c<br>
+base/gxchar.h<br>
+base/gxchrout.c<br>
+base/gxchrout.h<br>
+base/gxcht.c<br>
+base/gxcid.h<br>
+base/gxcie.h<br>
+base/gxcindex.h<br>
+base/gxclbits.c<br>
+base/gxcldev.h<br>
+base/gxclfile.c<br>
+base/gxclimag.c<br>
+base/gxclio.h<br>
+base/gxclip.c<br>
+base/gxclip.h<br>
+base/gxclip2.c<br>
+base/gxclip2.h<br>
+base/gxclipm.c<br>
+base/gxclipm.h<br>
+base/gxclipsr.h<br>
+base/gxclist.c<br>
+base/gxclist.h<br>
+base/gxcllzw.c<br>
+base/gxclmem.c<br>
+base/gxclmem.h<br>
+base/gxclpage.c<br>
+base/gxclpage.h<br>
+base/gxclpath.c<br>
+base/gxclpath.h<br>
+base/gxclrast.c<br>
+base/gxclread.c<br>
+base/gxclrect.c<br>
+base/gxclthrd.c<br>
+base/gxclthrd.h<br>
+base/gxclutil.c<br>
+base/gxclzlib.c<br>
+base/gxcmap.c<br>
+base/gxcmap.h<br>
+base/gxcolor2.h<br>
+base/gxcomp.h<br>
+base/gxcoord.h<br>
+base/gxcpath.c<br>
+base/gxcpath.h<br>
+base/gxcspace.h<br>
+base/gxctable.c<br>
+base/gxctable.h<br>
+base/gxcvalue.h<br>
+base/gxdcconv.c<br>
+base/gxdcconv.h<br>
+base/gxdcolor.c<br>
+base/gxdcolor.h<br>
+base/gxdda.h<br>
+base/gxdevbuf.h<br>
+base/gxdevcli.h<br>
+base/gxdevice.h<br>
+base/gxdevmem.h<br>
+base/gxdevndi.c<br>
+base/gxdevndi.h<br>
+base/gxdevrop.h<br>
+base/gxdevsop.h<br>
+base/gxdht.h<br>
+base/gxdhtres.h<br>
+base/gxdhtserial.c<br>
+base/gxdhtserial.h<br>
+base/gxdither.h<br>
+base/gxdownscale.c<br>
+base/gxdownscale.h<br>
+base/gxdtfill.h<br>
+base/gxfapi.c<br>
+base/gxfapi.h<br>
+base/gxfapiu.c<br>
+base/gxfapiu.h<br>
+base/gxfarith.h<br>
+base/gxfcache.h<br>
+base/gxfcid.h<br>
+base/gxfcmap.h<br>
+base/gxfcmap1.h<br>
+base/gxfill.c<br>
+base/gxfill.h<br>
+base/gxfillsl.h<br>
+base/gxfilltr.h<br>
+base/gxfillts.h<br>
+base/gxfixed.h<br>
+base/gxfmap.h<br>
+base/gxfont.h<br>
+base/gxfont0.h<br>
+base/gxfont0c.h<br>
+base/gxfont1.h<br>
+base/gxfont42.h<br>
+base/gxfrac.h<br>
+base/gxftype.h<br>
+base/gxfunc.h<br>
+base/gxgetbit.h<br>
+base/gxgstate.h<br>
+base/gxhintn.c<br>
+base/gxhintn.h<br>
+base/gxhintn1.c<br>
+base/gxhldevc.c<br>
+base/gxhldevc.h<br>
+base/gxht.c<br>
+base/gxht.h<br>
+base/gxht_thresh.c<br>
+base/gxht_thresh.h<br>
+base/gxhtbit.c<br>
+base/gxhttile.h<br>
+base/gxhttype.h<br>
+base/gxi12bit.c<br>
+base/gxi16bit.c<br>
+base/gxiclass.h<br>
+base/gxicolor.c<br>
+base/gxidata.c<br>
+base/gxifast.c<br>
+base/gximag3x.c<br>
+base/gximag3x.h<br>
+base/gximage.c<br>
+base/gximage.h<br>
+base/gximage1.c<br>
+base/gximage2.c<br>
+base/gximage3.c<br>
+base/gximage3.h<br>
+base/gximage4.c<br>
+base/gximask.c<br>
+base/gximask.h<br>
+base/gximdecode.c<br>
+base/gximdecode.h<br>
+base/gximono.c<br>
+base/gxiodev.h<br>
+base/gxiparam.h<br>
+base/gxipixel.c<br>
+base/gxiscale.c<br>
+base/gxline.h<br>
+base/gxlum.h<br>
+base/gxmatrix.h<br>
+base/gxmclip.c<br>
+base/gxmclip.h<br>
+base/gxobj.h<br>
+base/gxoprect.c<br>
+base/gxoprect.h<br>
+base/gxp1fill.c<br>
+base/gxp1impl.h<br>
+base/gxpaint.c<br>
+base/gxpaint.h<br>
+base/gxpath.c<br>
+base/gxpath.h<br>
+base/gxpath2.c<br>
+base/gxpcache.h<br>
+base/gxpcmap.c<br>
+base/gxpcolor.h<br>
+base/gxpcopy.c<br>
+base/gxpdash.c<br>
+base/gxpflat.c<br>
+base/gxrplane.h<br>
+base/gxsample.c<br>
+base/gxsample.h<br>
+base/gxsamplp.h<br>
+base/gxscanc.c<br>
+base/gxscanc.h<br>
+base/gxshade.c<br>
+base/gxshade.h<br>
+base/gxshade1.c<br>
+base/gxshade4.c<br>
+base/gxshade4.h<br>
+base/gxshade6.c<br>
+base/gxstate.h<br>
+base/gxstdio.h<br>
+base/gxstroke.c<br>
+base/gxsync.c<br>
+base/gxsync.h<br>
+base/gxtext.h<br>
+base/gxtmap.h<br>
+base/gxttf.h<br>
+base/gxttfb.c<br>
+base/gxttfb.h<br>
+base/gxtype1.c<br>
+base/gxtype1.h<br>
+base/gxxfont.h<br>
+base/gzacpath.h<br>
+base/gzcpath.h<br>
+base/gzht.h<br>
+base/gzline.h<br>
+base/gzpath.h<br>
+base/gzspotan.c<br>
+base/gzspotan.h<br>
+base/gzstate.h<br>
+base/ijs.mak<br>
+base/instcopy<br>
+base/jbig2.mak<br>
+base/jerror_.h<br>
+base/jmemcust.c<br>
+base/jmemcust.h<br>
+base/jpeg.mak<br>
+base/jpegxr.mak<br>
+base/lcms2.mak<br>
+base/lcms2art.mak<br>
+base/lcups.mak<br>
+base/lcupsi.mak<br>
+base/ldf_jb2.mak<br>
+base/lib.mak<br>
+base/locale_.h<br>
+base/lwf_jp2.mak<br>
+base/malloc_.h<br>
+base/math_.h<br>
+base/md5main.c<br>
+base/memento.c<br>
+base/memento.h<br>
+base/memory_.h<br>
+base/mkromfs.c<br>
+base/msvccmd.mak<br>
+base/msvclib.mak<br>
+base/msvctail.mak<br>
+base/openjpeg.mak<br>
+base/openvms.mak<br>
+base/openvms.mmk<br>
+base/pack_ps.c<br>
+base/pcwin.mak<br>
+base/pipe_.h<br>
+base/png.mak<br>
+base/png_.h<br>
+base/ramfs.c<br>
+base/ramfs.h<br>
+base/sa85d.c<br>
+base/sa85d.h<br>
+base/sa85x.h<br>
+base/saes.c<br>
+base/saes.h<br>
+base/sarc4.c<br>
+base/sarc4.h<br>
+base/sbcp.c<br>
+base/sbcp.h<br>
+base/sbtx.h<br>
+base/scanchar.h<br>
+base/scantab.c<br>
+base/scf.h<br>
+base/scfd.c<br>
+base/scfdgen.c<br>
+base/scfdtab.c<br>
+base/scfe.c<br>
+base/scfetab.c<br>
+base/scfparam.c<br>
+base/scfx.h<br>
+base/scommon.h<br>
+base/sdcparam.c<br>
+base/sdcparam.h<br>
+base/sdct.h<br>
+base/sdctc.c<br>
+base/sdctd.c<br>
+base/sdcte.c<br>
+base/sddparam.c<br>
+base/sdeparam.c<br>
+base/seexec.c<br>
+base/setjmp_.h<br>
+base/sfilter.h<br>
+base/sfilter2.c<br>
+base/sfxboth.c<br>
+base/sfxcommon.c<br>
+base/sfxfd.c<br>
+base/sfxstdio.c<br>
+base/shc.c<br>
+base/shc.h<br>
+base/sidscale.c<br>
+base/sidscale.h<br>
+base/siinterp.c<br>
+base/siinterp.h<br>
+base/simscale.c<br>
+base/simscale.h<br>
+base/siscale.c<br>
+base/siscale.h<br>
+base/sisparam.h<br>
+base/sjbig2.c<br>
+base/sjbig2.h<br>
+base/sjbig2_luratech.c<br>
+base/sjbig2_luratech.h<br>
+base/sjpeg.h<br>
+base/sjpegc.c<br>
+base/sjpegd.c<br>
+base/sjpege.c<br>
+base/sjpx_luratech.c<br>
+base/sjpx_luratech.h<br>
+base/sjpx_none.c<br>
+base/sjpx_openjpeg.c<br>
+base/sjpx_openjpeg.h<br>
+base/slzwc.c<br>
+base/slzwd.c<br>
+base/slzwe.c<br>
+base/slzwx.h<br>
+base/smd5.c<br>
+base/smd5.h<br>
+base/smtf.h<br>
+base/spdiff.c<br>
+base/spdiffx.h<br>
+base/spngp.c<br>
+base/spngpx.h<br>
+base/spprint.c<br>
+base/spprint.h<br>
+base/spsdf.c<br>
+base/spsdf.h<br>
+base/spwgd.c<br>
+base/spwgx.h<br>
+base/srdline.h<br>
+base/srld.c<br>
+base/srle.c<br>
+base/srlx.h<br>
+base/ssha2.c<br>
+base/ssha2.h<br>
+base/sstring.c<br>
+base/sstring.h<br>
+base/stat_.h<br>
+base/std.h<br>
+base/stdint_.h<br>
+base/stdio_.h<br>
+base/stdpre.h<br>
+base/stream.c<br>
+base/stream.h<br>
+base/strimpl.h<br>
+base/string_.h<br>
+base/strmio.c<br>
+base/strmio.h<br>
+base/stub.mak<br>
+base/szlibc.c<br>
+base/szlibd.c<br>
+base/szlibe.c<br>
+base/szlibx.h<br>
+base/szlibxx.h<br>
+base/tiff.mak<br>
+base/time_.h<br>
+base/ttcalc.c<br>
+base/ttcalc.h<br>
+base/ttcommon.h<br>
+base/ttconf.h<br>
+base/ttconfig.h<br>
+base/ttfinp.c<br>
+base/ttfinp.h<br>
+base/ttfmain.c<br>
+base/ttfmemd.c<br>
+base/ttfmemd.h<br>
+base/ttfoutl.h<br>
+base/ttfsfnt.h<br>
+base/ttinterp.c<br>
+base/ttinterp.h<br>
+base/ttload.c<br>
+base/ttload.h<br>
+base/ttmisc.h<br>
+base/ttobjs.c<br>
+base/ttobjs.h<br>
+base/tttables.h<br>
+base/tttype.h<br>
+base/tttypes.h<br>
+base/ugcclib.mak<br>
+base/unistd_.h<br>
+base/unix-aux.mak<br>
+base/unix-dll.mak<br>
+base/unix-end.mak<br>
+base/unix-gcc.mak<br>
+base/unixansi.mak<br>
+base/unixhead.mak<br>
+base/unixinst.mak<br>
+base/unixlink.mak<br>
+base/valgrind.h<br>
+base/version.mak<br>
+base/vms_x_fix.h<br>
+base/vmsmath.h<br>
+base/windows_.h<br>
+base/winlib.mak<br>
+base/winplat.mak<br>
+base/winrtsup.cpp<br>
+base/winrtsup.h<br>
+base/wrfont.c<br>
+base/wrfont.h<br>
+base/write_t1.c<br>
+base/write_t1.h<br>
+base/write_t2.c<br>
+base/write_t2.h<br>
+base/x_.h<br>
+base/zlib.mak<br>
+configure.ac<br>
+devices/contrib.mak<br>
+devices/devs.mak<br>
+devices/gdev3852.c<br>
+devices/gdev4081.c<br>
+devices/gdev8510.c<br>
+devices/gdev8bcm.c<br>
+devices/gdev8bcm.h<br>
+devices/gdevatx.c<br>
+devices/gdevbit.c<br>
+devices/gdevbj10.c<br>
+devices/gdevbjc.h<br>
+devices/gdevbjcl.c<br>
+devices/gdevbjcl.h<br>
+devices/gdevbmp.c<br>
+devices/gdevbmp.h<br>
+devices/gdevbmpc.c<br>
+devices/gdevccr.c<br>
+devices/gdevcdj.c<br>
+devices/gdevcfax.c<br>
+devices/gdevcif.c<br>
+devices/gdevclj.c<br>
+devices/gdevcljc.c<br>
+devices/gdevcmykog.c<br>
+devices/gdevcp50.c<br>
+devices/gdevcslw.c<br>
+devices/gdevdfax.c<br>
+devices/gdevdjet.c<br>
+devices/gdevdjtc.c<br>
+devices/gdevdljm.c<br>
+devices/gdevdljm.h<br>
+devices/gdevdm24.c<br>
+devices/gdevdsp.c<br>
+devices/gdevdsp.h<br>
+devices/gdevdsp2.h<br>
+devices/gdevepsc.c<br>
+devices/gdevepsn.c<br>
+devices/gdevescp.c<br>
+devices/gdevfax.c<br>
+devices/gdevfax.h<br>
+devices/gdevfpng.c<br>
+devices/gdevgprf.c<br>
+devices/gdevhl7x.c<br>
+devices/gdevicov.c<br>
+devices/gdevijs.c<br>
+devices/gdevimgn.c<br>
+devices/gdevjbig2.c<br>
+devices/gdevjpeg.c<br>
+devices/gdevjpx.c<br>
+devices/gdevl31s.c<br>
+devices/gdevlbp8.c<br>
+devices/gdevlj56.c<br>
+devices/gdevlp8k.c<br>
+devices/gdevlxm.c<br>
+devices/gdevmeds.c<br>
+devices/gdevmeds.h<br>
+devices/gdevmgr.c<br>
+devices/gdevmgr.h<br>
+devices/gdevmiff.c<br>
+devices/gdevn533.c<br>
+devices/gdevo182.c<br>
+devices/gdevokii.c<br>
+devices/gdevpbm.c<br>
+devices/gdevpcl.c<br>
+devices/gdevpcl.h<br>
+devices/gdevpcx.c<br>
+devices/gdevpe.c<br>
+devices/gdevperm.c<br>
+devices/gdevphex.c<br>
+devices/gdevpjet.c<br>
+devices/gdevplan.c<br>
+devices/gdevplib.c<br>
+devices/gdevplib.h<br>
+devices/gdevpm.h<br>
+devices/gdevpng.c<br>
+devices/gdevpsd.c<br>
+devices/gdevpsd.h<br>
+devices/gdevpsim.c<br>
+devices/gdevpxut.c<br>
+devices/gdevpxut.h<br>
+devices/gdevrinkj.c<br>
+devices/gdevsj48.c<br>
+devices/gdevsnfb.c<br>
+devices/gdevsppr.c<br>
+devices/gdevstc.c<br>
+devices/gdevstc.h<br>
+devices/gdevstc1.c<br>
+devices/gdevstc2.c<br>
+devices/gdevstc3.c<br>
+devices/gdevstc4.c<br>
+devices/gdevtfax.c<br>
+devices/gdevtfax.h<br>
+devices/gdevtfnx.c<br>
+devices/gdevtifs.c<br>
+devices/gdevtifs.h<br>
+devices/gdevtknk.c<br>
+devices/gdevtrac.c<br>
+devices/gdevtsep.c<br>
+devices/gdevupd.c<br>
+devices/gdevwpr2.c<br>
+devices/gdevx.c<br>
+devices/gdevx.h<br>
+devices/gdevxalt.c<br>
+devices/gdevxcf.c<br>
+devices/gdevxcmp.c<br>
+devices/gdevxcmp.h<br>
+devices/gdevxini.c<br>
+devices/gdevxres.c<br>
+devices/gxfcopy.c<br>
+devices/gxfcopy.h<br>
+devices/minftrsz.c<br>
+devices/minftrsz.h<br>
+devices/rinkj/evenbetter-rll.c<br>
+devices/rinkj/evenbetter-rll.h<br>
+devices/rinkj/rinkj-byte-stream.c<br>
+devices/rinkj/rinkj-byte-stream.h<br>
+devices/rinkj/rinkj-config.c<br>
+devices/rinkj/rinkj-config.h<br>
+devices/rinkj/rinkj-device.c<br>
+devices/rinkj/rinkj-device.h<br>
+devices/rinkj/rinkj-dither.c<br>
+devices/rinkj/rinkj-dither.h<br>
+devices/rinkj/rinkj-epson870.c<br>
+devices/rinkj/rinkj-epson870.h<br>
+devices/rinkj/rinkj-screen-eb.c<br>
+devices/rinkj/rinkj-screen-eb.h<br>
+devices/vector/gdevagl.c<br>
+devices/vector/gdevagl.h<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfb.c<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfc.c<br>
+devices/vector/gdevpdfc.h<br>
+devices/vector/gdevpdfd.c<br>
+devices/vector/gdevpdfe.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdfg.h<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpdfj.c<br>
+devices/vector/gdevpdfk.c<br>
+devices/vector/gdevpdfm.c<br>
+devices/vector/gdevpdfo.c<br>
+devices/vector/gdevpdfo.h<br>
+devices/vector/gdevpdfp.c<br>
+devices/vector/gdevpdfr.c<br>
+devices/vector/gdevpdft.c<br>
+devices/vector/gdevpdfu.c<br>
+devices/vector/gdevpdfv.c<br>
+devices/vector/gdevpdfx.h<br>
+devices/vector/gdevpdt.c<br>
+devices/vector/gdevpdt.h<br>
+devices/vector/gdevpdtb.c<br>
+devices/vector/gdevpdtb.h<br>
+devices/vector/gdevpdtc.c<br>
+devices/vector/gdevpdtd.c<br>
+devices/vector/gdevpdtd.h<br>
+devices/vector/gdevpdte.c<br>
+devices/vector/gdevpdtf.c<br>
+devices/vector/gdevpdtf.h<br>
+devices/vector/gdevpdti.c<br>
+devices/vector/gdevpdti.h<br>
+devices/vector/gdevpdts.c<br>
+devices/vector/gdevpdts.h<br>
+devices/vector/gdevpdtt.c<br>
+devices/vector/gdevpdtt.h<br>
+devices/vector/gdevpdtv.c<br>
+devices/vector/gdevpdtv.h<br>
+devices/vector/gdevpdtw.c<br>
+devices/vector/gdevpdtw.h<br>
+devices/vector/gdevpdtx.h<br>
+devices/vector/gdevpsdf.h<br>
+devices/vector/gdevpsdi.c<br>
+devices/vector/gdevpsdp.c<br>
+devices/vector/gdevpsds.c<br>
+devices/vector/gdevpsds.h<br>
+devices/vector/gdevpsdu.c<br>
+devices/vector/gdevpsf.h<br>
+devices/vector/gdevpsf1.c<br>
+devices/vector/gdevpsf2.c<br>
+devices/vector/gdevpsfm.c<br>
+devices/vector/gdevpsft.c<br>
+devices/vector/gdevpsfu.c<br>
+devices/vector/gdevpsfx.c<br>
+devices/vector/gdevpsu.c<br>
+devices/vector/gdevpsu.h<br>
+devices/vector/gdevpx.c<br>
+devices/vector/gdevtxtw.c<br>
+devices/vector/gdevxps.c<br>
+devices/vector/opdfread.ps<br>
+devices/vector/whitelst.c<br>
+devices/vector/whitelst.h<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/GS9_Color_Management.tex<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/gdevds32.c<br>
+doc/sample_downscale_device.htm<br>
+doc/thirdparty.htm<br>
+examples/waterfal.ps<br>
+gpdl/gpdl.mak<br>
+gpdl/psi/gpdlpsi.mak<br>
+gpdl/psi/psitop.c<br>
+gpdl/pspcl6_gcc.mak<br>
+gpdl/pspcl6_msvc.mak<br>
+ijs/Makefile.am<br>
+ijs/configure.ac<br>
+ijs/ijs.c<br>
+ijs/ijs.h<br>
+ijs/ijs_client.c<br>
+ijs/ijs_client.h<br>
+ijs/ijs_client_example.c<br>
+ijs/ijs_exec_unix.c<br>
+ijs/ijs_exec_win.c<br>
+ijs/ijs_server.c<br>
+ijs/ijs_server_example.c<br>
+ijs/unistd_.h<br>
+ios/ios_arch-arm.h<br>
+ios/ios_arch-x86.h<br>
+jbig2dec/config_win32.h<br>
+jbig2dec/jbig2.c<br>
+jbig2dec/jbig2.h<br>
+jbig2dec/jbig2_arith.c<br>
+jbig2dec/jbig2_arith.h<br>
+jbig2dec/jbig2_arith_iaid.c<br>
+jbig2dec/jbig2_arith_iaid.h<br>
+jbig2dec/jbig2_arith_int.c<br>
+jbig2dec/jbig2_arith_int.h<br>
+jbig2dec/jbig2_generic.c<br>
+jbig2dec/jbig2_generic.h<br>
+jbig2dec/jbig2_halftone.c<br>
+jbig2dec/jbig2_halftone.h<br>
+jbig2dec/jbig2_huffman.c<br>
+jbig2dec/jbig2_huffman.h<br>
+jbig2dec/jbig2_hufftab.h<br>
+jbig2dec/jbig2_image.c<br>
+jbig2dec/jbig2_image.h<br>
+jbig2dec/jbig2_image_pbm.c<br>
+jbig2dec/jbig2_image_png.c<br>
+jbig2dec/jbig2_metadata.c<br>
+jbig2dec/jbig2_metadata.h<br>
+jbig2dec/jbig2_mmr.c<br>
+jbig2dec/jbig2_mmr.h<br>
+jbig2dec/jbig2_page.c<br>
+jbig2dec/jbig2_priv.h<br>
+jbig2dec/jbig2_refinement.c<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>
+jbig2dec/jbig2dec.c<br>
+jbig2dec/memcmp.c<br>
+jbig2dec/memento.c<br>
+jbig2dec/memento.h<br>
+jbig2dec/os_types.h<br>
+jbig2dec/pbm2png.c<br>
+lib/FCOfontmap-PCLPS3<br>
+lib/FCOfontmap-PS3<br>
+lib/Fontmap.ATB<br>
+lib/Fontmap.ATM<br>
+lib/Fontmap.OS2<br>
+lib/Fontmap.SGI<br>
+lib/Fontmap.Sol<br>
+lib/Fontmap.URW-136.T1<br>
+lib/Fontmap.URW-136.TT<br>
+lib/Fontmap.Ult<br>
+lib/Fontmap.VMS<br>
+lib/align.ps<br>
+lib/caption.ps<br>
+lib/cat.ps<br>
+lib/cid2code.ps<br>
+lib/docie.ps<br>
+lib/font2pcl.ps<br>
+lib/gs_ce_e.ps<br>
+lib/gs_cmdl.ps<br>
+lib/gs_il2_e.ps<br>
+lib/gs_kanji.ps<br>
+lib/gs_ksb_e.ps<br>
+lib/gs_lgo_e.ps<br>
+lib/gs_lgx_e.ps<br>
+lib/gs_wl1_e.ps<br>
+lib/gs_wl2_e.ps<br>
+lib/gs_wl5_e.ps<br>
+lib/gslp.ps<br>
+lib/gsnup.ps<br>
+lib/image-qa.ps<br>
+lib/jispaper.ps<br>
+lib/lines.ps<br>
+lib/mkcidfm.ps<br>
+lib/pdf2dsc.ps<br>
+lib/pfbtopfa.ps<br>
+lib/ppath.ps<br>
+lib/pphs.ps<br>
+lib/prfont.ps<br>
+lib/ps2ai.ps<br>
+lib/ps2epsi.ps<br>
+lib/rollconv.ps<br>
+lib/stcinfo.ps<br>
+lib/stcolor.ps<br>
+lib/stocht.ps<br>
+lib/traceimg.ps<br>
+lib/traceop.ps<br>
+lib/uninfo.ps<br>
+lib/viewcmyk.ps<br>
+lib/viewgif.ps<br>
+lib/viewjpeg.ps<br>
+lib/viewmiff.ps<br>
+lib/viewpbm.ps<br>
+lib/viewpcx.ps<br>
+lib/viewps2a.ps<br>
+lib/viewpwg.ps<br>
+lib/viewraw.ps<br>
+lib/viewrgb.ps<br>
+lib/winmaps.ps<br>
+lib/zeroline.ps<br>
+pcl/LICENSE<br>
+pcl/pcl/pcbiptrn.c<br>
+pcl/pcl/pcbiptrn.h<br>
+pcl/pcl/pccid.c<br>
+pcl/pcl/pccid.h<br>
+pcl/pcl/pccolor.c<br>
+pcl/pcl/pccoord.h<br>
+pcl/pcl/pccprint.c<br>
+pcl/pcl/pccsbase.c<br>
+pcl/pcl/pccsbase.h<br>
+pcl/pcl/pcdict.h<br>
+pcl/pcl/pcdither.c<br>
+pcl/pcl/pcdither.h<br>
+pcl/pcl/pcdraw.c<br>
+pcl/pcl/pcdraw.h<br>
+pcl/pcl/pcfont.c<br>
+pcl/pcl/pcfont.h<br>
+pcl/pcl/pcfontpg.c<br>
+pcl/pcl/pcfontst.h<br>
+pcl/pcl/pcfrgrnd.c<br>
+pcl/pcl/pcfrgrnd.h<br>
+pcl/pcl/pcfsel.c<br>
+pcl/pcl/pcfsel.h<br>
+pcl/pcl/pcht.c<br>
+pcl/pcl/pcht.h<br>
+pcl/pcl/pcident.c<br>
+pcl/pcl/pcident.h<br>
+pcl/pcl/pcimpl.c<br>
+pcl/pcl/pcindxed.c<br>
+pcl/pcl/pcindxed.h<br>
+pcl/pcl/pcjob.c<br>
+pcl/pcl/pcl.mak<br>
+pcl/pcl/pcl_top.mak<br>
+pcl/pcl/pclookup.c<br>
+pcl/pcl/pclookup.h<br>
+pcl/pcl/pcmacros.c<br>
+pcl/pcl/pcmisc.c<br>
+pcl/pcl/pcmtx3.c<br>
+pcl/pcl/pcmtx3.h<br>
+pcl/pcl/pcommand.c<br>
+pcl/pcl/pcommand.h<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpage.h<br>
+pcl/pcl/pcpalet.c<br>
+pcl/pcl/pcpalet.h<br>
+pcl/pcl/pcparam.h<br>
+pcl/pcl/pcparse.c<br>
+pcl/pcl/pcparse.h<br>
+pcl/pcl/pcpatrn.c<br>
+pcl/pcl/pcpatrn.h<br>
+pcl/pcl/pcpattyp.h<br>
+pcl/pcl/pcpatxfm.c<br>
+pcl/pcl/pcpatxfm.h<br>
+pcl/pcl/pcrect.c<br>
+pcl/pcl/pcsfont.c<br>
+pcl/pcl/pcstate.h<br>
+pcl/pcl/pcstatus.c<br>
+pcl/pcl/pcsymbol.c<br>
+pcl/pcl/pcsymbol.h<br>
+pcl/pcl/pctext.c<br>
+pcl/pcl/pctop.c<br>
+pcl/pcl/pctop.h<br>
+pcl/pcl/pctpm.h<br>
+pcl/pcl/pcuptrn.c<br>
+pcl/pcl/pcuptrn.h<br>
+pcl/pcl/pcursor.c<br>
+pcl/pcl/pcursor.h<br>
+pcl/pcl/pcwhtidx.c<br>
+pcl/pcl/pcwhtidx.h<br>
+pcl/pcl/pcxfmst.h<br>
+pcl/pcl/pgchar.c<br>
+pcl/pcl/pgcolor.c<br>
+pcl/pcl/pgconfig.c<br>
+pcl/pcl/pgdraw.c<br>
+pcl/pcl/pgdraw.h<br>
+pcl/pcl/pgfdata.c<br>
+pcl/pcl/pgfdata.h<br>
+pcl/pcl/pgfont.c<br>
+pcl/pcl/pgfont.h<br>
+pcl/pcl/pgframe.c<br>
+pcl/pcl/pggeom.c<br>
+pcl/pcl/pggeom.h<br>
+pcl/pcl/pginit.c<br>
+pcl/pcl/pginit.h<br>
+pcl/pcl/pglabel.c<br>
+pcl/pcl/pglfill.c<br>
+pcl/pcl/pgmand.h<br>
+pcl/pcl/pgmisc.c<br>
+pcl/pcl/pgmisc.h<br>
+pcl/pcl/pgparse.c<br>
+pcl/pcl/pgpoly.c<br>
+pcl/pcl/pgstate.h<br>
+pcl/pcl/pgvector.c<br>
+pcl/pcl/rtgmode.c<br>
+pcl/pcl/rtgmode.h<br>
+pcl/pcl/rtmisc.c<br>
+pcl/pcl/rtmisc.h<br>
+pcl/pcl/rtraster.c<br>
+pcl/pcl/rtraster.h<br>
+pcl/pcl/rtrstcmp.c<br>
+pcl/pcl/rtrstcmp.h<br>
+pcl/pcl/rtrstst.h<br>
+pcl/pl/pjparse.c<br>
+pcl/pl/pjparse.h<br>
+pcl/pl/pjparsei.c<br>
+pcl/pl/pjtop.c<br>
+pcl/pl/pjtop.h<br>
+pcl/pl/pl.mak<br>
+pcl/pl/plalloc.c<br>
+pcl/pl/plapi.c<br>
+pcl/pl/plapi.h<br>
+pcl/pl/plchar.c<br>
+pcl/pl/plchar.h<br>
+pcl/pl/plcursor.c<br>
+pcl/pl/plcursor.h<br>
+pcl/pl/pldebug.h<br>
+pcl/pl/pldict.c<br>
+pcl/pl/pldict.h<br>
+pcl/pl/pldraw.c<br>
+pcl/pl/pldraw.h<br>
+pcl/pl/plfapi.c<br>
+pcl/pl/plfapi.h<br>
+pcl/pl/plfont.c<br>
+pcl/pl/plfont.h<br>
+pcl/pl/plftable.c<br>
+pcl/pl/plftable.h<br>
+pcl/pl/plht.c<br>
+pcl/pl/plht.h<br>
+pcl/pl/plimpl.c<br>
+pcl/pl/pllfont.c<br>
+pcl/pl/pllfont.h<br>
+pcl/pl/plmain.c<br>
+pcl/pl/plmain.h<br>
+pcl/pl/plparams.c<br>
+pcl/pl/plparams.h<br>
+pcl/pl/plparse.h<br>
+pcl/pl/plromfs.mak<br>
+pcl/pl/plsymbol.c<br>
+pcl/pl/plsymbol.h<br>
+pcl/pl/pltop.c<br>
+pcl/pl/pltop.h<br>
+pcl/pl/pluchar.c<br>
+pcl/pl/plufont.c<br>
+pcl/pl/plufstlp.c<br>
+pcl/pl/plufstlp.h<br>
+pcl/pl/plufstlp1.c<br>
+pcl/pl/plulfont.c<br>
+pcl/pl/plvalue.c<br>
+pcl/pl/plvalue.h<br>
+pcl/pl/plvocab.c<br>
+pcl/pl/plvocab.h<br>
+pcl/pl/plwimg.c<br>
+pcl/pl/plwimg.h<br>
+pcl/pl/plwmainc.c<br>
+pcl/pl/plwreg.c<br>
+pcl/pl/plwreg.h<br>
+pcl/pl/plwres.h<br>
+pcl/pl/realmain.c<br>
+pcl/pxl/pxasm.ps<br>
+pcl/pxl/pxattr.h<br>
+pcl/pxl/pxbfont.c<br>
+pcl/pxl/pxbfont.h<br>
+pcl/pxl/pxbfont.ps<br>
+pcl/pxl/pxcet.txt<br>
+pcl/pxl/pxdict.h<br>
+pcl/pxl/pxdiff.txt<br>
+pcl/pxl/pxenum.h<br>
+pcl/pxl/pxerrors.c<br>
+pcl/pxl/pxerrors.h<br>
+pcl/pxl/pxffont.c<br>
+pcl/pxl/pxfont.c<br>
+pcl/pxl/pxfont.h<br>
+pcl/pxl/pxfts.txt<br>
+pcl/pxl/pxgstate.c<br>
+pcl/pxl/pxgstate.h<br>
+pcl/pxl/pximage.c<br>
+pcl/pxl/pximpl.c<br>
+pcl/pxl/pxink.c<br>
+pcl/pxl/pxl.mak<br>
+pcl/pxl/pxlib.txt<br>
+pcl/pxl/pxoper.h<br>
+pcl/pxl/pxpaint.c<br>
+pcl/pxl/pxparse.c<br>
+pcl/pxl/pxparse.h<br>
+pcl/pxl/pxptable.c<br>
+pcl/pxl/pxptable.h<br>
+pcl/pxl/pxpthr.c<br>
+pcl/pxl/pxpthr.h<br>
+pcl/pxl/pxsessio.c<br>
+pcl/pxl/pxspec.txt<br>
+pcl/pxl/pxstate.c<br>
+pcl/pxl/pxstate.h<br>
+pcl/pxl/pxstream.c<br>
+pcl/pxl/pxsymbol.ps<br>
+pcl/pxl/pxsymbol.psc<br>
+pcl/pxl/pxsymbol.psh<br>
+pcl/pxl/pxtag.h<br>
+pcl/pxl/pxtop.c<br>
+pcl/pxl/pxvalue.c<br>
+pcl/pxl/pxvalue.h<br>
+pcl/pxl/pxvendor.c<br>
+pcl/pxl/pxvendor.h<br>
+pcl/tools/cmpi/cmpi.cpp<br>
+pcl/tools/pxlasm.py<br>
+pcl/tools/pxldis.py<br>
+pcl/tools/suite.tcl<br>
+psi/bfont.h<br>
+psi/btoken.h<br>
+psi/dmmain.c<br>
+psi/dmmain.r<br>
+psi/dpmain.c<br>
+psi/dscparse.c<br>
+psi/dscparse.h<br>
+psi/dstack.h<br>
+psi/dwdll.c<br>
+psi/dwdll.h<br>
+psi/dwimg.c<br>
+psi/dwimg.h<br>
+psi/dwmain.c<br>
+psi/dwmain.rc<br>
+psi/dwmainc.c<br>
+psi/dwnodll.c<br>
+psi/dwreg.c<br>
+psi/dwreg.h<br>
+psi/dwres.h<br>
+psi/dwtext.c<br>
+psi/dwtext.h<br>
+psi/dwtrace.c<br>
+psi/dwtrace.h<br>
+psi/dxmain.c<br>
+psi/dxmainc.c<br>
+psi/estack.h<br>
+psi/files.h<br>
+psi/ghost.h<br>
+psi/gs.c<br>
+psi/gsdll.c<br>
+psi/gsdll2.rc<br>
+psi/gsdll32.rc<br>
+psi/gserver.c<br>
+psi/gsos2.rc<br>
+psi/ialloc.c<br>
+psi/ialloc.h<br>
+psi/iapi.c<br>
+psi/iapi.h<br>
+psi/iastate.h<br>
+psi/iastruct.h<br>
+psi/ibnum.c<br>
+psi/ibnum.h<br>
+psi/ichar.h<br>
+psi/ichar1.h<br>
+psi/icharout.h<br>
+psi/icid.h<br>
+psi/icie.h<br>
+psi/icolor.h<br>
+psi/iconf.c<br>
+psi/iconf.h<br>
+psi/icontext.c<br>
+psi/icontext.h<br>
+psi/icremap.h<br>
+psi/icsmap.h<br>
+psi/icstate.h<br>
+psi/iddict.h<br>
+psi/iddstack.h<br>
+psi/idebug.c<br>
+psi/idebug.h<br>
+psi/idict.c<br>
+psi/idict.h<br>
+psi/idictdef.h<br>
+psi/idicttpl.h<br>
+psi/idisp.c<br>
+psi/idisp.h<br>
+psi/idosave.h<br>
+psi/idparam.c<br>
+psi/idparam.h<br>
+psi/idsdata.h<br>
+psi/idstack.c<br>
+psi/idstack.h<br>
+psi/ierrors.h<br>
+psi/iesdata.h<br>
+psi/iestack.h<br>
+psi/ifapi.h<br>
+psi/ifcid.h<br>
+psi/ifilter.h<br>
+psi/ifilter2.h<br>
+psi/ifont.h<br>
+psi/ifont1.h<br>
+psi/ifont2.h<br>
+psi/ifont42.h<br>
+psi/ifrpred.h<br>
+psi/ifunc.h<br>
+psi/ifwpred.h<br>
+psi/igc.c<br>
+psi/igc.h<br>
+psi/igcref.c<br>
+psi/igcstr.c<br>
+psi/igcstr.h<br>
+psi/igstate.h<br>
+psi/iht.h<br>
+psi/iimage.h<br>
+psi/iimage2.h<br>
+psi/iinit.c<br>
+psi/iinit.h<br>
+psi/ilevel.h<br>
+psi/ilocate.c<br>
+psi/imain.c<br>
+psi/imain.h<br>
+psi/imainarg.c<br>
+psi/imainarg.h<br>
+psi/imemory.h<br>
+psi/iminst.h<br>
+psi/iname.c<br>
+psi/iname.h<br>
+psi/inamedef.h<br>
+psi/inameidx.h<br>
+psi/inames.h<br>
+psi/inamestr.h<br>
+psi/inobtokn.c<br>
+psi/inouparm.c<br>
+psi/int.mak<br>
+psi/interp.c<br>
+psi/interp.h<br>
+psi/iosdata.h<br>
+psi/iostack.h<br>
+psi/ipacked.h<br>
+psi/iparam.c<br>
+psi/iparam.h<br>
+psi/iparray.h<br>
+psi/ipcolor.h<br>
+psi/iplugin.c<br>
+psi/iplugin.h<br>
+psi/ireclaim.c<br>
+psi/iref.h<br>
+psi/isave.c<br>
+psi/isave.h<br>
+psi/iscan.c<br>
+psi/iscan.h<br>
+psi/iscanbin.c<br>
+psi/iscanbin.h<br>
+psi/iscannum.c<br>
+psi/iscannum.h<br>
+psi/isdata.h<br>
+psi/isstate.h<br>
+psi/istack.c<br>
+psi/istack.h<br>
+psi/istkparm.h<br>
+psi/istream.h<br>
+psi/istruct.h<br>
+psi/itoken.h<br>
+psi/iutil.c<br>
+psi/iutil.h<br>
+psi/iutil2.c<br>
+psi/iutil2.h<br>
+psi/ivmem2.h<br>
+psi/ivmspace.h<br>
+psi/main.h<br>
+psi/mkfilelt.cpp<br>
+psi/msvc.mak<br>
+psi/msvc32.mak<br>
+psi/msvc64.mak<br>
+psi/nsisinst.nsi<br>
+psi/oparc.h<br>
+psi/opcheck.h<br>
+psi/opdef.h<br>
+psi/oper.h<br>
+psi/opextern.h<br>
+psi/os2.mak<br>
+psi/ostack.h<br>
+psi/psromfs.mak<br>
+psi/sfilter1.c<br>
+psi/store.h<br>
+psi/winint.mak<br>
+psi/zalg.c<br>
+psi/zarith.c<br>
+psi/zarray.c<br>
+psi/zbfont.c<br>
+psi/zbseq.c<br>
+psi/zcfont.c<br>
+psi/zchar.c<br>
+psi/zchar1.c<br>
+psi/zchar2.c<br>
+psi/zchar32.c<br>
+psi/zchar42.c<br>
+psi/zchar42.h<br>
+psi/zcharout.c<br>
+psi/zcharx.c<br>
+psi/zcid.c<br>
+psi/zcie.c<br>
+psi/zcie.h<br>
+psi/zcolor.c<br>
+psi/zcolor.h<br>
+psi/zcolor1.c<br>
+psi/zcolor2.c<br>
+psi/zcolor3.c<br>
+psi/zcontext.c<br>
+psi/zcontrol.c<br>
+psi/zcrd.c<br>
+psi/zcsindex.c<br>
+psi/zcspixel.c<br>
+psi/zcssepr.c<br>
+psi/zdevcal.c<br>
+psi/zdevice.c<br>
+psi/zdevice2.c<br>
+psi/zdfilter.c<br>
+psi/zdict.c<br>
+psi/zdouble.c<br>
+psi/zdpnext.c<br>
+psi/zdps.c<br>
+psi/zdps1.c<br>
+psi/zdscpars.c<br>
+psi/zfaes.c<br>
+psi/zfapi.c<br>
+psi/zfarc4.c<br>
+psi/zfbcp.c<br>
+psi/zfcid.c<br>
+psi/zfcid0.c<br>
+psi/zfcid1.c<br>
+psi/zfcmap.c<br>
+psi/zfdctd.c<br>
+psi/zfdcte.c<br>
+psi/zfdecode.c<br>
+psi/zfile.c<br>
+psi/zfile.h<br>
+psi/zfile1.c<br>
+psi/zfileio.c<br>
+psi/zfilter.c<br>
+psi/zfilter2.c<br>
+psi/zfimscale.c<br>
+psi/zfjbig2.c<br>
+psi/zfjpx.c<br>
+psi/zfmd5.c<br>
+psi/zfont.c<br>
+psi/zfont0.c<br>
+psi/zfont1.c<br>
+psi/zfont2.c<br>
+psi/zfont32.c<br>
+psi/zfont42.c<br>
+psi/zfontenum.c<br>
+psi/zform.c<br>
+psi/zfproc.c<br>
+psi/zfrsd.c<br>
+psi/zfrsd.h<br>
+psi/zfsample.c<br>
+psi/zfsha2.c<br>
+psi/zfunc.c<br>
+psi/zfunc.h<br>
+psi/zfunc0.c<br>
+psi/zfunc3.c<br>
+psi/zfunc4.c<br>
+psi/zfzlib.c<br>
+psi/zgeneric.c<br>
+psi/zgstate.c<br>
+psi/zhsb.c<br>
+psi/zht.c<br>
+psi/zht1.c<br>
+psi/zht2.c<br>
+psi/zht2.h<br>
+psi/zicc.c<br>
+psi/zicc.h<br>
+psi/zimage.c<br>
+psi/zimage2.c<br>
+psi/zimage3.c<br>
+psi/ziodev.c<br>
+psi/ziodev2.c<br>
+psi/ziodevs.c<br>
+psi/ziodevsc.c<br>
+psi/zmath.c<br>
+psi/zmatrix.c<br>
+psi/zmedia2.c<br>
+psi/zmisc.c<br>
+psi/zmisc1.c<br>
+psi/zmisc2.c<br>
+psi/zmisc3.c<br>
+psi/zncdummy.c<br>
+psi/zpacked.c<br>
+psi/zpaint.c<br>
+psi/zpath.c<br>
+psi/zpath1.c<br>
+psi/zpcolor.c<br>
+psi/zpdf_r6.c<br>
+psi/zpdfops.c<br>
+psi/zrelbit.c<br>
+psi/zshade.c<br>
+psi/zstack.c<br>
+psi/zstring.c<br>
+psi/zsysvm.c<br>
+psi/ztoken.c<br>
+psi/ztrans.c<br>
+psi/ztrap.c<br>
+psi/ztype.c<br>
+psi/zupath.c<br>
+psi/zusparam.c<br>
+psi/zutf8.c<br>
+psi/zvmem.c<br>
+psi/zvmem2.c<br>
+psi/zwinutf8.c<br>
+toolbin/GenSubstCID.ps<br>
+toolbin/afmutil.py<br>
+toolbin/color/icc_creator/ICC_Creator/CIELAB.h<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_Creator.cpp<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_Creator.h<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.cpp<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_CreatorDlg.h<br>
+toolbin/color/icc_creator/ICC_Creator/icc_create.cpp<br>
+toolbin/color/icc_creator/ICC_Creator/icc_create.h<br>
+toolbin/color/icc_creator/README.txt<br>
+toolbin/encs2c.ps<br>
+toolbin/errlist.tcl<br>
+toolbin/extractFonts.ps<br>
+toolbin/extractICCprofiles.ps<br>
+toolbin/gen_ldf_jb2.py<br>
+toolbin/genfontmap.ps<br>
+toolbin/gitlog2changelog.py<br>
+toolbin/gsmake.tcl<br>
+toolbin/halftone/gen_ordered/README<br>
+toolbin/halftone/gen_ordered/gen_ordered_main.c<br>
+toolbin/halftone/gen_stochastic/gen_stochastic.c<br>
+toolbin/halftone/thresh_remap/thresh_remap.c<br>
+toolbin/headers.tcl<br>
+toolbin/jpxtopdf.c<br>
+toolbin/leaks.tcl<br>
+toolbin/makehist.tcl<br>
+toolbin/memory.py<br>
+toolbin/ocheck.py<br>
+toolbin/pdf_info.ps<br>
+toolbin/pre.tcl<br>
+toolbin/precheck.tcl<br>
+toolbin/split_changelog.py<br>
+toolbin/suite.tcl<br>
+toolbin/tests/build_revision.py<br>
+toolbin/tests/check_all.py<br>
+toolbin/tests/check_comments.py<br>
+toolbin/tests/check_dirs.py<br>
+toolbin/tests/check_docrefs.py<br>
+toolbin/tests/cmpi.py<br>
+toolbin/tests/compare_checksumdb.py<br>
+toolbin/tests/compare_checksums.py<br>
+toolbin/tests/dump_checksum.py<br>
+toolbin/tests/dump_checksum_plus.py<br>
+toolbin/tests/dump_checksum_raw.py<br>
+toolbin/tests/fuzzy.c<br>
+toolbin/tests/get_baseline_log.py<br>
+toolbin/tests/get_baselines.py<br>
+toolbin/tests/gscheck_all.py<br>
+toolbin/tests/gscheck_fuzzypdf.py<br>
+toolbin/tests/gscheck_pdfwrite.py<br>
+toolbin/tests/gscheck_raster.py<br>
+toolbin/tests/gscheck_testfiles.py<br>
+toolbin/tests/gsconf.py<br>
+toolbin/tests/gsparamsets.py<br>
+toolbin/tests/gssum.py<br>
+toolbin/tests/gstestgs.py<br>
+toolbin/tests/gstestutils.py<br>
+toolbin/tests/gsutil.py<br>
+toolbin/tests/make_baselinedb.py<br>
+toolbin/tests/make_testdb.py<br>
+toolbin/tests/make_two_pdfversions<br>
+toolbin/tests/make_two_versions<br>
+toolbin/tests/myoptparse.py<br>
+toolbin/tests/rasterdb.py<br>
+toolbin/tests/revert_baseline<br>
+toolbin/tests/revert_pdfbaseline<br>
+toolbin/tests/run_nightly.py<br>
+toolbin/tests/run_parallel<br>
+toolbin/tests/run_regression.py<br>
+toolbin/tests/testdiff.py<br>
+toolbin/tests/update_baseline.py<br>
+toolbin/tests/update_specific<br>
+toolbin/tmake.tcl<br>
+xps/ghostxps.h<br>
+xps/xps.mak<br>
+xps/xpsanalyze.c<br>
+xps/xpscff.c<br>
+xps/xpscolor.c<br>
+xps/xpscommon.c<br>
+xps/xpscrc.c<br>
+xps/xpsdoc.c<br>
+xps/xpsfapi.c<br>
+xps/xpsfapi.h<br>
+xps/xpsfont.c<br>
+xps/xpsglyphs.c<br>
+xps/xpsgradient.c<br>
+xps/xpshash.c<br>
+xps/xpsimage.c<br>
+xps/xpsjpeg.c<br>
+xps/xpsjxr.c<br>
+xps/xpsmem.c<br>
+xps/xpsopacity.c<br>
+xps/xpspage.c<br>
+xps/xpspath.c<br>
+xps/xpspng.c<br>
+xps/xpsresource.c<br>
+xps/xpsromfs.mak<br>
+xps/xpstiff.c<br>
+xps/xpstile.c<br>
+xps/xpstop.c<br>
+xps/xpsttf.c<br>
+xps/xpsutf.c<br>
+xps/xpsvisual.c<br>
+xps/xpsxml.c<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-30 08:35:40 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=013b8208180cccf65d3c5ee374b678ceffe39cf7">013b8208180cccf65d3c5ee374b678ceffe39cf7</a>
+<blockquote>
+<p>
+ Documentation - restore docs on image-qa.ps<br>
+<br>
+ Commit b223c93caa34ad34dfd33d534529b3f11d067aab was slightly over<br>
+ enthusiastic and accidentally removed the documentation for the file<br>
+ image-qa.ps.<br>
+<br>
+ Restore it here.<br>
+<br>
+doc/Psfiles.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-29 12:27:04 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad8f4138ad44647125424aa4b635aade1a2557ad">ad8f4138ad44647125424aa4b635aade1a2557ad</a>
+<blockquote>
+<p>
+ Compiler warning in base/gsicc_manage.c<br>
+<br>
+ Comparing a pointer to '\0' should be comparing to NULL to check for a valid<br>
+ string argument,<br>
+<br>
+base/gsicc_manage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-29 16:12: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=b223c93caa34ad34dfd33d534529b3f11d067aab">b223c93caa34ad34dfd33d534529b3f11d067aab</a>
+<blockquote>
+<p>
+ Documentation - correct erroneous information in psfiles.htm<br>
+<br>
+ Psfiles.htm incorrectly listed a number of files as being in 'lib'<br>
+ when in fact they have been moved to 'Resource/Init. In addition<br>
+ Several files were listed which no longer exist, and some files in<br>
+ 'examples' were not listed or described.<br>
+<br>
+ I suspect this listing is still not comprehensive, but at I believe<br>
+ the information that is there is now at least correct.<br>
+<br>
+doc/Psfiles.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-29 14:05: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=d8ec036836a0abcfe3cc677bb88a61bdfd1a65bb">d8ec036836a0abcfe3cc677bb88a61bdfd1a65bb</a>
+<blockquote>
+<p>
+ pdfwrite - remove a global from gdevpdtt.c<br>
+<br>
+<br>
+ See bug #693376<br>
+<br>
+ In gdevpdtt.c we hold a static gs_glyph standard_glyph_code_for_notdef<br>
+ which is initially assinged to GS_NO_GLYPH, and is later assigned a<br>
+ value from the encoding table:<br>
+<br>
+ standard_glyph_code_for_notdef =<br>
+ gs_c_name_glyph((const byte *)&quot;.notdef&quot;, 7) - gs_c_min_std_encoding_glyph;<br>
+<br>
+ However, this is only done if the current value is GS_NO_GLYPH. In effect<br>
+ standard_glyph_code_for_notdef is a constant. But we can't define it as<br>
+ a constant because the actual value depends on the contents of a table<br>
+ which is built at compile time.<br>
+<br>
+ This appears to be an attempt to limit the number of times we call<br>
+ gs_c_name_glyph because that is a relatively expensive operation, and<br>
+ the actual value returned never changes between builds.<br>
+<br>
+ But we don't want to have globals, really, so this commit simply gets<br>
+ and stores the value when the PDF font resource is created in<br>
+ font_resource_alloc(). We then can look up the value when we need it.<br>
+<br>
+ This is, obviously, slightly slower than a one-time lookup, because<br>
+ we execute it once for every font. It also uses up a fraction more<br>
+ memory. However, compared to the performance and memory usage of pdfrwite<br>
+ the differences are miniscule.<br>
+<br>
+devices/vector/gdevpdtf.c<br>
+devices/vector/gdevpdtf.h<br>
+devices/vector/gdevpdtt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-28 10:31: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=e29a7e00401549ebb7c03c8324209489b7c87681">e29a7e00401549ebb7c03c8324209489b7c87681</a>
+<blockquote>
+<p>
+ Coverity ID: 259882 Fix typo in pcl_impl_allocate_interp_instance.<br>
+<br>
+ Fix typo to allow conditional freeing of pcli-&gt;pcs.pids.<br>
+<br>
+pcl/pcl/pctop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-19 14:28: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=2b155ebd780b5737aac4e8096c8fbaa5cb78212c">2b155ebd780b5737aac4e8096c8fbaa5cb78212c</a>
+<blockquote>
+<p>
+ Bug 694260: FAPI: tidy up error return for broken TT glyph<br>
+<br>
+ In the event of an error retrieving a TTF glyph, we were storing the negative<br>
+ error code in the same variable we use to store the glyph length for a valid<br>
+ glyph, which is an unsigned variable, causing a valgrind error, and potential<br>
+ security issue reading uninitialized memory.<br>
+<br>
+ In fact, other consumers silently cope with this type of problem and<br>
+ (presumably) use a notdef glyph instead. So this tweaks the error codes to<br>
+ do the same.<br>
+<br>
+ Because we now have to differentiate between different types of error, we<br>
+ can no longer just use a negative value, so there is an enumerated type for<br>
+ the error values.<br>
+<br>
+base/fapi_ft.c<br>
+base/gxfapi.h<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-25 09:28: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=b82848bc26f47b5b5727d24f03d08eb3679c7243">b82848bc26f47b5b5727d24f03d08eb3679c7243</a>
+<blockquote>
+<p>
+ Add script and arch*.h headers for ios build<br>
+<br>
+ This results in a &quot;fat&quot; libgs.a library which can be linked used either for the<br>
+ simulator or a &quot;real&quot; ios build.<br>
+<br>
+ Really, this script just automates/simplifies the process of using our existing<br>
+ cross-compile support.<br>
+<br>
+ The only slightly out of the ordinary part is combining the Intel and arm<br>
+ libraries into the single fat library.<br>
+<br>
+configure.ac<br>
+ios/build_ios_gslib.sh<br>
+ios/ios-README.txt<br>
+ios/ios_arch-arm.h<br>
+ios/ios_arch-x86.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-24 19:23:42 +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=83f78ff2c85413866f0d4e549fc6a39aa72417e6">83f78ff2c85413866f0d4e549fc6a39aa72417e6</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in cmsCreateLab2ProfileTHR.<br>
+<br>
+ Fix memory leak for allocation event numbers 821 - 854.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=860 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+lcms2art/src/cmsvirt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-24 18:42:46 +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=e8501487c929db1bc1a624bf101a3464b447db07">e8501487c929db1bc1a624bf101a3464b447db07</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in BuildRGBOutputMatrixShaper.<br>
+<br>
+ Fix memory leak for allocation event numbers 787 - 792.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=795 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+lcms2art/src/cmsio1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-23 18:10: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=571200a055310b157f3640742f32564fc2de5697">571200a055310b157f3640742f32564fc2de5697</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak c_param_write.<br>
+<br>
+ Fix memory leak for allocation event number 676.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=677 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gscparam.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-23 18:18:49 +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=92ccfa3dcb2ca9fd2273611f7ed2111d3ae319a8">92ccfa3dcb2ca9fd2273611f7ed2111d3ae319a8</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in cmsStageAllocMatrix.<br>
+<br>
+ Fix memory leak for allocation event numbers 753 - 754.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=755 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+lcms2art/src/cmslut.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-12-20 12:30:50 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0c498888ca6c0bdf4b90d1b3a79a4a185d810a22">0c498888ca6c0bdf4b90d1b3a79a4a185d810a22</a>
+<blockquote>
+<p>
+ Fix clusterpush detection for mupdf repositories.<br>
+<br>
+toolbin/localcluster/clusterpush.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-24 17:02:26 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb6abd533cdfed34d076c3320c931d778189c202">bb6abd533cdfed34d076c3320c931d778189c202</a>
+<blockquote>
+<p>
+ Make gitpush.sh script executable.<br>
+<br>
+toolbin/localcluster/gitpush.sh<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-24 15:18: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=9010c622cd4d17053ee405bb378ed08bcaa16251">9010c622cd4d17053ee405bb378ed08bcaa16251</a>
+<blockquote>
+<p>
+ pdfwrite - ensure we have a substream Resource dictionary before using it<br>
+<br>
+ Bug #692182 &quot;xps -&gt; pdfwrite SEGVs with softmasked pattern&quot;<br>
+<br>
+ After much messing about with this bug over the years, it appears<br>
+ that most of the bugs have been fixed. However one still remained;<br>
+ we could attempt to add a ProcSet Resource to a substream, even<br>
+ though we had not yet allocated a Resource for that substream.<br>
+<br>
+ Although it shows up with this file, technically it could<br>
+ probably happen with any kind of input.<br>
+<br>
+ Fixed here by allocating a substream Resource dictionary if we<br>
+ don't already have one when we want to add the Procsets to it.<br>
+<br>
+ No differences expected<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-24 09:33:20 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eb5f2a85c5c3f6436df6158d7fba1977be68116f">eb5f2a85c5c3f6436df6158d7fba1977be68116f</a>
+<blockquote>
+<p>
+ Bug 698903: bounds check t2 charstring stack in op<br>
+<br>
+ Add a stack bounds checking macro for the Type 2 charstring stack, and use it<br>
+ for the rmoveto op.<br>
+<br>
+base/gstype2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-23 18:15:18 +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=f5e42eb1dc1cc96bab67990e886756a089a3fa5a">f5e42eb1dc1cc96bab67990e886756a089a3fa5a</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in AllocateToneCurveStruct.<br>
+<br>
+ Fix memory leak for allocation event number 741.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=742 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+lcms2art/src/cmsgamma.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-23 18:05:54 +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=ebae375c979146fd8c2457e217dcb4e67618a718">ebae375c979146fd8c2457e217dcb4e67618a718</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in gs_copydevice2.<br>
+<br>
+ Fix memory leak for allocation event number 673.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=674 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gsdevice.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-23 08:49: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=34f29fe8f77a626ef71c1f04fd781dd8b8bacd85">34f29fe8f77a626ef71c1f04fd781dd8b8bacd85</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix pxstate memory leak.<br>
+<br>
+ Fix memory leak for allocation event numbers 517 - 520.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=578 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gsfont.c<br>
+pcl/pxl/pxstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-23 16:42:34 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2ce962cfc20267b3e678d8d1357dfc2643b7a477">2ce962cfc20267b3e678d8d1357dfc2643b7a477</a>
+<blockquote>
+<p>
+ pdfwrite - take advantage of GSUB table glyph substitution enhancement<br>
+<br>
+ Bug #691574 &quot;vert punctuation is rotated when convert ps to 1.3 pdf&quot;<br>
+<br>
+ Commit 7dd033589ce40649ab602fba4c0473aa40c48439 was an enhancement to<br>
+ apply vertical glyph substitution from a TrueType GSUB table. This is<br>
+ primarily used when a user specifies a TrueType font to be used as a<br>
+ replacement for a missing CIDFont (especially in PDF files). Using a<br>
+ horizontal font as a replacement for a vertical font can result in<br>
+ punctuation marks at the wrong orientation.<br>
+<br>
+ This commit uses the machinery added in that previous commit to apply<br>
+ the same fix for pdfwrite. Note that this still does not produce<br>
+ 'correct' output, because its still a substitute font being used. It<br>
+ does produce punctuation marks at the correct orientation now though,<br>
+ for the limited selection of test files we have. The other relevant<br>
+ report is 698471, though that was reported against rendering, the same<br>
+ effect occurs with pdfwrite.<br>
+<br>
+ The cluster shows one diff, a progression, which surprises me since I<br>
+ cannot duplicate the reference output, but I'm not going to complain<br>
+ since its a progression.<br>
+<br>
+devices/gxfcopy.c<br>
+devices/gxfcopy.h<br>
+devices/vector/gdevpdtb.c<br>
+devices/vector/gdevpdtc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-22 17:14:31 -0700
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de0bad3a42012d57fea6c2d55325c033db7a3ded">de0bad3a42012d57fea6c2d55325c033db7a3ded</a>
+<blockquote>
+<p>
+ Fix Bug 698874 - incorrect text positioning.<br>
+<br>
+ The bug title is misleading, this a font selection problem where 1 of<br>
+ 2 fonts with the same attributes must be selected. Experiments<br>
+ suggest the HP chooses the font which was defined earliest. We<br>
+ emulate the same effect in our interpreter by creating sequential PJL<br>
+ font numbers for downloaded fonts and the selection algorithm<br>
+ prefering lower numbers.<br>
+<br>
+ Progression with the test file bug690520.pcl.<br>
+<br>
+pcl/pcl/pcfont.c<br>
+pcl/pcl/pcfsel.c<br>
+pcl/pcl/pcsfont.c<br>
+pcl/pcl/pcstate.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-22 11:32: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=b5b6ffad4c3e6d12fbb1caf9d0f17d7de77ca3c3">b5b6ffad4c3e6d12fbb1caf9d0f17d7de77ca3c3</a>
+<blockquote>
+<p>
+ Fix rc_increment for CMM_THREAD_SAFE case (only 1 param, not 2)<br>
+<br>
+ Thanks to Michael Vrhel for tripping over this first.<br>
+<br>
+base/gxclthrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-20 18:12: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=8089072692df101c5464e67b3c3a2cebf9b6682d">8089072692df101c5464e67b3c3a2cebf9b6682d</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in gstate_free_contents.<br>
+<br>
+ Fix memory leak for allocation event numbers 346 - 348.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=349 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gsstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-20 13:01:22 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6adaf9b4d691bfec64d6d6888bb4fed776a2da12">6adaf9b4d691bfec64d6d6888bb4fed776a2da12</a>
+<blockquote>
+<p>
+ Bug 698867: Don't push texttransparency knockout group for invisible text<br>
+<br>
+ The customer's example file had text that was not opaque, but was being<br>
+ rendered in TextRenderingMode 3 (invisible). Don't push the extra<br>
+ transparency group for this. Reduces time from 483 seconds to 44 seconds<br>
+ with default clist params, and with BufferSpace of &gt; 32m down to 14 seconds.<br>
+ Also reduces page mode (-dBufferSpace=2000m) from 40 minutes to 9 seconds.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-20 10:55: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=1bc1bfaf123e866695813895d02da0956f79cb31">1bc1bfaf123e866695813895d02da0956f79cb31</a>
+<blockquote>
+<p>
+ Minor fix and addition of debugging info for clist cropping.<br>
+<br>
+base/gxclimag.c<br>
+base/gxclist.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-22 15:20:29 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eb5d417375e1c7052aeb9f2532d34573bfd07f53">eb5d417375e1c7052aeb9f2532d34573bfd07f53</a>
+<blockquote>
+<p>
+ Feature - JPEG Pass through<br>
+<br>
+ This commit adds the capability for the PostScript and PDF interpreters<br>
+ to pass JPEG compressed image data directly to a device (currently the<br>
+ pdfwrite family of devices) as the original JPEG data.<br>
+<br>
+ This allows us to avoid the compression artefacts caused by decompressing<br>
+ JPEG image data, and then applying JPEG compression again.<br>
+<br>
+ This works by having the JPEG decoder inquire (via spec_op) if the<br>
+ current device would like the original uncompressed data. If so then it<br>
+ instructs the JPEG stream decoder to call a routine which will use<br>
+ more spec_ops to pass the uncompressed data to the device.<br>
+<br>
+ The interpreter still calls the image methods with the decompressed<br>
+ data, its up to the device to ignore these calls while handling JPEG<br>
+ pass-through.<br>
+<br>
+ We have to work this way in PostScript, as we must decompress the data<br>
+ as it arrives in order to find the end of the DCT compressed data. In<br>
+ addition, this allows the device to change its mind about accepting<br>
+ compressed data directly if it discovers from the image data that it<br>
+ is not suitable for preserving unchanged.<br>
+<br>
+ This approach does not work with the PXL and XPS interpreters. These<br>
+ interpreters appear to completely decompress the JPEG data before<br>
+ starting an image, unlike the PostScript and PDF interpreters where the<br>
+ image methods are called as the stream is decopressed.<br>
+<br>
+ As a result this feature is disabled for these interpreters.<br>
+<br>
+Resource/Init/gs_pdfwr.ps<br>
+base/gxdevsop.h<br>
+base/sdct.h<br>
+base/sdctd.c<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpdfj.c<br>
+devices/vector/gdevpdfx.h<br>
+devices/vector/gdevpsdf.h<br>
+devices/vector/gdevpsdi.c<br>
+devices/vector/gdevpsdp.c<br>
+doc/VectorDevices.htm<br>
+pcl/pxl/pximage.c<br>
+pcl/pxl/pxvendor.c<br>
+psi/int.mak<br>
+psi/zfdctd.c<br>
+xps/xpsjpeg.c<br>
+xps/xpstiff.c<br>
+xps/xpstile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-21 14:53: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=f858f560061560cbd3670509206dfdd98fea4d07">f858f560061560cbd3670509206dfdd98fea4d07</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in px_state_alloc.<br>
+<br>
+ Fix memory leak for allocation event numbers 515 and 516.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=517 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pxl/pxstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-20 22:17:57 +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=9e0509877950e3ffef5c576472ff12a3e3fb37b3">9e0509877950e3ffef5c576472ff12a3e3fb37b3</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak of hpgl_parser_state.<br>
+<br>
+ Fix memory leak for allocation event number 420.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=421 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pcommand.c<br>
+pcl/pcl/pgparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-20 21:29: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=0177158989db4de55199e1b482cbffb033c4a213">0177158989db4de55199e1b482cbffb033c4a213</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in pcl_impl_allocate_interp_instance.<br>
+<br>
+ Fix memory leak for allocation event numbers 328 - 417.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=419 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pctop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-20 20:02:53 +0000
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3278973da5d771e3fc56d1a4295c3bdb3a1a51b5">3278973da5d771e3fc56d1a4295c3bdb3a1a51b5</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in file_prepare_stream.<br>
+<br>
+ Fix memory leak for allocation event number 357.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=358 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/sfxcommon.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-20 19:07:34 +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=43711760b611b1a8e17f3490e3b58914508098f9">43711760b611b1a8e17f3490e3b58914508098f9</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in gs_nulldevice.<br>
+<br>
+ Fix memory leak for allocation event number 355.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=356 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gsdevice.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-19 10:01:22 +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=76aea30116ea14ebb2238d34251e44a7e547ebf0">76aea30116ea14ebb2238d34251e44a7e547ebf0</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in gs_gstate_alloc.<br>
+<br>
+ Fix memory leak for allocation event numbers 330 - 334. The path, clip_path and<br>
+ effective_clip_path are initialised at the start of gs_gstate_alloc during the<br>
+ call to gstate_alloc so this redundant code can be removed.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=348 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gsstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-20 14:34:13 +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=b09da43f803fda306d3eb8eca99d825f70156db7">b09da43f803fda306d3eb8eca99d825f70156db7</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in gp_enumerate_files_init.<br>
+<br>
+ Fix memory leak for allocation event numbers 199 and 200.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=201 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gp_unifs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-17 20:02:32 +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=76c335c7672e3841055d6c6effc2ae61715c8b6a">76c335c7672e3841055d6c6effc2ae61715c8b6a</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in gs_enumerate_files_init.<br>
+<br>
+ Fix memory leak for allocation event numbers 183 and 184.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=185 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gsiodev.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-18 12:06: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=4b8eb0c07b84667b0e3f5ab47f328767012781bf">4b8eb0c07b84667b0e3f5ab47f328767012781bf</a>
+<blockquote>
+<p>
+ Bug 691224 : Remove the long non-functional DISKFONTS feature.<br>
+<br>
+ This feature (allowing Type 1 fonts to be loaded into VM without CharStrings<br>
+ and individual CharStrings read from the font file on demand) only ever worked<br>
+ with very specifically formatted Type 1 fonts (those coming from the also long<br>
+ dead and gone bdftops.ps tool). Any significant variation from that format<br>
+ would not work.<br>
+<br>
+ As we no longer use fonts derived from BDF (and BDF are very much a thing of the<br>
+ past!), DISKFONTS has not worked for a *long* time, hence removing it.<br>
+<br>
+ In addition, even on printers, memory is no longer quite the issue it was, nor<br>
+ are the core Postscript fonts as widely used or relied upon as they were.<br>
+<br>
+Resource/Init/gs_diskf.ps<br>
+Resource/Init/gs_fonts.ps<br>
+Resource/Init/gs_init.ps<br>
+Resource/Init/gs_type1.ps<br>
+doc/Psfiles.htm<br>
+doc/Use.htm<br>
+doc/gs-vms.hlp<br>
+man/gs.1<br>
+psi/int.mak<br>
+psi/psromfs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-18 12:39:00 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f3e26b054b866678512cd6c0c2e2daba9f4c17db">f3e26b054b866678512cd6c0c2e2daba9f4c17db</a>
+<blockquote>
+<p>
+ Bug 697856: Reduce clist buffer memory usage for worst case files.<br>
+<br>
+ The band_height is chosen based on number of bytes per scan line, and<br>
+ a fudge factor if the page uses transparency. For pages with a large<br>
+ number of raster lines, the number of bands could cause the space<br>
+ needed for the band &quot;states&quot; to exceed the space remaining in the<br>
+ buffer. This was handled by doubling the BufferSpace until there<br>
+ was enough space for the band states. Improve by increasing the space<br>
+ available more gradually. For one of the worst case files, Bug689581.pdf,<br>
+ this reduces the memory needed from 40Mb to 24Mb.<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-17 17:33:48 +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=c470009cbf8be2aaed7b4b438307479959949625">c470009cbf8be2aaed7b4b438307479959949625</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leak in pl_main_delete_instance.<br>
+<br>
+ Fix memory leak for allocation event number 28.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=183 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-17 12:54: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=3c90c6e03844713000f0e300e371487fa49980f5">3c90c6e03844713000f0e300e371487fa49980f5</a>
+<blockquote>
+<p>
+ Fix bug 697843: Use after free in pdf14_device_finalize<br>
+<br>
+ The trans_group_parent_cmap_procs (misnamed because it has a LOT of<br>
+ parent color info along with the cmap procs) needs to be allocated<br>
+ in stable_memory to prevent a dangling pointer being seen during the<br>
+ pdf14_device_finalize during alloc_restore_all because the parent<br>
+ color info may be freed before the pdf14 device itself.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-17 11:43: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=bfda8d1f442e3c8e81018833c3698ffcb63535fb">bfda8d1f442e3c8e81018833c3698ffcb63535fb</a>
+<blockquote>
+<p>
+ Fix (some) missing dependencies<br>
+<br>
+ Noticed during other work, but not committed as part of those fixes<br>
+ since this is unrelatd.<br>
+<br>
+devices/devs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-17 11:18:42 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c998242a1168320aba8efb909189654f153b8dd3">c998242a1168320aba8efb909189654f153b8dd3</a>
+<blockquote>
+<p>
+ Fix bug 698306: consecutive pushpdf14devicefilter leads to SEGV<br>
+<br>
+ If we get to pushpdf14devicefilter with the pdf14 device, the closedevice<br>
+ will forward the close to the target, but if the pdf14 device hasn't<br>
+ been disabled, the opendevice won't forward to the target. Call the<br>
+ pdf14_disable_device to make sure the pdf14_open_device will forward.<br>
+<br>
+base/gdevp14.c<br>
+psi/int.mak<br>
+psi/ztrans.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-17 12:29: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=f0fe2481a2e9b0b632a1d4e804a5a1d27fe9c017">f0fe2481a2e9b0b632a1d4e804a5a1d27fe9c017</a>
+<blockquote>
+<p>
+ Prevent undefined error with -DDEBUG<br>
+<br>
+ The procedure for dumping VM stats with -DDEBUG and -DINITDEBUG was not being<br>
+ bound, so the .&lt;operator&gt; internal operators we now undefine after<br>
+ initialization were missing by the time the procedure was called.<br>
+<br>
+ Now, simply bind the procedure<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-16 20:04:30 +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=6e7149bae6bd5c2a7b5acff50ba6600b3beb3818">6e7149bae6bd5c2a7b5acff50ba6600b3beb3818</a>
+<blockquote>
+<p>
+ Bug 697545 : Memory squeezing fix for double freeing of ToneCurve.<br>
+<br>
+ Avoid SEGV by removing unnecessary freeing of ToneCurve.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=751 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+lcms2art/src/cmsio1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-16 19:41:55 +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=1bbf91df4b8df650f3efe0effd37cf1cf91c9657">1bbf91df4b8df650f3efe0effd37cf1cf91c9657</a>
+<blockquote>
+<p>
+ Bug 697545 : Memory squeezing fix for mutex in lcms2art code<br>
+<br>
+ Prevent SEGV by checking for NULL mutex pointer before attempting<br>
+ to use or destroy it.<br>
+<br>
+lcms2art/src/cmserr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-15 17:26:37 +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=3aeff79d28e832aefcd005c99ae67304c927b3d3">3aeff79d28e832aefcd005c99ae67304c927b3d3</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix memory leaks and SEGVs.<br>
+<br>
+ Prevent table being orphaned due to early memory allocation failures. Remove<br>
+ cleanup code to prevent double freeing iodev entries. Prevent SEGV when ramfs<br>
+ state fails to allocate.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=25 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+base/gsiodev.c<br>
+base/gsioram.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-16 11:18: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=d250ce572e7f2e067693a19de8d38b6612b73501">d250ce572e7f2e067693a19de8d38b6612b73501</a>
+<blockquote>
+<p>
+ Fix segfault with &quot;all devices&quot; test.<br>
+<br>
+ Turns out there's a group of devices that actually open a file as they are being<br>
+ closed, which causes problems if we've already freed up the I/O device table,<br>
+ which commit 2e86e7f64e added.<br>
+<br>
+ So, rejig the Postscript interpreter's I/O device table init/finit functions to<br>
+ allow later freeing of the table (whilst keeping the two consistent in their<br>
+ parameters).<br>
+<br>
+psi/iinit.c<br>
+psi/iinit.h<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-16 10:47: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=e62df8bbd78e8db1cb254a6ab4c2ebf1232c6c7e">e62df8bbd78e8db1cb254a6ab4c2ebf1232c6c7e</a>
+<blockquote>
+<p>
+ Reduce severity of memory debug problem detection<br>
+<br>
+ Bug #698849 &quot;gs_abort with Bad object&quot;<br>
+<br>
+ The error occurs because of the combination of -Z? and -dLastPage. In<br>
+ order to do First/Last Page processing, we insert a subclassing device<br>
+ ahead of the regular device (ppmraw in this case).<br>
+<br>
+ The subclassing works by making a new device structure, copying the<br>
+ existing device to it, and replacing the content of the existing<br>
+ device structure. This is done to maintain coherency of gsave/grestore<br>
+ and save/restore; the structures maintain pointers to the device in<br>
+ the graphics state structure, so we can't simply move it.<br>
+<br>
+ When subclassing, we change the declared size of the structure (ssize)<br>
+ but we don't (can't!) change the size that the memory manager allocated<br>
+ in the first place. This leads to a mismatch between the declared size<br>
+ of the structure and the allocated size. I mentioned this in the<br>
+ original commit for subclassing, but noted that in normal use there is<br>
+ nowhere that actually checks.<br>
+<br>
+ However, if you set -Z? then additional checks are done on memory<br>
+ validity, and this discrepancy is flagged. It also raises an abort,<br>
+ presumably because this is seen as serious enough to stop and<br>
+ investigate.<br>
+<br>
+ I don't want to remove this check altogether, as it may still be useful,<br>
+ but we don't want to abort now because this might be a benign change<br>
+ caused by subclassing.<br>
+<br>
+ So here, pull the size != ssize check out separately from the other<br>
+ consistency checks, and if it is not true raise a warning, but do<br>
+ *not* abort the process.<br>
+<br>
+psi/ilocate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-15 11:41:01 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4d730d2087680cff4e3b153536922406bfcf4493">4d730d2087680cff4e3b153536922406bfcf4493</a>
+<blockquote>
+<p>
+ Fix bug 698823. Segfault with psdrgb and transparency_example.ps<br>
+<br>
+ The psdrgb device has max_components == 3, but the pdf14 device was<br>
+ using spot_colors to set it more than that (transparency_example.ps<br>
+ doed not set PageSpotColors so it was -1, leading to underflow).<br>
+ If page_spot_colors is the default -1, then don't use it, and also<br>
+ limit the num_components to max_components for the device.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-15 08:14:02 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=afe8e5468db1f875432aa711676eaf4007d13daa">afe8e5468db1f875432aa711676eaf4007d13daa</a>
+<blockquote>
+<p>
+ Fix opening of files &gt; 2GB on Windows built with VS after VS2013<br>
+<br>
+ For whatever reason, even on 64 bit builds, Visual Studio changed<br>
+ behaviour and the compiler/run-time now invoke __fstat64i32 for<br>
+ fstat. This returns an error if the file size can't fit in int32<br>
+ (the older fstat just returned a negative number, ignoring overflow)<br>
+ Change to use __fstat64 which works on VS 2005 so it should be<br>
+ fine. I also tested this build on an ancient Dell with 760Mb RAM<br>
+ running Windows XP SP3 and it runs fine, so __fstat64 is not a<br>
+ problem going back that far.<br>
+<br>
+base/stat_.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-15 17:22: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=b199f558834d0fbd365cccc426eed0fdc3e035c7">b199f558834d0fbd365cccc426eed0fdc3e035c7</a>
+<blockquote>
+<p>
+ pdfwrite - Fix the detection of type 3 descendants in composite fonts<br>
+<br>
+ Bug #698844 &quot;ps2pdf creates unusually large PDF files starting with version 9.21&quot;<br>
+ Bug #698647 &quot;PCL5 - Downloadfont not as T3 Font interpreted&quot;<br>
+ Bug #607462 &quot;Ghostscript falls into infinite loop with pdfwrite&quot;<br>
+<br>
+ The actual problem was that a Type 0 composite font with a single<br>
+ descendant was used with stringwidth and the space glyph. This was not<br>
+ detected by pdf_text_begin() and so the glyph was cached, but it was not<br>
+ added to any type 3 font, it was simply processed as a stringwidth.<br>
+<br>
+ Later the same glyph from the same font was used in earnest, pdfwrite<br>
+ noticed it didn't have a copy of the glyph and set up to capture the<br>
+ CharProc. But the glyph was present in the glyph cache which meant the<br>
+ CharProc wasn't executed, leading to an infinite loop.<br>
+<br>
+ The fix applied prevented caching type 3 fonts, but that caused problems<br>
+ with cases where we wanted to convert a font to type 3, so the fix<br>
+ was extended to only prevent caching of input type 3 fonts, not<br>
+ synthesised ones.<br>
+<br>
+ However, this still caused problems with programs which used type 3 fonts<br>
+ with glyphshow. Because we did not cache the glyphs we would detect each<br>
+ glyph use through glyphshow as a new glyph, and so there would be no<br>
+ glyph reuse, leading to large slow PDF files.<br>
+<br>
+ Here we extend the check on descendants of type 3 fonts so that if no<br>
+ font change takes place, we still check the 'current' descendant to<br>
+ see if its type 3. If a type 3 descendant is detected then we skip<br>
+ caching the glyph which prevents the whole problem.<br>
+<br>
+ No differences expected.<br>
+<br>
+devices/vector/gdevpdtt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-15 14:06: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=99a839311c7d7e1dab919bd88f7632c5e230708f">99a839311c7d7e1dab919bd88f7632c5e230708f</a>
+<blockquote>
+<p>
+ Remove hamrless/pointless no-op assignment from previous commit<br>
+<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-15 13:48: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=ead0b5bee31a6e2756749a5c8fb6508e49b64703">ead0b5bee31a6e2756749a5c8fb6508e49b64703</a>
+<blockquote>
+<p>
+ Bug 698856: Ensure is_glyph_index flag is consistently set<br>
+<br>
+ The is_glyph_index is (now) set as a local variable, then copied to<br>
+ the structure before the ps_get_glyphname_or_cid() function returns.<br>
+<br>
+ A couple of branches in the code were still setting the structure value directly<br>
+ meaning the local variable was wrong.<br>
+<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-15 08:17: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=2e86e7f64ed169345c9fb49b9c9eaf0a1bf78720">2e86e7f64ed169345c9fb49b9c9eaf0a1bf78720</a>
+<blockquote>
+<p>
+ Bug 698842: cleanup the io_dev table and contents<br>
+<br>
+ This is slightly complicated as (in the Ghostscript case) the table can be<br>
+ freed explicitly, or by the garbager.<br>
+<br>
+base/gdevpipe.c<br>
+base/gp_mshdl.c<br>
+base/gp_msprn.c<br>
+base/gp_os2pr.c<br>
+base/gsiodev.c<br>
+base/gsiodevs.c<br>
+base/gsiodisk.c<br>
+base/gsioram.c<br>
+base/gsiorom.c<br>
+base/gslib.c<br>
+base/gxiodev.h<br>
+base/lib.mak<br>
+pcl/pl/pl.mak<br>
+pcl/pl/plmain.c<br>
+psi/iinit.c<br>
+psi/iinit.h<br>
+psi/imain.c<br>
+psi/int.mak<br>
+psi/zdevcal.c<br>
+psi/ziodev.c<br>
+psi/ziodev2.c<br>
+psi/ziodevs.c<br>
+psi/ziodevsc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-12 08:48: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=d0829c3cc4d64594499035d664c918acc9047d70">d0829c3cc4d64594499035d664c918acc9047d70</a>
+<blockquote>
+<p>
+ Update to latest CMap release from Adobe<br>
+<br>
+ From:<br>
+ https://github.com/adobe-type-tools/cmap-resources<br>
+<br>
+Resource/CMap/78-EUC-H<br>
+Resource/CMap/78-EUC-V<br>
+Resource/CMap/78-H<br>
+Resource/CMap/78-RKSJ-H<br>
+Resource/CMap/78-RKSJ-V<br>
+Resource/CMap/78-V<br>
+Resource/CMap/78ms-RKSJ-H<br>
+Resource/CMap/78ms-RKSJ-V<br>
+Resource/CMap/83pv-RKSJ-H<br>
+Resource/CMap/90ms-RKSJ-H<br>
+Resource/CMap/90ms-RKSJ-V<br>
+Resource/CMap/90msp-RKSJ-H<br>
+Resource/CMap/90msp-RKSJ-V<br>
+Resource/CMap/90pv-RKSJ-H<br>
+Resource/CMap/90pv-RKSJ-V<br>
+Resource/CMap/Add-H<br>
+Resource/CMap/Add-RKSJ-H<br>
+Resource/CMap/Add-RKSJ-V<br>
+Resource/CMap/Add-V<br>
+Resource/CMap/Adobe-CNS1-0<br>
+Resource/CMap/Adobe-CNS1-1<br>
+Resource/CMap/Adobe-CNS1-2<br>
+Resource/CMap/Adobe-CNS1-3<br>
+Resource/CMap/Adobe-CNS1-4<br>
+Resource/CMap/Adobe-CNS1-5<br>
+Resource/CMap/Adobe-CNS1-6<br>
+Resource/CMap/Adobe-CNS1-7<br>
+Resource/CMap/Adobe-GB1-0<br>
+Resource/CMap/Adobe-GB1-1<br>
+Resource/CMap/Adobe-GB1-2<br>
+Resource/CMap/Adobe-GB1-3<br>
+Resource/CMap/Adobe-GB1-4<br>
+Resource/CMap/Adobe-GB1-5<br>
+Resource/CMap/Adobe-Japan1-0<br>
+Resource/CMap/Adobe-Japan1-1<br>
+Resource/CMap/Adobe-Japan1-2<br>
+Resource/CMap/Adobe-Japan1-3<br>
+Resource/CMap/Adobe-Japan1-4<br>
+Resource/CMap/Adobe-Japan1-5<br>
+Resource/CMap/Adobe-Japan1-6<br>
+Resource/CMap/Adobe-Japan2-0<br>
+Resource/CMap/Adobe-Korea1-0<br>
+Resource/CMap/Adobe-Korea1-1<br>
+Resource/CMap/Adobe-Korea1-2<br>
+Resource/CMap/B5-H<br>
+Resource/CMap/B5-V<br>
+Resource/CMap/B5pc-H<br>
+Resource/CMap/B5pc-V<br>
+Resource/CMap/CNS-EUC-H<br>
+Resource/CMap/CNS-EUC-V<br>
+Resource/CMap/CNS1-H<br>
+Resource/CMap/CNS1-V<br>
+Resource/CMap/CNS2-H<br>
+Resource/CMap/CNS2-V<br>
+Resource/CMap/ETHK-B5-H<br>
+Resource/CMap/ETHK-B5-V<br>
+Resource/CMap/ETen-B5-H<br>
+Resource/CMap/ETen-B5-V<br>
+Resource/CMap/ETenms-B5-H<br>
+Resource/CMap/ETenms-B5-V<br>
+Resource/CMap/EUC-H<br>
+Resource/CMap/EUC-V<br>
+Resource/CMap/Ext-H<br>
+Resource/CMap/Ext-RKSJ-H<br>
+Resource/CMap/Ext-RKSJ-V<br>
+Resource/CMap/Ext-V<br>
+Resource/CMap/GB-EUC-H<br>
+Resource/CMap/GB-EUC-V<br>
+Resource/CMap/GB-H<br>
+Resource/CMap/GB-V<br>
+Resource/CMap/GBK-EUC-H<br>
+Resource/CMap/GBK-EUC-V<br>
+Resource/CMap/GBK2K-H<br>
+Resource/CMap/GBK2K-V<br>
+Resource/CMap/GBKp-EUC-H<br>
+Resource/CMap/GBKp-EUC-V<br>
+Resource/CMap/GBT-EUC-H<br>
+Resource/CMap/GBT-EUC-V<br>
+Resource/CMap/GBT-H<br>
+Resource/CMap/GBT-V<br>
+Resource/CMap/GBTpc-EUC-H<br>
+Resource/CMap/GBTpc-EUC-V<br>
+Resource/CMap/GBpc-EUC-H<br>
+Resource/CMap/GBpc-EUC-V<br>
+Resource/CMap/H<br>
+Resource/CMap/HKdla-B5-H<br>
+Resource/CMap/HKdla-B5-V<br>
+Resource/CMap/HKdlb-B5-H<br>
+Resource/CMap/HKdlb-B5-V<br>
+Resource/CMap/HKgccs-B5-H<br>
+Resource/CMap/HKgccs-B5-V<br>
+Resource/CMap/HKm314-B5-H<br>
+Resource/CMap/HKm314-B5-V<br>
+Resource/CMap/HKm471-B5-H<br>
+Resource/CMap/HKm471-B5-V<br>
+Resource/CMap/HKscs-B5-H<br>
+Resource/CMap/HKscs-B5-V<br>
+Resource/CMap/Hankaku<br>
+Resource/CMap/Hiragana<br>
+Resource/CMap/Hojo-EUC-H<br>
+Resource/CMap/Hojo-EUC-V<br>
+Resource/CMap/Hojo-H<br>
+Resource/CMap/Hojo-V<br>
+Resource/CMap/Identity-H<br>
+Resource/CMap/Identity-V<br>
+Resource/CMap/KSC-EUC-H<br>
+Resource/CMap/KSC-EUC-V<br>
+Resource/CMap/KSC-H<br>
+Resource/CMap/KSC-Johab-H<br>
+Resource/CMap/KSC-Johab-V<br>
+Resource/CMap/KSC-V<br>
+Resource/CMap/KSCms-UHC-H<br>
+Resource/CMap/KSCms-UHC-HW-H<br>
+Resource/CMap/KSCms-UHC-HW-V<br>
+Resource/CMap/KSCms-UHC-V<br>
+Resource/CMap/KSCpc-EUC-H<br>
+Resource/CMap/KSCpc-EUC-V<br>
+Resource/CMap/Katakana<br>
+Resource/CMap/NWP-H<br>
+Resource/CMap/NWP-V<br>
+Resource/CMap/RKSJ-H<br>
+Resource/CMap/RKSJ-V<br>
+Resource/CMap/Roman<br>
+Resource/CMap/UniCNS-UCS2-H<br>
+Resource/CMap/UniCNS-UCS2-V<br>
+Resource/CMap/UniCNS-UTF16-H<br>
+Resource/CMap/UniCNS-UTF16-V<br>
+Resource/CMap/UniCNS-UTF32-H<br>
+Resource/CMap/UniCNS-UTF32-V<br>
+Resource/CMap/UniCNS-UTF8-H<br>
+Resource/CMap/UniCNS-UTF8-V<br>
+Resource/CMap/UniGB-UCS2-H<br>
+Resource/CMap/UniGB-UCS2-V<br>
+Resource/CMap/UniGB-UTF16-H<br>
+Resource/CMap/UniGB-UTF16-V<br>
+Resource/CMap/UniGB-UTF32-H<br>
+Resource/CMap/UniGB-UTF32-V<br>
+Resource/CMap/UniGB-UTF8-H<br>
+Resource/CMap/UniGB-UTF8-V<br>
+Resource/CMap/UniHojo-UCS2-H<br>
+Resource/CMap/UniHojo-UCS2-V<br>
+Resource/CMap/UniHojo-UTF16-H<br>
+Resource/CMap/UniHojo-UTF16-V<br>
+Resource/CMap/UniHojo-UTF32-H<br>
+Resource/CMap/UniHojo-UTF32-V<br>
+Resource/CMap/UniHojo-UTF8-H<br>
+Resource/CMap/UniHojo-UTF8-V<br>
+Resource/CMap/UniJIS-UCS2-H<br>
+Resource/CMap/UniJIS-UCS2-HW-H<br>
+Resource/CMap/UniJIS-UCS2-HW-V<br>
+Resource/CMap/UniJIS-UCS2-V<br>
+Resource/CMap/UniJIS-UTF16-H<br>
+Resource/CMap/UniJIS-UTF16-V<br>
+Resource/CMap/UniJIS-UTF32-H<br>
+Resource/CMap/UniJIS-UTF32-V<br>
+Resource/CMap/UniJIS-UTF8-H<br>
+Resource/CMap/UniJIS-UTF8-V<br>
+Resource/CMap/UniJIS2004-UTF16-H<br>
+Resource/CMap/UniJIS2004-UTF16-V<br>
+Resource/CMap/UniJIS2004-UTF32-H<br>
+Resource/CMap/UniJIS2004-UTF32-V<br>
+Resource/CMap/UniJIS2004-UTF8-H<br>
+Resource/CMap/UniJIS2004-UTF8-V<br>
+Resource/CMap/UniJISPro-UCS2-HW-V<br>
+Resource/CMap/UniJISPro-UCS2-V<br>
+Resource/CMap/UniJISPro-UTF8-V<br>
+Resource/CMap/UniJISX0213-UTF32-H<br>
+Resource/CMap/UniJISX0213-UTF32-V<br>
+Resource/CMap/UniJISX02132004-UTF32-H<br>
+Resource/CMap/UniJISX02132004-UTF32-V<br>
+Resource/CMap/UniKS-UCS2-H<br>
+Resource/CMap/UniKS-UCS2-V<br>
+Resource/CMap/UniKS-UTF16-H<br>
+Resource/CMap/UniKS-UTF16-V<br>
+Resource/CMap/UniKS-UTF32-H<br>
+Resource/CMap/UniKS-UTF32-V<br>
+Resource/CMap/UniKS-UTF8-H<br>
+Resource/CMap/UniKS-UTF8-V<br>
+Resource/CMap/V<br>
+Resource/CMap/WP-Symbol<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-13 13:10: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=3b0c7a01433c16f007dd3d92c04edc19bfb79970">3b0c7a01433c16f007dd3d92c04edc19bfb79970</a>
+<blockquote>
+<p>
+ Revert GhostPDL.sln due to stray commit<br>
+<br>
+ I use VS2017 for profiling, so had converted the solution file.<br>
+ It should not have been committed, but slipped through. Reverting<br>
+ it here.<br>
+<br>
+windows/GhostPDL.sln<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-13 10:45:32 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=112021a361e9300d9cd0cde0bfc9e691a6e5d0d7">112021a361e9300d9cd0cde0bfc9e691a6e5d0d7</a>
+<blockquote>
+<p>
+ pdf_info.ps - gracefully handle circular Resource references<br>
+<br>
+ Although not strictly part of Ghostscript, pdf_info.ps is used by<br>
+ customers and this is reasonably easy to improve.<br>
+<br>
+ When checking for transparency, pdf_info.ps uses the Ghostscript<br>
+ PDF interpreter to do the work. However, other aspects of its operation<br>
+ (Media Sizes, Font use) aren't available from the PDF interpreter.<br>
+<br>
+ When detecting Font usage, pdf_info.ps walks the Page Resource chain,<br>
+ and any the Resource chains of any Pattern or XObject Resources used<br>
+ on that page, as well as the Resources for any Annots (and also any<br>
+ XObject or Pattern Resources used by the Annots). If any of these<br>
+ Resource chains contains a circular reference (which they absolutely<br>
+ should not) then pdf_info will enter a loop and process unwil it<br>
+ exceeds the execution stack limit, throwing an error.<br>
+<br>
+ In this commit we borrow the technique used by the PDF interpreter, we<br>
+ create a dictionary and every object which we inspect has its object<br>
+ number stored in that dictionary. Whenever we encounter a new object<br>
+ we first check to see if its number is in that dictionary. If it is, we<br>
+ know we've seen it before and this is (possibly) a circular reference.<br>
+<br>
+ Even if it is not a circular reference, we've already checked that chain<br>
+ so we don't need to check it again.<br>
+<br>
+ This isn't cluster checked.<br>
+<br>
+toolbin/pdf_info.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-23 21:19:22 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3012651caace0d2d4dd26631e0e10d81fdeab181">3012651caace0d2d4dd26631e0e10d81fdeab181</a>
+<blockquote>
+<p>
+ Fix Bug 698729: White lines with LeadingEdge=3 and InterpolateControl&gt;1<br>
+<br>
+ Images are always painted in X from left to right, but for landscape the<br>
+ lines come in the original order, so if dy is negative we need to back up<br>
+ the starting Y coordinate (scaled_y) by the (scaled_h - 1).<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-12 09:52: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=3110ffa4ee4de170248317813e2e5e5f2d84e75c">3110ffa4ee4de170248317813e2e5e5f2d84e75c</a>
+<blockquote>
+<p>
+ Fix errors: Interpolated images + overprint + devn device<br>
+<br>
+ When using the overprint compositor, the underlying device may be able<br>
+ to handle copy_alpha_hl_color (planar devices) so forward to it even<br>
+ when the overprint compositor isn't active and use the correct<br>
+ overprint_copy_alpha_hl_color for the generic_procs.<br>
+<br>
+ Fix regression errors with psdcmyk device from files in<br>
+ tests_private/comparefiles: Bug688308.ps T2CharString.eps and<br>
+ from tests_private/ps/ps3cet: 09-47N.PS 10-08.PS 10-14.PS 10-16.PS<br>
+ 11-01.PS 11-02.PS 11-03.PS 11-04.PS 11-05.PS 11-06.PS 11-07.PS<br>
+ 11-09.PS 11-10.PS 11-11.PS 11-12.PS 11-14.PS 11-15.PS 11-16.PS<br>
+ 11-17.PS 11-18.PS 11-19.PS 11-21.PS 11-22.PS 11-26D.PS 11-28.PS<br>
+ 12-02.PS 12-04.PS 12-06.PS 12-07D.PS 12-08D.PS 12-11.PS 12-12.PS<br>
+ 12-13.PS 13-01.PS 13-02.PS 13-05.PS 13-16.PS 13-17.PS 13-19.PS<br>
+ 13-20.PS 13-22.PS 13-26.PS 13-27.PS 13-28.PS 13-29.PS 21-11.PS<br>
+<br>
+base/gsovrc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-12 08:23:09 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1508f69d9ed68baac7e659e6089edbf12c9717a9">1508f69d9ed68baac7e659e6089edbf12c9717a9</a>
+<blockquote>
+<p>
+ Fix devn color affecting psdcmyk tests/pdf/Bug6901014_launch_leaflet.pdf p2<br>
+<br>
+ The image interpolation uses copy_alpha_hl_color so when InterpolateControl=-1<br>
+ is used with this file in clist mode, playback ends up calling the<br>
+ default_no_copy_alpha_hl_color function which throws an &quot;undefined&quot; error. If<br>
+ this proc is seen, instead pass to copy_alpha which can work as long as the<br>
+ devn color can be packed into a chunky color which is the case as long as the<br>
+ num_components is &lt;= 8, which is useful enough to make it worth trying. If<br>
+ the num_components is too large, the copy_alpha will throw a &quot;rangecheck&quot;.<br>
+<br>
+base/gxclrast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-02 11:32:10 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d6a0412e281b786847ec96acc0ba85ffa22bf04d">d6a0412e281b786847ec96acc0ba85ffa22bf04d</a>
+<blockquote>
+<p>
+ Switch to lcms2 Artifex version for CMM<br>
+<br>
+ MuPDF is using Artifex's thread-safe version of lcms2. This commit switches gs to using that<br>
+ same version. Having gs take advantage of the thread-safe capabilities will be in a different<br>
+ commit.<br>
+<br>
+Makefile.in<br>
+base/gscms.h<br>
+base/gsicc_cache.c<br>
+base/gsicc_cms.h<br>
+base/gsicc_lcms.c<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_lcms2art.c<br>
+base/gsicc_manage.c<br>
+base/lcms2art.mak<br>
+base/lib.mak<br>
+base/msvclib.mak<br>
+base/openvms.mak<br>
+base/ugcclib.mak<br>
+base/unix-gcc.mak<br>
+base/unixansi.mak<br>
+base/winlib.mak<br>
+configure.ac<br>
+devices/gdevpsd.c<br>
+devices/gdevrinkj.c<br>
+devices/vector/gdevpx.c<br>
+lcms2/README.1ST<br>
+lcms2/doc/LittleCMS2.8 API.pdf<br>
+lcms2/doc/LittleCMS2.8 Plugin API.pdf<br>
+lcms2/doc/LittleCMS2.8 tutorial.pdf<br>
+lcms2/include/Makefile.am<br>
+lcms2art/.travis.yml<br>
+lcms2art/AUTHORS<br>
+lcms2art/COPYING<br>
+lcms2art/ChangeLog<br>
+lcms2art/INSTALL<br>
+lcms2art/Lib/BC/BC.txt<br>
+lcms2art/Lib/MS/MS.TXT<br>
+lcms2art/Makefile.am<br>
+lcms2art/Makefile.in<br>
+lcms2art/Projects/.gitignore<br>
+lcms2art/Projects/BorlandC_5.5/lcms2.rc<br>
+lcms2art/Projects/BorlandC_5.5/lcmsdll.lk<br>
+lcms2art/Projects/BorlandC_5.5/lcmsdll.lst<br>
+lcms2art/Projects/BorlandC_5.5/mklcmsdll.bat<br>
+lcms2art/Projects/VC2010/jpegicc/jpegicc.vcxproj<br>
+lcms2art/Projects/VC2010/jpegicc/jpegicc.vcxproj.filters<br>
+lcms2art/Projects/VC2010/linkicc/linkicc.vcxproj<br>
+lcms2art/Projects/VC2010/linkicc/linkicc.vcxproj.filters<br>
+lcms2art/Projects/VC2010/psicc/psicc.vcxproj<br>
+lcms2art/Projects/VC2010/psicc/psicc.vcxproj.filters<br>
+lcms2art/Projects/VC2010/resource.h<br>
+lcms2art/Projects/VC2010/testbed/testbed.vcxproj<br>
+lcms2art/Projects/VC2010/testbed/testbed.vcxproj.filters<br>
+lcms2art/Projects/VC2010/tiffdiff/tiffdiff.vcxproj<br>
+lcms2art/Projects/VC2010/tiffdiff/tiffdiff.vcxproj.filters<br>
+lcms2art/Projects/VC2010/tifficc/tifficc.vcxproj<br>
+lcms2art/Projects/VC2010/tifficc/tifficc.vcxproj.filters<br>
+lcms2art/Projects/VC2010/transicc/transicc.vcxproj<br>
+lcms2art/Projects/VC2010/transicc/transicc.vcxproj.filters<br>
+lcms2art/Projects/VC2012/jpegicc/jpegicc.vcxproj<br>
+lcms2art/Projects/VC2012/jpegicc/jpegicc.vcxproj.filters<br>
+lcms2art/Projects/VC2012/lcms2art.rc<br>
+lcms2art/Projects/VC2012/lcms2art.sln<br>
+lcms2art/Projects/VC2012/lcms2art_DLL/lcms2art_DLL.vcxproj<br>
+lcms2art/Projects/VC2012/lcms2art_DLL/lcms2art_DLL.vcxproj.filters<br>
+lcms2art/Projects/VC2012/lcms2art_static/lcms2art_static.vcxproj<br>
+lcms2art/Projects/VC2012/lcms2art_static/lcms2art_static.vcxproj.filters<br>
+lcms2art/Projects/VC2012/linkicc/linkicc.vcxproj<br>
+lcms2art/Projects/VC2012/linkicc/linkicc.vcxproj.filters<br>
+lcms2art/Projects/VC2012/psicc/psicc.vcxproj<br>
+lcms2art/Projects/VC2012/psicc/psicc.vcxproj.filters<br>
+lcms2art/Projects/VC2012/resource.h<br>
+lcms2art/Projects/VC2012/testbed/testbed.vcxproj<br>
+lcms2art/Projects/VC2012/testbed/testbed.vcxproj.filters<br>
+lcms2art/Projects/VC2012/tiffdiff/tiffdiff.vcxproj<br>
+lcms2art/Projects/VC2012/tiffdiff/tiffdiff.vcxproj.filters<br>
+lcms2art/Projects/VC2012/tifficc/tifficc.vcxproj<br>
+lcms2art/Projects/VC2012/tifficc/tifficc.vcxproj.filters<br>
+lcms2art/Projects/VC2012/transicc/transicc.vcxproj<br>
+lcms2art/Projects/VC2012/transicc/transicc.vcxproj.filters<br>
+lcms2art/Projects/VC2013/jpegicc/jpegicc.vcxproj<br>
+lcms2art/Projects/VC2013/jpegicc/jpegicc.vcxproj.filters<br>
+lcms2art/Projects/VC2013/lcms2art.rc<br>
+lcms2art/Projects/VC2013/lcms2art.sln<br>
+lcms2art/Projects/VC2013/lcms2art_DLL/lcms2art_DLL.vcxproj<br>
+lcms2art/Projects/VC2013/lcms2art_DLL/lcms2art_DLL.vcxproj.filters<br>
+lcms2art/Projects/VC2013/lcms2art_static/lcms2art_static.vcxproj<br>
+lcms2art/Projects/VC2013/lcms2art_static/lcms2art_static.vcxproj.filters<br>
+lcms2art/Projects/VC2013/linkicc/linkicc.vcxproj<br>
+lcms2art/Projects/VC2013/linkicc/linkicc.vcxproj.filters<br>
+lcms2art/Projects/VC2013/psicc/psicc.vcxproj<br>
+lcms2art/Projects/VC2013/psicc/psicc.vcxproj.filters<br>
+lcms2art/Projects/VC2013/resource.h<br>
+lcms2art/Projects/VC2013/testbed/testbed.vcxproj<br>
+lcms2art/Projects/VC2013/testbed/testbed.vcxproj.filters<br>
+lcms2art/Projects/VC2013/tiffdiff/tiffdiff.vcxproj<br>
+lcms2art/Projects/VC2013/tiffdiff/tiffdiff.vcxproj.filters<br>
+lcms2art/Projects/VC2013/tifficc/tifficc.vcxproj<br>
+lcms2art/Projects/VC2013/tifficc/tifficc.vcxproj.filters<br>
+lcms2art/Projects/VC2013/transicc/transicc.vcxproj<br>
+lcms2art/Projects/VC2013/transicc/transicc.vcxproj.filters<br>
+lcms2art/Projects/VC2015/jpegicc/jpegicc.vcxproj<br>
+lcms2art/Projects/VC2015/jpegicc/jpegicc.vcxproj.filters<br>
+lcms2art/Projects/VC2015/lcms2art.rc<br>
+lcms2art/Projects/VC2015/lcms2art.sln<br>
+lcms2art/Projects/VC2015/lcms2art_DLL/lcms2art_DLL.vcxproj<br>
+lcms2art/Projects/VC2015/lcms2art_DLL/lcms2art_DLL.vcxproj.filters<br>
+lcms2art/Projects/VC2015/lcms2art_static/lcms2art_static.vcxproj<br>
+lcms2art/Projects/VC2015/lcms2art_static/lcms2art_static.vcxproj.filters<br>
+lcms2art/Projects/VC2015/linkicc/linkicc.vcxproj<br>
+lcms2art/Projects/VC2015/linkicc/linkicc.vcxproj.filters<br>
+lcms2art/Projects/VC2015/psicc/psicc.vcxproj<br>
+lcms2art/Projects/VC2015/psicc/psicc.vcxproj.filters<br>
+lcms2art/Projects/VC2015/resource.h<br>
+lcms2art/Projects/VC2015/testbed/testbed.vcxproj<br>
+lcms2art/Projects/VC2015/testbed/testbed.vcxproj.filters<br>
+lcms2art/Projects/VC2015/tiffdiff/tiffdiff.vcxproj<br>
+lcms2art/Projects/VC2015/tiffdiff/tiffdiff.vcxproj.filters<br>
+lcms2art/Projects/VC2015/tifficc/tifficc.vcxproj<br>
+lcms2art/Projects/VC2015/tifficc/tifficc.vcxproj.filters<br>
+lcms2art/Projects/VC2015/transicc/transicc.vcxproj<br>
+lcms2art/Projects/VC2015/transicc/transicc.vcxproj.filters<br>
+lcms2art/Projects/VC2017/jpegicc/jpegicc.vcxproj<br>
+lcms2art/Projects/VC2017/jpegicc/jpegicc.vcxproj.filters<br>
+lcms2art/Projects/VC2017/lcms2art.rc<br>
+lcms2art/Projects/VC2017/lcms2art.sln<br>
+lcms2art/Projects/VC2017/lcms2art_DLL/lcms2art_DLL.vcxproj<br>
+lcms2art/Projects/VC2017/lcms2art_DLL/lcms2art_DLL.vcxproj.filters<br>
+lcms2art/Projects/VC2017/lcms2art_static/lcms2art_static.vcxproj<br>
+lcms2art/Projects/VC2017/lcms2art_static/lcms2art_static.vcxproj.filters<br>
+lcms2art/Projects/VC2017/linkicc/linkicc.vcxproj<br>
+lcms2art/Projects/VC2017/linkicc/linkicc.vcxproj.filters<br>
+lcms2art/Projects/VC2017/psicc/psicc.vcxproj<br>
+lcms2art/Projects/VC2017/psicc/psicc.vcxproj.filters<br>
+lcms2art/Projects/VC2017/resource.h<br>
+lcms2art/Projects/VC2017/testbed/testbed.vcxproj<br>
+lcms2art/Projects/VC2017/testbed/testbed.vcxproj.filters<br>
+lcms2art/Projects/VC2017/tiffdiff/tiffdiff.vcxproj<br>
+lcms2art/Projects/VC2017/tiffdiff/tiffdiff.vcxproj.filters<br>
+lcms2art/Projects/VC2017/tifficc/tifficc.vcxproj<br>
+lcms2art/Projects/VC2017/tifficc/tifficc.vcxproj.filters<br>
+lcms2art/Projects/VC2017/transicc/transicc.vcxproj<br>
+lcms2art/Projects/VC2017/transicc/transicc.vcxproj.filters<br>
+lcms2art/Projects/cppcheck/lcms2.cppcheck<br>
+lcms2art/Projects/mac/LittleCMS/._Info.plist<br>
+lcms2art/Projects/mac/LittleCMS/._LittleCMS.xcodeproj<br>
+lcms2art/Projects/mac/LittleCMS/English.lproj/InfoPlist.strings<br>
+lcms2art/Projects/mac/LittleCMS/Info.plist<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/mariama.mode1v3<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/mariama.pbxuser<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.pbxproj<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/contents.xcworkspacedata<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/UserInterfaceState.xcuserstate<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/project.xcworkspace/xcuserdata/User.xcuserdatad/WorkspaceSettings.xcsettings<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/LittleCMS.xcscheme<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/testbed.xcscheme<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS.xcodeproj/xcuserdata/User.xcuserdatad/xcschemes/xcschememanagement.plist<br>
+lcms2art/Projects/mac/LittleCMS/LittleCMS_Prefix.pch<br>
+lcms2art/Projects/mac/LittleCMS/TestBed-Info.plist<br>
+lcms2art/README.1ST<br>
+lcms2art/aclocal.m4<br>
+lcms2art/autogen.sh<br>
+lcms2art/compile<br>
+lcms2art/config.guess<br>
+lcms2art/config.sub<br>
+lcms2art/configure<br>
+lcms2art/configure.ac<br>
+lcms2art/depcomp<br>
+lcms2art/doc/LittleCMS2.9 API.pdf<br>
+lcms2art/doc/LittleCMS2.9 Plugin API.pdf<br>
+lcms2art/doc/LittleCMS2.9 tutorial.pdf<br>
+lcms2art/doc/WhyThisFork.txt<br>
+lcms2art/doc/src.zip<br>
+lcms2art/include/Makefile.am<br>
+lcms2art/include/Makefile.in<br>
+lcms2art/include/lcms2art.h<br>
+lcms2art/include/lcms2art_plugin.h<br>
+lcms2art/install-sh<br>
+lcms2art/lcms2art.pc.in<br>
+lcms2art/ltmain.sh<br>
+lcms2art/m4/acx_pthread.m4<br>
+lcms2art/m4/ax_append_compile_flags.m4<br>
+lcms2art/m4/ax_append_flag.m4<br>
+lcms2art/m4/ax_check_compile_flag.m4<br>
+lcms2art/m4/ax_gcc_func_attribute.m4<br>
+lcms2art/m4/ax_require_defined.m4<br>
+lcms2art/m4/libtool.m4<br>
+lcms2art/m4/ltoptions.m4<br>
+lcms2art/m4/ltsugar.m4<br>
+lcms2art/m4/ltversion.m4<br>
+lcms2art/m4/lt~obsolete.m4<br>
+lcms2art/missing<br>
+lcms2art/src/Makefile.am<br>
+lcms2art/src/Makefile.in<br>
+lcms2art/src/cmsalpha.c<br>
+lcms2art/src/cmscam02.c<br>
+lcms2art/src/cmscgats.c<br>
+lcms2art/src/cmscnvrt.c<br>
+lcms2art/src/cmserr.c<br>
+lcms2art/src/cmsgamma.c<br>
+lcms2art/src/cmsgmt.c<br>
+lcms2art/src/cmshalf.c<br>
+lcms2art/src/cmsintrp.c<br>
+lcms2art/src/cmsio0.c<br>
+lcms2art/src/cmsio1.c<br>
+lcms2art/src/cmslut.c<br>
+lcms2art/src/cmsmd5.c<br>
+lcms2art/src/cmsmtrx.c<br>
+lcms2art/src/cmsnamed.c<br>
+lcms2art/src/cmsopt.c<br>
+lcms2art/src/cmspack.c<br>
+lcms2art/src/cmspcs.c<br>
+lcms2art/src/cmsplugin.c<br>
+lcms2art/src/cmsps2.c<br>
+lcms2art/src/cmssamp.c<br>
+lcms2art/src/cmssm.c<br>
+lcms2art/src/cmstypes.c<br>
+lcms2art/src/cmsvirt.c<br>
+lcms2art/src/cmswtpnt.c<br>
+lcms2art/src/cmsxform.c<br>
+lcms2art/src/extra_xform.h<br>
+lcms2art/src/lcms2_internal.h<br>
+lcms2art/src/lcms2art.def<br>
+lcms2art/testbed/Makefile.am<br>
+lcms2art/testbed/Makefile.in<br>
+lcms2art/testbed/bad.icc<br>
+lcms2art/testbed/bad_mpe.icc<br>
+lcms2art/testbed/crayons.icc<br>
+lcms2art/testbed/ibm-t61.icc<br>
+lcms2art/testbed/new.icc<br>
+lcms2art/testbed/test1.icc<br>
+lcms2art/testbed/test2.icc<br>
+lcms2art/testbed/test3.icc<br>
+lcms2art/testbed/test4.icc<br>
+lcms2art/testbed/test5.icc<br>
+lcms2art/testbed/testcms2.c<br>
+lcms2art/testbed/testcms2.h<br>
+lcms2art/testbed/testplugin.c<br>
+lcms2art/testbed/testthread.cpp<br>
+lcms2art/testbed/toosmall.icc<br>
+lcms2art/testbed/zoo_icc.c<br>
+lcms2art/utils/common/utils.h<br>
+lcms2art/utils/common/vprf.c<br>
+lcms2art/utils/common/xgetopt.c<br>
+lcms2art/utils/delphi/delphidemo.dpr<br>
+lcms2art/utils/delphi/delphidemo.dproj<br>
+lcms2art/utils/delphi/delphidemo.res<br>
+lcms2art/utils/delphi/demo1.dfm<br>
+lcms2art/utils/delphi/demo1.pas<br>
+lcms2art/utils/delphi/lcms2dll.pas<br>
+lcms2art/utils/jpgicc/LICENSE_iccjpeg<br>
+lcms2art/utils/jpgicc/Makefile.am<br>
+lcms2art/utils/jpgicc/Makefile.in<br>
+lcms2art/utils/jpgicc/iccjpeg.c<br>
+lcms2art/utils/jpgicc/iccjpeg.h<br>
+lcms2art/utils/jpgicc/jpgicc.1<br>
+lcms2art/utils/jpgicc/jpgicc.c<br>
+lcms2art/utils/linkicc/Makefile.am<br>
+lcms2art/utils/linkicc/Makefile.in<br>
+lcms2art/utils/linkicc/linkicc.1<br>
+lcms2art/utils/linkicc/linkicc.c<br>
+lcms2art/utils/matlab/icctrans.c<br>
+lcms2art/utils/matlab/lcms_rsp<br>
+lcms2art/utils/psicc/Makefile.am<br>
+lcms2art/utils/psicc/Makefile.in<br>
+lcms2art/utils/psicc/psicc.1<br>
+lcms2art/utils/psicc/psicc.c<br>
+lcms2art/utils/samples/Makefile.am<br>
+lcms2art/utils/samples/Makefile.in<br>
+lcms2art/utils/samples/itufax.c<br>
+lcms2art/utils/samples/mkcmy.c<br>
+lcms2art/utils/samples/mkgrayer.c<br>
+lcms2art/utils/samples/mktiff8.c<br>
+lcms2art/utils/samples/roundtrip.c<br>
+lcms2art/utils/samples/vericc.c<br>
+lcms2art/utils/samples/wtpt.1<br>
+lcms2art/utils/samples/wtpt.c<br>
+lcms2art/utils/tificc/Makefile.am<br>
+lcms2art/utils/tificc/Makefile.in<br>
+lcms2art/utils/tificc/tifdiff.c<br>
+lcms2art/utils/tificc/tificc.1<br>
+lcms2art/utils/tificc/tificc.c<br>
+lcms2art/utils/transicc/Makefile.am<br>
+lcms2art/utils/transicc/Makefile.in<br>
+lcms2art/utils/transicc/transicc.1<br>
+lcms2art/utils/transicc/transicc.c<br>
+psi/msvc.mak<br>
+psi/os2.mak<br>
+psi/zicc.c<br>
+psi/ztrans.c<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-12 10:56:29 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b5ac1a6e73af59d5106bf68ed3ab1a456a1c26dc">b5ac1a6e73af59d5106bf68ed3ab1a456a1c26dc</a>
+<blockquote>
+<p>
+ PS interpreter - don't use findresource for Idiom Recognition in bind<br>
+<br>
+ The current implementation of idiom recognition uses findresource in<br>
+ the definition of the bind operator to check all existing IdiomSets<br>
+ for a candidate to substitute.<br>
+<br>
+ This is, in fact, wrong. The PLRM (p135 3rd Edition) states that :<br>
+<br>
+ &quot;This matching by value occurs only for IdiomSet instances that are<br>
+ defined in VM; bind does not consider instances that are in not in VM<br>
+ but only in external storage.&quot;<br>
+<br>
+ and:<br>
+<br>
+ To ensure that the instances in VM are consistent with the external<br>
+ ones, the interpreter automatically invokes findresource to load<br>
+ external IdiomSet instances into VM at the beginning of each job and at<br>
+ certain other times.&quot;<br>
+<br>
+ We were not loading the IdiomSet resources into VM, and we were searching<br>
+ external resources during bind.<br>
+<br>
+ Not only is this incorrect, but because findresource ends up calling<br>
+ filenameforall on every directory in the search path, its also very<br>
+ slow.<br>
+<br>
+ While normally we don't expect to see many occurences of bind during the<br>
+ course of a job, the customer supplied file did multiple binds on every<br>
+ page, and had &gt; 50,000 pages. This led to a fourfold decrease in<br>
+ performance compared to Acrobat Distiller.<br>
+<br>
+ Here we load the external resources into gobal VM at startup, and we<br>
+ now *only* search instances in VM. This is more correct going by the<br>
+ spec, and improves the performance by the desired factor of 4 for the<br>
+ customer. It provides a small benefit on cluster testing, which is<br>
+ expected as this only affects PostScript input.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/gs_ll3.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-11 19:58: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=338c13198e658b084bbe45930e4837c31102b61f">338c13198e658b084bbe45930e4837c31102b61f</a>
+<blockquote>
+<p>
+ ROP Fix: Fix misindexing of scolors/tcolors.<br>
+<br>
+ More evidence that this isn't used much.<br>
+<br>
+base/gsroprun8.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-11 18:34:51 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c6fda7403e881ec53f2da6bb6f97f2e647ef523c">c6fda7403e881ec53f2da6bb6f97f2e647ef523c</a>
+<blockquote>
+<p>
+ ROPs: Squash scan build warnings.<br>
+<br>
+base/gsroprun24.h<br>
+base/gsroprun8.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-10 21:27:32 +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=fc5f089b580040fb70a662e44721fe2fb457ecfa">fc5f089b580040fb70a662e44721fe2fb457ecfa</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix new_font_defaults memory leak.<br>
+<br>
+ Fix memory leak for allocation event numbers 165 - 180.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=181 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-10 21:10:43 +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=30ca563d890a503fe4411a404d09c36839120114">30ca563d890a503fe4411a404d09c36839120114</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix new_font_envir memory leak.<br>
+<br>
+ Fix memory leak for allocation event numbers 146 - 161.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=162 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-11 17:43:44 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6a706f687ae99626ef5b16b71e5df6a05c202e33">6a706f687ae99626ef5b16b71e5df6a05c202e33</a>
+<blockquote>
+<p>
+ ROP fix: Correctly set scolors/tcolors S and T data case.<br>
+<br>
+ We weren't setting S and T colors in this particular case of<br>
+ the code, which would have shown errors if we'd ever called<br>
+ it with S and T being 1 bit data arrays to choose between<br>
+ scolors[0] and [1] etc.<br>
+<br>
+ It appears that no code in our entire regression suite actually<br>
+ calls the S and D both being data case anyway, as proved by<br>
+ cluster testing this code with an &quot;abort();&quot; line inserted!<br>
+<br>
+base/gdevmr8n.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-11 17:40:41 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aa8accce0a3f3d323dc45f6bf510a3ddfa76d10d">aa8accce0a3f3d323dc45f6bf510a3ddfa76d10d</a>
+<blockquote>
+<p>
+ ROP code: Correction<br>
+<br>
+ Don't look for transparency when depth is 1 (it shouldn't be<br>
+ used anyway).<br>
+<br>
+ Correct transparency handling in 8 bit (it was using 0xffffff<br>
+ as the color to check for in this mode). Oddly this wasn't<br>
+ producing diffs, which suggests that nothing is exercising<br>
+ this code in 8 bit.<br>
+<br>
+base/gsroprun.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-10 20:52:35 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eb59c64085552ef0f98c1afdaae3c39ad4e5d421">eb59c64085552ef0f98c1afdaae3c39ad4e5d421</a>
+<blockquote>
+<p>
+ Fix stale pointer de-reference during GC due to restore.<br>
+<br>
+ If a CIEBasedDEF or DEFG colorspace was set in a save level, a restore<br>
+ would free the Table memory, but the pgs-&gt;icc_profile_cache still had<br>
+ a (stale) pointer to that area. Fix by copying the Table to memory that<br>
+ is not subject to save/restore (stable_memory). Rely on the GC to free<br>
+ up the previous table data since we have no idea what allocator was<br>
+ used for it (from PostScript it would be local or global VM). Seen with:<br>
+ -Z:?@$ -r300 -sDEVICE=psdcmyk -o x.psd tests_private/comparefiles/Bug688308.ps<br>
+<br>
+psi/zcie.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-11 12:03:30 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9b3b93ca92f8b9370d4cb5a4e6176df1a06afeda">9b3b93ca92f8b9370d4cb5a4e6176df1a06afeda</a>
+<blockquote>
+<p>
+ ROP optimisation: Map more rops onto one another.<br>
+<br>
+ Establish an ordering on rops (&quot;unused&quot; &lt; &quot;constant&quot; &lt;<br>
+ &quot;bitmap&quot; &lt; &quot;1 bit bitmap&quot;) and swap orders such that S<br>
+ is always &gt;= T.<br>
+<br>
+ This cuts the number of cases down a bit more.<br>
+<br>
+base/gsroprun.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-02 08:48:33 +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=c56dff6dea636c89b7c24bbec7b28f15171d7810">c56dff6dea636c89b7c24bbec7b28f15171d7810</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix pjl_envir memory leak.<br>
+<br>
+ Fix memory leak for allocation event numbers 89 - 143.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=144 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-31 14:57:30 +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=411530608129ad6dd2078557a7f3d0a3425a9db8">411530608129ad6dd2078557a7f3d0a3425a9db8</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix new_pjl_defaults memory leak.<br>
+<br>
+ Fix memory leak for allocation event numbers 32 - 89.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=90 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-10 17:15: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=623d2ceee814622b5a75e13120165d8a2f4a2d35">623d2ceee814622b5a75e13120165d8a2f4a2d35</a>
+<blockquote>
+<p>
+ ROP transparency optimisation.<br>
+<br>
+ If a transparent ROP uses a constant input that is<br>
+ transparent, then it's a NOP.<br>
+<br>
+base/gsroprun.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-08 19:10: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=151cb32d94b5790fae44f48763e19c519ac742cb">151cb32d94b5790fae44f48763e19c519ac742cb</a>
+<blockquote>
+<p>
+ Miscellaneous fixes to roprun code.<br>
+<br>
+ Fold some more rops down to simpler ones.<br>
+<br>
+ Remove some functions that are no longer required. Allow<br>
+ for NOP ROPs to short circuit all the work.<br>
+<br>
+ Also, fix what looks like a problem in the setup for 1bit ROPs.<br>
+ (Doesn't actually seem to have caused a problem but the new<br>
+ code is more readable).<br>
+<br>
+ Avoid intermixing rop_operand * and gx_color_index *'s.<br>
+<br>
+base/gdevm1.c<br>
+base/gdevmr8n.c<br>
+base/gsroprun.c<br>
+base/gsroprun24.h<br>
+base/gsroprun8.h<br>
+base/gsropt.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-09 16:38: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=3927036c14c12857be7dbf98dc777631a365977e">3927036c14c12857be7dbf98dc777631a365977e</a>
+<blockquote>
+<p>
+ Fix problem with bitrgbtags and ROPs.<br>
+<br>
+ With bitrgbtags, we can get called to do 24 bit rop operations<br>
+ with transparency, with colors like 0x01ffffff.<br>
+<br>
+ The transparency rop code is supposed to spot 0xffffff as meaning<br>
+ &quot;be transparent&quot;, but the tag in the top byte confuses it.<br>
+<br>
+ Accordingly, mask off stray bits in the colors before using them.<br>
+<br>
+ The same potentially happens for an 8 bit + tags device so we cope<br>
+ with that too.<br>
+<br>
+base/gdevmr8n.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-09 07:19:35 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a8612bfd86f7753fceb738364b2808a4ad9d3bdf">a8612bfd86f7753fceb738364b2808a4ad9d3bdf</a>
+<blockquote>
+<p>
+ Fix SEGV DEBUG build with -ZA (tests_private/comparefiles/Bug688308.ps)<br>
+<br>
+base/gsalloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-08 12:04:57 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9b38e9780bf5cbb9dbf41131efa80887826c59b4">9b38e9780bf5cbb9dbf41131efa80887826c59b4</a>
+<blockquote>
+<p>
+ Enable the use of the RUN_ROP code.<br>
+<br>
+ I thought this had been done years ago :(<br>
+<br>
+ Fix a typo that was causing cluster differences, squash some<br>
+ warnings, and fix the scolors/tcolors cases to index as<br>
+ gx_color_index *'s rather than byte *'s.<br>
+<br>
+ Presumably these are the reasons this didn't get enabled before.<br>
+ Cluster shows no differences now.<br>
+<br>
+ Tests with running 600dpi grashopp.pcl to ppm show this saves<br>
+ ~5.5%.<br>
+<br>
+base/gdevmr8n.c<br>
+base/gsroprun.c<br>
+base/gsroprun24.h<br>
+base/gsropt.h<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-11 19:11:04 +0100
+</strong>
+<br>David Kaspar [Dee'Kej] &lt;dkaspar@redhat.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=731559c56907f223c9f0763d512fae7e4d13e1a0">731559c56907f223c9f0763d512fae7e4d13e1a0</a>
+<blockquote>
+<p>
+ Bug 698814: use --docdir= configure parameter<br>
+<br>
+ Previously, the Ghostscript was using custom path to the documentation<br>
+ (as docdir=$(gsdatadir)/doc). This was causing that value of --docdir=<br>
+ parameter of ./configure was accepted, but not used at all.<br>
+<br>
+ This commit fixes this issue, by using docdir=@docdir@@VERSIONED_PATH@<br>
+ instead. However, as a side effect this results in default path for<br>
+ documentation to changed to this (with --prefix=/usr):<br>
+<br>
+ /usr/share/doc/ghostscript/&lt;version&gt;/<br>
+<br>
+ To stay backward compatible, a symlink is automatically created to<br>
+ point from the old location (/usr/share/ghostscript/&lt;version&gt;/doc) to<br>
+ the new location.<br>
+<br>
+ NOTE: Trying to fix this issue with the location of documentation<br>
+ staying as it was would require some hacking inside the Autoconf<br>
+ itself, which is not desirable.<br>
+<br>
+Makefile.in<br>
+base/unixinst.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-11 17:27:39 +0100
+</strong>
+<br>David Kaspar [Dee'Kej] &lt;dkaspar@redhat.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0da8eed54f24cf3dcb5f950c742a8072b7c7e01a">0da8eed54f24cf3dcb5f950c742a8072b7c7e01a</a>
+<blockquote>
+<p>
+ Bug 698813: do not install examples/ by default anymore<br>
+<br>
+ Those files in the examples/ folder are for testing purposes,<br>
+ and not really good examples for people trying to learn PostScript.<br>
+<br>
+ However, we are keeping the 'make install-examples' target for people<br>
+ who still wishes to use those files for some reason.<br>
+<br>
+base/unixinst.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-29 16:42:45 +0100
+</strong>
+<br>David Kaspar [Dee'Kej] &lt;dkaspar@redhat.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eb3f2ab6f3c5c1d113a8314c0251ca1e50b1196b">eb3f2ab6f3c5c1d113a8314c0251ca1e50b1196b</a>
+<blockquote>
+<p>
+ Bug 698795: --without-versioned-path option introduced<br>
+<br>
+ Using this option will result in Ghostscript being installed into a<br>
+ paths which do not contain its version in them, which can be useful<br>
+ on some distributions.<br>
+<br>
+ As a result of using this option, the Ghostscript's search path will<br>
+ be updated as well, to include correct files locations.<br>
+<br>
+ This option is disabled by default, and configure's help page states<br>
+ that using this option is dangerous, risky and unsupported.<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-06 18:27: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=3c120a33a91c9251c9a9e409680e92d9625a92da">3c120a33a91c9251c9a9e409680e92d9625a92da</a>
+<blockquote>
+<p>
+ Back out stray change in last commit.<br>
+<br>
+windows/GhostPDL.sln<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-05 17:04:59 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=47d4d0779563983ab79362acbf3522758ce7a09c">47d4d0779563983ab79362acbf3522758ce7a09c</a>
+<blockquote>
+<p>
+ Optimise some image_render_mono cases.<br>
+<br>
+ Split a case within image_render_mono into separate portrait<br>
+ and landscape cases. Use fill rectangle rather than fill_trap<br>
+ to save time, and avoid halftoning where possible.<br>
+<br>
+ This saves us about 15% runtime in 1000pages.pcl.<br>
+<br>
+base/gximono.c<br>
+windows/GhostPDL.sln<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-04 17:53:56 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d356025602f3f9f9a1e656bd14430cd95c059548">d356025602f3f9f9a1e656bd14430cd95c059548</a>
+<blockquote>
+<p>
+ Tiny additional tweaks to compose groups.<br>
+<br>
+ Measurable differences, but only just.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-01-04 15:56:55 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=75f389e6b8a2f2bf15ab3044ae4e1ef185061e8d">75f389e6b8a2f2bf15ab3044ae4e1ef185061e8d</a>
+<blockquote>
+<p>
+ pdf14 compose group (masked group) optimisation.<br>
+<br>
+ The common case is for the mask (if there is one) to entirely<br>
+ cover the group we are masking. We can avoid needless<br>
+ checking in this case.<br>
+<br>
+ This is the case the apple airprint performance test file<br>
+ hits and saves &gt; 4% pam, 5% ppm, and 9% pgm.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-29 17:43: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=193e3b87bc711d30be0c2c41f6b3e61f49c92b22">193e3b87bc711d30be0c2c41f6b3e61f49c92b22</a>
+<blockquote>
+<p>
+ Fix problem with parsing non 8 bit arguments.<br>
+<br>
+ A problem was reported on IRC, pointing out that we fail to<br>
+ correctly parse single char switches when we are using<br>
+ GS_ARG_ENCODING_UTF16LE.<br>
+<br>
+ This is because arg_next was failing to convert non-indirected<br>
+ arguments correctly.<br>
+<br>
+ Fixed here.<br>
+<br>
+base/gsargs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-29 13:17:49 +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=5907bf4f455cca68cbb405116e3c98d14a5a59d6">5907bf4f455cca68cbb405116e3c98d14a5a59d6</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix pjl_state line buffer memory leak.<br>
+<br>
+ Fix memory leak for allocation event number 30.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=31 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-29 14:37:20 +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=9ba8351735da67a3064710136499340810c120c1">9ba8351735da67a3064710136499340810c120c1</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix pl_main_languages_init interp memory leak.<br>
+<br>
+ Fix memory leak for allocation event number 28, the interp_client_data is<br>
+ not set so this memory will not be recovered via the normal route of<br>
+ pl_deallocate_interp_instance.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=29 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-29 15:34:32 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2b940da204752545813c475488a0a7afd7b55fc7">2b940da204752545813c475488a0a7afd7b55fc7</a>
+<blockquote>
+<p>
+ Fix LCMS2 optimisation bug<br>
+<br>
+ Found this while importing the optimisations here into the MuPDF<br>
+ version of LCMS. When copying for identity transformations,<br>
+ allow for extra bytes too.<br>
+<br>
+ GS clearly doesn't exercise this routine in this way.<br>
+<br>
+lcms2/src/cmsxform.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-23 10:50:11 +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=906314509273578d4fb5382a8d922ccb2b7adb10">906314509273578d4fb5382a8d922ccb2b7adb10</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix gs_fapi_init memory leak.<br>
+<br>
+ Fix memory leak for allocation event number 13.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=14 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-13 17:28:11 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9a089895193d71ad6ad70a91cbf9fe02a121261c">9a089895193d71ad6ad70a91cbf9fe02a121261c</a>
+<blockquote>
+<p>
+ Introduce ColorAccuracy setting<br>
+<br>
+ Set the level of accuracy that should be used. A setting of 0 will result in less accurate<br>
+ color rendering compared to a setting of 2. However, the creation of a transformation<br>
+ will be faster at a setting of 0 compared to a setting of 2. Default setting is 2.<br>
+<br>
+base/gsdparam.c<br>
+base/gsicc_cms.h<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_manage.c<br>
+base/gsicc_manage.h<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-28 13:56:37 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4fb32aef42d267948d97243e7f5512a2b37431b0">4fb32aef42d267948d97243e7f5512a2b37431b0</a>
+<blockquote>
+<p>
+ XPS interpreter - when discarding an ICC profile for an image, NULL hte pointer<br>
+<br>
+ Possibly Bug #698834 &quot; xps dump&quot;<br>
+<br>
+ Its not at all clear what the bug reporter sees as a problem, but when<br>
+ I run the file to the display the XPS interpreter warns that it is<br>
+ discarding an ICC profile because it has the wrong number of<br>
+ components (profile has 4 in, 3 out components, image claims to be<br>
+ RGB).<br>
+<br>
+ This counts the profile reference down by 1 but doesn't set the pointer<br>
+ to the profile, saved in the image structure, to NULL leading to us<br>
+ trying to free a garbage pointer later.<br>
+<br>
+ Setting the pointer to NULL solves the problem, and may fix the bug<br>
+ report, if that's what the reporter is complaining about.<br>
+<br>
+xps/xpsimage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-21 19:41:20 +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=32cc4f267175dcc7a0dac0219e8e042ec9918cd9">32cc4f267175dcc7a0dac0219e8e042ec9918cd9</a>
+<blockquote>
+<p>
+ Bug 697545 : Fix main instance memory leak.<br>
+<br>
+ Fix memory leak for allocation event number 12.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=13 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-20 14:20:13 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3b24fd02b2bbeaef3d2e0374023fa330a9cddeac">3b24fd02b2bbeaef3d2e0374023fa330a9cddeac</a>
+<blockquote>
+<p>
+ Add 'gs_restrict' to function prototypes to match functions<br>
+<br>
+ Also add gs_restrict to some functions, because they are assigned to<br>
+ function pointers that expect gs_restrict pointers.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-19 16:15: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=ac7e8dfb78a2b3ae2875f64e6feb6f4dce5300b4">ac7e8dfb78a2b3ae2875f64e6feb6f4dce5300b4</a>
+<blockquote>
+<p>
+ More tweaking to pdf14_fill_rect cases.<br>
+<br>
+ Ensure that the gray/rgb/cmyk cases for AirPrint all go through<br>
+ routines that have been hand tweaked.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-19 18:22: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=f00a08ec0a7f2fedbc2a7d14c603ec22758ed81c">f00a08ec0a7f2fedbc2a7d14c603ec22758ed81c</a>
+<blockquote>
+<p>
+ Avoid shadowing a variable in mark_fill_rect_add3_common.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-19 15:21: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=28c4beb74e779da37c4e7aa7f149750a98c09a73">28c4beb74e779da37c4e7aa7f149750a98c09a73</a>
+<blockquote>
+<p>
+ Remove obsolete font files:<br>
+<br>
+ NimbusSans-BoldOblique (replaced with NimbusSans-BoldItalic)<br>
+ NimbusSans-Oblique (replaced with NimbusSans-Italic)<br>
+<br>
+Resource/Font/NimbusSans-BoldOblique<br>
+Resource/Font/NimbusSans-Oblique<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-19 13:23:42 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9d1e45d36064249220ca2f51280770aaaab3a971">9d1e45d36064249220ca2f51280770aaaab3a971</a>
+<blockquote>
+<p>
+ Common up optimised cases of group blending.<br>
+<br>
+ Additive and Subtractive make no difference (modulo rounding) when<br>
+ dealing with normal mode blends. As such we can halve the number<br>
+ of optimised routines required.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-19 10:16:16 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1143a7aba79e6316ccfb5fc2b0943dcd7a64a48f">1143a7aba79e6316ccfb5fc2b0943dcd7a64a48f</a>
+<blockquote>
+<p>
+ pdfwrite - drop unusable Matte from SMask when doing colour conversion<br>
+<br>
+ Bug #698817 &quot;ColorConversionStrategy=Gray breaks image with smask&quot;<br>
+<br>
+ SMask images can have a Matte entry which is a preblended colour. It<br>
+ must have the same number of components as the parent image. If we are<br>
+ doing colour conversion then we can't unconditionally use the existing<br>
+ Matte value, as it may have the wrong number of components for the<br>
+ converted image.<br>
+<br>
+ In fact Matte values are optional and rare. Even rarer are Matte entires<br>
+ which have any actual effect. We can't use the value (unless the parent<br>
+ image was already in the target colour space, and we can't realistically<br>
+ convert the Matte to another space.<br>
+<br>
+ So here we test the color conversion strategy, if the image colour space<br>
+ is not the same as the target, then we simply discard the Matte entry.<br>
+ This isn't 'correct', but then nothing will be, and this stops Acrobat<br>
+ from whinging and refusing to render the image at all.<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-19 09:05:22 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e77c8f647fecaa1a31116fbcd59ad26fb650905">6e77c8f647fecaa1a31116fbcd59ad26fb650905</a>
+<blockquote>
+<p>
+ pdfimage - eliminate a compiler warning<br>
+<br>
+ Check a return code to eliminate a compiler warning.<br>
+<br>
+devices/gdevpdfimg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-18 20:59: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=fbf0e1c9f7014b602f9dd94e8fac37b21dffc798">fbf0e1c9f7014b602f9dd94e8fac37b21dffc798</a>
+<blockquote>
+<p>
+ Add CMYK optimised core to image rendering.<br>
+<br>
+ Add irii_inner_32bpp_4spp_1abs to go along with others. This one<br>
+ is hit in the AirPrint test file when going to CMYK.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-13 15:37:53 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f34cae2ebb2c85c13787fd828eb6194e32cb19d2">f34cae2ebb2c85c13787fd828eb6194e32cb19d2</a>
+<blockquote>
+<p>
+ Optimise image_render_interpolate_icc.<br>
+<br>
+ Split out the core of the routine into a function call. The<br>
+ guts of the original routine go into irii_inner_template,<br>
+ which can be static instantiated as required.<br>
+<br>
+ I had hoped that merely instantiating this 3 times would be<br>
+ enough to optimise the routines, but in the end I had to<br>
+ manually cut the core down for the 2 cases that the AirPrint<br>
+ test file hits.<br>
+<br>
+base/gxiscale.c<br>
+windows/GhostPDL.sln<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-18 16:38: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=9fb23615725e8a2d6a722814a348094a48a41c36">9fb23615725e8a2d6a722814a348094a48a41c36</a>
+<blockquote>
+<p>
+ pdfimage - support the '%d' output format specifier<br>
+<br>
+ It hadn't occurred to me that anyone would want to do this, so I hadn't<br>
+ implemented it. On reflection its probably useful, and it should<br>
+ (finally) solve the all devices regression report problem.<br>
+<br>
+ At the same time, add the file to the Windows solution so that we get<br>
+ debug information in it.<br>
+<br>
+devices/gdevpdfimg.c<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-18 15:09: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=561327c559cd8fa6cb5840a80806cff38ef9aa0b">561327c559cd8fa6cb5840a80806cff38ef9aa0b</a>
+<blockquote>
+<p>
+ Manual optimisation of AirPrint hotspot.<br>
+<br>
+ compose_group_nonknockout_nonblend_add_isolated_mask_common_solid<br>
+ takes a significant amount of time in the AirPrint test file.<br>
+ Unroll it manually and optimise to avoid needless planar -&gt; chunky<br>
+ -&gt; planar copying.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-18 11:27:32 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=51f279ece4f34c17119a543725c5aee3ca4f8d1d">51f279ece4f34c17119a543725c5aee3ca4f8d1d</a>
+<blockquote>
+<p>
+ Fix pattern code for devices handling patterns by subclassing new device<br>
+<br>
+ The pattern code permits for us to use an 'internal' accumulator or for<br>
+ a device to declare it can handle patterns itself. When a device handles<br>
+ patterns we pass spec_ops to the device to delineate the pattern<br>
+ operations.<br>
+<br>
+ It can happen that when the pattern terminates we (g)restore back to a<br>
+ point before the internal pattern accumulator device was pushed into<br>
+ the graphics state. To handle that possibility we push a pointer to the<br>
+ device onto the exec stack and use that stored pointer to tell the<br>
+ pattern accumulator device when the pattern terminates, even if it is<br>
+ no longer the current device at that time.<br>
+<br>
+ Unfortunately this conflicts with the ability for other devices to<br>
+ handle patterns. The code uses that same stored device pointer to<br>
+ indicate whether we are using the internal accumulator or not. If the<br>
+ stored pointer is NULL then we are not using the internal accumulator.<br>
+<br>
+ But this assumed that, if we aren't using the internal accumulator, that<br>
+ the current device is the one which declared it could handle the pattern.<br>
+ This is dangerous anyway, because there's not restriction on how fat<br>
+ back we might have restored, and its possible (if unlikely) that the<br>
+ device now in the graphics state isn't the one that can handle<br>
+ patterns. In addition, if the underlying device handles patterns by<br>
+ subclassing itself with a new pattern handling device, then when we<br>
+ restore back, even though the device is the one which stated it could<br>
+ handle patterns, its not the one we want to inform of the pattern<br>
+ termination.<br>
+<br>
+ We handle this simply by getting the current device after the 'start'<br>
+ notification. I think its reasonable to assume that the device now in<br>
+ place is the one which expects to receive the 'close' message. We<br>
+ then store that device on the exec stack. When we get to the cleanup<br>
+ routine, if we decide we are not using the internal accumulator, then<br>
+ we call the new stored device to handle it.<br>
+<br>
+ I think ideally we should store a flag for whether we are using the<br>
+ internal accumulator, but it wouldn't be any more efficient.<br>
+<br>
+psi/zpcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-18 09:11:05 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15d80a143b71b9b61d007e2abb67a74a5f753cea">15d80a143b71b9b61d007e2abb67a74a5f753cea</a>
+<blockquote>
+<p>
+ pdfimage - change the way files are closed<br>
+<br>
+ The 'all devices' regression test persists in throwing errors and<br>
+ seg faulting with these devices when closing. I can't reproduce the<br>
+ problem on Linux.<br>
+<br>
+ So instead of preventing the gdevprn code from closing the file, prevent<br>
+ the stream code from closing the file instead, and allow the gdevprn<br>
+ code to perform normally.<br>
+<br>
+ Hopefully this will solve the problem.....<br>
+<br>
+devices/gdevpdfimg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-18 09:08: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=9de2f57c80bc9e6a25e3fd570a5c1df3321404eb">9de2f57c80bc9e6a25e3fd570a5c1df3321404eb</a>
+<blockquote>
+<p>
+ Check for the existence of _MSV_VER before testing its value<br>
+<br>
+ On Linux _MSC_VER is not defined, and so leads to a warning everywhere<br>
+ that stdpre.h is included.<br>
+<br>
+ This just eliminates the warning.<br>
+<br>
+base/stdpre.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-16 11:01:40 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8af42f2da3425a634ec78d8a0add1658778e2226">8af42f2da3425a634ec78d8a0add1658778e2226</a>
+<blockquote>
+<p>
+ Define gs_restrict as a synonym for the compiler 'restrict' definition<br>
+<br>
+ Using the 'restrict' tag tells the compiler that it can safely assume<br>
+ no aliasing of pointers is involved, allowing for even higher levels<br>
+ of optimisation. However since this is a non-standard extension<br>
+ (though widely supported) the exact definition varies.<br>
+<br>
+ We know of 'restrict', '__restrict', '__restrict__' and 'cdecl(restrict)'<br>
+<br>
+ The Visual Studio cdecl causes problems with us simply using 'restrict'<br>
+ and #defining it in stdpre.h because stdlib.h includes the cdecl. If<br>
+ we include stdpre.h before stdlib.h then the compiler tries to expand<br>
+ 'cdecl(resgister)' to 'cdecl(__register)' and that fails.<br>
+<br>
+ The only way to accommodate all the various options is to use something<br>
+ other than the 'restrict' keyword, and to #define that as required for<br>
+ the different compilers.<br>
+<br>
+ This commit introduces the 'gs_restrict' keyword and that is #defined<br>
+ in stdpre.h to be appropriate for whatever compiler is in use (the<br>
+ default is to define it to nothing). This means that wherever we want<br>
+ to use the restrict capability, we must include stdpre.h.<br>
+<br>
+base/claptrap-planar.c<br>
+base/claptrap.c<br>
+base/claptrap.h<br>
+base/ets.c<br>
+base/ets.h<br>
+base/gxblend.c<br>
+base/gxblend1.c<br>
+base/gxscanc.c<br>
+base/gxscanc.h<br>
+base/siscale.c<br>
+base/stdpre.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-15 21:01:31 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b35aa4c4e4a8e77395b45051ca2621e6823c5623">b35aa4c4e4a8e77395b45051ca2621e6823c5623</a>
+<blockquote>
+<p>
+ Add optimised LCMS transform operations.<br>
+<br>
+ Add a full set of optimised functions for {1,3,4} -&gt; {1,3,4}<br>
+ channels in either 1 or 2 byte form. This should cover all<br>
+ the cases we'll hit in gs until we start using spots.<br>
+<br>
+lcms2/src/cmsxform.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-16 16:10:48 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e8e7034a9714191315313daa4a45ce626a9f6cf7">e8e7034a9714191315313daa4a45ce626a9f6cf7</a>
+<blockquote>
+<p>
+ Fix bug 698816: Performance with transparency due to commit 3a9d6eb<br>
+<br>
+ Tracked this down to the push_transparency_group logic not skipping the<br>
+ allocation of the buffer when &quot;idle&quot; was set. This reduced 32-bit Windows<br>
+ 9.22 from 45.9 seconds to 19.9 seconds.<br>
+<br>
+ Even more good news, HEAD (SHA 3f9c130f 32-bit Windows) from 37.5 seconds to<br>
+ 11.9 seconds.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-15 19:07: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=3f9c130f778167b2f0486bef1c3a2d027433ec57">3f9c130f778167b2f0486bef1c3a2d027433ec57</a>
+<blockquote>
+<p>
+ Optimise pdf14_fill_rectangle for CMYK<br>
+<br>
+ Add optimised CMYK case.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-15 11:50:32 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0333c58af9a48a14a0e9323732332104e577dc85">0333c58af9a48a14a0e9323732332104e577dc85</a>
+<blockquote>
+<p>
+ Optimise pdf14_fill_rectangle.<br>
+<br>
+ Optimisations for the common case as seen in Airprint<br>
+ test file.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-15 09:54:15 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9b35281f914bb77f5e68070fb6ce4e32e955dcc8">9b35281f914bb77f5e68070fb6ce4e32e955dcc8</a>
+<blockquote>
+<p>
+ Add new optimised case for pdf14_fill_rect<br>
+<br>
+ mark_fill_rect_additive_nospots_common_no_alpha_g.<br>
+<br>
+ For the Airprint test case.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-14 20:06: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=3dfca86e11ea2143525758325ea0feff06e42a52">3dfca86e11ea2143525758325ea0feff06e42a52</a>
+<blockquote>
+<p>
+ Further optimisations to image_render_color_icc.<br>
+<br>
+ Split it into 3 routines; portrait, landscape and skew.<br>
+<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-14 18:42:14 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0ebcde1ce879cf74fb9d8b53670478d5d03717b">e0ebcde1ce879cf74fb9d8b53670478d5d03717b</a>
+<blockquote>
+<p>
+ Optimise image_render_color_icc.<br>
+<br>
+ Avoid using the color_samples hack, as this merely results in us<br>
+ first copying bytes into a new buffer, only to effectively<br>
+ memcmp it. Just use the bytes directly.<br>
+<br>
+ We lose potential problems with strict aliasing here, and gain<br>
+ the benefit of only having to check n bytes rather than<br>
+ GS_IMAGE_MAX_COLOR_COMPONENTS bytes each time.<br>
+<br>
+ This gives us a noticable speedup on the Airprint test file.<br>
+<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-15 15:08:40 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2655f09c04ee2678df98c58764390e9e79bfc254">2655f09c04ee2678df98c58764390e9e79bfc254</a>
+<blockquote>
+<p>
+ PCLm fixes<br>
+<br>
+ rename the device to 'pclm' because none of our devices use capital<br>
+ letters.<br>
+<br>
+ Mirror the fix for sclose in the PCLm device (didn't realise this was<br>
+ a separate function to the pdfimage devices)<br>
+<br>
+ remove the unused writehex function<br>
+<br>
+devices/gdevpdfimg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-15 13:06:47 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3cdca3a2c6cfe74a62797d486ce6c69afd9eacd0">3cdca3a2c6cfe74a62797d486ce6c69afd9eacd0</a>
+<blockquote>
+<p>
+ pdfimage devices - remove UUID code<br>
+<br>
+ The uuid was a holdover from an early incarnation of the code, it<br>
+ was dropped later but the code lingered....<br>
+<br>
+devices/gdevpdfimg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-15 11:21: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=44d4d979c25eaea76c2d08aceec058f92ee3ed83">44d4d979c25eaea76c2d08aceec058f92ee3ed83</a>
+<blockquote>
+<p>
+ Make pdfimage devices work on Linux<br>
+<br>
+ Because the devices usurp the FILE * created by the gdevprn code and<br>
+ turn it into a stream, we must set the stored pointer to NULL after<br>
+ closing or freeing the stream in order to avoid gdev_prn_close()<br>
+ attempting to close the underlying file again, which causes an error<br>
+ on Linux.<br>
+<br>
+ Also remove some routines we no longer use.<br>
+<br>
+devices/gdevpdfimg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-13 14:19: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=86322b1ccb1e67cf99672945f1d77925b2902872">86322b1ccb1e67cf99672945f1d77925b2902872</a>
+<blockquote>
+<p>
+ Tweak gx_build_blended_image_row.<br>
+<br>
+ Move from an array index based scheme to a pointer arithmetic<br>
+ based scheme. Saves us lots of multiplications per pixel.<br>
+<br>
+ This may not make much difference on x86, but on ARM, where<br>
+ pointer arithmetic is largely free, this should help more.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-14 15: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=899255deef5a92bf36269d0ef3fa355401fe170f">899255deef5a92bf36269d0ef3fa355401fe170f</a>
+<blockquote>
+<p>
+ Further optimisations to bitmap scaler.<br>
+<br>
+ Use hand unrolled loops rather than static inline optimised ones.<br>
+ Fix some debugging. Add CMYK case. Add some restricts. Make the<br>
+ zoom_y case explicit in it's reuse of values.<br>
+<br>
+base/siscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-14 12:45: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=16eb526bc113a9c783f824ea6940857e302acc3d">16eb526bc113a9c783f824ea6940857e302acc3d</a>
+<blockquote>
+<p>
+ Add restrict qualifier to stdpre.h header.<br>
+<br>
+ Sprinkle it through the blending code. This should never hurt<br>
+ and may well help. We should be using it as a matter of course,<br>
+ especially in performance critical routines.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/stdpre.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-14 12:00: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=34286be72308b7cba275bbf423e589997e9e683e">34286be72308b7cba275bbf423e589997e9e683e</a>
+<blockquote>
+<p>
+ Fix compiler warnings after pdfimage device commit<br>
+<br>
+devices/devs.mak<br>
+devices/gdevpdfimg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-02 08:24:59 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7a13371ec8dc077c4a3b28f6935206fe06fc534e">7a13371ec8dc077c4a3b28f6935206fe06fc534e</a>
+<blockquote>
+<p>
+ New devices - pdfimage and PCLm<br>
+<br>
+ These devices render input to a bitmap (or in the case of PCLm<br>
+ multiple bitmaps) then wraps the bitmap(s) up as the content of<br>
+ a PDF file. For PCLm there are some additional rules regarding<br>
+ headers, extra content and the order in which the content is<br>
+ written in the PDF file.<br>
+<br>
+ The aim is to support the PCLm mobile printing standard, and<br>
+ to permit production of PDF files from input where the graphics<br>
+ model differs significantly from PDF (eg PCL and RasterOPs).<br>
+<br>
+ Devices are named pdfimage8, pdfimage24, pdfimage32 and PCLm.<br>
+<br>
+ Currently produce valid PDF files with a colour depth of 8 (Gray),<br>
+ 24 (RGB) or 32 (CMYK), the PCLm device only supports 24-bit RGB.<br>
+<br>
+ Devices supports the DownScaleFactor switch to implement<br>
+ page level anti-aliasing<br>
+<br>
+ -sCompression can be set to None, LZW, Flate, JPEG or RLE (LZW<br>
+ is not supported on PCLm, None is only available on PCLm for<br>
+ debugging purposes).<br>
+<br>
+ The PCLm device supports -dStripHeight to set the vertical height<br>
+ of the strips of image content, as required by the specification.<br>
+<br>
+ For JPEG compression the devices support both the JPEGQ and<br>
+ QFactor controls, exactly as per the jpeg and jpeggray devices.<br>
+<br>
+base/unixansi.mak<br>
+configure.ac<br>
+devices/devs.mak<br>
+devices/gdevpdfimg.c<br>
+devices/vector/gdevpdfe.c<br>
+doc/Devices.htm<br>
+psi/msvc.mak<br>
+psi/os2.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-13 17:55:16 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=099ba1f50e2af5d43a9f007575e78e3605d008be">099ba1f50e2af5d43a9f007575e78e3605d008be</a>
+<blockquote>
+<p>
+ LCMS2 tweak: Spot identity transformations<br>
+<br>
+ Spot identity transformations and handle them as efficiently as<br>
+ possible. (i.e. avoid unpack/null transform/repack).<br>
+<br>
+lcms2/src/cmsopt.c<br>
+lcms2/src/cmsxform.c<br>
+lcms2/src/lcms2_internal.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-13 09:25:09 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92f0c389ebddf4125dc770f71f4d74187275fd7f">92f0c389ebddf4125dc770f71f4d74187275fd7f</a>
+<blockquote>
+<p>
+ Add 2 more optimised blend cases for Airprint test case.<br>
+<br>
+ The Airprint Presentation test file hits the<br>
+ compose_group_nonknockout_nonblend_add_isolated_mask_common case<br>
+ hardest. Add 2 more specialisations of this that cope with<br>
+ shape = 255 and alpha == shape == 255.<br>
+<br>
+ This saves us just over half a second (of 13.2) on my desktop PC.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-11 19:52:43 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b5189a84ddf0ca1454b10bb4a9926cd4f8c4f0eb">b5189a84ddf0ca1454b10bb4a9926cd4f8c4f0eb</a>
+<blockquote>
+<p>
+ Add PWGDecode filter.<br>
+<br>
+ And lib/viewpwg.ps to use it.<br>
+<br>
+Makefile.in<br>
+base/lib.mak<br>
+base/spwgd.c<br>
+base/spwgx.h<br>
+base/unix-gcc.mak<br>
+lib/viewpwg.ps<br>
+psi/int.mak<br>
+psi/msvc.mak<br>
+psi/zfilter.c<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-12 17:57: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=0bdb35346b5a9636bc6c1ca629401ba21232d9bb">0bdb35346b5a9636bc6c1ca629401ba21232d9bb</a>
+<blockquote>
+<p>
+ Bug 698808: Fix stack overflow in new scan converter.<br>
+<br>
+ Remove some code to split lines. This is no longer needed<br>
+ due to the fix for bug 698805, and avoids us getting into the<br>
+ stack overflow situation.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-12 01:37:14 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2eb66278cb71b4f97b09300d7c405b8228ebeaf6">2eb66278cb71b4f97b09300d7c405b8228ebeaf6</a>
+<blockquote>
+<p>
+ Segv fix for XPS files with trans out to sep device<br>
+<br>
+ When going out to a separation device, PCL and XPS should set<br>
+ PageSpotColors to 0. For PCL this lets the sep device know<br>
+ that there are not any spot colors on the page.<br>
+<br>
+ For XPS the situation is a bit more complex. XPS files with named colors<br>
+ are very rare. I have never seen one in the wild. Supporting<br>
+ the separation of them will require work in the XPS interpreter<br>
+ to keep track of the colorants (the names of which are in the colorant<br>
+ tags of the ICC profile) and make sure that the values are properly<br>
+ mapped to the colorant positions on the output device. We will also<br>
+ want to do a pre-parser to count the number of independent colorants<br>
+ on the page to ensure proper set up of the device. This is needed<br>
+ especially if the page has transparency as the pdf14 device expects to<br>
+ have this information. Again running into them in the wild is not going to<br>
+ occur. If for some reason it does become an issue in the future,<br>
+ we can invest the time in doing the above. In the meantime if they<br>
+ are encountered they will be remapped to equivalent CMYK colors instead<br>
+ of causing a segv.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-12 18:31: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=ac1fb2a0580fac884cbf8e07aba4834498a5927a">ac1fb2a0580fac884cbf8e07aba4834498a5927a</a>
+<blockquote>
+<p>
+ Fix typo in bug fix for 698805.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-12 09:19: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=0aa901ed39ae5c2a8fbf1107dbbd7d3813cab2ee">0aa901ed39ae5c2a8fbf1107dbbd7d3813cab2ee</a>
+<blockquote>
+<p>
+ Check for gdevcups.c before including the cups device<br>
+<br>
+ Previously, we were checking for the cups directory, which won't work reliably<br>
+ if the build machine also has the cups libraries installed.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-12 16:58: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=ed2c6957a2ed53aac51e0b7d4209e62f096b8d73">ed2c6957a2ed53aac51e0b7d4209e62f096b8d73</a>
+<blockquote>
+<p>
+ Bug 698805: Fix NULL pointer dereference in new scan converter.<br>
+<br>
+ Again caused by an integer overflow.<br>
+<br>
+ signed sy, ey can differ by more than 0x80000000, which means<br>
+ when we subtract them, we can end up with a result with a different<br>
+ sign.<br>
+<br>
+ Fix by using a safer test.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-01 14:43: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=ac241e31c931858e562dc0a4cd88db31e012c2cf">ac241e31c931858e562dc0a4cd88db31e012c2cf</a>
+<blockquote>
+<p>
+ Fix bug 698662. Elements shifted horizontally when clist is used.<br>
+<br>
+ The scurveto clist path reading logic assumed that if the first value<br>
+ A, was 0, the previous curve entry was vertical, but the writing logic<br>
+ checked for B == 0 and decided to use h*curveto, so if A was also 0,<br>
+ the reading logic would assume vertical.<br>
+<br>
+base/gxclpath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-08 13:43: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=43a84c5d99d14881773b78b58892e9b049b938d9">43a84c5d99d14881773b78b58892e9b049b938d9</a>
+<blockquote>
+<p>
+ Bug 698794 detect alpha data in PNG image<br>
+<br>
+ We were making the decision as to the presence/absence of<br>
+ the alpha data in the PNG image a little early. There<br>
+ was one more step related to png_set_tRNS_to_alpha<br>
+<br>
+xps/xpspng.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-30 18:41:42 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4ee9656472805dc39a6ed3a8bd097dd04e497c19">4ee9656472805dc39a6ed3a8bd097dd04e497c19</a>
+<blockquote>
+<p>
+ Fix PCL init routines to return error code.<br>
+<br>
+ And fix calling loop to honour error code. Interestingly<br>
+ this calling routine was already set up to do most of the<br>
+ hard work here. I wonder if this was once done already?<br>
+<br>
+pcl/pcl/pccolor.c<br>
+pcl/pcl/pccprint.c<br>
+pcl/pcl/pcfont.c<br>
+pcl/pcl/pcfrgrnd.c<br>
+pcl/pcl/pcjob.c<br>
+pcl/pcl/pcmacros.c<br>
+pcl/pcl/pcmisc.c<br>
+pcl/pcl/pcommand.c<br>
+pcl/pcl/pcommand.h<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpalet.c<br>
+pcl/pcl/pcparse.c<br>
+pcl/pcl/pcparse.h<br>
+pcl/pcl/pcpatrn.c<br>
+pcl/pcl/pcrect.c<br>
+pcl/pcl/pcsfont.c<br>
+pcl/pcl/pcstatus.c<br>
+pcl/pcl/pcsymbol.c<br>
+pcl/pcl/pctext.c<br>
+pcl/pcl/pcuptrn.c<br>
+pcl/pcl/pcursor.c<br>
+pcl/pcl/pgchar.c<br>
+pcl/pcl/pginit.c<br>
+pcl/pcl/pginit.h<br>
+pcl/pcl/rtgmode.c<br>
+pcl/pcl/rtmisc.c<br>
+pcl/pcl/rtraster.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-05 13:31: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=5c851a410c3469860a171420240eb92331dcda9e">5c851a410c3469860a171420240eb92331dcda9e</a>
+<blockquote>
+<p>
+ pdfwrite - colour conversion changes<br>
+<br>
+ Bug #698723 &quot;convert rgb pdf to cmyk with icc profile yields wrong black&quot;<br>
+<br>
+ When converting to a base space colour, and applying the transfer<br>
+ function, don't use the old-fashioned colour conversion routines but<br>
+ instead use the ICC profile colour management.<br>
+<br>
+ With this change in place, the CMYK components in the output file are<br>
+ the same as those when rendering to TIFF CMYK output.<br>
+<br>
+ I am convinced there is more work to do in this area.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-05 13:27: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=775e9d28f78b4b0b5b41a24f4c9fc7f19a9326e3">775e9d28f78b4b0b5b41a24f4c9fc7f19a9326e3</a>
+<blockquote>
+<p>
+ pdfwrite - correct a device method<br>
+<br>
+ Correct the CMYK colour mapping method to use CMYK and not RGB....<br>
+<br>
+devices/vector/gdevpdf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-01 17:05:07 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6edda68e00965c0794fdd408cbc02c1729c374ff">6edda68e00965c0794fdd408cbc02c1729c374ff</a>
+<blockquote>
+<p>
+ Rejig gs_fapi_ft_ensure_open to avoid error cleanup SEGV.<br>
+<br>
+ Also, aesthetics.<br>
+<br>
+base/fapi_ft.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-01 14:06:12 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d6009573b3562d97f03c0fb6b1463ed0e4d133f">3d6009573b3562d97f03c0fb6b1463ed0e4d133f</a>
+<blockquote>
+<p>
+ Memory squeezing fix in pl_load_tt_font.<br>
+<br>
+ Fix SEGVs due to memory failures while loading a tt font.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=1402 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null<br>
+ ./pcl/examples/owl.pcl<br>
+<br>
+ Tweaked version of a commit from Shelley.<br>
+<br>
+pcl/pl/plfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-30 18:40:42 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc5b750951ee94b2d7e0615dde0122af973f49bb">cc5b750951ee94b2d7e0615dde0122af973f49bb</a>
+<blockquote>
+<p>
+ Memento: Fix type of signal handler function.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-02 13:11: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=7d9b9cc6ff0fafed282257fd1bf1ba815726a50e">7d9b9cc6ff0fafed282257fd1bf1ba815726a50e</a>
+<blockquote>
+<p>
+ PDF interpreter - another case of incorrect ICCBased profiles<br>
+<br>
+ More cases like those tackled in commit<br>
+ df5b3426d31f79c13a735dff9118e9798ce97af9 for bugs #696690 and 696120<br>
+<br>
+ Again we have an ICCBased colour space where the /N alue does not match<br>
+ the actual number of components in the ICC profile. Previously we had<br>
+ only seen this with images, the customer file uses a 'cs' operator<br>
+ which we weren't catching.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-16 16:41:22 +0100
+</strong>
+<br>David Kaspar [Dee'Kej] &lt;dkaspar@redhat.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=615b31526d06fcdac7abb9e37deac3ce5fb214b6">615b31526d06fcdac7abb9e37deac3ce5fb214b6</a>
+<blockquote>
+<p>
+ man/de - all man pages converted to UTF-8 (from ISO-8859-1)<br>
+<br>
+man/de/dvipdf.1<br>
+man/de/gsnd.1<br>
+man/de/pdf2ps.1<br>
+man/de/printafm.1<br>
+man/de/ps2ascii.1<br>
+man/de/ps2ps.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-01 15:16:19 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=69f4ea2d9d86b9eccf5e3477e4dc9d7d51e1d2d8">69f4ea2d9d86b9eccf5e3477e4dc9d7d51e1d2d8</a>
+<blockquote>
+<p>
+ Remove obsolete check_source.py tool....<br>
+<br>
+ and its configuration file (testing.cfg.example).<br>
+<br>
+ Bug 698780 (related)<br>
+<br>
+toolbin/tests/check_source.py<br>
+toolbin/tests/testing.cfg.example<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-27 10:30:52 +0100
+</strong>
+<br>David Kaspar [Dee'Kej] &lt;dkaspar@redhat.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=efc24229b0ba4b2f6a39fe89a4c9c576dbe7e124">efc24229b0ba4b2f6a39fe89a4c9c576dbe7e124</a>
+<blockquote>
+<p>
+ Bug 698784: Fix the alias for Helvetica-Narrow-Bold-Oblique<br>
+<br>
+ Init/Fontmap.GS:<br>
+<br>
+ There was a misalignment between the filename of the<br>
+ NimbusSansNarrow-BdOblique and its /Fontname in the T1 font itself.<br>
+<br>
+ Filename: NimbusSansNarrow-BdOblique<br>
+ /Fontname: /NimbusSansNarrow-BoldOblique<br>
+<br>
+ This worked correctly if the fonts were located directly in<br>
+ /usr/share/ghostcript/Resources/Font folder on the filesystem.<br>
+<br>
+ However, on Fedora we are using /usr/share/fonts/urw-base35/ folder,<br>
+ which is part of Ghostscript's Search Path. In this case it was<br>
+ causing the Ghostscript being unable to locate the correct font, thus<br>
+ crashing while opening any document containing Helvetica Narrow Bold<br>
+ Oblique font...<br>
+<br>
+ *In addition*, rename the font file so it matches.<br>
+<br>
+Resource/Font/NimbusSansNarrow-BoldOblique<br>
+Resource/Init/Fontmap.GS<br>
+psi/psromfs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-12-01 13:54: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=8d0ca41749ec3070c6a5c660ab0225b42bcb9eb3">8d0ca41749ec3070c6a5c660ab0225b42bcb9eb3</a>
+<blockquote>
+<p>
+ Bug 698741: where the comment says &quot;decrement&quot;, actually decrement<br>
+<br>
+ The comment stated we'd move to the end of the row, and work backwards, but<br>
+ the code was still working forwards, leading to a buffer overrun.<br>
+<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-24 22:26:59 +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=caa10a82fcf313dab7426250f59517936fa34964">caa10a82fcf313dab7426250f59517936fa34964</a>
+<blockquote>
+<p>
+ Bug 697545 : Memory squeezing fix for double freeing of ToneCurve.<br>
+<br>
+ Avoid SEGV by removing unnecessary freeing of ToneCurve.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=751 ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null ./pcl/examples/owl.pcl<br>
+<br>
+lcms2/src/cmsio1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-25 19:08:28 +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=346f1d67dc363195885dd041ede2abb0422c4455">346f1d67dc363195885dd041ede2abb0422c4455</a>
+<blockquote>
+<p>
+ Bug 697545 : Memory squeezing fix for gs_enumerate_files_next.<br>
+<br>
+ Prevent SEGV by checking for NULL pointer before attempting to<br>
+ use it.<br>
+<br>
+base/gsiodev.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-24 19:27:50 +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=d2977a7891f5c84526eefdd25b2167e052fa9c90">d2977a7891f5c84526eefdd25b2167e052fa9c90</a>
+<blockquote>
+<p>
+ Bug 697545 : Memory squeezing fix for pjl resources.<br>
+<br>
+ Prevent SEGV by checking for NULL pointer before attempting to<br>
+ free it.<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-24 15:45:16 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=96030033df28fb89732f58ae4df463f7fc06be5b">96030033df28fb89732f58ae4df463f7fc06be5b</a>
+<blockquote>
+<p>
+ Add '-DCLUSTER' mechanism to builds.<br>
+<br>
+ For autobuild use --enable-cluster option to configure/autogen.sh.<br>
+<br>
+ For windows builds, use CLUSTER=1.<br>
+<br>
+ This nobbles pdfwrite to use a '0' time in the produced files.<br>
+ This enables us to md5sum intermediate files.<br>
+<br>
+ Thanks to Chris for his help with the configure minefield.<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+devices/vector/gdevpdf.c<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-24 19:06:41 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=949ce4cf61f2ccf1ff39dd2c854aec9f9dad5068">949ce4cf61f2ccf1ff39dd2c854aec9f9dad5068</a>
+<blockquote>
+<p>
+ Tiny stylistic tweak.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-24 19:06: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=33babeb40a9e73e0cfb1d3b30574e305fa6ee7c7">33babeb40a9e73e0cfb1d3b30574e305fa6ee7c7</a>
+<blockquote>
+<p>
+ Squash warning.<br>
+<br>
+pcl/pl/plmain.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-23 22:21:15 +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=8b82d6f99ffda116b328e3ae65c58ee5e056e490">8b82d6f99ffda116b328e3ae65c58ee5e056e490</a>
+<blockquote>
+<p>
+ Bug 697545 : Memory squeezing fix for mutex in cms code<br>
+<br>
+ Prevent SEGV by checking for NULL mutex pointer before attempting<br>
+ to use or destroy it.<br>
+<br>
+lcms2/src/cmserr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-23 22:17:55 +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=a46d319b6edc2bc07b14fbf155b5101bf884fe27">a46d319b6edc2bc07b14fbf155b5101bf884fe27</a>
+<blockquote>
+<p>
+ Bug 697545 : Memory squeezing fix in pl_main_delete_instance<br>
+<br>
+ Prevent SEGV by checking for NULL value before dereferencing.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-23 17:00: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=adfedfa4de0457ecacf5814d4a315fcaee00561d">adfedfa4de0457ecacf5814d4a315fcaee00561d</a>
+<blockquote>
+<p>
+ OpenType fonts - regard fonts with multiple GSUB tables as invalid<br>
+<br>
+ Bug #697627 &quot;IO in gs_notify_all function&quot;<br>
+<br>
+ The bug title is a misnomer; the actual problem is that we have a badly<br>
+ corrupted font which appears to have 2 GSUB tables. This causes us to<br>
+ allocate two chunks of memory to hold the tables, losing the original<br>
+ reference when we allocate the second, and also to register the font<br>
+ to have the GSUB table released twice.<br>
+<br>
+ Trying to release the same memory twice leads to us trying to access<br>
+ invalid memory, and therefore to a seg fault.<br>
+<br>
+ So if we find we have a GSUB, and we've already allocated memory for a<br>
+ GSUB table, just throw an error.<br>
+<br>
+ Chris thinks it may be possible to legally have multiple GSUB tables, if<br>
+ we ever find such a thing we'll have to rethink this.<br>
+<br>
+base/gstype42.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-23 09:40: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=3ad236df1e509d0326a1fa31c98e068b5712fd75">3ad236df1e509d0326a1fa31c98e068b5712fd75</a>
+<blockquote>
+<p>
+ Bug 698773: Cope with &quot;charstring&quot; of invalid type<br>
+<br>
+ This file has a font whose CharStrings dictionary contains:<br>
+ /space 3 def<br>
+<br>
+ Ideally, when we hit such a case, we should fallback to the .notdef glyph,<br>
+ unfortunately, it also has:<br>
+ /.notdef 0 def<br>
+<br>
+ We *should* throw an error since this is clearly totally invalid, but other<br>
+ interpreters *appear* to simply ignore the problem. So, we opt to return an<br>
+ empty charstring.<br>
+<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-23 13:32: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=f32c03a2daad2d2e0e859bd6fc7547b68bd8bed9">f32c03a2daad2d2e0e859bd6fc7547b68bd8bed9</a>
+<blockquote>
+<p>
+ Do not ignore errors from the device's fill_rectangle_hl_color method<br>
+<br>
+ Spotted by Robin while fixing indeterminisms, we currently ignore any<br>
+ error return from this method in pattern_accum_fill_rectangle_hl_color()<br>
+ when it calls its target device. Adding a check and error propagation is<br>
+ simple enough, but that then reveals problems with the high level<br>
+ devices.<br>
+<br>
+ There are, in fact, several problems here. Firstly, the mem* devices<br>
+ which are used to render pattern tiles (amongst other things) are<br>
+ based on forwarding devices. When we send a spec_op we forward this to<br>
+ the 'underlying' device. This is a problem if the spec_op is querying<br>
+ whether the device can handle hl_color, because if it can then the<br>
+ caller may proceed to use hl_color methods. But the mem* devices cannot<br>
+ handle these methods and obviously can't forward them to the underlying<br>
+ device, resulting in an error. Fixed this one by using the default<br>
+ spec_op method instead of the forwarding one. In future this may require<br>
+ further attention.<br>
+<br>
+ The NULL device doesn't implement fill_rectangle_hl_color. In fact, with<br>
+ the changes elsewhere it doesn't need to, but really we should simply<br>
+ handle this in the same way as fill_rectangle and return, all the null<br>
+ device does is bit bucket all operations. For completeness, implement<br>
+ such a method.<br>
+<br>
+ gx_erase_colored_pattern() didn't do a restore (to match its save) if<br>
+ an error occurred. Again, with the other changes this is no longer<br>
+ triggered, but it does seem wrong so lets fix it.<br>
+<br>
+ In gx_pattern_load() and pattern_paint_prepare(), avoid erasing the<br>
+ background of the tile if the pattern instance is for a device which<br>
+ handles patterns itself (eg pdfwrite). Once again, not really required<br>
+ now that the mem* devices don't pass on the spec_op to the underlying<br>
+ device, but it saves us bothering with erasing a rectangle which we are<br>
+ going to throw away anyway.<br>
+<br>
+ Finally, the point of the whole exercise, in<br>
+ pattern_accum_fill_rectangle_hl_color(), check the return code from the<br>
+ target device's fill_rectangle_hl_color and if its an error, return it.<br>
+<br>
+base/gdevmem.c<br>
+base/gdevnfwd.c<br>
+base/gxpcmap.c<br>
+psi/zpcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-22 21:29: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=1cfc56251773304fb102237ff8a63c5576f08fe7">1cfc56251773304fb102237ff8a63c5576f08fe7</a>
+<blockquote>
+<p>
+ Rewritten version of squeeze2html.pl<br>
+<br>
+ This works with the latest memento, and gives nicer results in<br>
+ the browser.<br>
+<br>
+ Invoke using something like:<br>
+<br>
+ MEMENTO_SQUEEZEAT=1 membin/gs -sDEVICE=ppmraw -o /dev/null<br>
+ in.pdf |&amp; perl toolbin/squeeze2html.pl -q | gzip -9c &gt; out.html.gz<br>
+<br>
+toolbin/squeeze2html.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-22 17:57:23 +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=276a386da36926cf36942528146b4294a5ff9d6d">276a386da36926cf36942528146b4294a5ff9d6d</a>
+<blockquote>
+<p>
+ Coverity IDs 127198, 127199<br>
+<br>
+ Check return values and handle errors accordingly.<br>
+<br>
+pcl/pcl/pctext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-22 18:02: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=dd35e58feccf543129bc108857b16fd43d627d02">dd35e58feccf543129bc108857b16fd43d627d02</a>
+<blockquote>
+<p>
+ Fix indeterminism caused by buffer overrun in thresholding.<br>
+<br>
+ Running:<br>
+<br>
+ gs -sOutputFile=out%d.pbm -dMaxBitmap=400000000 -sDEVICE=pbmraw -r300<br>
+ -sDEFAULTPAPERSIZE=letter -dNOPAUSE -dBATCH -K2000000 -dClusterJob<br>
+ -dJOBSERVER /home/marcos/cluster/tests_private/pdf/uploads/Bug698519.pdf<br>
+<br>
+ then catting out{1,2,3,4,5}.pbm together and md5summing it gives a<br>
+ different result to running the above job direct to out.pbm.<br>
+<br>
+ After much nightmarish debugging, it transpires that this is because<br>
+ the special case in the SSE thresholding code that spots the 200%<br>
+ scale case is being triggered incorrectly.<br>
+<br>
+ The image is 1753 pixels wide, which would be 3506 pixels at 200%.<br>
+ We actually display it at 3507 pixels. The code was triggering the<br>
+ 200% case by calculating a scale_factor value of fixed_half (128).<br>
+<br>
+ The rounding here was causing a false positive.<br>
+<br>
+ Instead, we skip the calculation and check by directly comparing<br>
+ source and dest sizes.<br>
+<br>
+base/gxicolor.c<br>
+base/gximono.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-21 12:48: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=362ec9daadb9992b0def3520cd1dc6fa52edd1c4">362ec9daadb9992b0def3520cd1dc6fa52edd1c4</a>
+<blockquote>
+<p>
+ Fix bug 697459 Buffer overflow in fill_threshold_buffer<br>
+<br>
+ There was an overflow check for ht_buffer size, but none for the larger<br>
+ threshold_buffer. Note that this file didn't fail on Windows because the<br>
+ combination of the ht_buffer and the size of the (miscalculated due to<br>
+ overflow) threshold_buffer would have exceeded the 2Gb limit.<br>
+<br>
+base/gxht_thresh.c<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-21 19:27:19 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=68fa913b5bc06a4250115f52835cadc5493aab12">68fa913b5bc06a4250115f52835cadc5493aab12</a>
+<blockquote>
+<p>
+ Avoid warning.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-21 19:24: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=853737363b7b7cd1eab4da68ba8f83b7dfb5f453">853737363b7b7cd1eab4da68ba8f83b7dfb5f453</a>
+<blockquote>
+<p>
+ clist tweak: Pass &amp;var to macros if the value of var is updated.<br>
+<br>
+ Otherwise it's hard for someone unfamiliar with the macros to see<br>
+ what is going on.<br>
+<br>
+base/gxclbits.c<br>
+base/gxcldev.h<br>
+base/gxclimag.c<br>
+base/gxclpath.c<br>
+base/gxclrect.c<br>
+base/gxclutil.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-21 17:40:53 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ce5c3f42d8bd062da65d592abdaaeea90b901970">ce5c3f42d8bd062da65d592abdaaeea90b901970</a>
+<blockquote>
+<p>
+ Ensure that single component planar devices can cope with hl_color.<br>
+<br>
+ As part of tracking down indeterminisms in the cluster, I found that:<br>
+<br>
+ gs -sBandListStorage=file -sOutputFile=out%d.psd -dMaxBitmap=10000<br>
+ -sDEVICE=psdcmyk -r300 -Z: -sDEFAULTPAPERSIZE=letter -dNOPAUSE<br>
+ -dBATCH -K2000000 -dClusterJob -dJOBSERVER -ZL<br>
+ tests_private/pdf/sumatra/586_-_missing_images_gs_SMask_not_applied.pdf<br>
+<br>
+ was hitting a case where we were writing a pattern tile into the<br>
+ clist that hadn't been initialised at all. This was because all<br>
+ the writes to the pattern accumulator went through<br>
+ pattern_accum_fill_rectangle_hl_color. This passes the hl_color<br>
+ data to the memory devices fill_rectangle_hl_color function, and<br>
+ fills the mask with 1s.<br>
+<br>
+ The mask was being entirely filled with 1s and so was being discarded<br>
+ as unnecessary. Unfortunately the devices fill_rectangle_hl_color<br>
+ entrypoint was left as the default which does nothing by raise an<br>
+ error.<br>
+<br>
+ The fix here is to ensure that when we open a planar device, we<br>
+ always add in a suitable fill_rectangle_hl_color function, even<br>
+ when the device is superficially the same as a chunky one.<br>
+<br>
+ Thanks are due to Michael and Ray for their help with tracking this<br>
+ down.<br>
+<br>
+base/gdevmpla.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-21 16:46: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=19ebb5f1f497b6f2d50fe13d17d3e627dfb6c868">19ebb5f1f497b6f2d50fe13d17d3e627dfb6c868</a>
+<blockquote>
+<p>
+ PS interpreter - restore the flushpage operator<br>
+<br>
+ Michael Katzmann, working at the Library of Congress, is using<br>
+ Ghostscript in a custom application, which also involves a barcode<br>
+ reader and an SQL database.<br>
+<br>
+ Currently this resides in an RPM at:<br>
+<br>
+ http://engineering.nlsbph.org/repo/fedora/fedora/updates/27/SRPMS/AddressCard-3.17-LoC.fc27.src.rpm<br>
+<br>
+ but its not usable without the barcode reader and SQL database....<br>
+ For reasons which are not completely clear to me, he wants to use<br>
+ flushpage to update the display part way through the operation.<br>
+<br>
+ We suspect that it would be possible to avoid this, but it would<br>
+ probably require some programming effort on the users part, and since<br>
+ flushpage doesn't look like a likely candidate for abuse, we've decided<br>
+ just to restore it.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-21 14:13: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=37a9d25214efcabe0f36ed4cf6e91c58fcdbfa2d">37a9d25214efcabe0f36ed4cf6e91c58fcdbfa2d</a>
+<blockquote>
+<p>
+ PDF interpreter - move a default value to be compatible with all xref types<br>
+<br>
+ The commit df5b3426d31f79c13a735dff9118e9798ce97af9 which works around<br>
+ PDF files where the /N value and the actual ICC profile colour space<br>
+ number of components do not match.<br>
+<br>
+ Unfortunately, I made a minor error when creating this, which wasn't<br>
+ exposed by the test files on hand at the time. I set the default value<br>
+ of ICCProfileNError to false when processing an xref of type 'orig'<br>
+ (ie not an xref stream) which means that for PDF files which use xref<br>
+ streams the value was not defined, leading to an error.<br>
+<br>
+ Move the initial declaration to pdfopenfile instead so that it works<br>
+ no matter what type of xref we have,.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-05 16:16:46 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d7893955cf4231c092045affc32e26ad2b6de32">1d7893955cf4231c092045affc32e26ad2b6de32</a>
+<blockquote>
+<p>
+ Fix bug 696845 SEGV with --saved-pages-test and transparency<br>
+<br>
+ When a file pushes a pdf14devicefilter (or other compositor) it will<br>
+ still be the currentdevice after the filter is popped when the saved<br>
+ pages printing occurs. We need to check if the device is a forwarding<br>
+ device (as compositors will be when deactivated) and use the target<br>
+ device to print the saved pages.<br>
+<br>
+ Also, if a device uses the gx_default_dev_spec_op, it will return 0<br>
+ from the supports_saved_pages call even when it is a printer device.<br>
+ In gdev_prn_forwarding_dev_spec_op, check for a zero return and return<br>
+ true (1). A device that is a printer device that doesn't support saved<br>
+ page printing needs to return &lt; 0 to prevent this.<br>
+<br>
+ Add a finalize method for gx_device_printer so we can free up the saved-<br>
+ pages-list when the device is freed, but not when the device is closed<br>
+ which can happen if it needs to close due to put_params. Also the<br>
+ return code from the output_page in gx_saved_page_params_process was<br>
+ ignored. Both seen with the file Bug687111.ps and the psdcmyk device.<br>
+<br>
+ Also for devn devices, such as psdcmyk, we need to save the separation<br>
+ (spot color) names collected during the execution of setcolorspace in<br>
+ the gx_saved_page and set them in the devn_params when rendering. These<br>
+ are not handled by the paramlist.<br>
+<br>
+ Disable --saved-pages= and --saved-pages-test with PCL and XPS since it<br>
+ was never completely implemented and the partial implementation causes<br>
+ many errors when tested with --saved-pages-test. Note that while the<br>
+ --saved-pages-test option is still accepted as a parameter, it is ignored<br>
+ so that regression testing with --saved-pages-test can run.<br>
+<br>
+ Regression shows 3343 &quot;diffs&quot;, but bmpcmp doesn't show any diffs.<br>
+<br>
+base/gdevp14.c<br>
+base/gdevprn.c<br>
+base/gdevprn.h<br>
+base/gxclist.h<br>
+base/gxclpage.c<br>
+base/lib.mak<br>
+examples/transparency_example.ps<br>
+pcl/pl/plmain.c<br>
+psi/imain.c<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-20 14:33: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=1b64014143a8a571e5dbff3346c6ad902603dda1">1b64014143a8a571e5dbff3346c6ad902603dda1</a>
+<blockquote>
+<p>
+ Fix release/debug difference.<br>
+<br>
+ In searching for the indeterminism in 11-14.PS, I found that I could<br>
+ run the same command line in release and debug builds on peeved, and<br>
+ get different results:<br>
+<br>
+ touch out1.pgm ref1.pgm &amp;&amp; rm out*.pgm ref*.pgm &amp;&amp;<br>
+ bin/gs -sOutputFile=ref%d.pgm -dMaxBitmap=10000 -sDEVICE=pgmraw -r300<br>
+ -Z: -sDEFAULTPAPERSIZE=letter -dNOPAUSE -dBATCH -K2000000 -dClusterJob<br>
+ -dJOBSERVER %rom%Resource/Init/gs_cet.ps cutdown &gt;&amp; ~/log &amp;&amp;<br>
+ debugbin/gs -sOutputFile=out%d.pgm -dMaxBitmap=10000 -sDEVICE=pgmraw<br>
+ -r300 -Z: -sDEFAULTPAPERSIZE=letter -dNOPAUSE -dBATCH -K2000000<br>
+ -dClusterJob -dJOBSERVER %rom%Resource/Init/gs_cet.ps cutdown<br>
+ &gt;&amp; ~/log2 &amp;&amp; md5sum ref*.pgm out*.pgm &amp;&amp; less ~/log ~/log2<br>
+<br>
+ After cutting down the file as much as I could, Chris reduced it<br>
+ simply to:<br>
+<br>
+ 3E9 3E9 moveto 1 1 lineto stroke showpage<br>
+<br>
+ Thanks for this!<br>
+<br>
+ Tracing through the code, I discovered that the difference came down<br>
+ to check_diff_overflow, where the release build was assuming that if<br>
+ v1 &gt; v0, v0 - v1 &lt; 0, which is acceptable because v0 - v1 has<br>
+ overflown, at which point C says the value is unpredictable.<br>
+<br>
+ The fix is to detect the overflow before it happens.<br>
+<br>
+base/gxpflat.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-20 13:51:16 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cea5d8a72dab953fe84ab8f7280003d377559fff">cea5d8a72dab953fe84ab8f7280003d377559fff</a>
+<blockquote>
+<p>
+ pdfwrite - Fix typo in on=-page checks for annotations with PDF/X<br>
+<br>
+ Bug #698765 &quot;PDF/X Compliance Check Fails with Ghostscript generated PDF&quot;<br>
+<br>
+ The upper-right y bound check was incorrect, leading to an incorrect<br>
+ decision that an annotation was off the page.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-20 09:51: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=f9d41654ff0f52b6f42e5eff3215cf183261cffa">f9d41654ff0f52b6f42e5eff3215cf183261cffa</a>
+<blockquote>
+<p>
+ Coverity ID 203245 - remove redundant NULL check<br>
+<br>
+ The changes which fixed the device method API mean that its no longer<br>
+ required to check that dev is not NULL in this routine.<br>
+<br>
+base/gdevsclass.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-17 15:42: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=7b04e4d7b85769169db94f1b0ed72474211ba27a">7b04e4d7b85769169db94f1b0ed72474211ba27a</a>
+<blockquote>
+<p>
+ Add another PACIFY_VALGRIND section<br>
+<br>
+ Avoid warnings in 586_-_missing_images_gs_SMask_not_applied.pdf<br>
+<br>
+base/gxclist.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-17 15:26:10 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c5f770b5c64cf7a2f3a0f3c447c089a089a695d1">c5f770b5c64cf7a2f3a0f3c447c089a089a695d1</a>
+<blockquote>
+<p>
+ Documentation - Restore the documentation on DELAYBIND and friends<br>
+<br>
+ Since we've reinstated DELAYBIND, reinstate the documentation to go<br>
+ with it. Also include the helpers .bind and .bindnow.<br>
+<br>
+doc/Language.htm<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-16 20:37:41 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9c9bea4ecf31e06bcf52d433b632ce0b6b1b239">d9c9bea4ecf31e06bcf52d433b632ce0b6b1b239</a>
+<blockquote>
+<p>
+ Fix buffer overrun in gp_enumerate_files_next.<br>
+<br>
+ If pattern=&quot;*&quot; and patlength = 1, then pathead = 1.<br>
+<br>
+ When we look for any following subdirectory, the code attempts<br>
+ to look for the next subdirectory name. To do this it starts<br>
+ searching from the byte after the position of the current '/'.<br>
+ Unfortunately, if the string ends at the current wildcard, we<br>
+ don't have a '/', we have a NUL terminator. This means the<br>
+ current code starts looking just after that.<br>
+<br>
+ In code terms this means the current code accesses at<br>
+ pattern + pathead + 1, without checking pattern[patthead] first.<br>
+ This is a simple fix.<br>
+<br>
+ We also take this opportunity to simplify a couple of while loop<br>
+ conditions. The extra negation is too much for my tiny brain to<br>
+ cope with.<br>
+<br>
+base/gp_unifs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-16 20:01:57 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f27b751a1662c3ca8ef64c164cf3f9a400dd416b">f27b751a1662c3ca8ef64c164cf3f9a400dd416b</a>
+<blockquote>
+<p>
+ Add SINGLE_OBJECT_MEMORY_BLOCKS_ONLY logic.<br>
+<br>
+ If SINGLE_OBJECT_MEMORY_BLOCKS_ONLY is defined at<br>
+ build time, then we restrict every clump/chunk to<br>
+ have just a single object in it. This makes<br>
+ valgrind debugging easier as the allocation given<br>
+ for when 'undefined' values were created is far<br>
+ more likely to be correct.<br>
+<br>
+base/gsalloc.c<br>
+base/gsmchunk.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-16 20:00: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=1e1b4dc73087212abd1c6c9bee3192a1fc6bf630">1e1b4dc73087212abd1c6c9bee3192a1fc6bf630</a>
+<blockquote>
+<p>
+ Add some PACIFY_VALGRIND to quash some warnings.<br>
+<br>
+ 11-14.PS trips some valgrind warnings where we<br>
+ write structures into the clist without having<br>
+ cleared the padding in the structures.<br>
+<br>
+base/gsptype1.c<br>
+base/gxclimag.c<br>
+base/gxclist.c<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-16 21:51:13 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e93a58466a78aab89e065bdae2d6b77db5620692">e93a58466a78aab89e065bdae2d6b77db5620692</a>
+<blockquote>
+<p>
+ pdfwrite - fix instance UUID<br>
+<br>
+ Bug #698757 &quot;Instance UUID truncated&quot;<br>
+<br>
+ Should have spotted and fixed this at the same time as Bug #697977<br>
+ but missed it. As noted in the bug report its practically the same code<br>
+ and had the exact same problem.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-16 13:38:59 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b76dc2d704fcc00edc8c1fd8ae19d01a36e22c49">b76dc2d704fcc00edc8c1fd8ae19d01a36e22c49</a>
+<blockquote>
+<p>
+ ps2write - fix string splitting for output formatting<br>
+<br>
+ Bug #698708 &quot;Ghostscript loops&quot;<br>
+<br>
+ When writing output for ps2write, we limit the output width to 255<br>
+ characters. If a string is longer than that we try to split it on<br>
+ PostScript tokens. If we can't do that then we just break at 255<br>
+ characters and stick in a newline.<br>
+<br>
+ The logic in here however was flawed however, it failed to update the<br>
+ pointer 'p' which points to the character currently being processed<br>
+ and did not reset the width count to 0 when the string was output.<br>
+<br>
+ This could lead to us in an infinite loop.<br>
+<br>
+devices/vector/gdevpdfu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-16 11:29:47 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=01ce294445f7988f51f63108d53a89df003f2b1e">01ce294445f7988f51f63108d53a89df003f2b1e</a>
+<blockquote>
+<p>
+ Fix tiffsep1 device after device API repair<br>
+<br>
+ commit dd820be was over-enthusiastic with the tiffsep1 device, and tried<br>
+ to use the device procs accessor on a device struct member other than<br>
+ 'procs' with predictably unfortunate effects.<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-16 10:28: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=fa499a5809aab45b2891b5c8b2363d1bca890757">fa499a5809aab45b2891b5c8b2363d1bca890757</a>
+<blockquote>
+<p>
+ PS interpreter - add warnings for DELAYBIND and WRITESYSTEMDICT<br>
+<br>
+ We've seen people using these options in an inappropriate fashion<br>
+ and with SAFER set as well. Clearly there is confusion about how to use<br>
+ these.<br>
+<br>
+ If the user selects SAFER, and selects an option which is liable to<br>
+ make it possible for PostScript to evade the SAFER file system access<br>
+ restrictions, then emit a warning reminding the user to 'lock' the<br>
+ unsafe option down.<br>
+<br>
+ Also restore the old behaviour of DELAYBIND and remove the<br>
+ REALLYDELAYBIND switch. We have heard from the 'pstoedit' maintainer<br>
+ and that tool requires the use of both DELAYBIND and WRIESYSTEMDICT.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-15 16:49:41 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd820bbe7f53e051add94dbcdc779dae1820e0d6">dd820bbe7f53e051add94dbcdc779dae1820e0d6</a>
+<blockquote>
+<p>
+ Device method repair - use accessors throughout<br>
+<br>
+ A lot of places accessed device methods directly, instead of using the<br>
+ accessor macros. Update all the code to use the accessors.<br>
+<br>
+base/gdevdflt.c<br>
+base/gdevmpla.c<br>
+base/gdevnfwd.c<br>
+base/gdevp14.c<br>
+base/gdevprn.c<br>
+base/gdevsclass.c<br>
+base/gdevvec.c<br>
+base/gsdevice.c<br>
+base/gsdparam.c<br>
+base/gsicc_manage.c<br>
+base/gxclist.c<br>
+base/gxclrect.c<br>
+base/gxcmap.c<br>
+base/gxdevice.h<br>
+base/gxfapi.c<br>
+base/gxfill.c<br>
+base/gxp1fill.c<br>
+base/gxpcmap.c<br>
+devices/gdevdsp.c<br>
+devices/gdevplib.c<br>
+devices/gdevtifs.c<br>
+devices/gdevtsep.c<br>
+devices/gdevwpr2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-12 11:10: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=c9951359bde5c4e72a20624788a47a97872db090">c9951359bde5c4e72a20624788a47a97872db090</a>
+<blockquote>
+<p>
+ Repair the device API - device methods should never be NULL<br>
+<br>
+ The original intention of the device API was that device methods (with<br>
+ the odd exception of fill_rectangle) must not be NULL. That appears<br>
+ to have been broken with the introduction of the transparency<br>
+ compositor, with the result that the code now:<br>
+<br>
+ 1) has to check for methods being NULL sometimes, because that causes<br>
+ crashes.<br>
+<br>
+ 2) Uses a device method being NULL to determine code paths.<br>
+<br>
+ We want to return the device method design, because having to check for<br>
+ NULL methods before calling is wasteful.<br>
+<br>
+ In this commit:<br>
+<br>
+ define default methods for all the methods that previously did not have<br>
+ one.<br>
+<br>
+ Modify gx_device_fill_in_procs to include those defaults in the device<br>
+ methods which it checks for NULL and replaces.<br>
+<br>
+ Finding all the places where the code path differs if a device method<br>
+ is NULL, alter to check against the default method instead.<br>
+<br>
+ Remove NULL checks where they are no longer required. Device whose<br>
+ 'procs' get copied directly (clist) must have defaults for all methods.<br>
+<br>
+ Fix gx_copy_device_procs so that we only special case (don't replace<br>
+ the method) for those few methods where it matters that the subclassing<br>
+ device must have the default method if the subclassed device does. Long<br>
+ term we should change the code not to rely on this!<br>
+<br>
+ Remove a couple of macros that were not required or plain dumb.<br>
+<br>
+base/gdevdflt.c<br>
+base/gdevmem.c<br>
+base/gdevnfwd.c<br>
+base/gdevp14.c<br>
+base/gdevprn.c<br>
+base/gdevsclass.c<br>
+base/gdevvec.c<br>
+base/gscspace.c<br>
+base/gsdevice.c<br>
+base/gsdparam.c<br>
+base/gsicc_manage.c<br>
+base/gsovrc.c<br>
+base/gspaint.c<br>
+base/gstrans.c<br>
+base/gxblend1.c<br>
+base/gxclist.c<br>
+base/gxclrect.c<br>
+base/gxdevice.h<br>
+base/gxfapi.c<br>
+base/gxiscale.c<br>
+base/gxp1fill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-14 20:27: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=e2565e030eb37a25459671cfa9119715f3a0aae4">e2565e030eb37a25459671cfa9119715f3a0aae4</a>
+<blockquote>
+<p>
+ New &quot;planr&quot; device. 1 bit per component, RGB, planar device.<br>
+<br>
+base/gdevmem.c<br>
+base/unix-gcc.mak<br>
+devices/devs.mak<br>
+devices/gdevplan.c<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-15 19:17: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=a8b1611e7613781cd5c2c7defa2c5315254d9d1d">a8b1611e7613781cd5c2c7defa2c5315254d9d1d</a>
+<blockquote>
+<p>
+ Fix operation of 1bpc, 3 component halftones.<br>
+<br>
+ In the chunky world, it makes no sense to deal with 3 bit rgb as<br>
+ this doesn't pack neatly into a byte. You'd do it by handling<br>
+ 4 bit chunks.<br>
+<br>
+ Accordingly, parts of Ghostscript are written to assume that you'd<br>
+ not do anything this crazy.<br>
+<br>
+ Unfortunately, in the planar world, a 1 bpc, 3 component device<br>
+ does make (some) sense. Sadly, stuff like the halftone generation<br>
+ gets deeply confused by this.<br>
+<br>
+ Here we fix 2 specific instances of this problem. In the halftone<br>
+ generation, we generate 3bit chunky halftones as 4 bit ones, and in<br>
+ the planar_copy_color routines, we assume that 3 bit data is<br>
+ actually 4 bit (as a) it probably comes from these routines, and<br>
+ b) if it doesn't it'd be packed as 4 bit in any sane world).<br>
+<br>
+base/gdevmpla.c<br>
+base/gxcht.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-15 17:08: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=fac14b8c25422529acded1e9e920eb20190db340">fac14b8c25422529acded1e9e920eb20190db340</a>
+<blockquote>
+<p>
+ clusterpush.pl: Add smoke option<br>
+<br>
+toolbin/localcluster/clusterpush.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-15 17:26: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=ae6f20152ab1e0860952dbeee979ef2c0f195269">ae6f20152ab1e0860952dbeee979ef2c0f195269</a>
+<blockquote>
+<p>
+ Fix st_device_vector_max_ptrs.<br>
+<br>
+ This should be +4, not +3, but this value appears to be pretty<br>
+ much unused, so nothing matters at the moment. It is used by<br>
+ st_device_psdf_max_ptrs, but nothing uses that either.<br>
+<br>
+ We may remove both of these definitions in future.<br>
+<br>
+base/gdevvec.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-15 17:12:09 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb5726a74bbfbbd2e17b344eb4bc0385d514d4c1">bb5726a74bbfbbd2e17b344eb4bc0385d514d4c1</a>
+<blockquote>
+<p>
+ Memento: Add Memento_sequence<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-15 09:03: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=d046e24bd2894cf80785bede733006dd53746a07">d046e24bd2894cf80785bede733006dd53746a07</a>
+<blockquote>
+<p>
+ PostScript interpreter - silence compiler warning<br>
+<br>
+ Prototype a function to silence a compiler warning. Also, make the<br>
+ function static since it isn't used elsewhere.<br>
+<br>
+psi/zarith.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-13 11:05: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=143a892226b79676f5f8853f63532f9e6f4e8f5e">143a892226b79676f5f8853f63532f9e6f4e8f5e</a>
+<blockquote>
+<p>
+ Avoid buffer overflow in GraphicsAlphaBits cdoe with planar device.<br>
+<br>
+ In GraphicsAlphaBits, we get the pixels from the underlying device<br>
+ (in chunky format). The buffer we get that data into was sized<br>
+ according to get_device_raster(dev, false), which (for a planar<br>
+ device) returns the size for line of planar data. We want the<br>
+ size for one line of chunky data, so use get_device_raster_chunky<br>
+ instead.<br>
+<br>
+base/gdevdbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-13 09:07:03 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5fe97ce30de048027da19a85bc574a8adfcf2116">5fe97ce30de048027da19a85bc574a8adfcf2116</a>
+<blockquote>
+<p>
+ pdfwrite - fix an error handling problem<br>
+<br>
+ Bug 698735 &quot;Ghostscript: SEGV in pdfwrite with -Z@&quot;<br>
+<br>
+ This was, unfortunately, caused by the shift to cleaning up memory<br>
+ instead of relying on the garbage collector.<br>
+<br>
+ When an error occurred writing the metadata, the code simply exited<br>
+ back to the caller, it did not close the temporary stream it was<br>
+ writing the metadata to.<br>
+<br>
+ Due to the way that 'asides' are handled this led to the wrong stream<br>
+ being closed, and a pointer retained to a closed stream. The result<br>
+ was the seg fault.<br>
+<br>
+ There may well be other conditions like this still present.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-11 19:28: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=db2415d2b117946e5ec1d46936a134940f99c21d">db2415d2b117946e5ec1d46936a134940f99c21d</a>
+<blockquote>
+<p>
+ Bug 698733: make vector device memory stable<br>
+<br>
+ The pcl/xl device (gdevpx.c) was using &quot;normal&quot; Postscript global memory for<br>
+ its own use, and the vector base device on which it is based. That means the<br>
+ memory it allocated could disappear with the end-of-job restore in the<br>
+ Postscript interpreter.<br>
+<br>
+ Change it so it uses stable memory which is still garbage collected, and still<br>
+ subject to relocation, but is *not* subject to Postscript save/restore<br>
+ operation.<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-03 08:52:50 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c535ebb24602ff14a375a1590a9df6bd8bb7e9c4">c535ebb24602ff14a375a1590a9df6bd8bb7e9c4</a>
+<blockquote>
+<p>
+ Fix bug 695877: SEGV when display callback not set.<br>
+<br>
+ Change most of the device procs to return gs_error_Fatal when the callback<br>
+ hasn't been set. The open is allowed to be called before it is set, but any<br>
+ operations other than fill_rect (allowed for due to fillpage) and close will<br>
+ now return Fatal errors. This allows the device to be &quot;fake opened&quot; by gs_init<br>
+ before the parameters are processed and the display callback is set and the<br>
+ device is opened for actual use.<br>
+<br>
+devices/gdevdsp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-08 14:04: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=ea81364fdda57ce2c82007a150add5949a1c5788">ea81364fdda57ce2c82007a150add5949a1c5788</a>
+<blockquote>
+<p>
+ PS interpreter - fix detection of overflow on 64-bit integer multiply<br>
+<br>
+ Bug 698722 &quot;Erroneous Range-Check causes wrong arithmetic results&quot;<br>
+<br>
+ The work here was actually done by Robin Watts, ably assisted by<br>
+ Paul Gardiner.<br>
+<br>
+ The previous code failed to properly detect an overflow condition,<br>
+ because the cast of MAX_PS_INT to a double reduces the precision to<br>
+ only 52 bits for the integer portion, meaning it was possible for<br>
+ very large numbers not to be detected as &gt; MAX_PS_INT.<br>
+<br>
+psi/zarith.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-08 10:04:03 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e1aead165e05e98ae765d6569f39ced839d4298e">e1aead165e05e98ae765d6569f39ced839d4298e</a>
+<blockquote>
+<p>
+ Guard against divide-by-zero exceptions in the halftone code<br>
+<br>
+ Bug #697663 &quot;FPE in gx_compute_cell_values()&quot;<br>
+ Bug #698332 &quot;FPE (Division by zero) in pick_cell_size()&quot;<br>
+<br>
+ These have the same root cause, in pick_cell_size() we can end up with<br>
+ halftone cell parameters which are (I think) improperly initialised.<br>
+<br>
+ Certainly its possible to get to the point where we divide using one<br>
+ of the parameters, and if its 0 we get an error. I suspect that the<br>
+ halftone may be badly broken even when its not 0, but both these files<br>
+ are the result of fuzzing, so I doubt its possible to have a real<br>
+ working file get to this point.<br>
+<br>
+ Guard against the divide-by-zero errors by checking that both the<br>
+ parameters are non-zero (its permissible for one to be 0 I believe)<br>
+<br>
+base/gshtscr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-06 13:27:19 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1fb022758a35502b8e299248dd37207c1abc3ffe">1fb022758a35502b8e299248dd37207c1abc3ffe</a>
+<blockquote>
+<p>
+ Optimise pdf14_copy_planes<br>
+<br>
+ Call code derived from pdf14_compose_group rather than<br>
+ breaking everything down to rectangles.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-06 18:37: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=25d1c5f42b748af8d4d331a7b40ce9863e302332">25d1c5f42b748af8d4d331a7b40ce9863e302332</a>
+<blockquote>
+<p>
+ Fix misalignment in pdf14_copy_planes.<br>
+<br>
+ In the case where x/y get clipped, we can fail to account for<br>
+ this.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-03 18:53:27 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f36ee7a64c9ec95eb6657d06c602d0e4bb6f232">8f36ee7a64c9ec95eb6657d06c602d0e4bb6f232</a>
+<blockquote>
+<p>
+ Fix -Z? vs. -Zv output for pattern transparency debug.<br>
+<br>
+base/gdevp14.c<br>
+base/gsptype1.c<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-03 17:42: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=ee863835be136e21d3a4c4bcbe28e6e050e1bc1a">ee863835be136e21d3a4c4bcbe28e6e050e1bc1a</a>
+<blockquote>
+<p>
+ Check for a failed allocation before using the buffer.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-03 17:42:21 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc95eea7e6e5b5efb53446c8bcb482b748e9072e">cc95eea7e6e5b5efb53446c8bcb482b748e9072e</a>
+<blockquote>
+<p>
+ Squash a warning in pdf14.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-03 17: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=a953768a82d685e575c17feeebf3ea4468a319f3">a953768a82d685e575c17feeebf3ea4468a319f3</a>
+<blockquote>
+<p>
+ Fix bad free pdf14 (wrong gs_memory_t)<br>
+<br>
+ Michael spotted that:<br>
+<br>
+ gs -sDEVICE=tiff24nc -Z$?@ -r300 -o out%d.tif -f .<br>
+ ./MyTests/Advertising-PowerPoint-A4.pdf<br>
+<br>
+ gave a warning saying that a trans pattern being freed from<br>
+ the cache wasn't owned by the supplied memory pointer.<br>
+<br>
+ Indeed the free should have been using memory-&gt;stable_memory.<br>
+ Here we commit the nice fix whereby the buffer keeps a pointer<br>
+ to the memory with which it was allocated.<br>
+<br>
+ This simplifies the pdf14_buf_free calls too.<br>
+<br>
+ Credit to Ray for finding the cause/identifying the fix.<br>
+<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-03 15: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=3c9f8491ecb5cfa382608c47f5a35ad2bce00edc">3c9f8491ecb5cfa382608c47f5a35ad2bce00edc</a>
+<blockquote>
+<p>
+ Bug 694918: Fix buffer overrun in image_simple_expand.<br>
+<br>
+ If truly crazy values of x_extent are used, the fixed point<br>
+ representation can wrap around and we can start accessing out<br>
+ of the buffer.<br>
+<br>
+ Check for such stupid values and nobble us to do no harm.<br>
+<br>
+base/gxifast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-02 12:07:16 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1ea664170c68539a035279425447f7ce10e130ff">1ea664170c68539a035279425447f7ce10e130ff</a>
+<blockquote>
+<p>
+ Add support to viewpbm.ps for GRAYSCALE and RGB_ALPHA and fix logic for FITPAGE<br>
+<br>
+ The RAW_DUMP with RAW_DUMP_AS_PAM emits RGB_ALPHA and GRAYSCALE but these<br>
+ were not supported. Display RGB_ALPHA as CMYK for now.<br>
+<br>
+ Also if SCALE was specified, the ifelse for FITPAGE was inverted.<br>
+<br>
+lib/viewpbm.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-02 11:51:48 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4c1f9b28eab25b519d0a14401ec6bbcf01813e12">4c1f9b28eab25b519d0a14401ec6bbcf01813e12</a>
+<blockquote>
+<p>
+ Fix RAW_DUMP (minor omissions/typos when blending was refactored.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-27 08:03:36 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8200f59f1b5aab852e23322587dda7c182fc195b">8200f59f1b5aab852e23322587dda7c182fc195b</a>
+<blockquote>
+<p>
+ Fix Bug696372: Transparency with DeviceN not coping with bad PDF's<br>
+<br>
+ When a PDF with transparency stops interpretation due to an error, the<br>
+ grestore may have popped the pgs so that the pdf14 compositor is no<br>
+ longer the currentdevice. The logic in pad14_spot_get_color_comp_index<br>
+ assumed that the device was a pdf14_device and got a bogus pointer to<br>
+ devn_params. Instead, use the device's ret_devn_params function to get<br>
+ the actual pointer.<br>
+<br>
+ Also, the poppdf14devicefilter would execute without the pdf14 device<br>
+ as the currentdevice. Save the annots_gstate explicitly in pdf_main<br>
+ showpagecontents so it can be set back before doing annots and the<br>
+ poppdf14devicefilter.<br>
+<br>
+ This also required gs_setgstate to always do gs_do_set_overprint since<br>
+ the setgstate may have skipped over states with the overprint compositor.<br>
+ This caused &quot;drawn_comps&quot; to not be set correctly for the pdf14<br>
+ compose_group.<br>
+<br>
+ Fixups for 696372 fix commit (also ne-&gt;be last line of commit msg)<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+base/gdevp14.c<br>
+base/gsstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-02 17:54:57 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1626f36c9b6ae68abad7818be7cfb2a95f4ecffe">1626f36c9b6ae68abad7818be7cfb2a95f4ecffe</a>
+<blockquote>
+<p>
+ Bug 698713: Further graphicsAlphaBits + new scan converter fix.<br>
+<br>
+ Previous I ensured that when using graphicsAlphaBits, the new scan<br>
+ converter would restrict its output rectangles/traps to fit<br>
+ within y % max_fill_band pixels at a time as required.<br>
+<br>
+ I forgot that the base 'y' value taken for this was not necessarily<br>
+ aligned to a max_fill_band multiple. Fixed here.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-01 20:08:13 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=30ba3e3a163f729f2d05561e688dc54df6afa2e1">30ba3e3a163f729f2d05561e688dc54df6afa2e1</a>
+<blockquote>
+<p>
+ LCMS2: Add optimised 3x16bit -&gt; 1x16bit cached transform.<br>
+<br>
+lcms2/src/cmsxform.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-01 21:15:42 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d68b31cc315e7e687d0b55a5068b7514d7f73f5f">d68b31cc315e7e687d0b55a5068b7514d7f73f5f</a>
+<blockquote>
+<p>
+ LCMS2: Refind transform routine on buffer change.<br>
+<br>
+lcms2/src/cmsxform.c<br>
+lcms2/src/lcms2_internal.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-01 17:23: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=4ef5c30e68bbb33b952db1b70508e7412bf79f0f">4ef5c30e68bbb33b952db1b70508e7412bf79f0f</a>
+<blockquote>
+<p>
+ Reintroduce and update LCMS optimisations.<br>
+<br>
+lcms2/src/cmsxform.c<br>
+lcms2/src/extra_xform.h<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-31 19:37:10 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1ab17bc53362ea34b61050429c51c575539bf2b9">1ab17bc53362ea34b61050429c51c575539bf2b9</a>
+<blockquote>
+<p>
+ Avoid clearing cm_comps arrays in cmap functions.<br>
+<br>
+ This goes against commit 99c48263b9 by Ray (dating from Nov 1 2009)<br>
+ to fix Bug 690713 and solve some indeterminisms.<br>
+<br>
+ My belief is that this SHOULD be fixed in the devices, not in the<br>
+ callers. Accordingly I have backed that out, and changed the<br>
+ cmyk_cs_to_psdcmyk_cm function (the only one I can find that does<br>
+ not set everything to be 0).<br>
+<br>
+ The cluster now shows this running with no diffs.<br>
+<br>
+base/gxcmap.c<br>
+devices/gdevpsd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-11-01 12:07:53 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b3c0fafa490932cc43009c53c7f8a17598fe78d7">b3c0fafa490932cc43009c53c7f8a17598fe78d7</a>
+<blockquote>
+<p>
+ Tweak map_XXXX_subclass functions.<br>
+<br>
+ To cope with subclassed devices, we no longer simply call:<br>
+<br>
+ pprocs = dev_proc(dev, get_color_mapping_procs);<br>
+ pprocs-&gt;map_cmyk(dev, ...)<br>
+<br>
+ etc. The 'done thing' is to run up the the dev-&gt;parent pointers<br>
+ as far as we can, and to get the color mapping procedures from<br>
+ that. These color mapping procedures then need to be called<br>
+ using the dev pointer from which they were fetched.<br>
+<br>
+ To do this, we provide get_color_mapping_procs_subclass<br>
+ and map_XXX_subclass functions that pickle the dev search.<br>
+<br>
+ The only downside to this is that we end up doing the search<br>
+ up the tree twice (or more than twice in the case where we<br>
+ make several mapping calls).<br>
+<br>
+ Here we therefore tweak these functions so that<br>
+ get_color_mapping_procs_subclass returns both the procs AND<br>
+ the dev to use when calling them in a structure, and the<br>
+ map_XXX_subclass functions now take that structure.<br>
+<br>
+ Broadly, this change shouldn't actually alter any operation,<br>
+ other than being slightly more efficient.<br>
+<br>
+ There are a few wrinkles:<br>
+<br>
+ 1) in gsicc_replacecm.c, we were fetching the procs using the<br>
+ dev chasing function, but calling them using the unchased dev<br>
+ value. Fixed here to use the matching dev value in both cases.<br>
+<br>
+ 2) In a couple of places, we have special handling for forwarding<br>
+ devices. I am not convinced that we handle subclassed forwarding<br>
+ devices correctly (or devices that forward to subclassed devices).<br>
+ I have marked these areas with FIXMEs, but they are no worse<br>
+ now than they were before.<br>
+<br>
+base/gdevdflt.c<br>
+base/gdevdgbr.c<br>
+base/gdevnfwd.c<br>
+base/gscspace.c<br>
+base/gsicc_replacecm.c<br>
+base/gsovrc.c<br>
+base/gspaint.c<br>
+base/gxcmap.c<br>
+base/gxdcolor.c<br>
+base/gxdevcli.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-31 17:52: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=961b14dd7e686a1543541070a1ba943590ef2bf9">961b14dd7e686a1543541070a1ba943590ef2bf9</a>
+<blockquote>
+<p>
+ Optimise handle_colors in gxiscale.c<br>
+<br>
+ Avoid per-pixel work by doing as much as possible up front.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-31 15:52:49 +0000
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de645ba2116ecfc71d0fdcea84944735736d0278">de645ba2116ecfc71d0fdcea84944735736d0278</a>
+<blockquote>
+<p>
+ Avoid looking up the profile for every pixel of an image.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-31 13:07: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=f7b61e0cc56206b6811eee85c4cfd6a0963194e0">f7b61e0cc56206b6811eee85c4cfd6a0963194e0</a>
+<blockquote>
+<p>
+ Pass device_profile into color concretizing functions.<br>
+<br>
+base/gdevp14.c<br>
+base/gscdevn.c<br>
+base/gscms.h<br>
+base/gscolor2.c<br>
+base/gscpixel.c<br>
+base/gscsepr.c<br>
+base/gscspace.h<br>
+base/gsicc.c<br>
+base/gsicc_cache.c<br>
+base/gsicc_cache.h<br>
+base/gxcmap.c<br>
+base/gxcspace.h<br>
+base/gxiscale.c<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-27 20:24:32 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=31cb4cf7aa88784219f6fc2be362a66df2f67289">31cb4cf7aa88784219f6fc2be362a66df2f67289</a>
+<blockquote>
+<p>
+ Tweak cmap functions for speed.<br>
+<br>
+ In looking at the Advertising-PowerPoint-A4.pdf file, I noted that<br>
+ cmap_gray_direct and cmap_gray_halftoned were taking a noticable<br>
+ amount of time. This commit attempts to alleviate that.<br>
+<br>
+ Various observations:<br>
+<br>
+ 1) Avoid unnecessary loop in cmap_gray_halftoned (and similar functions).<br>
+<br>
+ In some of the code, we do:<br>
+<br>
+ for (i = 0; i &lt; n; i++)<br>
+ if (i == k)<br>
+ do_something_with(i)<br>
+<br>
+ why not just use:<br>
+<br>
+ if (k &lt; n)<br>
+ do_something_with(k)<br>
+<br>
+ 2) Typically functions like cmap_gray_direct do a load of work,<br>
+ culminating in trying to encode a color value. If that encoding fails,<br>
+ it would fallback to trying to use a cmap_gray_halftoned, which would<br>
+ do all the work a second time.<br>
+<br>
+ Tweak the code to avoid the call, and hence the repetition.<br>
+<br>
+ The downside to this is that the work is typically of the form:<br>
+<br>
+ for (i = 0; i &lt; n; i++)<br>
+ cv[i] = frac2cv(some_calculation_involving(cm_comps[i]));<br>
+<br>
+ and in order to be able to avoid the call to cmap_gray_halftoned, we<br>
+ need to make it:<br>
+<br>
+ for (i = 0; i &lt; n; i++) {<br>
+ cm_comps[i] = some_calculation_involving(cm_comps[i]);<br>
+ cv[i] = frac2cv(cm_comps[i]);<br>
+ }<br>
+<br>
+ i.e. we have to do more stores than before. This can hurt us in some<br>
+ cases, but it seems like a worthwhile win, especially in light of 3).<br>
+<br>
+ 3) A lot of the work in these functions involves mapping colors through<br>
+ the effective_transfer functions. This happens in code of the form:<br>
+<br>
+ for (i = 0; i &lt; n; i++) {<br>
+ cm_comps[i] = gx_map_color_frac(pgs, cm_comps[i], effective_transfer[i]);<br>
+ }<br>
+<br>
+ If effective_transfer[i] is identity (as it almost always is), then<br>
+ this whole loop is a nop.<br>
+<br>
+ We make some steps to optimise for this case by having the<br>
+ gx_map_color_frac macro check for effective_transfer[i] being<br>
+ gs_identity_transfer before calling it, but this doesn't help us<br>
+ avoid the loop/load/store.<br>
+<br>
+ We therefore extend pgs with a count of the number of<br>
+ 'effective_transfer's that are non identity (essentially a flag<br>
+ that enables us to know if we can skip this loop or not),<br>
+ and use that to optimise our work.<br>
+<br>
+base/gsht.c<br>
+base/gxcmap.c<br>
+base/gxgstate.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-30 19:31: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=de651aaa531a7eb6fa99c1ef97682ebe22a3cda7">de651aaa531a7eb6fa99c1ef97682ebe22a3cda7</a>
+<blockquote>
+<p>
+ Further optimisations in pdf14_mark_fill_rectangle.<br>
+<br>
+ Normal blend mode case is always worth optimising.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-31 14:11: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=fda23c007c3acb96198648c3f4a65438ce449b63">fda23c007c3acb96198648c3f4a65438ce449b63</a>
+<blockquote>
+<p>
+ Squash warnings.<br>
+<br>
+psi/zcolor.c<br>
+psi/ztrans.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-30 11:08:09 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=76b922b5d3071288edbf8f0cccdbbd2b0ae34742">76b922b5d3071288edbf8f0cccdbbd2b0ae34742</a>
+<blockquote>
+<p>
+ PDF interpreter - try and catch yet more cases of circular references<br>
+<br>
+ No bug report for this one, the customer requested destruction of the<br>
+ PDF file after analysis, and there was no way to reduce the file to the<br>
+ point where nothing sensitive remained.<br>
+<br>
+ The problem is that a Form XObject referenced a number of Image XObjects<br>
+ one of which contained a DecodeParms array, where the second element<br>
+ referenced the original Form XObject. This circular reference leads to<br>
+ an error.<br>
+<br>
+ Here we maintain a dictionary (initially empty) on the stack which we<br>
+ populate with object numbers as we recursively dereference objects.<br>
+ When we start a new composite object we copy the array into a new array<br>
+ which we discard on completion. This is to prevent false detection of<br>
+ circular references if we dereference multiple composite objects at the<br>
+ same level (eg if we deal with multiple images, each of which perhaps<br>
+ contained a reference to the same colour space).<br>
+<br>
+ We now issue an error quoting the object number being circularly<br>
+ referenced, replace the object with a null object and continue.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-27 18:08:34 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ecb0181ae2c6c64f876f741ef1da2980324442ca">ecb0181ae2c6c64f876f741ef1da2980324442ca</a>
+<blockquote>
+<p>
+ Use integer maths for bitmap interpolation internals.<br>
+<br>
+ We calculate the weights using doubles still, but store them as<br>
+ integers. This means all the inner loops avoid FP.<br>
+<br>
+base/siscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-27 16:53: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=b62bfe2c7d166bfe8f3743e122abc755d96bec9c">b62bfe2c7d166bfe8f3743e122abc755d96bec9c</a>
+<blockquote>
+<p>
+ Unpack/Unroll the inner loops of Mitchell scaler.<br>
+<br>
+base/lib.mak<br>
+base/siscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-26 12:53:29 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=81561e6e04f49a4b3b9599cc09ba2cde4407e936">81561e6e04f49a4b3b9599cc09ba2cde4407e936</a>
+<blockquote>
+<p>
+ Optimise clip_fill_rectangle and family.<br>
+<br>
+ Avoid testing for transpose each time, and cope with the common<br>
+ single rectangle case more efficiently.<br>
+<br>
+ This gives a 20% speedup in testing with my cutdown<br>
+ Advertising-Powerpoint-A4.pdf file going to 1200dpi, 1bpc cmyk.<br>
+<br>
+ The only one called here is clip_fill_rectangle, but push the<br>
+ same optimisations through clip_fill_rectangle_hl_color,<br>
+ clip_copy_mono, clip_copy_planes etc to help other devices.<br>
+<br>
+base/gxclip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-26 16:00: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=0d2177ac781235aa67cde3b6fc9d85030c50a8a9">0d2177ac781235aa67cde3b6fc9d85030c50a8a9</a>
+<blockquote>
+<p>
+ pdfwrite - take action on an error.<br>
+<br>
+ Don't ignore the potential error return from gx_path_current_point()<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-25 15:04:28 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f13a659f9700fac0a0f47007c1eaacddd5c7f208">f13a659f9700fac0a0f47007c1eaacddd5c7f208</a>
+<blockquote>
+<p>
+ improve commit d9d74def0095641f20b46716c929bc6f88154490<br>
+<br>
+ There were a couple of places that returned 0 which, after the goto<br>
+ change, return code. Its just barely possible that code might not be<br>
+ 0, so set it to 0 first.<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-25 14:57:12 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9d74def0095641f20b46716c929bc6f88154490">d9d74def0095641f20b46716c929bc6f88154490</a>
+<blockquote>
+<p>
+ pdfwrite - revisit clipped text and commit 46ef6bc80bd7388883a00aa866af38fe8f05d45b<br>
+<br>
+ Bug #698693 &quot;clipped text is selectable in pdf&quot;<br>
+<br>
+ Commit 46ef6bc80bd7388883a00aa866af38fe8f05d45b fixed bug 697442, in<br>
+ that case we needed to completely process text which had been<br>
+ deliberately placed off the page (and tehrefore outside the clip).<br>
+<br>
+ In that bug the text used glyphshow, which meant that it could not use<br>
+ stringwidth to measure the width of the string, and perform accurate<br>
+ positioning. So instead it placed the current point off the page,<br>
+ used glyphshow to draw the text, and then currentpoint to find the<br>
+ displacement.<br>
+<br>
+ By not fully processing the text we did not correctly update currentpoint<br>
+ and so the text was misplaced. This was fixed by fully processing<br>
+ the text, but altering a copy of the text enumerator's 'operation'<br>
+ field so that the text was not added to the page (clearing TEXT_DO_DRAW)<br>
+<br>
+ However, there are still places (process_text_modify_width) which can<br>
+ add the text in, and those look directly at the text enumerator<br>
+ operation flags.<br>
+<br>
+ So here we still copy the operation flags, but we then modify the copy<br>
+ held in the text enumerator, so that any subsequent processor will<br>
+ be able to see that the text should not be drawn. At the end of the<br>
+ function we restore the flags in the enumerator. This has meant a few<br>
+ places executing a 'goto' in order to reset the flags, instead of simply<br>
+ returning as previously.<br>
+<br>
+ A few test files show extremely minor (1 pixel) positioning differences.<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-24 07:19:39 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=140e1cb28a6ad42e2ded8381af8b53421923e0e1">140e1cb28a6ad42e2ded8381af8b53421923e0e1</a>
+<blockquote>
+<p>
+ Fix bug #694630 - Fuzzing Segmentation Fault.<br>
+<br>
+ Along with soft fonts, the built in fonts should not be restored when<br>
+ a macro call completes. The segmentation fault in the report was<br>
+ caused by a dangling reference to a deleted font after restoring the<br>
+ built in font dictionary. Also, removes a stale comment.<br>
+<br>
+pcl/pcl/pcsfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-24 12:13: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=434234ef22fd28217045c6485672c93a9685a607">434234ef22fd28217045c6485672c93a9685a607</a>
+<blockquote>
+<p>
+ Have configure set memory manager alignment.<br>
+<br>
+ For certain Unix derivatives (HP-UX, Solaris, and AIX) we have to use 64 bit<br>
+ memory alignment - configure will now spot if we are building on and for those<br>
+ platforms, and set the alignment appropriately.<br>
+<br>
+ Cross compiling still defaults to 32 bit, and if 64 bit alignment is required,<br>
+ it must set explicitly.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-21 11:01:12 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5889736af797dcba1d46af11a84b765340f6c3c4">5889736af797dcba1d46af11a84b765340f6c3c4</a>
+<blockquote>
+<p>
+ PDF interpreter - improve commit 9e8d2e<br>
+<br>
+ We should use .endtransparencytextgroup to close the group started by<br>
+ .begintransparencytextgroup, not .endtransparencygroup<br>
+<br>
+ Oddly this doesn't actually seem to cause any problems, but its not<br>
+ right.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-20 14:40:21 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6495e38f2dbaeedcaedf84f15c96e78aab6773c4">6495e38f2dbaeedcaedf84f15c96e78aab6773c4</a>
+<blockquote>
+<p>
+ Remove useless test in PDF interpreter transparency code<br>
+<br>
+ This test was always true since we always have .begintransparencygroup<br>
+ It was changed in 2008 from a check for .inittransparencymask which was<br>
+ created back in 2006. It was probably a test in case the PDF interpreter<br>
+ was running on a system that may not include the pdf14 compositor, but<br>
+ that is only a guess.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-20 16:14:41 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9e8d2e156aa3ea039f531e6ea378add4ea6e268c">9e8d2e156aa3ea039f531e6ea378add4ea6e268c</a>
+<blockquote>
+<p>
+ PDF interpreter - fix annotations with transparency and text<br>
+<br>
+ Since the introduction of '.begintransparencytextgroup' the synthesis<br>
+ of missing Appearances for annotations involving text has been broken.<br>
+<br>
+ Approximately since January 2017.<br>
+<br>
+ Introducing '.begintransparencytextgroup' fixes the problem.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-20 14:16: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=2fc463d0efbd044a8232611f0898eeb12b72a970">2fc463d0efbd044a8232611f0898eeb12b72a970</a>
+<blockquote>
+<p>
+ Bug 698676: have filenameforall permission check use &quot;reduced&quot; path<br>
+<br>
+ Prevents working around SAFER file access permissions.<br>
+<br>
+ CVE-2017-15652<br>
+<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-19 13:01: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=684f73e8deefacb2aa5d2277f3154b68809b2ab7">684f73e8deefacb2aa5d2277f3154b68809b2ab7</a>
+<blockquote>
+<p>
+ Bug 698672: Fix new scanconverter/alphabits interaction.<br>
+<br>
+ The alphabits mechanism relies on the scan converter not<br>
+ writing trapezoids so tall as to cause its line buffers<br>
+ to flush too early.<br>
+<br>
+ This is achieved by honoring the max_band_height field in<br>
+ the device header. Previously the new scan converter was<br>
+ ignoring this. Here we alter the code to pay attention to<br>
+ it.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-17 12:19:19 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc9a66978c56fdfff61bc3b1166955e5506470a9">cc9a66978c56fdfff61bc3b1166955e5506470a9</a>
+<blockquote>
+<p>
+ Fix bug 693304. Restore with pdf14 can cause SEGV<br>
+<br>
+ The pdf14 compositor device is retained but the mask_stack (and other<br>
+ elements of the pdf14_ctx need to be in stable memory to prevent<br>
+ dangling references after a restore.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-18 17:01:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6d048c85f5c75e7539e8b5fc42f5fd856986cc6e">6d048c85f5c75e7539e8b5fc42f5fd856986cc6e</a>
+<blockquote>
+<p>
+ Bug 698669: remove reference to removed example file<br>
+<br>
+ Some time ago, we removed the example file chess.ps due to questions over the<br>
+ license for the font it used.<br>
+<br>
+ But the makefile gubbins to &quot;install&quot; the example files wasn't changed to suit,<br>
+ and on HP-UX (but so far, nothing else!) caused &quot;make install&quot; to error out.<br>
+<br>
+base/unixinst.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-18 14: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=7da09aaf701bd4ff2acea55aacce84a22455aead">7da09aaf701bd4ff2acea55aacce84a22455aead</a>
+<blockquote>
+<p>
+ Bug 698647: pdfwrite: avoid cached glyphs for Type 3 font input only<br>
+<br>
+ The original fix in 8360852efab5643d93cc3b040832075e199cd205 wrongly assumed<br>
+ that the changed code only came into effect for Type 3 font *input* where,<br>
+ in reality, it's for any font for which we have to create a Type 3 in the<br>
+ output.<br>
+<br>
+ The change to disable the use of the cache should only apply to Type 3 input<br>
+ where we want to force the execution of the BuildGlyph/BuildChar proc so<br>
+ pdfwrite can capture it.<br>
+<br>
+ In all other cases, we need to leave the cache in play.<br>
+<br>
+devices/vector/gdevpdtt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-17 10:16:51 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9219b1e5febd646f6d87bc424b41237a50529d0d">9219b1e5febd646f6d87bc424b41237a50529d0d</a>
+<blockquote>
+<p>
+ Page selection device - fix overprint compositor usage<br>
+<br>
+ Bug #698568 &quot;Ghostscript segmentation fault when doing page selection&quot;<br>
+<br>
+ The PostScript interpreter uses the current device in the graphics<br>
+ state, and calls the create_compositor() method when overprint is<br>
+ set to true.<br>
+<br>
+ This may or may not insert a new compositor device into the graphics<br>
+ state, and whether it does or not is controlled by the return from<br>
+ the method. If the device is the same as the one in the graphics state<br>
+ then we don't set a new device, if its different then we set the<br>
+ returned device.<br>
+<br>
+ The page selection device wasn't initialising this parameter, and if<br>
+ we were skipping the page we didn't call the child device method,<br>
+ which meant we returned an uninitialised pointer to the caller. Since<br>
+ this was unlikely to be the same as the current device, we ended up<br>
+ trying to set the device in the graphics state to an uninitialised<br>
+ pointer, with predictably disastrous results.<br>
+<br>
+ The simple fix is to initialise the pointer to the current device in<br>
+ the graphics state. If we call the child method, and it wants a new<br>
+ compositor then it will overwrite it, if it doesn't, or we are skipping<br>
+ the page, then we return the current device and nothing changes.<br>
+<br>
+ No differences expected.<br>
+<br>
+base/gdevflp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-13 11:16:40 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=05432a551f887d7526b2bf3c65f3f1740cb3cc48">05432a551f887d7526b2bf3c65f3f1740cb3cc48</a>
+<blockquote>
+<p>
+ PDF interpreter - Improve annotation appearance generation<br>
+<br>
+ Bug #698627 &quot;PDF 2.0 tests Polygon annotation&quot;<br>
+ Bug #698629 &quot;PDF 2.0 tests Polyline annotation&quot;<br>
+ Bug #698630 &quot;PDF 2.0 tests Ink annotation&quot;<br>
+<br>
+ This commit refactors the code previously committed for Circle and<br>
+ Square annotations to make it more general. Adds support for the Polygon,<br>
+ PolyLine and Ink with /Path array (new to PDF 2.0). Adds support for<br>
+ transparency in Annotations (some limited support was available before).<br>
+ Adds the /Line annotation type and implements the Line Ending (/LE)<br>
+ array, but not other aspects of the Line annotation (these may be added<br>
+ at a later date).<br>
+<br>
+ Bug #698628 &quot;PDF 2.0 tests Redact annotation&quot;<br>
+<br>
+ We specifically don't generate an Appearance for Redact annotations, but<br>
+ will render one if supplied. This annotation is really an interactive<br>
+ feature, not relevant to print.<br>
+<br>
+ Predictably this commit causes differences as we now generate substitute<br>
+ appearances for more annotation types when the appearance is missing.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-12 14:16:40 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9196c7ff8c41f1b256d58696158cd6b99e238459">9196c7ff8c41f1b256d58696158cd6b99e238459</a>
+<blockquote>
+<p>
+ Always force unsigned chars for Luratech<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-09 13:14: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=6b076c380d4479aa64375baaad59dba6729e2c8f">6b076c380d4479aa64375baaad59dba6729e2c8f</a>
+<blockquote>
+<p>
+ Fix problems caused by pdf14_compose_group tuning.<br>
+<br>
+ It seems that has_mask == 0 does not equate to maskbuf != NULL.<br>
+<br>
+ Assuming that mask_mask == 0 =&gt; maskbuf == NULL causes problems in<br>
+ tests_private/pdf/sumatra/fireworks_with_radial_shading.pdf (300dpi<br>
+ clist renderings in particular) and in<br>
+ tests_private/pdf/uploads/Bug697212.pdf (all renderings).<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-10 10:14:04 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f64fa48dc792230244f20f115b8dbe3545f484da">f64fa48dc792230244f20f115b8dbe3545f484da</a>
+<blockquote>
+<p>
+ Documentation - remove references to .runandhide<br>
+<br>
+ We removed a number of PostScript operators from accessibility after<br>
+ the interpreter is running as part of the security overhaul. One of<br>
+ these was .runandhide but we accidentally left a couple of references<br>
+ in the documentation (the main part of the documentation was correctly<br>
+ updated).<br>
+<br>
+ So remove the references here, and update the documentation to note the<br>
+ potential risks in using -dNOSAFER with a save object on the exec<br>
+ stack.<br>
+<br>
+doc/Language.htm<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-12 10:32: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=dab8018a344409710b989c31575e6e0e4eb243ce">dab8018a344409710b989c31575e6e0e4eb243ce</a>
+<blockquote>
+<p>
+ Bring master up to date with gs922 branch<br>
+<br>
+ Update docs dates etc for release<br>
+<br>
+ Changelog and news<br>
+<br>
+ Update dates/product for 9.22rc2<br>
+<br>
+ Changelog for 9.22rc2<br>
+<br>
+ Dates, product, changelog for 9.22 release<br>
+<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/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>
+psi/int.mak<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-09 11:08:07 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=11f058b7fea07b2a5d2677be3f057cc5ee3e9023">11f058b7fea07b2a5d2677be3f057cc5ee3e9023</a>
+<blockquote>
+<p>
+ PDF Interpreter - support the /Circle annotation type without an appearance<br>
+<br>
+ Bug #698626 &quot;PDF 2.0 tests Circle annotation&quot;<br>
+<br>
+ We didn't synthesise an appearance for annotations of type /Circle<br>
+ when they had no appearance stream. This commit adds that support.<br>
+<br>
+ Rather surprisingly, there do not appear to be any files in our test<br>
+ suite which exercise this. Doubly surprising since I thought all the<br>
+ release 2 PDF 2.0 FTS files were included and its one of these that<br>
+ is quoted in the bug report.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-07 13:33:03 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6db482c183959dbccdc865d8a27cb53b054d3dc1">6db482c183959dbccdc865d8a27cb53b054d3dc1</a>
+<blockquote>
+<p>
+ PDF Interpreter - support the /Square annotation type with no /Appearance<br>
+<br>
+ Bug #698625 &quot;PDF 2.0 tests Square annotation type&quot;<br>
+<br>
+ We didn't synthesise an appearance for annotations of type /Square<br>
+ when they had no appearance stream. This commit adds that support.<br>
+<br>
+ Rather surprisingly, there do not appear to be any files in our test<br>
+ suite which exercise this. Doubly surprising since I thought all the<br>
+ release 2 PDF 2.0 FTS files were included and its one of these that<br>
+ is quoted in the bug report.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-06 17:23:59 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=83ef35dce760f68019afd1b07bac8118cd9837a2">83ef35dce760f68019afd1b07bac8118cd9837a2</a>
+<blockquote>
+<p>
+ PDF and PS Interprters and ps2write - fix type 6 halftones &amp; transfers<br>
+<br>
+ Bug698621 &quot;PDF 2.0 tests not applying transfer function from halftone&quot;<br>
+<br>
+ The halftones in question are defined (by the PDF interpreter) as type<br>
+ 6 halftones, ie file-based threshold arrays.<br>
+<br>
+ Rather to my surprise, the reason this didn't work turns out to be<br>
+ because the PostScript interpreter has never supported transfer functions<br>
+ with type 6 halftones.<br>
+<br>
+ So; add support for transfer functions in type 6 halftones. This exposed<br>
+ a problem with ps2write (and potentially pdfwrite) when emitting these<br>
+ transfer functions, instead of simply specifying the object number of<br>
+ the function, we were writing it out decorated with &quot;/TransferFunction&quot;<br>
+ which caused ps2write output to fail. So fix that here too.<br>
+<br>
+ Remove the 'OBSELETE' comment from the halftone structure, I don't know<br>
+ who thought this was obselete, but it really does not seem to be.<br>
+<br>
+base/gsht1.c<br>
+base/gxht.h<br>
+devices/vector/gdevpdfg.c<br>
+psi/zht2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-06 14:52:03 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=45a826638bfc6309a829b38ecf14ff9c21f438ca">45a826638bfc6309a829b38ecf14ff9c21f438ca</a>
+<blockquote>
+<p>
+ Tune pdf14_compose_group inlining.<br>
+<br>
+ Pick specific inlinings based upon examination of the data<br>
+ from the TRACK_COMPOSE_GROUPS defines.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-05 19:25:41 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7b6bce45b1a85266a40844436ea386c4129515f4">7b6bce45b1a85266a40844436ea386c4129515f4</a>
+<blockquote>
+<p>
+ Add TRACK_COMPOSE_GROUPS development code.<br>
+<br>
+ This enables us to track which combinations of options<br>
+ are used, and how frequently.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-05 19:28: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=5e1675e95b0574f9a5f469458e849e1837c33983">5e1675e95b0574f9a5f469458e849e1837c33983</a>
+<blockquote>
+<p>
+ Further tweaks to pdf14_mark_fill_rectangle<br>
+<br>
+ Avoid having to check for src_alpha == 0 every time around<br>
+ the loop.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-05 19:29:07 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8c72c12c30553b76b4e2b23261529ec4c6d49b43">8c72c12c30553b76b4e2b23261529ec4c6d49b43</a>
+<blockquote>
+<p>
+ Further tweaks to pdf14_preserve_backdrop<br>
+<br>
+ Attempt to avoid blanking tag plane when we're about to copy<br>
+ into it.<br>
+<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-05 19:26: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=affab3b5889ce7b8bcb38d0c7c938b907d1e8253">affab3b5889ce7b8bcb38d0c7c938b907d1e8253</a>
+<blockquote>
+<p>
+ Fix typo.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-05 14:37:37 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=882e0bfed09e839d53287164ebf4aa99ca5f116a">882e0bfed09e839d53287164ebf4aa99ca5f116a</a>
+<blockquote>
+<p>
+ Optimise pdf14_mark_fill_rectangle using inlining.<br>
+<br>
+ Same tricks as used for pdf14_compose_group.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 17:01:24 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=77cdf72595643da5d17e84fb72d8f58ccfe3d038">77cdf72595643da5d17e84fb72d8f58ccfe3d038</a>
+<blockquote>
+<p>
+ Avoid duplicating code in art_pdf_composite_pixel_alpha8_inline.<br>
+<br>
+ We can spot that blend_mode == BLEND_MODE_Normal in the caller,<br>
+ and set first_spot to 0 in that case. Then we always drop<br>
+ straight through to the code at the end, and omit the complex<br>
+ blend call. Reduces code, doesn't change the speed.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 16:54:59 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aaccd9b5942aae6738ac02874e627b9e8677f965">aaccd9b5942aae6738ac02874e627b9e8677f965</a>
+<blockquote>
+<p>
+ Instantiate some more 'optimised' routines for pdf14_group_compose.<br>
+<br>
+ The last one of these is the one that gets hammered in the<br>
+ normal_blend_test.pdf file.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 16:54: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=3dba9682de0b69a8822507a1c11d9f782c33b4c9">3dba9682de0b69a8822507a1c11d9f782c33b4c9</a>
+<blockquote>
+<p>
+ Tweak art_pdf_composite_pixel_alpha_8_inline.<br>
+<br>
+ Normal blending allows us to not only skip the art_blend_pixel_8_inline<br>
+ call, but also to simplify the calculations.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 16:52:03 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=67bae85a6f46190262cf8a6ad6c37c7aff2e6cc5">67bae85a6f46190262cf8a6ad6c37c7aff2e6cc5</a>
+<blockquote>
+<p>
+ Introduce forceinline define.<br>
+<br>
+ It seems MSVC thinks it knows best about what to inline and what not to.<br>
+<br>
+ Use new 'forceinline' define to persuade it to actually do what it is<br>
+ told. On all non-MSVC compilers this just maps to inline.<br>
+<br>
+base/gxblend.c<br>
+base/stdpre.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 00:39: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=a9f06af39ced9a69f5841ceef3f5e921c34ea5a7">a9f06af39ced9a69f5841ceef3f5e921c34ea5a7</a>
+<blockquote>
+<p>
+ Further optimisation in pdf14_compose_group.<br>
+<br>
+ Avoid memcpy's when unnecessary in some of the subfunctions,<br>
+ by having a 'dst' pointer that points to the results. If<br>
+ the results are supposed to be the same as the src, don't<br>
+ copy the source, just reset the dst pointer.<br>
+<br>
+ If the dst pointer is set to NULL, then don't copy the results<br>
+ at all, as it'll be the current values unchanged.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 19:50:33 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=29e07d407e997a596f682cffa2069e5cea9e3fb4">29e07d407e997a596f682cffa2069e5cea9e3fb4</a>
+<blockquote>
+<p>
+ Use inlining on pdf14_compose_group functions.<br>
+<br>
+ We move pdf14_compose_group into gxblend.c to enable us to<br>
+ make the constituent functions static inlines.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 19:09:00 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65c442f7b2c1a91816f9026553004d66dde147ec">65c442f7b2c1a91816f9026553004d66dde147ec</a>
+<blockquote>
+<p>
+ Tweak art_pdf_composite_knockout_group_8.<br>
+<br>
+ Another case where we can avoid a memcpy by corrupting the source<br>
+ data we are passed.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 18:45:30 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ef1126569bbdd405f7ef38eb5cd7e4928321f4f">7ef1126569bbdd405f7ef38eb5cd7e4928321f4f</a>
+<blockquote>
+<p>
+ Further optimisations to compose_group.<br>
+<br>
+ compose_group calls both art_pdf_recomposite_group_8 and<br>
+ art_pdf_composite_group_8 next to one another. Both end<br>
+ (in most cases) by doing an identical call to<br>
+ art_pdf_composite_pixel_alpha_8.<br>
+<br>
+ Tweak the code so that this call happens from the calling<br>
+ routine (and thus we only have a single call to the routine).<br>
+ This makes no difference now, but potentially saves when<br>
+ we start inlining.<br>
+<br>
+ The tweaks here to art_pdf_recomposite_group_8 to avoid<br>
+ using a temporary array, *do* avoid a copy in the common case.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 18:09:05 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8d2a3a5b0f8280449d75ea99ddcadb69259370b6">8d2a3a5b0f8280449d75ea99ddcadb69259370b6</a>
+<blockquote>
+<p>
+ Tweak art_pdf_recomposite_group_8.<br>
+<br>
+ Avoid having to memcpy the input components in the common case,<br>
+ at the expense of corrupting src[n_chan] in the difficult<br>
+ case. This is fine, because our only caller never accesses<br>
+ src[n_chan] again.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 15:05: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=ab6acb21bfc42194650ff90243e0737b43d81919">ab6acb21bfc42194650ff90243e0737b43d81919</a>
+<blockquote>
+<p>
+ Start inlining optimisation of compose_group.<br>
+<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 13:41:20 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f2d625c260f174d2daa54508f0ff0147c4ad334">8f2d625c260f174d2daa54508f0ff0147c4ad334</a>
+<blockquote>
+<p>
+ Tweak art_pdf_composite_knockout_group_8.<br>
+<br>
+ This function has 2 branches, both of which end up with the same<br>
+ call to art_pdf_knockout_composite_pixel_alpha_8. Tweak the<br>
+ code so that we only need do one.<br>
+<br>
+ No speedup expected, but this paces the way for inlining later.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-02 20:32: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=83cd299b98510dc87cd3aa27f57a060b268e05ee">83cd299b98510dc87cd3aa27f57a060b268e05ee</a>
+<blockquote>
+<p>
+ Do not overcopy bytes for pdf14 blending.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 16:56:43 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=88152e5c620bda7d25cd351c765751c619019a58">88152e5c620bda7d25cd351c765751c619019a58</a>
+<blockquote>
+<p>
+ Tweak art_pdf_composite_pixel_alpha_8.<br>
+<br>
+ art_pdf_composite_pixel_alpha_8 is used to blend src and<br>
+ destination pixels together with a given blend mode.<br>
+<br>
+ In the general case, we have n colour compoents, of which the<br>
+ first n-s are process ones, and the next s are spots (followed<br>
+ by alpha).<br>
+<br>
+ In some cases, we need to blend the first n-s with the given blend<br>
+ mode, and the remaining s in Normal mode.<br>
+<br>
+ This is currently achieved in the code by making 2 different calls<br>
+ down to art_pdf_composite_pixel_8 for each section of the pixel<br>
+ (with different 'n' values).<br>
+<br>
+ Unfortunately, due to alpha being assumed to be held as the nth<br>
+ component, this means we need to do a dance where we stash away<br>
+ a components value, copy the alpha in, call the routine, then<br>
+ restore the alpha afterwards.<br>
+<br>
+ To avoid this, we modify art_pdf_composite_pixel_alpha_8 to take<br>
+ another int parameter, specifying the position of the first<br>
+ component that needs to be blended with the Normal mode.<br>
+<br>
+ This enables us to simplify the outer routines that call this so<br>
+ that we have a single call, rather than 3. It also means we don't<br>
+ recaulate 'scale' etc twice.<br>
+<br>
+ I am not expecting any significant speedups from this alone, but<br>
+ it simplifies the code so that hopefully we might get some in<br>
+ later commits.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+base/gxp1fill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 16:55:59 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5cc958e9c318ffd51223d6794df389b3c19d1aa1">5cc958e9c318ffd51223d6794df389b3c19d1aa1</a>
+<blockquote>
+<p>
+ Tweak pdf14 compose group function towards optimisation.<br>
+<br>
+ The plan here is to move towards optimised inner loops. The<br>
+ initial version of these inner loops will be done using<br>
+ static inline templating. This initial commit won't give<br>
+ much (if any) improvement, but starts us on the road.<br>
+<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-02 17:42:34 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b26279df55a77fe2252de803a0e23ff4f703d609">b26279df55a77fe2252de803a0e23ff4f703d609</a>
+<blockquote>
+<p>
+ Tweak art_pdf_composite_group_8.<br>
+<br>
+ Avoid 2 different calls down to art_pdf_composite_pixel_alpha_8<br>
+ when 1 will suffice. No expected speed benefit yet.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-02 14:48:54 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=463928c19de23164ec61e0fdea119195fa1450f4">463928c19de23164ec61e0fdea119195fa1450f4</a>
+<blockquote>
+<p>
+ Inline versions of art_pdf_union_mul_8 and art_blend_pixel_8.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-08-01 12:40: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=4505a7fa04bc89a3f9463b0bcf069210771a8a42">4505a7fa04bc89a3f9463b0bcf069210771a8a42</a>
+<blockquote>
+<p>
+ Fix psd spot color handling in bmpcmp.<br>
+<br>
+toolbin/bmpcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-05 11:21:40 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4f830ad24611ea8c88f78e77dd3b250ee3c55251">4f830ad24611ea8c88f78e77dd3b250ee3c55251</a>
+<blockquote>
+<p>
+ PDF interpreter - remove accidental debugging<br>
+<br>
+ Left some debugging in the SpotFunction array commit, remove it.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-05 11:11:06 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=75463b045f4ea314f1d22b1b63be5e3709ec59aa">75463b045f4ea314f1d22b1b63be5e3709ec59aa</a>
+<blockquote>
+<p>
+ PDF Interpreter - support PDF 2.0 SpotFunction arrays<br>
+<br>
+ Bug #698620 &quot;PDF 2.0 tests invalid halftones&quot;<br>
+<br>
+ This was an oversight on my part, I missed new functionality when<br>
+ reading the PDF 2.0 specification.<br>
+<br>
+ The SpotFunction in a type 1 Halftone can now be a name, function or (new)<br>
+ an array of names. If its an array we are supposed to check the entries<br>
+ in turn selecting the first one we recognise. If we don't recognise any<br>
+ then we should use the default.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 15:48:07 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d6168d9bdfe60f77bc60a270945c67e36ac02a3">3d6168d9bdfe60f77bc60a270945c67e36ac02a3</a>
+<blockquote>
+<p>
+ Tweak pdf14_preserve_backdrop (for speed).<br>
+<br>
+ First the current code clears the backdrop, then we copy into it.<br>
+<br>
+ In many cases we overwrite exactly the area we just cleared. Spot<br>
+ this, and avoid it.<br>
+<br>
+ We *could* optimise this further in cases where we aren't overwriting<br>
+ exactly the same region. Wait to see if this is justified.<br>
+<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 20:07:06 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a2532236a8f85101c3d0377dde163071745c53bf">a2532236a8f85101c3d0377dde163071745c53bf</a>
+<blockquote>
+<p>
+ Tweak pdf14_preserve_backdrop (for clarity).<br>
+<br>
+ Reduce duplicated code.<br>
+<br>
+ Also, ensure that the debugging code that dumps planes actually<br>
+ dumps the plane that the file modifies.<br>
+<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 17:15: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=df32585f91bb6b1023fef42545cae2419b0e10db">df32585f91bb6b1023fef42545cae2419b0e10db</a>
+<blockquote>
+<p>
+ PDF interpreter - permit 0 size font scaling, render nothing<br>
+<br>
+ Bug #698619 &quot;PDF 2.0 tests 'zero sized text'&quot;<br>
+<br>
+ The PDF 2.0 specification permits font scale of 0 (!), but nothing<br>
+ should be rendered....<br>
+<br>
+ We can't have a font scale of 0, because it breaks our arithmetic, so<br>
+ we set it to a tiny value, unfortunately this still means that stroking<br>
+ text rendering modes printed some small garbage.<br>
+<br>
+ After a lot of effort with the PDF interpreter, I concluded that there<br>
+ was no reasonable way to address this in PostScript, as we didn't<br>
+ retain the font size anywhere and had no reasonable, non-volatile,<br>
+ place to store it (it needs to respect gsave and grestore).<br>
+<br>
+ So in the end I added it to the graphics state and created two new<br>
+ operators to read and write it (and undefined them after startup).<br>
+ Its an unfortunately brute-force approach, but it has the benefit of<br>
+ actually working.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+Resource/Init/pdf_ops.ps<br>
+base/gsstate.c<br>
+base/gsstate.h<br>
+base/gxgstate.h<br>
+psi/int.mak<br>
+psi/zgstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 14:07: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=3ea417610c5f0526251ed391bfd117a81c9801e1">3ea417610c5f0526251ed391bfd117a81c9801e1</a>
+<blockquote>
+<p>
+ Version and dates for jbig2dec release<br>
+<br>
+jbig2dec/CHANGES<br>
+jbig2dec/config_win32.h<br>
+jbig2dec/configure.ac<br>
+jbig2dec/jbig2dec.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 16:50:56 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4a7815f3b929a05ec8b5aaac965d62d5d370dcbe">4a7815f3b929a05ec8b5aaac965d62d5d370dcbe</a>
+<blockquote>
+<p>
+ Fix incorrect group alpha calculation.<br>
+<br>
+ In pdf14_compose_group, in the tos_isolated case, for simple<br>
+ blends, we call art_pdf_composite_group_8 to apply blend_mode<br>
+ to both process and spots. A side effect of this call is to<br>
+ update the contents of nos_alpha_g_ptr.<br>
+<br>
+ In more complex blends, we split the process and spots into<br>
+ 2 different calls to the same function. The current code<br>
+ however passes nos_alpha_g_ptr to both however, resulting in<br>
+ it being updated twice.<br>
+<br>
+ Fixed here by making one of them take NULL.<br>
+<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 10:01: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=71e8599455a7befc7a14f6cd1353c9231fb93d48">71e8599455a7befc7a14f6cd1353c9231fb93d48</a>
+<blockquote>
+<p>
+ Bug 698615: pdf_add_ToUnicode() correct size of buffer<br>
+<br>
+ We allocate a buffer to store the Unicode value, but failing to account for<br>
+ the fact that the Unicode value is two bytes, rather than a byte<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-02 16:32:25 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a015666f7b532c1d9266c4cdef3427e0b50fea90">a015666f7b532c1d9266c4cdef3427e0b50fea90</a>
+<blockquote>
+<p>
+ PDF interpreter - fix default /Decode for Lab images<br>
+<br>
+ When we get an image with no /Decode array we create a default one for<br>
+ it by looking at the image colour space.<br>
+<br>
+ For Lab we use the /Range array, but unfortunately this only covers the<br>
+ a and b channels, not the L. However, L always ranges from 0 - 100 so<br>
+ here we just pull the Range array apart, add in that range, and create<br>
+ a new array for the /Decode.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-28 18:04:20 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9e01cbd5e2d5ce41ae98ea20722ec9a7d452b9e9">9e01cbd5e2d5ce41ae98ea20722ec9a7d452b9e9</a>
+<blockquote>
+<p>
+ Fix buffer overflow regression.<br>
+<br>
+ The commit to address 694653 (3749bc274) was incorrect, the<br>
+ font_data_size variable is not necessarily the size of the buffer.<br>
+<br>
+pcl/pcl/pcsfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-28 10:08:16 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eb24ad936776bf69f987e90aad8c7fca78fc2b14">eb24ad936776bf69f987e90aad8c7fca78fc2b14</a>
+<blockquote>
+<p>
+ Documentation - spruce up WhatIsGS.htm<br>
+<br>
+ Remove references to the obselete GhostSVG<br>
+<br>
+ Remove references to MuPDF and MuXPS, MuPDF can easily stand alone now<br>
+ and its not really part of the Ghostscript family.<br>
+<br>
+doc/WhatIsGS.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-27 08:34:10 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7e342b5978eb9df875a91980554835362412200d">7e342b5978eb9df875a91980554835362412200d</a>
+<blockquote>
+<p>
+ Revert commit a5a2862d<br>
+<br>
+ Even though the commit fixed bug 695280, we noticed that it caused PS<br>
+ and PDF clist image logic to sometimes take the slow &quot;default&quot; handling<br>
+ instead of the high-level image path.<br>
+<br>
+ To restore the fix for PCL, we could remove the rop3_uses_T altogether,<br>
+ but we don't know if this will impact PCL performance.<br>
+<br>
+ Re-opening bug 695280.<br>
+<br>
+base/gxclimag.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-27 16:35: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=40deeb89508e1072a4e93441ea58d6332d10fe4c">40deeb89508e1072a4e93441ea58d6332d10fe4c</a>
+<blockquote>
+<p>
+ Documentation - remove reference to obselete switch<br>
+<br>
+ Missed this when removing the implementation, PDFDontUseObjectNum is no<br>
+ longer supported, so remove it from the documentation.<br>
+<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-26 13:30:16 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9bc74fe17f4699ae160564ba3fb281344d53dba6">9bc74fe17f4699ae160564ba3fb281344d53dba6</a>
+<blockquote>
+<p>
+ Fix bug 698560. Transparent pattern-clist playback affected target device<br>
+<br>
+ If a transparent pattern was stored as a pattern-clist, changes to the<br>
+ pdf14_device during playback were applied to the upper level device, but<br>
+ not restored after the playback. This fixes a long standing problem with<br>
+ Bug692217.pdf (ELEMENTARY card was to light gray).<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-22 16:06: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=8dd5ae8b9ea8dcae7775edb879f2949e2ee55be5">8dd5ae8b9ea8dcae7775edb879f2949e2ee55be5</a>
+<blockquote>
+<p>
+ PDF interpreter - clamp Box to MediaBox, even when MediaBox is negative<br>
+<br>
+ When applying the various 'Box' values from a PDF file, we need to clamp<br>
+ them to the MediaBox values, so that we don't try and extend the final<br>
+ output to be larger than the Media (this appears to be Acotbat's<br>
+ behaviour).<br>
+<br>
+ But we also need to account for the fact that the media (and therefore<br>
+ the content) may not lie up and right. Its possible for the media to<br>
+ be defined with negative height or width.<br>
+<br>
+ We deal with that by scaling/translating the CTM, but we weren't<br>
+ taking it into account when calculating the actual media size, which led<br>
+ to us calculating the wrong size.<br>
+<br>
+ This is more complicated, but we only do it once per page, so the<br>
+ performance penalty is insignificant.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-22 12:36:22 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=819b79e75d8198d16b13c631d6842953f2c6ab81">819b79e75d8198d16b13c631d6842953f2c6ab81</a>
+<blockquote>
+<p>
+ Bug 698581: Pscript5Idiom: add missing conditional (and bind)<br>
+<br>
+ One of the procedures which Pscript5Idiom &quot;patches&quot; was missing an ifelse<br>
+ meaning, when that idiom was hit, an unexecuted procedure was left on<br>
+ the stack.<br>
+<br>
+ For efficiency and consistency, also bind the entire procedure.<br>
+<br>
+Resource/IdiomSet/Pscript5Idiom<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-22 10:55:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4a0b2e60e3ed23ec1f7f7e0390ce449bef03b8e4">4a0b2e60e3ed23ec1f7f7e0390ce449bef03b8e4</a>
+<blockquote>
+<p>
+ Simpify confusing stack manipulations<br>
+<br>
+ The existing code was not wrong, but did several unnecessary stack manipulations<br>
+ that made it less efficient but, more importantly, confusing.<br>
+<br>
+ Also, remove trailing whitespace.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-21 11:27:37 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=000915310197a25ff4acc97f0fa476085698d8fd">000915310197a25ff4acc97f0fa476085698d8fd</a>
+<blockquote>
+<p>
+ Remove pointless free<br>
+<br>
+ In an error condition, we were freeing the object that had failed to allocate.<br>
+<br>
+ Not a problem with our memory manager, but might cause confusion reading the<br>
+ code (it did for me!).<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-21 18:34: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=6f9ba1282eeb2537248fea11b686eefffc5b86fc">6f9ba1282eeb2537248fea11b686eefffc5b86fc</a>
+<blockquote>
+<p>
+ Fix errors with 6b06b8c854<br>
+<br>
+ The stack manipulations with the previous commit were not quite right.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-19 10:41:21 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6b06b8c85451bdf022f1684f633a85980e7c62ee">6b06b8c85451bdf022f1684f633a85980e7c62ee</a>
+<blockquote>
+<p>
+ Bug 698559 avoid double alpha application<br>
+<br>
+ When we have a softmask present in the graphic state, we<br>
+ wrap up the fill or stroke with an isolated transparency<br>
+ group in the interpreter. After the group is pushed we<br>
+ should set the opacityalpha and the shapealpha to 1 to<br>
+ avoid a double application of alpha at the rect-fill level and<br>
+ the group composition level.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-21 10:13:16 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8d57c8c54bd4fe8b5582a31dca69d034743eeacb">8d57c8c54bd4fe8b5582a31dca69d034743eeacb</a>
+<blockquote>
+<p>
+ pdfwrite - fix compiler warnign<br>
+<br>
+ Cast a pointer correctly to avoid a compiler warning.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-20 16:48:27 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c1ba880345f3c17f828e28d4c42f38798eab73c2">c1ba880345f3c17f828e28d4c42f38798eab73c2</a>
+<blockquote>
+<p>
+ Fix stroke/fill mismatches in 09-37.PS<br>
+<br>
+ When 'accurate curves' are requested, ensure we use the same<br>
+ curve -&gt; line decomposition for both strokes and fills.<br>
+<br>
+base/gxfill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-20 18:33:52 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9f068ae6d612f09dd37915edd56381c6a9167b7">d9f068ae6d612f09dd37915edd56381c6a9167b7</a>
+<blockquote>
+<p>
+ Fix new scan converter glitch with CATX4547.pdf<br>
+<br>
+ Page 11 of this file contains details on the revolvers cylinder<br>
+ rendered by filling zero width vertical lines. For example:<br>
+<br>
+ 0.165 0.068 0 0.187 scn<br>
+ 506.47 162.99 m<br>
+ 506.47 167.99 l<br>
+ 506.47 162.99 l<br>
+ f<br>
+<br>
+ The new scan converter was incorrectly eliding this. Fixed by<br>
+ tweaking the edgebuffer filtering logic for any-part-of-a-pixel<br>
+ mode.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-19 18:01:27 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb95f670d3e54befca541dd35c2d7c2fe690ffbd">fb95f670d3e54befca541dd35c2d7c2fe690ffbd</a>
+<blockquote>
+<p>
+ Fix in*fill etc test files.<br>
+<br>
+ The new scan converter has been assuming that anything with an<br>
+ x coord &lt; 0 is off screen. While this is true for almost every<br>
+ device I can think of, it need not be true for the hit detection<br>
+ device used for infill/instroke operations.<br>
+<br>
+ Fixed to use INT_MIN here.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-20 15:37:19 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=29d1b0b1152324699f63ecf411bf7d590085c403">29d1b0b1152324699f63ecf411bf7d590085c403</a>
+<blockquote>
+<p>
+ pdfwrite - fix UTF16 to UTF8 conversion<br>
+<br>
+ There was a signed/unsigned error in the arguments to this routine,<br>
+ which meant that bytes with the top bit set caused the whole UTF16<br>
+ short to become negative as well.<br>
+<br>
+ Fixed here.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-19 17:43: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=c49536553df8eef02c6b0fbf1a46eeb2d086859d">c49536553df8eef02c6b0fbf1a46eeb2d086859d</a>
+<blockquote>
+<p>
+ Write initial device error to stderr<br>
+<br>
+ As the &quot;Unable to open the initial device, quitting.&quot; occurs outside the<br>
+ Postscript error handling auspices, and causes Ghostscript to quit in a<br>
+ possibly unexpected way, write it to stderr rather than stdout.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-19 13:59: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=085fc4933e5169176124922925f6cc6b454ac03e">085fc4933e5169176124922925f6cc6b454ac03e</a>
+<blockquote>
+<p>
+ PS interpreter - set EPSCrop when EPSFitPage is set<br>
+<br>
+ Bug #698555 &quot;using DEVICE[WIDTH|HEIGHT]POINTS results in blank image&quot;<br>
+<br>
+ The reporter had not set -dEPSCrop which resulted in no PageSize<br>
+ request being sent to the interpreter (because EPS files are note<br>
+ permitted to set PageSize). Which defeats the use of PageSize Policy<br>
+ 13 to scale the page.<br>
+<br>
+ Since anyone using EPSFitPage clearly wants to scale the page to the EPS<br>
+ BoundingBox, we may as well set EPSCrop in case they don't.<br>
+<br>
+ NB the original reporter had not set -dFIXEDMEDIA either...<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-17 18:34:59 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fc08a2810b1594ce865190763a7831704c00846d">fc08a2810b1594ce865190763a7831704c00846d</a>
+<blockquote>
+<p>
+ pdfwrite - properly process Octal 134 '\' in pdfmark UTF16 string<br>
+<br>
+ Bug #698552 &quot;Some PDF outline UTF-16 text is broken&quot;<br>
+<br>
+ The escape processing wasn't catering for an escaped escape '\\' which<br>
+ led to us writing the escaped escape direclty and corrupted the remainder<br>
+ of the string. We normaly don't use short escapes but write ocral,<br>
+ because some versions of Acrobat can't handle the short escapes.<br>
+<br>
+ This commit just processes the '\\' properly, as per the other<br>
+ escapes.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-17 11:46:03 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=275d9547b89aa17dc3a3d9441f712dfdfd344201">275d9547b89aa17dc3a3d9441f712dfdfd344201</a>
+<blockquote>
+<p>
+ Coverity ID 172798<br>
+<br>
+ We hadn't assigned the return value to the variable 'code' but were<br>
+ using it (asigned earlier in the code) to action a return.<br>
+<br>
+ Fixed by actually assigning the value to the variable.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-16 23:34:04 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ce4bbbde09d087fe3af7036c1fc3f0a38f30c19e">ce4bbbde09d087fe3af7036c1fc3f0a38f30c19e</a>
+<blockquote>
+<p>
+ PDF interpreter - more work on images with invalid /Mask<br>
+<br>
+ Commit 119ec77d4e44e3861a376323ed14466b28b2f4bf fixed one case of a<br>
+ /Mask array with invalid values by treating DeviceGray the same as<br>
+ /Indexed. However, while that worked for the particular file in question<br>
+ (Bug #697919) it caused a regression with Bug689717 which I somehow<br>
+ missed at the time.<br>
+<br>
+ This commit treats DeviceGray differently to Indexed spaces and<br>
+ clamps the value to either 0 or 1 for 1 BPC images. This seems to work<br>
+ as per Acrobat for both files.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 18:24:44 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7914df697a40314e35847f4e1faca5c964c19e84">7914df697a40314e35847f4e1faca5c964c19e84</a>
+<blockquote>
+<p>
+ Bug 696399: Fix buffer overflow in image scaling.<br>
+<br>
+ Patch calculation that overflows when x_extent is very<br>
+ negative.<br>
+<br>
+base/gxifast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 14:28:28 -0700
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=176f0c2f9632b2167cbdd3a3ab44435af3b0bb64">176f0c2f9632b2167cbdd3a3ab44435af3b0bb64</a>
+<blockquote>
+<p>
+ Remove stray memsets left in from previous commit.<br>
+<br>
+ The &quot;Bug 698427: Fix ignoring errors that lead to division by<br>
+ zero.&quot; commit contained stray memsets.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 13:04:06 -0700
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=11a0bc253157ff84be1ef8d065d3ccbf8d377280">11a0bc253157ff84be1ef8d065d3ccbf8d377280</a>
+<blockquote>
+<p>
+ Bug 698427: Fix ignoring errors that lead to division by zero.<br>
+<br>
+ By ignoring error return values, we continue running with<br>
+ uninitialised data, leading to division by zero.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 10:58:11 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=887026173a2200dba9cb5eed39200f8f1e44cc7a">887026173a2200dba9cb5eed39200f8f1e44cc7a</a>
+<blockquote>
+<p>
+ Coverity #135034: Simplify code.<br>
+<br>
+ The while loop is not strictly required (but it does match<br>
+ the other cases). Simplified here.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 10:47:54 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d7804bfc4d6bdd863137073bdc4f935c960a8f1d">d7804bfc4d6bdd863137073bdc4f935c960a8f1d</a>
+<blockquote>
+<p>
+ Coverity #135037: Fix unused variable.<br>
+<br>
+ Don't read a value we don't use.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-05 14:52: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=e289916162ce817275e05c536525954028e7d2bc">e289916162ce817275e05c536525954028e7d2bc</a>
+<blockquote>
+<p>
+ Coverity ID# 135035<br>
+<br>
+ Remove pointless &quot;upgraded_copypage&quot; code properly.<br>
+<br>
+ The previous commit for this removed code that it should not have done<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 13:42:00 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b3de06e71037a6abcf4546fa7d53a00a3ce47cc3">b3de06e71037a6abcf4546fa7d53a00a3ce47cc3</a>
+<blockquote>
+<p>
+ Revert &quot;Coverity ID# 135035&quot;<br>
+<br>
+ This reverts commit 05c3de8915fafb65b96ba0860523a7a79e2577e2.<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-14 22:40: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=b76a38bc57de9085474474fc3de5ec295c9aec21">b76a38bc57de9085474474fc3de5ec295c9aec21</a>
+<blockquote>
+<p>
+ Remove man pages for removed (obsolete) tools<br>
+<br>
+ (Reported against 9.22 rc1)<br>
+<br>
+doc/gs-vms.hlp<br>
+man/de/font2c.1<br>
+man/de/wftopfa.1<br>
+man/font2c.1<br>
+man/gs.1<br>
+man/wftopfa.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-14 07:01: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=6bf33a5d01518dcba8e957299a91a68d871f2b0b">6bf33a5d01518dcba8e957299a91a68d871f2b0b</a>
+<blockquote>
+<p>
+ White space issues reported against 9.22 rc1<br>
+<br>
+ It seems newer gcc versions (6.4.x and later) report indentation &quot;problems&quot;.<br>
+<br>
+ Also, add a cast to ensure bitshift op is done on an unsigned value.<br>
+<br>
+base/gsbitops.c<br>
+base/gsicc_create.c<br>
+base/gxclread.c<br>
+contrib/gdevbjca.c<br>
+contrib/gdevdj9.c<br>
+devices/gdevepsc.c<br>
+pcl/pxl/pxpaint.c<br>
+psi/dscparse.c<br>
+psi/zcrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-14 06:41:33 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d26d2bb23f2d8867d99d5f1fa08a37d3f131e1ad">d26d2bb23f2d8867d99d5f1fa08a37d3f131e1ad</a>
+<blockquote>
+<p>
+ Bug 698532: replace ijs/ltmain.sh symlink with file<br>
+<br>
+ijs/ltmain.sh<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-13 08:43: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=cadd9e5faede555fade5e7e8f447de8f40e5c5e9">cadd9e5faede555fade5e7e8f447de8f40e5c5e9</a>
+<blockquote>
+<p>
+ Remove reference to old wisc site in Readme.htm<br>
+ S<br>
+<br>
+doc/Readme.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-12 10:27: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=67b24cbd748db9d96061f476f42c87bd452a496e">67b24cbd748db9d96061f476f42c87bd452a496e</a>
+<blockquote>
+<p>
+ Bump version number for release<br>
+<br>
+Resource/Init/gs_init.ps<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-12 11:17: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=95cb9ab7b4ef15bf60bd074220906f9eda145916">95cb9ab7b4ef15bf60bd074220906f9eda145916</a>
+<blockquote>
+<p>
+ Remove unused variable 'pdev' to silence compiler warning<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-04 09:50:33 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ba50b3c6061d35275b7067204da6f032fb46cf62">ba50b3c6061d35275b7067204da6f032fb46cf62</a>
+<blockquote>
+<p>
+ Dates, product, changelog for 9.22 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/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>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-03 10:01: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=dcba89978e3cd6e8e55b44e0830594a385a8e07e">dcba89978e3cd6e8e55b44e0830594a385a8e07e</a>
+<blockquote>
+<p>
+ Bug 698615: pdf_add_ToUnicode() correct size of buffer<br>
+<br>
+ We allocate a buffer to store the Unicode value, but failing to account for<br>
+ the fact that the Unicode value is two bytes, rather than a byte<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-10-02 16:32:25 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5751e508f72238c1fcaad1a4c284aa875542dd70">5751e508f72238c1fcaad1a4c284aa875542dd70</a>
+<blockquote>
+<p>
+ PDF interpreter - fix default /Decode for Lab images<br>
+<br>
+ When we get an image with no /Decode array we create a default one for<br>
+ it by looking at the image colour space.<br>
+<br>
+ For Lab we use the /Range array, but unfortunately this only covers the<br>
+ a and b channels, not the L. However, L always ranges from 0 - 100 so<br>
+ here we just pull the Range array apart, add in that range, and create<br>
+ a new array for the /Decode.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-28 18:04:20 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3c2974bcd2e638be13c0ec814342a1a35ca0872b">3c2974bcd2e638be13c0ec814342a1a35ca0872b</a>
+<blockquote>
+<p>
+ Fix buffer overflow regression.<br>
+<br>
+ The commit to address 694653 (3749bc274) was incorrect, the<br>
+ font_data_size variable is not necessarily the size of the buffer.<br>
+<br>
+pcl/pcl/pcsfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-28 11:37:57 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f1d39c92bff2de2d7b270a419a907c935ea626a6">f1d39c92bff2de2d7b270a419a907c935ea626a6</a>
+<blockquote>
+<p>
+ Changelog for 9.22rc2<br>
+<br>
+doc/History9.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-28 11:35:58 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b1eda05a9fa7327e76b9a4af980d05da9e926e7f">b1eda05a9fa7327e76b9a4af980d05da9e926e7f</a>
+<blockquote>
+<p>
+ Update dates/product for 9.22rc2<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/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>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-28 10:08:16 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d59e4b57e1807e934ed1dde51e628f84dfb8caa7">d59e4b57e1807e934ed1dde51e628f84dfb8caa7</a>
+<blockquote>
+<p>
+ Documentation - spruce up WhatIsGS.htm<br>
+<br>
+ Remove references to the obselete GhostSVG<br>
+<br>
+ Remove references to MuPDF and MuXPS, MuPDF can easily stand alone now<br>
+ and its not really part of the Ghostscript family.<br>
+<br>
+doc/WhatIsGS.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-27 08:34:10 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a6830a293f9a69caf50777bb6ee7b553589c0a08">a6830a293f9a69caf50777bb6ee7b553589c0a08</a>
+<blockquote>
+<p>
+ Revert commit a5a2862d<br>
+<br>
+ Even though the commit fixed bug 695280, we noticed that it caused PS<br>
+ and PDF clist image logic to sometimes take the slow &quot;default&quot; handling<br>
+ instead of the high-level image path.<br>
+<br>
+ To restore the fix for PCL, we could remove the rop3_uses_T altogether,<br>
+ but we don't know if this will impact PCL performance.<br>
+<br>
+ Re-opening bug 695280.<br>
+<br>
+base/gxclimag.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-27 16:35: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=c10d5ada53245dac13436d663d3dbe265bc9e11a">c10d5ada53245dac13436d663d3dbe265bc9e11a</a>
+<blockquote>
+<p>
+ Documentation - remove reference to obselete switch<br>
+<br>
+ Missed this when removing the implementation, PDFDontUseObjectNum is no<br>
+ longer supported, so remove it from the documentation.<br>
+<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-26 13:30:16 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ccaaa1fd02f1cedf221bd6a34e5eb0ef64ef8f3f">ccaaa1fd02f1cedf221bd6a34e5eb0ef64ef8f3f</a>
+<blockquote>
+<p>
+ Fix bug 698560. Transparent pattern-clist playback affected target device<br>
+<br>
+ If a transparent pattern was stored as a pattern-clist, changes to the<br>
+ pdf14_device during playback were applied to the upper level device, but<br>
+ not restored after the playback. This fixes a long standing problem with<br>
+ Bug692217.pdf (ELEMENTARY card was to light gray).<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-22 16:06: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=c470609a95c3ba5d531da463df7a98da01998452">c470609a95c3ba5d531da463df7a98da01998452</a>
+<blockquote>
+<p>
+ PDF interpreter - clamp Box to MediaBox, even when MediaBox is negative<br>
+<br>
+ When applying the various 'Box' values from a PDF file, we need to clamp<br>
+ them to the MediaBox values, so that we don't try and extend the final<br>
+ output to be larger than the Media (this appears to be Acotbat's<br>
+ behaviour).<br>
+<br>
+ But we also need to account for the fact that the media (and therefore<br>
+ the content) may not lie up and right. Its possible for the media to<br>
+ be defined with negative height or width.<br>
+<br>
+ We deal with that by scaling/translating the CTM, but we weren't<br>
+ taking it into account when calculating the actual media size, which led<br>
+ to us calculating the wrong size.<br>
+<br>
+ This is more complicated, but we only do it once per page, so the<br>
+ performance penalty is insignificant.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-22 12:36:22 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad87c56e9e88907854d4c37f1a80d8f5d06fb8a7">ad87c56e9e88907854d4c37f1a80d8f5d06fb8a7</a>
+<blockquote>
+<p>
+ Bug 698581: Pscript5Idiom: add missing conditional (and bind)<br>
+<br>
+ One of the procedures which Pscript5Idiom &quot;patches&quot; was missing an ifelse<br>
+ meaning, when that idiom was hit, an unexecuted procedure was left on<br>
+ the stack.<br>
+<br>
+ For efficiency and consistency, also bind the entire procedure.<br>
+<br>
+Resource/IdiomSet/Pscript5Idiom<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-22 10:55:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9ae11d7a06c216eae554bcc7696028e69c4bc7ee">9ae11d7a06c216eae554bcc7696028e69c4bc7ee</a>
+<blockquote>
+<p>
+ Simpify confusing stack manipulations<br>
+<br>
+ The existing code was not wrong, but did several unnecessary stack manipulations<br>
+ that made it less efficient but, more importantly, confusing.<br>
+<br>
+ Also, remove trailing whitespace.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-21 11:27:37 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d644437adb7833a2c511d143c13e757383106378">d644437adb7833a2c511d143c13e757383106378</a>
+<blockquote>
+<p>
+ Remove pointless free<br>
+<br>
+ In an error condition, we were freeing the object that had failed to allocate.<br>
+<br>
+ Not a problem with our memory manager, but might cause confusion reading the<br>
+ code (it did for me!).<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-21 18:34: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=8760a38e4ca49ce403cb362ecb4d6b4d247587f1">8760a38e4ca49ce403cb362ecb4d6b4d247587f1</a>
+<blockquote>
+<p>
+ Fix errors with 6b06b8c854<br>
+<br>
+ The stack manipulations with the previous commit were not quite right.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-19 10:41:21 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc966e7f9029c27abc896431a3c4910b40d915ef">cc966e7f9029c27abc896431a3c4910b40d915ef</a>
+<blockquote>
+<p>
+ Bug 698559 avoid double alpha application<br>
+<br>
+ When we have a softmask present in the graphic state, we<br>
+ wrap up the fill or stroke with an isolated transparency<br>
+ group in the interpreter. After the group is pushed we<br>
+ should set the opacityalpha and the shapealpha to 1 to<br>
+ avoid a double application of alpha at the rect-fill level and<br>
+ the group composition level.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-21 10:13:16 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c03add9e9caaa4958928f74a6ca4f2b71915063c">c03add9e9caaa4958928f74a6ca4f2b71915063c</a>
+<blockquote>
+<p>
+ pdfwrite - fix compiler warnign<br>
+<br>
+ Cast a pointer correctly to avoid a compiler warning.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-20 16:48:27 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2285580852e74940a4596b754739ba45a03b40d0">2285580852e74940a4596b754739ba45a03b40d0</a>
+<blockquote>
+<p>
+ Fix stroke/fill mismatches in 09-37.PS<br>
+<br>
+ When 'accurate curves' are requested, ensure we use the same<br>
+ curve -&gt; line decomposition for both strokes and fills.<br>
+<br>
+base/gxfill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-20 18:33:52 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0803369908a0b4b24b215881e4c4a4ecc5de61c2">0803369908a0b4b24b215881e4c4a4ecc5de61c2</a>
+<blockquote>
+<p>
+ Fix new scan converter glitch with CATX4547.pdf<br>
+<br>
+ Page 11 of this file contains details on the revolvers cylinder<br>
+ rendered by filling zero width vertical lines. For example:<br>
+<br>
+ 0.165 0.068 0 0.187 scn<br>
+ 506.47 162.99 m<br>
+ 506.47 167.99 l<br>
+ 506.47 162.99 l<br>
+ f<br>
+<br>
+ The new scan converter was incorrectly eliding this. Fixed by<br>
+ tweaking the edgebuffer filtering logic for any-part-of-a-pixel<br>
+ mode.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-19 18:01:27 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=03ac50df18eb12d40de1615d18730fdd077f605b">03ac50df18eb12d40de1615d18730fdd077f605b</a>
+<blockquote>
+<p>
+ Fix in*fill etc test files.<br>
+<br>
+ The new scan converter has been assuming that anything with an<br>
+ x coord &lt; 0 is off screen. While this is true for almost every<br>
+ device I can think of, it need not be true for the hit detection<br>
+ device used for infill/instroke operations.<br>
+<br>
+ Fixed to use INT_MIN here.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-20 15:37:19 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4bb7249ce9320c566da5dac3901c41c7965d37d8">4bb7249ce9320c566da5dac3901c41c7965d37d8</a>
+<blockquote>
+<p>
+ pdfwrite - fix UTF16 to UTF8 conversion<br>
+<br>
+ There was a signed/unsigned error in the arguments to this routine,<br>
+ which meant that bytes with the top bit set caused the whole UTF16<br>
+ short to become negative as well.<br>
+<br>
+ Fixed here.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-19 17:43: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=f2f9ed2897a4cf166c1df50422b2e82ad2422947">f2f9ed2897a4cf166c1df50422b2e82ad2422947</a>
+<blockquote>
+<p>
+ Write initial device error to stderr<br>
+<br>
+ As the &quot;Unable to open the initial device, quitting.&quot; occurs outside the<br>
+ Postscript error handling auspices, and causes Ghostscript to quit in a<br>
+ possibly unexpected way, write it to stderr rather than stdout.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-19 13:59: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=5fc5b64a6cd3917326479d3d3a0546dca0feef3c">5fc5b64a6cd3917326479d3d3a0546dca0feef3c</a>
+<blockquote>
+<p>
+ PS interpreter - set EPSCrop when EPSFitPage is set<br>
+<br>
+ Bug #698555 &quot;using DEVICE[WIDTH|HEIGHT]POINTS results in blank image&quot;<br>
+<br>
+ The reporter had not set -dEPSCrop which resulted in no PageSize<br>
+ request being sent to the interpreter (because EPS files are note<br>
+ permitted to set PageSize). Which defeats the use of PageSize Policy<br>
+ 13 to scale the page.<br>
+<br>
+ Since anyone using EPSFitPage clearly wants to scale the page to the EPS<br>
+ BoundingBox, we may as well set EPSCrop in case they don't.<br>
+<br>
+ NB the original reporter had not set -dFIXEDMEDIA either...<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-17 18:34:59 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e317f178c7fe7c81b573598f848acf8487e4e45">6e317f178c7fe7c81b573598f848acf8487e4e45</a>
+<blockquote>
+<p>
+ pdfwrite - properly process Octal 134 '\' in pdfmark UTF16 string<br>
+<br>
+ Bug #698552 &quot;Some PDF outline UTF-16 text is broken&quot;<br>
+<br>
+ The escape processing wasn't catering for an escaped escape '\\' which<br>
+ led to us writing the escaped escape direclty and corrupted the remainder<br>
+ of the string. We normaly don't use short escapes but write ocral,<br>
+ because some versions of Acrobat can't handle the short escapes.<br>
+<br>
+ This commit just processes the '\\' properly, as per the other<br>
+ escapes.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-17 11:46:03 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=122808aa46118d483c2fe431d5382c88cdd6e735">122808aa46118d483c2fe431d5382c88cdd6e735</a>
+<blockquote>
+<p>
+ Coverity ID 172798<br>
+<br>
+ We hadn't assigned the return value to the variable 'code' but were<br>
+ using it (asigned earlier in the code) to action a return.<br>
+<br>
+ Fixed by actually assigning the value to the variable.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-16 23:34:04 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=087abbc55390499ca27823afbe7d1b62b4ff4f8e">087abbc55390499ca27823afbe7d1b62b4ff4f8e</a>
+<blockquote>
+<p>
+ PDF interpreter - more work on images with invalid /Mask<br>
+<br>
+ Commit 119ec77d4e44e3861a376323ed14466b28b2f4bf fixed one case of a<br>
+ /Mask array with invalid values by treating DeviceGray the same as<br>
+ /Indexed. However, while that worked for the particular file in question<br>
+ (Bug #697919) it caused a regression with Bug689717 which I somehow<br>
+ missed at the time.<br>
+<br>
+ This commit treats DeviceGray differently to Indexed spaces and<br>
+ clamps the value to either 0 or 1 for 1 BPC images. This seems to work<br>
+ as per Acrobat for both files.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 18:24:44 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f1ccd5e2c82eb137abb7af000e93447653093a4d">f1ccd5e2c82eb137abb7af000e93447653093a4d</a>
+<blockquote>
+<p>
+ Bug 696399: Fix buffer overflow in image scaling.<br>
+<br>
+ Patch calculation that overflows when x_extent is very<br>
+ negative.<br>
+<br>
+base/gxifast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 14:28:28 -0700
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a768ec17b12e44b20d555f3c2fc2c5dcde3d9f0b">a768ec17b12e44b20d555f3c2fc2c5dcde3d9f0b</a>
+<blockquote>
+<p>
+ Remove stray memsets left in from previous commit.<br>
+<br>
+ The &quot;Bug 698427: Fix ignoring errors that lead to division by<br>
+ zero.&quot; commit contained stray memsets.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 13:04:06 -0700
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=45e4bcf4992c6c22e942730f5df393fc6b4cab63">45e4bcf4992c6c22e942730f5df393fc6b4cab63</a>
+<blockquote>
+<p>
+ Bug 698427: Fix ignoring errors that lead to division by zero.<br>
+<br>
+ By ignoring error return values, we continue running with<br>
+ uninitialised data, leading to division by zero.<br>
+<br>
+base/gxshade1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 10:58:11 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1b18e15f10532d584c6fc2191e1b2a3f8e5ba7e5">1b18e15f10532d584c6fc2191e1b2a3f8e5ba7e5</a>
+<blockquote>
+<p>
+ Coverity #135034: Simplify code.<br>
+<br>
+ The while loop is not strictly required (but it does match<br>
+ the other cases). Simplified here.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 10:47:54 -0500
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6fb9174c1517143158781ed37e0c6d6eb9321808">6fb9174c1517143158781ed37e0c6d6eb9321808</a>
+<blockquote>
+<p>
+ Coverity #135037: Fix unused variable.<br>
+<br>
+ Don't read a value we don't use.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-05 14:52: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=228ac64b768ac3df1bcd5f63e3f353f8fd01e372">228ac64b768ac3df1bcd5f63e3f353f8fd01e372</a>
+<blockquote>
+<p>
+ Coverity ID# 135035<br>
+<br>
+ Remove pointless &quot;upgraded_copypage&quot; code properly.<br>
+<br>
+ The previous commit for this removed code that it should not have done<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-15 13:42:00 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3f9d3e1392236fef4658c8dcad15385670d6831e">3f9d3e1392236fef4658c8dcad15385670d6831e</a>
+<blockquote>
+<p>
+ Revert &quot;Coverity ID# 135035&quot;<br>
+<br>
+ This reverts commit 05c3de8915fafb65b96ba0860523a7a79e2577e2.<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-14 22:40: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=12ff84c1ff077c737b0a194761a370de079943fd">12ff84c1ff077c737b0a194761a370de079943fd</a>
+<blockquote>
+<p>
+ Remove man pages for removed (obsolete) tools<br>
+<br>
+ (Reported against 9.22 rc1)<br>
+<br>
+doc/gs-vms.hlp<br>
+man/de/font2c.1<br>
+man/de/wftopfa.1<br>
+man/font2c.1<br>
+man/gs.1<br>
+man/wftopfa.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-14 07:01: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=7df9b3d9b0dabd9854731fab796d5d458cf743f7">7df9b3d9b0dabd9854731fab796d5d458cf743f7</a>
+<blockquote>
+<p>
+ White space issues reported against 9.22 rc1<br>
+<br>
+ It seems newer gcc versions (6.4.x and later) report indentation &quot;problems&quot;.<br>
+<br>
+ Also, add a cast to ensure bitshift op is done on an unsigned value.<br>
+<br>
+base/gsbitops.c<br>
+base/gsicc_create.c<br>
+base/gxclread.c<br>
+contrib/gdevbjca.c<br>
+contrib/gdevdj9.c<br>
+devices/gdevepsc.c<br>
+pcl/pxl/pxpaint.c<br>
+psi/dscparse.c<br>
+psi/zcrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-14 06:41:33 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9e56aafaf2fc8fe3ffeefc0d13fa8c1b033ddec8">9e56aafaf2fc8fe3ffeefc0d13fa8c1b033ddec8</a>
+<blockquote>
+<p>
+ Bug 698532: replace ijs/ltmain.sh symlink with file<br>
+<br>
+ijs/ltmain.sh<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-13 08:43: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=98e115748ec4b16c610396b9444c1d82d263a30c">98e115748ec4b16c610396b9444c1d82d263a30c</a>
+<blockquote>
+<p>
+ Remove reference to old wisc site in Readme.htm<br>
+ S<br>
+<br>
+doc/Readme.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-12 11:17: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=4241a4b3a7099cddac36d13f6c67054483eb7511">4241a4b3a7099cddac36d13f6c67054483eb7511</a>
+<blockquote>
+<p>
+ Remove unused variable 'pdev' to silence compiler warning<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-12 11:16: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=29be703c9762714a47f67947d6dfb9efd6c6bc29">29be703c9762714a47f67947d6dfb9efd6c6bc29</a>
+<blockquote>
+<p>
+ Changelog and news<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-12 10:32: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=85e04afbc2c80c8c6b129aff2741cbdf4d41ff67">85e04afbc2c80c8c6b129aff2741cbdf4d41ff67</a>
+<blockquote>
+<p>
+ Update docs dates etc for release<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/int.mak<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2017-09-12 10:30:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=43561187cdb501ac1c6184082065647253d9336c">43561187cdb501ac1c6184082065647253d9336c</a>
+<blockquote>
+<p>
+ Product string and date for release<br>
+<br>
+base/gscdef.c<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<hr size=20>
+
<h2><a name="Version9.22"></a>Version 9.22 (2017-10-04)</h2>
<p>This is the sixteeth full release in the stable 9.x series.
diff --git a/doc/News.htm b/doc/News.htm
index 7a03c6c38..bd18a6c3e 100644
--- a/doc/News.htm
+++ b/doc/News.htm
@@ -58,17 +58,38 @@ overview</a>.
<h2><a name="Version9.23"></a>Version 9.23 (2018-03-07)</h2>
-<p>This is the sixteeth full release in the stable 9.x series.
+<p>This is the seventeenth full release in the stable 9.x series.
<p> Highlights in this release include:
<ul>
<li>
-<p>Ghostscript can now consume and produce (via the pdfwrite device) PDF 2.0
-compliant files.
+<p>Ghostscript now has a family of 'pdfimage' devices (pdfimage8, pdfimage24 and pdfimage32)
+which produce rendered output wrapped up as an image in a PDF. Additionally, there is a 'pclm'
+device which produces PCLm format output.
</li>
<li>
-<p>The main focus of this release has been security and code cleanliness. Hence
-many AddressSanitizer, Valgrind and Coverity issues have been addressed.
+<p>There is now a ColorAccuracy parameter allowing the user to decide between speed or accuracy
+in ICC color transforms.
+</li>
+<li>
+<p>JPEG Passthrough: devices which support it can now receive the 'raw' JPEG stream from the
+interpreter. The main use of this is the pdfwrite/ps2write family of devices that can now
+take JPEG streams from the input file(s) and write them unchanged to the output (thus avoiding
+additional quantization effects).
+</li>
+<li>
+<p>PDF transparency performance improvements
+</li>
+<li>
+<p>IMPORTANT: We are in the process of forking LittleCMS. LCMS2 is not thread safe, and
+cannot be made thread safe without breaking the ABI. Our fork will be thread safe, and include
+performance enhancements (these changes have all be been offered and rejected upstream). We
+will maintain compatibility between Ghostscript and LCMS2 for a time, but not in perpetuity.
+Our fork will be available as its own package separately from Ghostscript (and MuPDF).
+</li>
+<li>
+<p>We have continued the focus on code hygiene in this release cleaning up security issues,
+ignored return values, and compiler warnings.
</li>
<li>
<p>The usual round of bug fixes, compatibility changes, and incremental improvements.
@@ -77,19 +98,12 @@ many AddressSanitizer, Valgrind and Coverity issues have been addressed.
<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.22_Incompatible_changes"></a>Incompatible changes</h3>
+<h3><a name="9.23_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.
+The planned device API tidy has, unfortunately, been indefinitely postponed, until
+appropriate resources are available.
</li>
</ul>
<h3><a name="9.22_changelog"></a>Changelog</h3>